暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 19C Database Data Guard 一主两备 -- 生产级

原创 Albert 2025-02-14
139

前言

Oracle 数据库使用 Data Guard 搭建一主两备,在主库发生故障时。可以无缝切换至备库支持生产。

目的

一主两备的目的是为了增加数据库的容错率。降低生产数据库崩溃导致业务停顿的几率。当前文档的操作可直接应用至生产环境。但其中的参数基于业务具体情况可适当修改。

系统信息

OS Database Memory Disk Name P/S IP OS User
Oracle RHEL 7.8 19.3.0 32G 500G PRIMARY Primary 192.168.2.11 oracle
Oracle RHEL 7.8 19.3.0 32G 500G Test Slave-One 192.168.2.12 oradg1
Oracle RHEL 7.8 19.3.0 32G 500G DGS Slave-Two 192.168.2.13 oradg2

Linux 操作步骤

1、Linux安装将不再演示

# 可参见该文档 https://www.modb.pro/db/1890268454414987264
复制

2、IP 设置

# 编辑 hosts $ vi /etc/hosts 192.168.2.11 primary.ckpt.com primary 192.168.2.12 test.ckpt.com test 192.168.2.13 dgs.ckpt.com dgs # 注意:更改主机名时,需要三台机器均执行,不同的服务器添加对应的一个名即可 $ vi /etc/hostname primary test dgs
复制

3、关闭防火墙

systemctl stop firewlld.service && systemctl disable firewlld.service
复制

4、关闭Selinux策略

vi /etc/selinux/config SELINUX=disabled
复制

5、关闭透明大页和numa

6、开启Hugesize
目前这个值的计算方式很复杂。如果需要设置请私信我!!!

数据库配置

1、环境变量配置

# 主库oracle用户 export ORACLE_SID=PRIMARY export ORACLE_BASE=/u01/DBDG/primary_orcl export ORACLE_HOME=$ORACLE_BASE/19.3.0 export PATH=$ORACLE_HOME/bin:$PATH # 从库oradg1用户 export ORACLE_SID=TEST export ORACLE_BASE=/data/db export ORACLE_HOME=$ORACLE_BASE/19.3.0 export PATH=$ORACLE_HOME/bin:$PATH # 从库oradg2用户 export ORACLE_SID=DGS export ORACLE_BASE=/u01/DBDG/slave_dg2 export ORACLE_HOME=$ORACLE_BASE/19.3.0 export PATH=$ORACLE_HOME/bin:$PATH
复制

主库设置

2、主库开启归档

SQL> archive log list; Database log mode       Archive Mode Automatic archival       Enabled Archive destination       /u01/DBDG/primary_orcl/archive Oldest online log sequence     307 Next log sequence to archive   313 Current log sequence       313 --如未开启归档,请打开 SQL>shutdown immediate SQL>startup mount; SQL>alter database archivelog; SQL>alter database open;
复制

3、主库强制日志模式

--开启强制日志 SQL>alter database force logging; --查询实例的归档模式和强制日志 SQL> select log_mode,force_logging from v$database; LOG_MODE     FOR ------------ --- ARCHIVELOG   YES
复制

4、主库追加redo

alter database add standby logfile group 4 '/u01/DBDG/primary_orcl/oradata/primary/testredo01.log' size 200M; alter database add standby logfile group 5 '/u01/DBDG/primary_orcl/oradata/primary/testredo02.log' size 200M; alter database add standby logfile group 6 '/u01/DBDG/primary_orcl/oradata/primary/dgsredo03.log' size 200M; alter database add standby logfile group 7 '/u01/DBDG/primary_orcl/oradata/primary/dgsredo04.log' size 200M; SQL> select group#,thread#,sequence#,archived,status from $standby_log;   GROUP#   THREAD# SEQUENCE# ARC STATUS ---------- ---------- ---------- --- ---------- 4   1       0 YES UNASSIGNED 5   1       0 YES UNASSIGNED 6   1       0 YES UNASSIGNED 7   1       0 YES UNASSIGNED
复制

5、主库配置tnsnames.ora

