一、环境介绍
搭建一套oracle 19C ADG 容灾环境,操作系统oracle linux7.6. oracle软件版本19.3.0.0
二、整体规划
| 源 | sid | 目标 | sid |
生产 | 192.168.10.10 | lg0001 | 192.168.10.11 | lgb0001 |
主机名: | oracle_main | oracle_bak |
实例名: | lg0001 | lgb0001 |
字符集: | UTF-8 | UTF-8 |
虚拟机规格: | 16C 128g | 16C 128g |
三、IP地址规划
3.1主数据库
IP: | 192.168.10.10 |
网关: | 192.168.10.1 |
子网掩码: | 255.255.255.0 |
3.2备数据库
IP: | 192.168.10.11 |
网关: | 192.168.10.1 |
子网掩码: | 255.255.255.0 |
3.3登录
局域网通ssh登陆linux系统后台,或者云平台直接通过终端打开
数据库登陆方式:plsql或命令行
登录容器 : sqlplus / as sysdba
登录lgpdb: sqlplus sys/ora123456_@192.168.10.10/lgpdb as sysdba
四、安装
4.1归档参数配置
archive log list; 或者
select name,log_mode from v$database;
show parameter recovery;
alter system set db_recovery_file_dest_size=20G;
alter system set db_recovery_file_dest='/arch';
alter system set log_archive_format='%t_%s_%r.arc' scope=spfile;
alter system set log_archive_dest_1='location=/arch’;
4.2主库配置tnsname.ora
tnsping 测试一下是否通:
[oracle@oracle_main admin]$ tnsping lgb0001
4.3查看是否已经开始强制日志:
select force_logging from v$database;
开启强制日志:
ALTER DATABASE FORCE LOGGING;
4.4主库配置DG相关参数
根据日志实际路径进行修改
主库添加standby 日志,日志大小与online日志保持一致,数量比online日志数量多一组:
set line 200
col member for a50
SELECT * FROM V$LOGFILE;
alter database add standby logfile thread 1 group 4 ‘/data/oradata/LG0001/onlinelog/redo04.log' size 512M;
alter database add standby logfile thread 1 group 5 ‘/data/oradata/LG0001/onlinelog/redo05.log' size 512M;
alter database add standby logfile thread 1 group 6
‘/data/oradata/LG0001/onlinelog/redo06.log' size 512M;
alter database add standby logfile thread 1 group 7 ‘/data/oradata/LG0001/onlinelog/redo07.log' size 512M;
修改参数
4.5修改DG相关参数:
主库:
alter system set LOG_ARCHIVE_CONFIG='DG_CONFIG=(lg0001,lgb0001)' scope=both ;
alter system set LOG_ARCHIVE_DEST_1='LOCATION=/data/arch VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=lg0001' scope=both;
alter system set LOG_ARCHIVE_DEST_2='SERVICE=lgb0001 LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=lgb0001' scope=both;
alter system set LOG_ARCHIVE_DEST_STATE_1=ENABLE scope=both;
alter system set LOG_ARCHIVE_DEST_STATE_2=ENABLE scope=both;
alter system set FAL_SERVER=lgb0001 scope=both;
alter system set FAL_CLIENT=lg0001 scope=both;
alter system set standby_file_management=auto;
alter system set db_file_name_convert='/data/lgb0001','/data/lg0001' scope=spfile;
alter system set log_file_name_convert='/u01/oradata/lgb0001','/u01/oradata/lg0001' scope=spfile;
生成PFILE参数文件
create pfile from spfile;
4.6传输参数文件和密码文件到备库
ORACLE_HOME ---/u01/app/oracle/product/19.3.0/dbhome_1/dbs
[oracle@oracle_main dbs]$ scp $ORACLE_HOME/dbs/spfilelg0001.ora 10.201.127.213:$ORACLE_HOME/dbs
[oracle@oracle_main dbs]$ scp $ORACLE_HOME/dbs/orapwlg0001 10.201.127.213:$ORACLE_HOME/dbs
4.7备库配置listener.ora
备库配置tnsname
4.8备库修改参数文件
将主库scp过来的参数文件进行修改,修改后如下
4.9启动备库到nomount状态,启动监听
启动监听lsnrctl start:
---主库和备库都需要验证连通性:
sqlplus sys/****@lg0001 AS SYSDBA
sqlplus sys/*****@lgb0001 AS SYSDBA
使用RMAN DUPLICATE 主库到备库
rman target sys/******@lg0001 auxiliary sys/******* @lgb0001
run
{
allocate channel cl1 type disk;
allocate channel cl2 type disk;
allocate channel cl3 type disk;
allocate auxiliary channel c1 type disk;
allocate auxiliary channel c2 type disk;
allocate auxiliary channel c3 type disk;
duplicate target database for standby from active database nofilenamecheck;
release channel c1;
release channel c2;
release channel c3;
}
4.10备库开启日志应用并查看
duplicate成功后在备库开启日志应用
alter database open;
alter database recover managed standby database using current logfile disconnect from session;
select sequence#,thread#,applied from v$archived_log;
4.11查看日志应用情况
col name for a50
select name,SEQUENCE#,APPLIED from v$archived_log order by sequence#;
select max(sequence#) from v$archived_log where applied='YES';
select * from v$archive_gap;
查看standby日志状态:
查看备库状态:
select MESSAGE from v$dataguard_status;
五、启动关闭
启动顺序:先启动备库,后启动主库(检查监听)
关闭顺序:先关闭主库,后关闭备库
5.1正确打开备库和主库
备库:
检查监听,启动监听lsnrctl start
SQL> STARTUP MOUNT;
SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
主库:
SQL> STARTUP MOUNT;
SQL> ALTER DATABASE OPEN;
5.2正确关闭顺序
主库
SQL>SHUTDOWN IMMEDIATE;
备库:
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
SQL>SHUTDOWN IMMEDIATE;
六、日志同步测试
主库
备库:
数据同步测试
主库:
备库