ORACLE 19C 单实例ADG 主备配置的详细过程

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

要在Oracle 19c中搭建ADG(Active Data Guard),需要执行以下步骤: 1. 在数据库上启用归档模式: ``` SQL> ALTER DATABASE ARCHIVELOG; ``` 2. 创建一个数据库的实例: ``` $ export ORACLE_SID=ORACLE_19C_ADG $ sqlplus / as sysdba SQL> CREATE SPFILE FROM PFILE; ``` 3. 将数据库份复制到用服务器上,并在用服务器上还原份: ``` $ scp /backup/maindb/* oracle@adg_server:/backup/adg/ $ cd /backup/adg/ $ unzip maindb_backup.zip $ export ORACLE_SID=ORACLE_19C_ADG $ rman target / RMAN> DUPLICATE DATABASE FOR STANDBY FROM ACTIVE DATABASE SPFILE SET db_unique_name='ORACLE_19C_ADG' SET LOG_ARCHIVE_DEST_2='SERVICE=ORACLE_19C ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=ORACLE_19C' SET fal_client='ORACLE_19C' SET fal_server='ORACLE_19C_ADG' NOFILENAMECHECK; ``` 4. 配置数据库的tnsnames.ora文件和数据库的tnsnames.ora文件,以便它们互相访问。 5. 在数据库上创建一个log shipping连接,并将日志传输到数据库: ``` SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=ORACLE_19C_ADG ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=ORACLE_19C_ADG' SCOPE=BOTH; SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE SCOPE=BOTH; ``` 6. 在数据库上启用日志应用: ``` SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION; ``` 完成上述步骤后,ADG就已经搭建完成了。可以使用以下命令检查ADG的状态: ``` SQL> SELECT DATABASE_ROLE FROM V$DATABASE; ``` 如果返回的结果为“PHYSICAL STANDBY”,则表示ADG已经成功搭建。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值