PRIMARY = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.11)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = primary) ) ) LISTENER_PRIMARY = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.11)(PORT = 1521)) DGS = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.13)(PORT = 1522)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = DGS) ) ) TEST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.12)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = test) ) )
复制

6、主库配置listener.ora

PRIMARY = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.11)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) ) SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = PRIMARY) (ORACLE_HOME = /u01/DBDG/primary_orcl/19.3.0) (SID_NAME = PRIMARY) ) )
复制

7、主库参数文件配置

*.audit_file_dest='/u01/DBDG/primary_orcl/admin/primary/adump' *.audit_trail='db' *.compatible='19.0.0' *.control_files='/u01/DBDG/primary_orcl/oradata/PRIMARY/control01.ctl','/u01/DBDG/primary_orcl/oradata/PRIMARY/control02.ctl' *.db_block_size=8192 *.db_name='primary' *.diagnostic_dest='/u01/DBDG/primary_orcl' *.dispatchers='(PROTOCOL=TCP) (SERVICE=primaryXDB)' *.local_listener='LISTENER_PRIMARY' *.nls_language='AMERICAN' *.nls_territory='AMERICA' *.open_cursors=300 *.pga_aggregate_target=1434m *.processes=300 *.remote_login_passwordfile='EXCLUSIVE' *.sga_target=5735m *.undo_tablespace='UNDOTBS1' *.log_archive_config='dg_config=(primary,test,dgs)' *.log_archive_dest_1='location=/u01/DBDG/primary_orcl/archive valid_for=(all_logfiles,all_roles) db_unique_name=primary' *.log_archive_dest_2='SERVICE=DGS LGWR ASYNC VALID_FOR=(all_logfiles,all_roles) DB_UNIQUE_NAME=DGS' *.log_archive_dest_3='SERVICE=TEST VALID_FOR=(all_logfiles,all_roles) DB_UNIQUE_NAME=TEST' *.log_archive_dest_state_1='enable' *.log_archive_dest_state_2='enable' *.log_archive_dest_state_3='enable' *.fal_server='TEST' *.fal_client='primary' *.db_unique_name='primary' *.standby_file_management=auto *.db_file_name_convert='/u01/DBDG/primary_orcl/oradata','/data/db/oradata','/u01/DBDG/primary_orcl/oradata','/u01/DBDG/slave_dg1/oradata' *.log_file_name_convert='/u01/DBDG/primary_orcl/oradata','/data/db/oradata','/u01/DBDG/primary_orcl/oradata','/u01/DBDG/slave_dg1/oradata'
复制

8、主库密码文件配置

$ orapwd file=orapwprimary password=admin!11
复制

9、发送主库文件至从库

$ scp ../dbs/initprimary.ora orapwprimary 192.168.2.12:..../dbs $ scp ../network/admin/listener.ora tnsnames.ora 192.168.2.12:..../network/admin $ scp ../dbs/initprimary.ora orapwprimary 192.168.2.13:..../dbs $ scp ../network/admin/listener.ora tnsnames.ora 192.168.2.13:..../network/admin
复制

一号从库配置

1、listner.ora配置

DGS = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.13)(PORT = 1522)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1522)) ) ) SID_LIST_DGS = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = DGS) (ORACLE_HOME = /u01/DBDG/slave_dg1/19.3.0) (SID_NAME = DGS) ) )
复制

2、tnsnames.ora配置

DGS = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.13)(PORT = 1522)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = DGS) ) ) LISTENER_DGS = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.13)(PORT = 1522)) PRIMARY = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.11)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = primary) ) )
复制

3、参数文件配置

