山东省市建设委员会网站郑州seo推广
前言
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 UNASSIGNED5 1 0 YES UNASSIGNED6 1 0 YES UNASSIGNED7 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 DGSLSNRCTL for Linux: Version 19.0.0.0.0 - Production on 14-FEB-2025 14:05:22Copyright (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.0Copyright (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=DISKcontents of Memory Script:
{backup as copy reusepasswordfile auxiliary format '/u01/DBDG/slave_dg1/19.3.0/dbs/orapwDGS' ;
}
executing Memory ScriptStarting backup at 14-FEB-25
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=40 device type=DISK
Finished backup at 14-FEB-25contents of Memory Script:
{restore clone from service 'primary' standby controlfile;
}
executing Memory ScriptStarting restore at 14-FEB-25
using channel ORA_AUX_DISK_1channel 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-25contents of Memory Script:
{sql clone 'alter database mount standby database';
}
executing Memory Scriptsql statement: alter database mount standby databasecontents 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";restorefrom nonsparse from service'primary' clone database;sql 'alter system archive log current';
}
executing Memory Scriptexecuting command: SET NEWNAMErenamed tempfile 1 to /u01/DBDG/slave_dg1/oradata/PRIMARY/temp01.dbf in control fileexecuting command: SET NEWNAMEexecuting command: SET NEWNAMEexecuting command: SET NEWNAMEexecuting command: SET NEWNAMEexecuting command: SET NEWNAMEStarting restore at 14-FEB-25
using channel ORA_AUX_DISK_1channel 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-25sql statement: alter system archive log currentcontents of Memory Script:
{switch clone datafile all;
}
executing Memory Scriptdatafile 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-25RMAN> exitRecovery 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 TESTLSNRCTL for Linux: Version 19.0.0.0.0 - Production on 14-FEB-2025 14:13:50Copyright (c) 1991, 2019, Oracle. All rights reserved.Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.2.)(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 /data/db/admin/test/adump
$ mkdir -p /data/db /oradata
$ mkdir -p /data/db /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.0Copyright (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=DISKcontents of Memory Script:
{backup as copy reusepasswordfile auxiliary format '/data/db/19.3.0/dbs/orapwTEST' ;
}
executing Memory ScriptStarting backup at 14-FEB-25
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=276 device type=DISK
Finished backup at 14-FEB-25contents of Memory Script:
{restore clone from service 'primary' standby controlfile;
}
executing Memory ScriptStarting restore at 14-FEB-25
using channel ORA_AUX_DISK_1channel 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-25contents of Memory Script:
{sql clone 'alter database mount standby database';
}
executing Memory Scriptsql statement: alter database mount standby databasecontents 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";restorefrom nonsparse from service'primary' clone database;sql 'alter system archive log current';
}
executing Memory Scriptexecuting command: SET NEWNAMErenamed tempfile 1 to /data/db/oradata/PRIMARY/temp01.dbf in control fileexecuting command: SET NEWNAMEexecuting command: SET NEWNAMEexecuting command: SET NEWNAMEexecuting command: SET NEWNAMEexecuting command: SET NEWNAMEStarting restore at 14-FEB-25
using channel ORA_AUX_DISK_1channel 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-25sql statement: alter system archive log currentcontents of Memory Script:
{switch clone datafile all;
}
executing Memory Scriptdatafile 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-25RMAN> exitRecovery 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