ORACLE 19C ADG的搭建:
所需环境:两台服务器
主库:192.168.100.19 主机名:oracle19c 预装了oracle19c-db软件 监听和库都是正常的
备库:192.168.100.20 主机名:oracle19c-dg 预装了oracle19c-db软件 (无监听,无数据库)
0 最重要的一步,关闭主备库所在操作系统的防火墙和SELINUX
1 修改/etc/hosts文件,将主从的ip和主机名添加进去(主备两边都要做)
192.168.100.19 oracle19c
192.168.100.20 oracle19c-dg
1.1 ping对方主机名看看是否连通
主:ping oracle19c-dg
备:ping oracle19c
2 主库启动到FORCE LOGGING(强制日志)
简单点来说:强制日志就是对数据库中所有的操作都产生日志信息,并将该信息写入到联机重做日志文件中(ONLINE REDO LOG)。FORCE LOGGING默认是不开启的。如果你要是配置ADG的话,那么强制日志必须处于开启状态。
alter database force logging;
select force_logging from v$database;
FORCE_LOGGING
---------------------------------------
YES
看到YES就成功了
如何关闭强制日志:
alter database no force logging;
select force_logging from v$database;
FORCE_LOGGING
---------------------------------------
NO
3 检查主库是否在归档模式下
archive log list;
如果不是的话就设置到归档模式:
使用oracle用户执行下面的创建目录命令
mkdir -p /u01/app/oracle/oradata/ORCL/arch
进入到ORACLE数据库
sqlplus / as sysdba
设置归档目录
alter system set log_archive_dest_1='location=/u01/app/oracle/oradata/ORCL/arch' scope=both;
关闭数据库
shutdown immediate
将数据库启动到mount状态
startup mount
开启归档模式
alter database archivelog;
启动数据库
alter database open;
再次检查归档状态
archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /u01/app/oracle/oradata/ORCL/arch
Oldest online log sequence 3
Next log sequence to archive 5
Current log sequence 5
看到上面信息证明已经开启了。
3.1 给主库添加stand by备用日志组 ,要比现有的日志组多一组。
select group#, members, bytes from v$log;
GROUP# MEMBERS BYTES
---------- ---------- ----------
1 1 209715200
2 1 209715200
3 1 209715200
现在我有三组,按照上面的说法那么我的standby日志组就要有四组。standby日志组是给切换以后的备库用的。
select member from v$logfile;(找到你的redo的位置)
MEMBER
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/ORCL/redo03.log
/u01/app/oracle/oradata/ORCL/redo02.log
/u01/app/oracle/oradata/ORCL/redo01.log
添加standby日志
alter database add standby logfile '/u01/app/oracle/oradata/ORCL/stdredo01.log' size 200M;
alter database add standby logfile '/u01/app/oracle/oradata/ORCL/stdredo02.log' size 200M;
alter database add standby logfile '/u01/app/oracle/oradata/ORCL/stdredo03.log' size 200M;
alter database add standby logfile '/u01/app/oracle/oradata/ORCL/stdredo04.log' size 200M;
select member from v$logfile;
MEMBER
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/ORCL/redo03.log
/u01/app/oracle/oradata/ORCL/redo02.log
/u01/app/oracle/oradata/ORCL/redo01.log
/u01/app/oracle/oradata/ORCL/stdredo01.log
/u01/app/oracle/oradata/ORCL/stdredo02.log
/u01/app/oracle/oradata/ORCL/stdredo03.log
/u01/app/oracle/oradata/ORCL/stdredo04.log
添加完成
4 为了让ADG库起到更好的作用,我们需要修改LINUX内核参数。
将这两个参数加入到sysctl.conf文件中并sysctl -p生效(用ROOT用户)
vi /etc/sysctl.conf
net.ipv4.tcp_rmem = 4096 87380 6291456
net.ipv4.tcp_wmem = 4096 16384 4194304
添加后生效
sysctl -p