$ cd $ORACLE_HOME/dbs $ mv initprimary.ora initdgs.ora $ mv orapwprimary orapwDGS *.audit_file_dest='/u01/DBDG/slave_dg1/admin/dgs/adump' *.audit_trail='db' *.compatible='19.0.0' *.control_files='/u01/DBDG/slave_dg1/oradata/DGS/control01.ctl','/u01/DBDG/slave_dg1/oradata/DGS/control02.ctl' *.db_block_size=8192 *.db_name='primary' *.diagnostic_dest='/u01/DBDG/slave_dg1' *.dispatchers='(PROTOCOL=TCP) (SERVICE=dgsXDB)' #*.local_listener='LISTENER_TEST' *.nls_language='AMERICAN' *.nls_territory='AMERICA' *.open_cursors=300 *.pga_aggregate_target=1434m *.processes=300 *.remote_login_passwordfile='EXCLUSIVE' *.sga_target=5735m *.undo_tablespace='UNDOTBS1' *.log_archive_config='dg_config=(primary,DGS)' *.log_archive_dest_1='location=/u01/DBDG/slave_dg1/archive valid_for=(all_logfiles,all_roles) db_unique_name=dgs' *.log_archive_dest_state_1='enable' *.fal_server='primary' *.fal_client='dgs' *.db_unique_name='dgs' *.standby_file_management=auto *.db_file_name_convert='/u01/DBDG/primary_orcl/oradata','/u01/DBDG/slave_dg1/oradata' *.log_file_name_convert='/u01/DBDG/primary_orcl/oradata','/u01/DBDG/slave_dg1/oradata'
复制

4、启动监听

$ lsnrctl start DGS LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 14-FEB-2025 14:05:22 Copyright (c) 1991, 2019, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.211.103)(PORT=1522))) STATUS of the LISTENER ------------------------ Alias DGS Version TNSLSNR for Linux: Version 19.0.0.0.0 - Production Start Date 14-FEB-2025 10:39:07 Uptime 0 days 3 hr. 26 min. 14 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /u01/DBDG/slave_dg1/19.3.0/network/admin/listener.ora Listener Log File /u01/DBDG/slave_dg1/diag/tnslsnr/localhost/dgs/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.2.13)(PORT=1522))) (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1522))) Services Summary... Service "DGS" has 1 instance(s). Instance "DGS", status UNKNOWN, has 1 handler(s) for this service... The command completed successfully
复制

5、创建文件夹

$ mkdir -p /u01/DBDG/slave_dg1/admin/dgs/adump $ mkdir -p /u01/DBDG/slave_dg1/oradata $ mkdir -p /u01/DBDG/slave_dg1/archive
复制

6、启动到nomount

$ sqlplus sys/admin*11@dgs as sysdba SQL> startup nomount pfile='initdgs.ora';
复制

7、备库开始复制

