一、设置环境变量:
主库:
节点一:
[oracle@19c01 admin]$ cat ~/.bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/.local/bin:$HOME/bin
export PATH
export ORACLE_SID=orcl1
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/19.3.0/db_1
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
alias oracle='sqlplus / as sysdba'
[oracle@19c01 admin]$
节点二:
[oracle@19c02 admin]$ cat ~/.bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/.local/bin:$HOME/bin
export PATH
export ORACLE_SID=orcl2
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/19.3.0/db_1
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
alias oracle='sqlplus / as sysdba'
[oracle@19c02 admin]$
备库:
[oracle@19cdg admin]$ cat ~/.bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/.local/bin:$HOME/bin
export PATH
export ORACLE_SID=orcldg
export ORACLE_UNQUENAME=orcldg
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/19.3.0/db_1
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
alias oracle='sqlplus / as sysdba'
[oracle@19cdg admin]$
二、设置主库归档,开启强制写日志
开启归档:
关闭节点一,节点二
SQL> shutdown immediate
SQL> startup mount
SQL> alter system set log_archive_dest_1='location=+FRA' scope=spfile sid='*';
SQL> alter database archivelog;
SQL> alter database open;
SQL> archive log list
SQL> alter database force logging;
三、主库密码文件拷贝传递到备库
ASMCMD> pwget --dbuniquename orcl
+DATA/ORCL/PASSWORD/pwdorcl.256.1118078353
ASMCMD> pwcopy +DATA/ORCL/PASSWORD/pwdorcl.256.1118078353 /tmp/orapworcldg
[oracle@19c01 admin]$ scp /tmp/orapworcldg 19cdg@$ORACLE_HOME/dbs/orapworcldg
四、配置主备库网络
主库:
节点一:
[grid@19c01 admin]$ cd $ORACLE_HOME/network/admin
[grid@19c01 admin]$ cat listener.ora
LISTENER=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER)))) # line added by Agent
LISTENER_SCAN1=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_SCAN1)))) # line added by Agent
ASMNET1LSNR_ASM=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=ASMNET1LSNR_ASM)))) # line added by Agent
ENABLE_GLOBAL_DYNAMIC_ENDPOINT_ASMNET1LSNR_ASM=ON # line added by Agent
VALID_NODE_CHECKING_REGISTRATION_ASMNET1LSNR_ASM=SUBNET # line added by Agent
ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER_SCAN1=ON # line added by Agent
VALID_NODE_CHECKING_REGISTRATION_LISTENER_SCAN1=OFF # line added by Agent - Disabled by Agent because REMOTE_REGISTRATION_ADDRESS is set
ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER=ON # line added by Agent
VALID_NODE_CHECKING_REGISTRATION_LISTENER=SUBNET # line added by Agent
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = /u01/app/oracle/product/19.3.0/db_1)
(SID_NAME = orcl1)
)
)
[grid@19c01 admin]$
[oracle@19c01 ~]$ cd $ORACLE_HOME/network/admin
[oracle@19c01 admin]$
[oracle@19c01 admin]$ cat tnsnames.ora
# tnsnames.ora Network Configuration File: /u01/app/oracle/product/19.3.0/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = cluster-19c-scan)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
ORCL1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.162.100)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
ORCL2 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.162.200)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
ORCLDG =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.162.150)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcldg)
)
)
[oracle@19c01 admin]$
节点二:
[grid@19c02 ~]$ cd $ORACLE_HOME/network/admin
[grid@19c02 admin]$ cat listener.ora
LISTENER_SCAN1=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_SCAN1)))) # line added by Agent
LISTENER=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER)))) # line added by Agent
ASMNET1LSNR_ASM=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=ASMNET1LSNR_ASM)))) # line added by Agent
ENABLE_GLOBAL_DYNAMIC_ENDPOINT_ASMNET1LSNR_ASM=ON # line added by Agent
VALID_NODE_CHECKING_REGISTRATION_ASMNET1LSNR_ASM=SUBNET # line added by Agent
ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER=ON # line added by Agent
VALID_NODE_CHECKING_REGISTRATION_LISTENER=SUBNET # line added by Agent
ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER_SCAN1=ON # line added by Agent
VALID_NODE_CHECKING_REGISTRATION_LISTENER_SCAN1=OFF # line added by Agent - Disabled by Agent because REMOTE_REGISTRATION_ADDRESS is set
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = /u01/app/oracle/product/19.3.0/db_1)
(SID_NAME = orcl2)
)
)
[grid@19c02 admin]$
[oracle@19c02 admin]$ cat tnsnames.ora
# tnsnames.ora.19c02 Network Configuration File: /u01/app/oracle/product/19.3.0/db_1/network/admin/tnsnames.ora.19c02
# Generated by Oracle configuration tools.
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = cluster-19c-scan)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
ORCL1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.162.100)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
ORCL2 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.162.200)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
ORCLDG =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.162.150)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcldg)
)
)
[oracle@19c02 admin]$
备库:
[oracle@19cdg admin]$ cat listener.ora
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcldg)
(ORACLE_HOME = /u01/app/oracle/product/19.3.0/db_1)
(SID_NAME = orcldg)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 19cdg)(PORT = 1521))
)
)
)
[oracle@19cdg admin]$
[oracle@19cdg admin]$ cat tnsnames.ora
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.162.110)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
ORCL1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.162.100)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
ORCL2 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.162.200)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
ORCLDG =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.162.150)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcldg)
)
)
[oracle@19cdg admin]$
测试网络连接(主库2节点+备库):
[oracle@19cdg admin]$ tnsping orcl
TNS Ping Utility for Linux: Version 19.0.0.0.0 - Production on 11-NOV-2022 19:04:13
Copyright (c) 1997, 2019, Oracle. All rights reserved.
Used parameter files:
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.162.110)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl)))
OK (0 msec)
[oracle@19cdg admin]$ tnsping orcl1
TNS Ping Utility for Linux: Version 19.0.0.0.0 - Production on 11-NOV-2022 19:04:15
Copyright (c) 1997, 2019, Oracle. All rights reserved.
Used parameter files:
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.162.100)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl)))
OK (0 msec)
[oracle@19cdg admin]$ tnsping orcl2
TNS Ping Utility for Linux: Version 19.0.0.0.0 - Production on 11-NOV-2022 19:04:16
Copyright (c) 1997, 2019, Oracle. All rights reserved.
Used parameter files:
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.162.200)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl)))
OK (10 msec)
[oracle@19cdg admin]$ tnsping orcldg
TNS Ping Utility for Linux: Version 19.0.0.0.0 - Production on 11-NOV-2022 19:04:19
Copyright (c) 1997, 2019, Oracle. All rights reserved.
Used parameter files:
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.162.150)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcldg)))
OK (10 msec)
[oracle@19cdg admin]$
五、修改主库参数
orcl1.__data_transfer_cache_size=0
orcl2.__data_transfer_cache_size=0
orcl1.__db_cache_size=398458880
orcl2.__db_cache_size=394264576
orcl1.__inmemory_ext_roarea=0
orcl2.__inmemory_ext_roarea=0
orcl1.__inmemory_ext_rwarea=0
orcl2.__inmemory_ext_rwarea=0
orcl1.__java_pool_size=0
orcl2.__java_pool_size=0
orcl1.__large_pool_size=4194304
orcl2.__large_pool_size=4194304
orcl1.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
orcl2.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
orcl1.__pga_aggregate_target=264241152
orcl2.__pga_aggregate_target=264241152
orcl1.__sga_target=792723456
orcl2.__sga_target=792723456
orcl1.__shared_io_pool_size=29360128
orcl2.__shared_io_pool_size=29360128
orcl1.__shared_pool_size=343932928
orcl2.__shared_pool_size=348127232
orcl1.__streams_pool_size=0
orcl2.__streams_pool_size=0
orcl1.__unified_pga_pool_size=0
orcl2.__unified_pga_pool_size=0
*.audit_file_dest='/u01/app/oracle/admin/orcl/adump'
*.audit_trail='db'
*.cluster_database=TRUE
*.compatible='19.0.0'
*.control_files='+DATA/ORCL/CONTROLFILE/current.261.1056020927'
*.db_block_size=8192
*.db_create_file_dest='+DATA'
*.db_file_name_convert='/u01/app/oracle/oradata/orcldg/','+DATA/ORCL/DATAFILE/'
*.db_name='orcl'
*.db_recovery_file_dest_size=10737418240
*.db_recovery_file_dest='+DATA'
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
*.fal_client='orcl'
*.fal_server='orcldg'
family:dw_helper.instance_mode='read-only'
orcl1.instance_number=1
orcl2.instance_number=2
*.local_listener='-oraagent-dummy-'
*.log_archive_config='DG_CONFIG=(orcl,orcldg)'
*.log_archive_dest_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcl'
*.log_archive_dest_2='SERVICE=orcldg LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=orcldg'
*.log_archive_dest_state_1='ENABLE'
*.log_file_name_convert='/u01/app/oracle/oradata/orcldg/','+DATA/ORCL/ONLINELOG/'
*.nls_language='AMERICAN'
*.nls_territory='AMERICA'
*.open_cursors=300
*.pga_aggregate_target=252m
*.processes=300
*.remote_login_passwordfile='exclusive'
*.sga_target=756m
*.standby_file_management='AUTO'
orcl2.thread=2
orcl1.thread=1
orcl1.undo_tablespace='UNDOTBS1'
orcl2.undo_tablespace='UNDOTBS2'
六、备库参数文件配置
备库服务器配置一般和主库存在差异,建议先在备库根据实际环境创建一个数据库(开启归档和闪回,db_name、字符集要与主库一致),然后保留pfile删库,修改备库的配置文件,或者从其他单实例拷贝文本参数文件来修改。
*.audit_file_dest='/u01/app/oracle/admin/orcldg/adump'
*.audit_trail='db'
*.compatible='19.0.0'
*.control_files='/u01/app/oracle/oradata/orcldg/control01.ctl','/u01/app/oracle/oradata/orcldg/control02.ctl'
*.db_block_size=8192
*.db_create_file_dest='/u01/app/oracle/oradata/orcldg'
*.db_domain=''
*.db_name='orcl'
*.db_unique_name='orcldg'
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orcldgXDB)'
*.fal_client='orcldg'
*.fal_server='orcl'
*.log_archive_config='DG_CONFIG=(orcl,orcldg)'
*.log_archive_dest_1='LOCATION=/oradata/arch VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcldg'
*.log_archive_dest_2='SERVICE=orcl LGWR ASYNC VALID_FOR=(ALL_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=orcl'
*.log_archive_dest_state_1='enable'
*.log_archive_dest_state_2='enable'
*.db_file_name_convert='+DATA/ORCL/DATAFILE','/u01/app/oracle/oradata/orcldg','+DATA/ORCL/TEMPFILE','/u01/app/oracle/oradata/orcldg'
*.log_file_name_convert='+DATA/ORCL/ONLINELOG','/u01/app/oracle/oradata/orcldg'
*.log_archive_format='%t_%s_%r.dbf'
*.log_archive_max_processes=8
*.open_cursors=300
*.pga_aggregate_target=781m
*.processes=150
*.remote_login_passwordfile='exclusive'
*.standby_file_management='AUTO'
*.sga_target=2340m
*.undo_tablespace='UNDOTBS1'
七、按照备库pfile创建目录:
mkdir -p /u01/app/oracle/admin/orcldg/adump
mkdir -p /u01/app/oracle/oradata/orcldg
mkdir -p /oradata/arch
八、备库启动到nomount状态
[oracle@19cdg dbs]$ sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Fri Nov 11 18:35:15 2022
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle. All rights reserved.
Connected to an idle instance.
SQL> create spfile from pfile='/u01/app/oracle/product/19.3.0/db_1/initorcldg.ora';
File created.
SQL> startup nomount
ORACLE instance started.
Total System Global Area 2466249672 bytes
Fixed Size 8899528 bytes
Variable Size 536870912 bytes
Database Buffers 1912602624 bytes
Redo Buffers 7876608 bytes
SQL>
九、duplicate创建备库
[oracle@19cdg dbs]$ rman target sys/oracle@orcl auxiliary sys/oracle@orcldg
Recovery Manager: Release 19.0.0.0.0 - Production on Fri Nov 11 18:36:10 2022
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.
connected to target database: ORCL (DBID=1645859366)
connected to auxiliary database: ORCL (not mounted)
RMAN> duplicate target database for standby from active database nofilenamecheck dorecover;
Starting Duplicate Db at 11-NOV-22
using target database control file instead of recovery catalog
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=133 device type=DISK
current log archived
contents of Memory Script:
{
backup as copy reuse
passwordfile auxiliary format '/u01/app/oracle/product/19.3.0/db_1/dbs/orapworcldg' ;
}
executing Memory Script
Starting backup at 11-NOV-22
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=408 instance=orcl1 device type=DISK
Finished backup at 11-NOV-22
contents of Memory Script:
{
restore clone from service 'orcl' standby controlfile;
}
executing Memory Script
Starting restore at 11-NOV-22
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 orcl
channel ORA_AUX_DISK_1: restoring control file
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:07
output file name=/u01/app/oracle/oradata/orcldg/control01.ctl
output file name=/u01/app/oracle/oradata/orcldg/control02.ctl
Finished restore at 11-NOV-22
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/app/oracle/oradata/orcldg/temp.265.1118078681";
switch clone tempfile all;
set newname for datafile 1 to
"/u01/app/oracle/oradata/orcldg/system.268.1118078411";
set newname for datafile 3 to
"/u01/app/oracle/oradata/orcldg/sysaux.264.1118078495";
set newname for datafile 4 to
"/u01/app/oracle/oradata/orcldg/undotbs1.267.1118078541";
set newname for datafile 5 to
"/u01/app/oracle/oradata/orcldg/undotbs2.258.1118079287";
set newname for datafile 7 to
"/u01/app/oracle/oradata/orcldg/users.266.1118078543";
restore
from nonsparse from service
'orcl' clone database
;
sql 'alter system archive log current';
}
executing Memory Script
executing command: SET NEWNAME
renamed tempfile 1 to /u01/app/oracle/oradata/orcldg/temp.265.1118078681 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 11-NOV-22
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 orcl
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00001 to /u01/app/oracle/oradata/orcldg/system.268.1118078411
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:01:56
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service orcl
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00003 to /u01/app/oracle/oradata/orcldg/sysaux.264.1118078495
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:01:26
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service orcl
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00004 to /u01/app/oracle/oradata/orcldg/undotbs1.267.1118078541
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:15
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service orcl
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00005 to /u01/app/oracle/oradata/orcldg/undotbs2.258.1118079287
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:08
channel ORA_AUX_DISK_1: starting datafile backup set restore
channel ORA_AUX_DISK_1: using network backup set from service orcl
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_AUX_DISK_1: restoring datafile 00007 to /u01/app/oracle/oradata/orcldg/users.266.1118078543
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:04
Finished restore at 11-NOV-22
sql statement: alter system archive log current
current log archived
contents of Memory Script:
{
restore clone force from service 'orcl'
archivelog from scn 2339187;
switch clone datafile all;
}
executing Memory Script
Starting restore at 11-NOV-22
using channel ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: starting archived log restore to default destination
channel ORA_AUX_DISK_1: using network backup set from service orcl
channel ORA_AUX_DISK_1: restoring archived log
archived log thread=1 sequence=34
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:02
channel ORA_AUX_DISK_1: starting archived log restore to default destination
channel ORA_AUX_DISK_1: using network backup set from service orcl
channel ORA_AUX_DISK_1: restoring archived log
archived log thread=1 sequence=35
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
channel ORA_AUX_DISK_1: starting archived log restore to default destination
channel ORA_AUX_DISK_1: using network backup set from service orcl
channel ORA_AUX_DISK_1: restoring archived log
archived log thread=2 sequence=29
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:04
channel ORA_AUX_DISK_1: starting archived log restore to default destination
channel ORA_AUX_DISK_1: using network backup set from service orcl
channel ORA_AUX_DISK_1: restoring archived log
archived log thread=2 sequence=30
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
channel ORA_AUX_DISK_1: starting archived log restore to default destination
channel ORA_AUX_DISK_1: using network backup set from service orcl
channel ORA_AUX_DISK_1: restoring archived log
archived log thread=2 sequence=31
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:02
channel ORA_AUX_DISK_1: starting archived log restore to default destination
channel ORA_AUX_DISK_1: using network backup set from service orcl
channel ORA_AUX_DISK_1: restoring archived log
archived log thread=2 sequence=32
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:01
Finished restore at 11-NOV-22
datafile 1 switched to datafile copy
input datafile copy RECID=1 STAMP=1120502551 file name=/u01/app/oracle/oradata/orcldg/system.268.1118078411
datafile 3 switched to datafile copy
input datafile copy RECID=2 STAMP=1120502551 file name=/u01/app/oracle/oradata/orcldg/sysaux.264.1118078495
datafile 4 switched to datafile copy
input datafile copy RECID=3 STAMP=1120502551 file name=/u01/app/oracle/oradata/orcldg/undotbs1.267.1118078541
datafile 5 switched to datafile copy
input datafile copy RECID=4 STAMP=1120502551 file name=/u01/app/oracle/oradata/orcldg/undotbs2.258.1118079287
datafile 7 switched to datafile copy
input datafile copy RECID=5 STAMP=1120502551 file name=/u01/app/oracle/oradata/orcldg/users.266.1118078543
contents of Memory Script:
{
set until scn 2341577;
recover
standby
clone database
delete archivelog
;
}
executing Memory Script
executing command: SET until clause
Starting recover at 11-NOV-22
using channel ORA_AUX_DISK_1
starting media recovery
archived log for thread 1 with sequence 34 is already on disk as file /oradata/arch/1_34_1118078637.dbf
archived log for thread 1 with sequence 35 is already on disk as file /oradata/arch/1_35_1118078637.dbf
archived log for thread 2 with sequence 30 is already on disk as file /oradata/arch/2_30_1118078637.dbf
archived log for thread 2 with sequence 31 is already on disk as file /oradata/arch/2_31_1118078637.dbf
archived log for thread 2 with sequence 32 is already on disk as file /oradata/arch/2_32_1118078637.dbf
archived log file name=/oradata/arch/1_34_1118078637.dbf thread=1 sequence=34
archived log file name=/oradata/arch/2_30_1118078637.dbf thread=2 sequence=30
archived log file name=/oradata/arch/2_31_1118078637.dbf thread=2 sequence=31
archived log file name=/oradata/arch/1_35_1118078637.dbf thread=1 sequence=35
media recovery complete, elapsed time: 00:00:01
Finished recover at 11-NOV-22
contents of Memory Script:
{
delete clone force archivelog all;
}
executing Memory Script
released channel: ORA_DISK_1
released channel: ORA_AUX_DISK_1
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=408 instance=orcl1 device type=DISK
deleted archived log
archived log file name=/oradata/arch/1_34_1118078637.dbf RECID=1 STAMP=1120502540
deleted archived log
archived log file name=/oradata/arch/1_35_1118078637.dbf RECID=2 STAMP=1120502541
deleted archived log
archived log file name=/oradata/arch/2_29_1118078637.dbf RECID=3 STAMP=1120502544
deleted archived log
archived log file name=/oradata/arch/2_30_1118078637.dbf RECID=4 STAMP=1120502547
deleted archived log
archived log file name=/oradata/arch/2_31_1118078637.dbf RECID=5 STAMP=1120502548
Deleted 5 objects
Finished Duplicate Db at 11-NOV-22
RMAN>
十、主备库添加standby logfile
主库:
alter database add standby logfile thread 1 group 11 '+DATA' size 200m;
alter database add standby logfile thread 1 group 12 '+DATA' size 200m;
alter database add standby logfile thread 1 group 13 '+DATA' size 200m;
alter database add standby logfile thread 2 group 14 '+DATA' size 200m;
alter database add standby logfile thread 2 group 15 '+DATA' size 200m;
alter database add standby logfile thread 2 group 16 '+DATA' size 200m;
备库:
alter database add standby logfile thread 1 group 11 '/u01/app/oracle/oradata/orcldg/redo11.log' size 200m;
alter database add standby logfile thread 1 group 12 '/u01/app/oracle/oradata/orcldg/redo12.log' size 200m;
alter database add standby logfile thread 1 group 13 '/u01/app/oracle/oradata/orcldg/redo13.log' size 200m;
alter database add standby logfile thread 2 group 14 '/u01/app/oracle/oradata/orcldg/redo14.log' size 200m;
alter database add standby logfile thread 2 group 15 '/u01/app/oracle/oradata/orcldg/redo15.log' size 200m;
alter database add standby logfile thread 2 group 16 '/u01/app/oracle/oradata/orcldg/redo16.log' size 200m;
十一、开启数据库同步进程:
SQL> alter database recover managed standby database disconnect from session;
Database altered.
SQL> alter database recover managed standby database cancel;
Database altered.
SQL> alter database open;
Database altered.
SQL> alter database recover managed standby database using current logfile disconnect from session;
Database altered.
SQL>
在告警日志中可以看到 :
PR00 (PID:6634): Media Recovery Waiting for T-1.S-36 (in transit)
十二、主备同步检测试
主库:
SQL> set pages 100 lines 180
SQL> SELECT OPEN_MODE, DATABASE_ROLE, SWITCHOVER_STATUS, FORCE_LOGGING, DATAGUARD_BROKER, GUARD_STATUS FROM V$DATABASE;
OPEN_MODE DATABASE_ROLE SWITCHOVER_STATUS FORCE_LOGGING DATAGUAR GUARD_S
-------------------- ---------------- -------------------- --------------------------------------- -------- -------
READ WRITE PRIMARY TO STANDBY YES DISABLED NONE
备库:
SQL> set pages 100 lines 180
SQL> SELECT OPEN_MODE, DATABASE_ROLE, SWITCHOVER_STATUS, FORCE_LOGGING, DATAGUARD_BROKER, GUARD_STATUS FROM V$DATABASE;
OPEN_MODE DATABASE_ROLE SWITCHOVER_STATUS FORCE_LOGGING DATAGUAR GUARD_S
-------------------- ---------------- -------------------- --------------------------------------- -------- -------
MOUNTED PHYSICAL STANDBY NOT ALLOWED YES DISABLED NONE
主库:
SQL> select * from test.tt;
ID
----------
1
1
1
备库:
SQL> select * from test.tt;
ID
----------
1
1
1
插入数据:
主库:
SQL> insert into test.tt values (2);
1 row created.
SQL> /
1 row created.
SQL> /
1 row created.
SQL> commit;
Commit complete.
SQL> select * from test.tt;
ID
----------
2
2
2
1
1
1
6 rows selected.
SQL> alter system archive log current;
System altered.
SQL>
备库:
SQL> select * from test.tt;
ID
----------
2
2
2
1
1
1
6 rows selected.
SQL>