oracle备库搭建

Oracle 19c 备库(从库/Standby)完整静默安装 + 配置 极简整理版

全程无图形、无交互、和主库完全统一、直接复制执行


一、备库环境要求(必须和主库一致)

  • 系统:CentOS 7 / Oracle Linux 7
  • 数据库版本:必须和主库完全一样(19.3.0.0)
  • 目录结构:必须和主库完全一样
  • 主机名、IP:自己规划
  • SID:orcl(和主库相同)
  • 组:oinstall、dba
  • 路径:/u01/app/oracle

二、备库 系统初始化配置(root 执行)

1. 关闭防火墙&SELinux

systemctl stop firewalld
systemctl disable firewalld
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
setenforce 0

2. 安装依赖包

yum install -y bc binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXext libXtst libX11 libXau libxcb libXi make sysstat net-tools

3. 创建用户&组

groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
echo "oracle" | passwd --stdin oracle

4. 创建目录

5. 共享内存

mount -o remount,size=4G /dev/shm
echo "tmpfs /dev/shm tmpfs defaults,size=4G 0 0" >> /etc/fstab

6. 内核参数

cat > /etc/sysctl.d/99-oracle.conf <<EOF
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
net.ipv4.ip_local_port_range = 1024 65000
EOF

sysctl -p /etc/sysctl.d/99-oracle.conf

7. 资源限制

cat >> /etc/security/limits.conf <<EOF
oracle   soft   nproc    16384
oracle   hard   nproc    16384
oracle   soft   nofile   65536
oracle   hard   nofile   65536
oracle   soft   stack    10240
oracle   hard   stack    10240
EOF

三、备库 Oracle 环境变量(oracle 执行)

cat > ~/.bash_profile <<EOF
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=\$ORACLE_BASE/product/19.0.0/dbhome_1
export ORACLE_SID=orcl
export PATH=\$ORACLE_HOME/bin:\$PATH
export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib
export LANG=C
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
EOF

source ~/.bash_profile
mkdir -p $ORACLE_HOME
mkdir -p /u01/app/oracle/oradata
mkdir -p /u01/app/oracle/fast_recovery_area
mkdir -p /u01/app/oraInventory

# 3. 赋权(确保属主正确)
chown -R oracle:oinstall /u01
chmod -R 775 /u01

四、备库 静默安装数据库软件(仅装软件,不建库)

1. 解压安装包

cd /u01
unzip LINUX.X64_193000_db_home.zip -d \$ORACLE_HOME

2. 静默安装(只装软件,不建库

cd \$ORACLE_HOME

./runInstaller -silent \
oracle.install.option=INSTALL_DB_SWONLY \
UNIX_GROUP_NAME=oinstall \
INVENTORY_LOCATION=/u01/app/oraInventory \
SELECTED_LANGUAGES=en,zh_CN \
ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1 \
ORACLE_BASE=/u01/app/oracle \
oracle.install.db.InstallEdition=EE \
oracle.install.db.DBA_GROUP=dba \
oracle.install.db.OPER_GROUP=dba \
oracle.install.db.BACKUPDBA_GROUP=dba \
oracle.install.db.DGDBA_GROUP=dba \
oracle.install.db.KMDBA_GROUP=dba \
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false \
DECLINE_SECURITY_UPDATES=true

五、备库 执行 root 脚本(root 执行)

/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/19.0.0/dbhome_1/root.sh

六、备库 配置监听(必须配置,不建库

netca -silent -responseFile \$ORACLE_HOME/assistants/netca/netca.rsp

验证监听:

lsnrctl start
lsnrctl status

七、备库 配置 tnsnames.ora(主库+备库都要配)

cat > \$ORACLE_HOME/network/admin/tnsnames.ora <<EOF
PRI =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 主库IP)(PORT = 1521))
    (CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = orcl))
  )

STANDBY =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 备库IP)(PORT = 1521))
    (CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = orcl))
  )
EOF

测试:

tnsping PRI
tnsping STANDBY

八、备库 关键说明(最重要)

备库 不需要执行 dbca 建库!

备库 不需要创建数据库!

备库 只需要:装软件 + 配监听 + 配tns

备库的数据文件、参数文件、控制文件 全部从主库复制/恢复过来


九、你现在的备库状态

✅ 系统配置完成
✅ Oracle 19c 软件安装完成
✅ 监听配置完成
✅ tnsnames.ora 配置完成
✅ 可以和主库通信
✅ 满足 DG 备库所有前提条件


🎯 下一步我可以直接给你:

1. 主库开启归档 + force logging + 备份命令

2. 备库 恢复参数文件 + 控制文件 + 启动MRP应用日志

3. 一主一备 DG 完整搭建脚本(复制即可)

posted @ 2026-04-06 16:08  wuyingchun1987  阅读(3)  评论(0)    收藏  举报