$ rman target sys/admin*11@primary auxiliary sys/admin*11@dgs Recovery Manager: Release 19.0.0.0.0 - Production on Fri Feb 14 10:42:51 2025 Version 19.3.0.0.0 Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved. connected to target database: PRIMARY (DBID=2030450347) connected to auxiliary database: PRIMARY (not mounted) RMAN> duplicate target database for standby from active database nofilenamecheck; Starting Duplicate Db at 14-FEB-25 using target database control file instead of recovery catalog allocated channel: ORA_AUX_DISK_1 channel ORA_AUX_DISK_1: SID=21 device type=DISK contents of Memory Script: { backup as copy reuse passwordfile auxiliary format '/u01/DBDG/slave_dg1/19.3.0/dbs/orapwDGS' ; } executing Memory Script Starting backup at 14-FEB-25 allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=40 device type=DISK Finished backup at 14-FEB-25 contents of Memory Script: { restore clone from service 'primary' standby controlfile; } executing Memory Script Starting restore at 14-FEB-25 using channel ORA_AUX_DISK_1 channel ORA_AUX_DISK_1: starting datafile backup set restore channel ORA_AUX_DISK_1: using network backup set from service primary channel ORA_AUX_DISK_1: restoring control file channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:02 output file name=/u01/DBDG/slave_dg1/oradata/DGS/control01.ctl output file name=/u01/DBDG/slave_dg1/oradata/DGS/control02.ctl Finished restore at 14-FEB-25 contents of Memory Script: { sql clone 'alter database mount standby database'; } executing Memory Script sql statement: alter database mount standby database contents of Memory Script: { set newname for tempfile 1 to "/u01/DBDG/slave_dg1/oradata/PRIMARY/temp01.dbf"; switch clone tempfile all; set newname for datafile 1 to "/u01/DBDG/slave_dg1/oradata/PRIMARY/system01.dbf"; set newname for datafile 3 to "/u01/DBDG/slave_dg1/oradata/PRIMARY/sysaux01.dbf"; set newname for datafile 4 to "/u01/DBDG/slave_dg1/oradata/PRIMARY/undotbs01.dbf"; set newname for datafile 5 to "/u01/DBDG/slave_dg1/oradata/PRIMARY/apps.dbf"; set newname for datafile 7 to "/u01/DBDG/slave_dg1/oradata/PRIMARY/users01.dbf"; restore from nonsparse from service 'primary' clone database ; sql 'alter system archive log current'; } executing Memory Script executing command: SET NEWNAME renamed tempfile 1 to /u01/DBDG/slave_dg1/oradata/PRIMARY/temp01.dbf in control file executing command: SET NEWNAME executing command: SET NEWNAME executing command: SET NEWNAME executing command: SET NEWNAME executing command: SET NEWNAME Starting restore at 14-FEB-25 using channel ORA_AUX_DISK_1 channel ORA_AUX_DISK_1: starting datafile backup set restore channel ORA_AUX_DISK_1: using network backup set from service primary channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set channel ORA_AUX_DISK_1: restoring datafile 00001 to /u01/DBDG/slave_dg1/oradata/PRIMARY/system01.dbf channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:45 channel ORA_AUX_DISK_1: starting datafile backup set restore channel ORA_AUX_DISK_1: using network backup set from service primary channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set channel ORA_AUX_DISK_1: restoring datafile 00003 to /u01/DBDG/slave_dg1/oradata/PRIMARY/sysaux01.dbf channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:25 channel ORA_AUX_DISK_1: starting datafile backup set restore channel ORA_AUX_DISK_1: using network backup set from service primary channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set channel ORA_AUX_DISK_1: restoring datafile 00004 to /u01/DBDG/slave_dg1/oradata/PRIMARY/undotbs01.dbf channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:25 channel ORA_AUX_DISK_1: starting datafile backup set restore channel ORA_AUX_DISK_1: using network backup set from service primary channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set channel ORA_AUX_DISK_1: restoring datafile 00005 to /u01/DBDG/slave_dg1/oradata/PRIMARY/apps.dbf channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:16 channel ORA_AUX_DISK_1: starting datafile backup set restore channel ORA_AUX_DISK_1: using network backup set from service primary channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set channel ORA_AUX_DISK_1: restoring datafile 00007 to /u01/DBDG/slave_dg1/oradata/PRIMARY/users01.dbf channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01 Finished restore at 14-FEB-25 sql statement: alter system archive log current contents of Memory Script: { switch clone datafile all; } executing Memory Script datafile 1 switched to datafile copy input datafile copy RECID=1 STAMP=1193049908 file name=/u01/DBDG/slave_dg1/oradata/PRIMARY/system01.dbf datafile 3 switched to datafile copy input datafile copy RECID=2 STAMP=1193049908 file name=/u01/DBDG/slave_dg1/oradata/PRIMARY/sysaux01.dbf datafile 4 switched to datafile copy input datafile copy RECID=3 STAMP=1193049908 file name=/u01/DBDG/slave_dg1/oradata/PRIMARY/undotbs01.dbf datafile 5 switched to datafile copy input datafile copy RECID=4 STAMP=1193049908 file name=/u01/DBDG/slave_dg1/oradata/PRIMARY/apps.dbf datafile 7 switched to datafile copy input datafile copy RECID=5 STAMP=1193049908 file name=/u01/DBDG/slave_dg1/oradata/PRIMARY/users01.dbf Finished Duplicate Db at 14-FEB-25 RMAN> exit Recovery Manager complete.
复制

8、开启同步

SQL>ALTER DATABASE OPEN READ ONLY; SQL>alter database recover managed standby database using current logfile disconnect from session;
复制

二号从库配置

1、listner.ora配置

TEST = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.12)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) ) SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = TEST) (ORACLE_HOME = /data/db/19.3.0) (SID_NAME = TEST) ) )
复制

2、tnsnames.ora配置

TEST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.12)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = test) ) ) LISTENER_TEST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.12)(PORT = 1521)) PRIMARY = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.11)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = primary) ) )
复制

3、参数文件配置

