1.环境准备
2台虚拟机,操作系统安装Redhat 7.9。 其他信息规划如下:
sourcedb | targetdb | |
---|---|---|
IP地址 | 192.168.56.101 | 192.168.56.102 |
数据库SID | orcl | orcl |
DB_UNIQUE_NAME | orcl_p | orcl_s |
在2台虚拟机分别安装19c数据库软件,主库创建CDB实例orcl,PDB实例:hbhe。 备库只安装数据库软件,不创建实例。
在dg01和dg02服务器上修改/etc/hosts文件
[root@dg02 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.56.101 dg01
192.168.56.102 dg02
2 主库启动FORCE LOGGING
[oracle@dg01 dbhome_1]$ sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Tue Sep 14 22:58:33 2021
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle. All rights reserved.
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 HBHE READ WRITE NO
SQL> col name for a20
SQL> select name,open_mode from v$pdbs;
NAME OPEN_MODE
-------------------- ------------------------------
PDB$SEED READ ONLY
HBHE READ WRITE
SQL> select force_logging from v$database;
FORCE_LOGGING
--------------------------------------------------------------------------------
NO
SQL> alter database force logging;
Database altered.
SQL> select force_logging from v$database;
FORCE_LOGGING
--------------------------------------------------------------------------------
YES
3 主库启动归档模式
SQL> archive log list;
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination /u01/app/oracle/product/19.3.0/dbhome_1/dbs/arch
Oldest online log sequence 5
Current log sequence 7
SQL> alter system set log_archive_dest_1='location=/archlog/' scope=spfile ;
System altered.
SQL> alter system set log_archive_format='arch_%t_%s_%r.arc' scope=spfile;
System altered.
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.
Total System Global Area 2516581456 bytes
Fixed Size 9141328 bytes
Variable Size 654311424 bytes
Database Buffers 1845493760 bytes
Redo Buffers 7634944 bytes
Database mounted.
SQL> alter database archivelog;
Database altered.
SQL> alter database open;
Database altered.
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 HBHE MOUNTED
SQL> alter pluggable database hbhe open;
Pluggable database altered.
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 HBHE READ WRITE NO
SQL> archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /archlog/
Oldest online log sequence 5
Next log sequence to archive 7
Current log sequence 7
4 在主库添加 standby redo logfile
Oracle 19c的多租户环境里,online redo log 和控制文件是保存在CDB中的,PDB中只有运行需要的数据文件,所以我们这里加standby redo log,是在CDB中加。
SQL> select group#, members, bytes from v$log;
GROUP# MEMBERS BYTES
---------- ---------- ----------
1 1 209715200
2 1 209715200
3 1 209715200
SQL> 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
SQL> 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;
Database altered.
SQL>
Database altered.
SQL>
Database altered.
SQL> select member from v$logfile;
Database altered.
SQL>
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
7 rows selected.
5 在主库创建pfile 文件并修改pfile 内容
### add for dg
*.db_unique_name='cndba_p'
*.log_archive_config='dg_config=(orcl_p, orcl_s)'
*.log_archive_dest_1='location=/archlog/ valid_for=(all_logfiles,all_roles) db_unique_name=orcl_p'
*.log_archive_dest_2='service=orcl_s lgwr affirm sync valid_for=(online_logfiles,primary_role) db_unique_name=orcl_s'
*.log_archive_dest_