$ cd $ORACLE_HOME/dbs $ mv initprimary.ora inittest.ora $ mv orapwprimary orapwTEST *.audit_file_dest='/data/db/admin/test/adump' *.audit_trail='db' *.compatible='19.0.0' *.control_files='/data/db/oradata/TEST/control01.ctl','/data/db/oradata/TEST/control02.ctl' *.db_block_size=8192 *.db_name='primary' *.diagnostic_dest='/data/db' *.dispatchers='(PROTOCOL=TCP) (SERVICE=testXDB)' #*.local_listener='LISTENER_TEST' *.nls_language='AMERICAN' *.nls_territory='AMERICA' *.open_cursors=300 *.pga_aggregate_target=1434m *.processes=300 *.remote_login_passwordfile='EXCLUSIVE' *.sga_target=5735m *.undo_tablespace='UNDOTBS1' *.log_archive_config='dg_config=(primary,test)' *.log_archive_dest_1='location=/data/db/archive valid_for=(all_logfiles,all_roles) db_unique_name=test' *.log_archive_dest_state_1='enable' *.fal_server='primary' *.fal_client='test' *.DB_UNIQUE_NAME='test' *.standby_file_management=auto *.db_file_name_convert='/u01/DBDG/primary_orcl/oradata','/data/db/oradata' *.log_file_name_convert='/u01/DBDG/primary_orcl/oradata','/data/db/oradata'
复制

4、启动监听

$ lsnrctl start TEST LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 14-FEB-2025 14:13:50 Copyright (c) 1991, 2019, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.211.104)(PORT=1521))) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 19.0.0.0.0 - Production Start Date 14-FEB-2025 09:58:23 Uptime 0 days 4 hr. 15 min. 27 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /data/db/19.3.0/network/admin/listener.ora Listener Log File /data/db/diag/tnslsnr/slave/listener/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.2.13)(PORT=1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=192.168.2.13)(PORT=5500))(Security=(my_wallet_directory=/data/db/admin/test/xdb_wallet))(Presentation=HTTP)(Session=RAW)) Services Summary... Service "TEST" has 2 instance(s). Instance "TEST", status UNKNOWN, has 1 handler(s) for this service... Instance "TEST", status READY, has 1 handler(s) for this service... Service "testXDB" has 1 instance(s). Instance "TEST", status READY, has 1 handler(s) for this service... The command completed successfully
复制

5、创建文件夹

$ mkdir -p /u01/DBDG/slave_dg2/admin/dgs/adump $ mkdir -p /u01/DBDG/slave_dg2/oradata $ mkdir -p /u01/DBDG/slave_dg2/archive
复制

6、启动到nomount

$ sqlplus sys/admin*11@test as sysdba SQL> startup nomount pfile='inittest.ora';
复制

7、备库开始复制

$ rman target sys/admin*11@primary auxiliary sys/admin*11@test Recovery Manager: Release 19.0.0.0.0 - Production on Fri Feb 14 10:19:39 2025 Version 19.3.0.0.0 Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved. connected to target database: PRIMARY (DBID=2030450347) connected to auxiliary database: PRIMARY (not mounted) RMAN> duplicate target database for standby from active database nofilenamecheck; Starting Duplicate Db at 14-FEB-25 using target database control file instead of recovery catalog allocated channel: ORA_AUX_DISK_1 channel ORA_AUX_DISK_1: SID=38 device type=DISK contents of Memory Script: { backup as copy reuse passwordfile auxiliary format '/data/db/19.3.0/dbs/orapwTEST' ; } executing Memory Script Starting backup at 14-FEB-25 allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=276 device type=DISK Finished backup at 14-FEB-25 contents of Memory Script: { restore clone from service 'primary' standby controlfile; } executing Memory Script Starting restore at 14-FEB-25 using channel ORA_AUX_DISK_1 channel ORA_AUX_DISK_1: starting datafile backup set restore channel ORA_AUX_DISK_1: using network backup set from service primary channel ORA_AUX_DISK_1: restoring control file channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:03 output file name=/data/db/oradata/TEST/control01.ctl output file name=/data/db/oradata/TEST/control02.ctl Finished restore at 14-FEB-25 contents of Memory Script: { sql clone 'alter database mount standby database'; } executing Memory Script sql statement: alter database mount standby database contents of Memory Script: { set newname for tempfile 1 to "/data/db/oradata/PRIMARY/temp01.dbf"; switch clone tempfile all; set newname for datafile 1 to "/data/db/oradata/PRIMARY/system01.dbf"; set newname for datafile 3 to "/data/db/oradata/PRIMARY/sysaux01.dbf"; set newname for datafile 4 to "/data/db/oradata/PRIMARY/undotbs01.dbf"; set newname for datafile 5 to "/data/db/oradata/PRIMARY/apps.dbf"; set newname for datafile 7 to "/data/db/oradata/PRIMARY/users01.dbf"; restore from nonsparse from service 'primary' clone database ; sql 'alter system archive log current'; } executing Memory Script executing command: SET NEWNAME renamed tempfile 1 to /data/db/oradata/PRIMARY/temp01.dbf in control file executing command: SET NEWNAME executing command: SET NEWNAME executing command: SET NEWNAME executing command: SET NEWNAME executing command: SET NEWNAME Starting restore at 14-FEB-25 using channel ORA_AUX_DISK_1 channel ORA_AUX_DISK_1: starting datafile backup set restore channel ORA_AUX_DISK_1: using network backup set from service primary channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set channel ORA_AUX_DISK_1: restoring datafile 00001 to /data/db/oradata/PRIMARY/system01.dbf channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:01:16 channel ORA_AUX_DISK_1: starting datafile backup set restore channel ORA_AUX_DISK_1: using network backup set from service primary channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set channel ORA_AUX_DISK_1: restoring datafile 00003 to /data/db/oradata/PRIMARY/sysaux01.dbf channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:45 channel ORA_AUX_DISK_1: starting datafile backup set restore channel ORA_AUX_DISK_1: using network backup set from service primary channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set channel ORA_AUX_DISK_1: restoring datafile 00004 to /data/db/oradata/PRIMARY/undotbs01.dbf channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:03 channel ORA_AUX_DISK_1: starting datafile backup set restore channel ORA_AUX_DISK_1: using network backup set from service primary channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set channel ORA_AUX_DISK_1: restoring datafile 00005 to /data/db/oradata/PRIMARY/apps.dbf channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:03 channel ORA_AUX_DISK_1: starting datafile backup set restore channel ORA_AUX_DISK_1: using network backup set from service primary channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set channel ORA_AUX_DISK_1: restoring datafile 00007 to /data/db/oradata/PRIMARY/users01.dbf channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01 Finished restore at 14-FEB-25 sql statement: alter system archive log current contents of Memory Script: { switch clone datafile all; } executing Memory Script datafile 1 switched to datafile copy input datafile copy RECID=1 STAMP=1193048530 file name=/data/db/oradata/PRIMARY/system01.dbf datafile 3 switched to datafile copy input datafile copy RECID=2 STAMP=1193048530 file name=/data/db/oradata/PRIMARY/sysaux01.dbf datafile 4 switched to datafile copy input datafile copy RECID=3 STAMP=1193048530 file name=/data/db/oradata/PRIMARY/undotbs01.dbf datafile 5 switched to datafile copy input datafile copy RECID=4 STAMP=1193048530 file name=/data/db/oradata/PRIMARY/apps.dbf datafile 7 switched to datafile copy input datafile copy RECID=5 STAMP=1193048530 file name=/data/db/oradata/PRIMARY/users01.dbf Finished Duplicate Db at 14-FEB-25 RMAN> exit Recovery Manager complete.
复制

8、开启同步

SQL>ALTER DATABASE OPEN READ ONLY; SQL>alter database recover managed standby database using current logfile disconnect from session;
复制

同步测试

1、主库创建数据

SQL> create user test identified by test; SQL> alter system switch logfile;
复制

2、一号从库查询

SQL> select account_status from dba_users where username='TEST'; ACCOUNT_STATUS -------------------------------- OPEN
复制

2、二号从库查询

SQL> select account_status from dba_users where username='TEST'; ACCOUNT_STATUS -------------------------------- OPEN
复制
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论