暂无图片
暂无图片
5
暂无图片
暂无图片
2
暂无图片

Oracle 19c DG搭建(主库RAC、备库standalone)

原创 甚至熊熊 2022-03-17
4920

这篇梳理一下主库不停机状态下搭建DG备库的流程。

一、环境规划

主库(RAC) 备库(standalone) 说明
db_name xkdb xkdb 必须一致
db_unique_name xkdb xkdg 必须不一致
instance_name xkdb xkdg 一致不一致都行
IP 192.168.10.101/102 192.168.10.8
tns_name tnsxkdb tnsxkdg
数据盘 +DATA +DG_DATA
归档盘 +CRS +DG_REDO

standby不用建库

二、主库设置

1. 主库是否开启归档及force logging

select log_mode,force_logging from v$database; alter database force logging;
复制

2. 主库参数

alter system set log_archive_config='DG_CONFIG=(xkdb,xkdg)' scope=both sid='*'; alter system set log_archive_dest_1='LOCATION=+data VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=xkdb' scope=both sid='*'; alter system set log_archive_dest_2='SERVICE=tnsxkdg LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=xkdg' scope=both sid='*'; alter system set standby_file_management=auto scope=both sid='*'; alter system set fal_client='tnsxkdb' scope=both sid='*'; alter system set fal_server='tnsxkdg' scope=both sid='*'; /* 注意:以下两个参数是需要重启后生效的,为了实现主库不停机,我们在duplicate的时候设置 1、db_file_name_convert 2、log_file_name_convert 另外有些教程会让修改主库的db_unique_name也是需要重启,但是该参数安装完成后就有值,所以没必要 */
复制

3. TNS配置

--节点1: tnsxkdb = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.101)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = xkdb) ) ) tnsxkdg = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.8)(PORT = 1522)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = xkdb) ) ) --节点2: tnsxkdb = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.102)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = xkdb) ) ) tnsxkdg = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.8)(PORT = 1522)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = xkdb) ) )
复制

4. 拷贝密码文件

将主库密码文件传输到备库
查询主库pw文件位置

  • 方法1:srvctl config database -d xkdb
  • 方法2:asmcmd 进去 pwget --dbuniquename xkdb
--grid asmcmd pwcopy +DATA/XKDB/PASSWORD/pwdxkdb.267.1099262109 /tmp/mypwfile --root scp /tmp/mypwfile 192.168.10.8:/tmp --备库 cd /tmp mv mypwfile orapwxkdg chown oracle:oinstall orapwxkdg cp orapwxkdg $ORACLE_HOME
复制

5. 添加附加日志

redo log数量+1,注意大小一致

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;
复制

三、备库设置

1. 创建参数文件

su - oracle cd $ORACLE_HOME/dbs vi initxkdg.ora --添加 db_name=xkdb --启动 startup nmount
复制

2. 创建文件夹

--oracle mkdir -p /u01/app/oracle/admin/xkdg/adump
复制

3. 静态监听

备库为什么一定要配置静态监听?
nomount状态下必须使用静态监听才能连接到实例

su - grid --监听参数文件添加名为listener1的静态监听 LISTENER1 = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = xkdg)(PORT = 1522)) ) ) ) SID_LIST_LISTENER1 = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = xkdb) (SID_NAME = xkdg) (ORACLE_HOME = /u01/app/oracle/product/19.0.0/dbhome_1) ) ) --启动 lsnrctl start listener1
复制

4. TNS配置

主备库tns配置完可以分别tnsping测试通不通

--vi $ORACLE_HOME/network/admin/tnsnames.ora TNSXKDG = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.8)(PORT = 1522)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = xkdb) ) ) TNSXKDB = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.101)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.102)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = xkdb) ) )
复制

四、duplicate创建备库

1. duplicate脚本

--standby rman target sys/"Oracle123"@tnsxkdb auxiliary sys/"Oracle123"@tnsxkdg << EOF run { allocate channel c1 type disk; allocate channel c2 type disk; allocate channel c3 type disk; allocate channel c4 type disk; allocate channel c5 type disk; allocate channel c6 type disk; allocate channel c7 type disk; allocate channel c8 type disk; allocate auxiliary channel s1 type disk; allocate auxiliary channel s2 type disk; allocate auxiliary channel s3 type disk; allocate auxiliary channel s4 type disk; allocate auxiliary channel s5 type disk; allocate auxiliary channel s6 type disk; allocate auxiliary channel s7 type disk; allocate auxiliary channel s8 type disk; duplicate target database for standby from active database nofilenamecheck dorecover spfile parameter_value_convert 'xkdb','xkdg','+DATA','+DG_DATA','+CRS','+DG_REDO' set db_name='XKDB' set db_unique_name='xkdg' set db_create_file_dest='+DG_DATA' set db_create_online_log_dest_1='+DG_REDO' set cluster_database='FALSE' set fal_server='tnsxkdb' set remote_listener='' set local_listener='' set standby_file_management='AUTO' set log_archive_dest_1='LOCATION=+DG_DATA VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=xkdg' set log_archive_dest_2='SERVICE=tnsxkdb LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=xkdb' set control_files='+DG_DATA' set db_file_name_convert='+DATA','+DG_DATA' set log_file_name_convert='+CRS','+DG_REDO' set instance_name='xkdg' ; } EOF
复制
执行过程太长折叠
  
using target database control file instead of recovery catalog
allocated channel: c1
channel c1: SID=150 instance=xkdb2 device type=DISK

allocated channel: c2
channel c2: SID=31 instance=xkdb2 device type=DISK

allocated channel: c3
channel c3: SID=155 instance=xkdb2 device type=DISK

allocated channel: c4
channel c4: SID=400 instance=xkdb2 device type=DISK

allocated channel: c5
channel c5: SID=33 instance=xkdb2 device type=DISK

allocated channel: c6
channel c6: SID=152 instance=xkdb2 device type=DISK

allocated channel: c7
channel c7: SID=285 instance=xkdb2 device type=DISK

allocated channel: c8
channel c8: SID=411 instance=xkdb2 device type=DISK

allocated channel: s1
channel s1: SID=150 device type=DISK

allocated channel: s2
channel s2: SID=294 device type=DISK

allocated channel: s3
channel s3: SID=435 device type=DISK

allocated channel: s4
channel s4: SID=11 device type=DISK

allocated channel: s5
channel s5: SID=151 device type=DISK

allocated channel: s6
channel s6: SID=295 device type=DISK

allocated channel: s7
channel s7: SID=436 device type=DISK

allocated channel: s8
channel s8: SID=152 device type=DISK

Starting Duplicate Db at 2022-03-16 14:40:53
current log archived

contents of Memory Script:
{
backup as copy reuse
passwordfile auxiliary format ‘/u01/app/oracle/product/19.0.0/dbhome_1/dbs/orapwxkdg’ ;
restore clone from service ‘tnsxkdb’ spfile to
‘/u01/app/oracle/product/19.0.0/dbhome_1/dbs/spfilexkdg.ora’;
sql clone “alter system set spfile= ‘’/u01/app/oracle/product/19.0.0/dbhome_1/dbs/spfilexkdg.ora’’”;
}
executing Memory Script

Starting backup at 2022-03-16 14:40:54
Finished backup at 2022-03-16 14:40:57

Starting restore at 2022-03-16 14:40:57

channel s1: starting datafile backup set restore
channel s1: using network backup set from service tnsxkdb
channel s1: restoring SPFILE
output file name=/u01/app/oracle/product/19.0.0/dbhome_1/dbs/spfilexkdg.ora
channel s1: restore complete, elapsed time: 00:00:01
Finished restore at 2022-03-16 14:41:01

sql statement: alter system set spfile= ‘’/u01/app/oracle/product/19.0.0/dbhome_1/dbs/spfilexkdg.ora’’

contents of Memory Script:
{
sql clone “alter system set audit_file_dest =
‘’/u01/app/oracle/admin/xkdg/adump’’ comment=
‘’’’ scope=spfile”;
sql clone “alter system set dispatchers =
‘’(PROTOCOL=TCP) (SERVICE=xkdgXDB)’’ comment=
‘’’’ scope=spfile”;
sql clone “alter system set fal_client =
‘‘tnsxkdg’’ comment=
‘’’’ scope=spfile”;
sql clone “alter system set db_name =
‘‘XKDB’’ comment=
‘’’’ scope=spfile”;
sql clone “alter system set db_unique_name =
‘‘xkdg’’ comment=
‘’’’ scope=spfile”;
sql clone “alter system set db_create_file_dest =
‘’+DG_DATA’’ comment=
‘’’’ scope=spfile”;
sql clone “alter system set db_create_online_log_dest_1 =
‘’+DG_REDO’’ comment=
‘’’’ scope=spfile”;
sql clone “alter system set cluster_database =
FALSE comment=
‘’’’ scope=spfile”;
sql clone “alter system set fal_server =
‘‘tnsxkdb’’ comment=
‘’’’ scope=spfile”;
sql clone “alter system set remote_listener =
‘’’’ comment=
‘’’’ scope=spfile”;
sql clone “alter system set local_listener =
‘’’’ comment=
‘’’’ scope=spfile”;
sql clone “alter system set standby_file_management =
‘‘AUTO’’ comment=
‘’’’ scope=spfile”;
sql clone “alter system set log_archive_dest_1 =
‘‘LOCATION=+DG_REDO VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=xkdg’’ comment=
‘’’’ scope=spfile”;
sql clone “alter system set log_archive_dest_2 =
‘‘SERVICE=tnsxkdb LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=xkdb’’ comment=
‘’’’ scope=spfile”;
sql clone “alter system set control_files =
‘’+DG_DATA’’ comment=
‘’’’ scope=spfile”;
sql clone “alter system set db_file_name_convert =
‘’+DATA’’, ‘’+DG_DATA’’ comment=
‘’’’ scope=spfile”;
sql clone “alter system set log_file_name_convert =
‘’+CRS’’, ‘’+DG_REDO’’ comment=
‘’’’ scope=spfile”;
sql clone “alter system set instance_name =
‘‘xkdg’’ comment=
‘’’’ scope=spfile”;
shutdown clone immediate;
startup clone nomount;
}
executing Memory Script

sql statement: alter system set audit_file_dest = ‘’/u01/app/oracle/admin/xkdg/adump’’ comment= ‘’’’ scope=spfile

sql statement: alter system set dispatchers = ‘’(PROTOCOL=TCP) (SERVICE=xkdgXDB)’’ comment= ‘’’’ scope=spfile

sql statement: alter system set fal_client = ‘‘tnsxkdg’’ comment= ‘’’’ scope=spfile

sql statement: alter system set db_name = ‘‘XKDB’’ comment= ‘’’’ scope=spfile

sql statement: alter system set db_unique_name = ‘‘xkdg’’ comment= ‘’’’ scope=spfile

sql statement: alter system set db_create_file_dest = ‘’+DG_DATA’’ comment= ‘’’’ scope=spfile

sql statement: alter system set db_create_online_log_dest_1 = ‘’+DG_REDO’’ comment= ‘’’’ scope=spfile

sql statement: alter system set cluster_database = FALSE comment= ‘’’’ scope=spfile

sql statement: alter system set fal_server = ‘‘tnsxkdb’’ comment= ‘’’’ scope=spfile

sql statement: alter system set remote_listener = ‘’’’ comment= ‘’’’ scope=spfile

sql statement: alter system set local_listener = ‘’’’ comment= ‘’’’ scope=spfile

sql statement: alter system set standby_file_management = ‘‘AUTO’’ comment= ‘’’’ scope=spfile

sql statement: alter system set log_archive_dest_1 = ‘‘LOCATION=+DG_REDO VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=xkdg’’ comment= ‘’’’ scope=spfile

sql statement: alter system set log_archive_dest_2 = ‘‘SERVICE=tnsxkdb LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=xkdb’’ comment= ‘’’’ scope=spfile

sql statement: alter system set control_files = ‘’+DG_DATA’’ comment= ‘’’’ scope=spfile

sql statement: alter system set db_file_name_convert = ‘’+DATA’’, ‘’+DG_DATA’’ comment= ‘’’’ scope=spfile

sql statement: alter system set log_file_name_convert = ‘’+CRS’’, ‘’+DG_REDO’’ comment= ‘’’’ scope=spfile

sql statement: alter system set instance_name = ‘‘xkdg’’ comment= ‘’’’ scope=spfile

Oracle instance shut down

connected to auxiliary database (not started)
Oracle instance started

Total System Global Area 3154114128 bytes

Fixed Size 9139792 bytes
Variable Size 637534208 bytes
Database Buffers 2499805184 bytes
Redo Buffers 7634944 bytes
allocated channel: s1
channel s1: SID=130 device type=DISK
allocated channel: s2
channel s2: SID=2 device type=DISK
allocated channel: s3
channel s3: SID=137 device type=DISK
allocated channel: s4
channel s4: SID=391 device type=DISK
allocated channel: s5
channel s5: SID=15 device type=DISK
allocated channel: s6
channel s6: SID=138 device type=DISK
allocated channel: s7
channel s7: SID=265 device type=DISK
allocated channel: s8
channel s8: SID=392 device type=DISK

contents of Memory Script:
{
sql clone “alter system set control_files =
‘’+DG_DATA/XKDG/CONTROLFILE/current.271.1099492909’’ comment=
‘‘Set by RMAN’’ scope=spfile”;
restore clone from service ‘tnsxkdb’ standby controlfile;
}
executing Memory Script

sql statement: alter system set control_files = ‘’+DG_DATA/XKDG/CONTROLFILE/current.271.1099492909’’ comment= ‘‘Set by RMAN’’ scope=spfile

Starting restore at 2022-03-16 14:41:48

channel s1: starting datafile backup set restore
channel s1: using network backup set from service tnsxkdb
channel s1: restoring control file
channel s1: restore complete, elapsed time: 00:00:01
output file name=+DG_DATA/XKDG/CONTROLFILE/current.280.1099492911
Finished restore at 2022-03-16 14:41:52

contents of Memory Script:
{
sql clone ‘alter database mount standby database’;
}
executing Memory Script

sql statement: alter database mount standby database
RMAN-05529: warning: DB_FILE_NAME_CONVERT resulted in invalid ASM names; names changed to disk group only.

contents of Memory Script:
{
set newname for tempfile 1 to
“+DG_DATA”;
set newname for tempfile 2 to
“+DG_DATA”;
set newname for tempfile 3 to
“+DG_DATA”;
switch clone tempfile all;
set newname for datafile 1 to
“+DG_DATA”;
set newname for datafile 2 to
“+DG_DATA”;
set newname for datafile 3 to
“+DG_DATA”;
set newname for datafile 4 to
“+DG_DATA”;
set newname for datafile 5 to
“+DG_DATA”;
set newname for datafile 6 to
“+DG_DATA”;
set newname for datafile 7 to
“+DG_DATA”;
set newname for datafile 8 to
“+DG_DATA”;
set newname for datafile 9 to
“+DG_DATA”;
set newname for datafile 10 to
“+DG_DATA”;
set newname for datafile 11 to
“+DG_DATA”;
set newname for datafile 12 to
“+DG_DATA”;
set newname for datafile 13 to
“+DG_DATA”;
restore
from nonsparse from service
‘tnsxkdb’ clone database
;
sql ‘alter system archive log current’;
}
executing Memory Script

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

renamed tempfile 1 to +DG_DATA in control file
renamed tempfile 2 to +DG_DATA in control file
renamed tempfile 3 to +DG_DATA in control file

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

Starting restore at 2022-03-16 14:41:59

channel s1: starting datafile backup set restore
channel s1: using network backup set from service tnsxkdb
channel s1: specifying datafile(s) to restore from backup set
channel s1: restoring datafile 00001 to +DG_DATA
channel s2: starting datafile backup set restore
channel s2: using network backup set from service tnsxkdb
channel s2: specifying datafile(s) to restore from backup set
channel s2: restoring datafile 00002 to +DG_DATA
channel s3: starting datafile backup set restore
channel s3: using network backup set from service tnsxkdb
channel s3: specifying datafile(s) to restore from backup set
channel s3: restoring datafile 00003 to +DG_DATA
channel s4: starting datafile backup set restore
channel s4: using network backup set from service tnsxkdb
channel s4: specifying datafile(s) to restore from backup set
channel s4: restoring datafile 00004 to +DG_DATA
channel s5: starting datafile backup set restore
channel s5: using network backup set from service tnsxkdb
channel s5: specifying datafile(s) to restore from backup set
channel s5: restoring datafile 00005 to +DG_DATA
channel s6: starting datafile backup set restore
channel s6: using network backup set from service tnsxkdb
channel s6: specifying datafile(s) to restore from backup set
channel s6: restoring datafile 00006 to +DG_DATA
channel s7: starting datafile backup set restore
channel s7: using network backup set from service tnsxkdb
channel s7: specifying datafile(s) to restore from backup set
channel s7: restoring datafile 00007 to +DG_DATA
channel s8: starting datafile backup set restore
channel s8: using network backup set from service tnsxkdb
channel s8: specifying datafile(s) to restore from backup set
channel s8: restoring datafile 00008 to +DG_DATA
channel s5: restore complete, elapsed time: 00:00:02
channel s5: starting datafile backup set restore
channel s5: using network backup set from service tnsxkdb
channel s5: specifying datafile(s) to restore from backup set
channel s5: restoring datafile 00009 to +DG_DATA
channel s7: restore complete, elapsed time: 00:00:02
channel s7: starting datafile backup set restore
channel s7: using network backup set from service tnsxkdb
channel s7: specifying datafile(s) to restore from backup set
channel s7: restoring datafile 00010 to +DG_DATA
channel s8: restore complete, elapsed time: 00:00:02
channel s8: starting datafile backup set restore
channel s8: using network backup set from service tnsxkdb
channel s8: specifying datafile(s) to restore from backup set
channel s8: restoring datafile 00011 to +DG_DATA
channel s4: restore complete, elapsed time: 00:00:07
channel s4: starting datafile backup set restore
channel s4: using network backup set from service tnsxkdb
channel s4: specifying datafile(s) to restore from backup set
channel s4: restoring datafile 00012 to +DG_DATA
channel s8: restore complete, elapsed time: 00:00:04
channel s8: starting datafile backup set restore
channel s8: using network backup set from service tnsxkdb
channel s8: specifying datafile(s) to restore from backup set
channel s8: restoring datafile 00013 to +DG_DATA
channel s2: restore complete, elapsed time: 00:00:10
channel s4: restore complete, elapsed time: 00:00:02
channel s8: restore complete, elapsed time: 00:00:01
channel s1: restore complete, elapsed time: 00:00:16
channel s3: restore complete, elapsed time: 00:00:15
channel s5: restore complete, elapsed time: 00:00:12
channel s6: restore complete, elapsed time: 00:00:14
channel s7: restore complete, elapsed time: 00:00:12
Finished restore at 2022-03-16 14:42:15

sql statement: alter system archive log current
current log archived

contents of Memory Script:
{
restore clone force from service ‘tnsxkdb’
archivelog from scn 2937841;
switch clone datafile all;
}
executing Memory Script

Starting restore at 2022-03-16 14:42:21

channel s1: starting archived log restore to default destination
channel s1: using network backup set from service tnsxkdb
channel s1: restoring archived log
archived log thread=1 sequence=50
channel s2: starting archived log restore to default destination
channel s2: using network backup set from service tnsxkdb
channel s2: restoring archived log
archived log thread=1 sequence=51
channel s3: starting archived log restore to default destination
channel s3: using network backup set from service tnsxkdb
channel s3: restoring archived log
archived log thread=2 sequence=38
channel s4: starting archived log restore to default destination
channel s4: using network backup set from service tnsxkdb
channel s4: restoring archived log
archived log thread=2 sequence=39
channel s5: starting archived log restore to default destination
channel s5: using network backup set from service tnsxkdb
channel s5: restoring archived log
archived log thread=2 sequence=40
channel s4: restore complete, elapsed time: 00:00:00
channel s1: restore complete, elapsed time: 00:00:02
channel s2: restore complete, elapsed time: 00:00:02
channel s3: restore complete, elapsed time: 00:00:01
channel s5: restore complete, elapsed time: 00:00:01
Finished restore at 2022-03-16 14:42:23

datafile 1 switched to datafile copy
input datafile copy RECID=14 STAMP=1099492943 file name=+DG_DATA/XKDG/DATAFILE/system.278.1099492921
datafile 2 switched to datafile copy
input datafile copy RECID=15 STAMP=1099492943 file name=+DG_DATA/XKDG/DA1B78DA7A70857DE053650AA8C0B956/DATAFILE/system.259.1099492921
datafile 3 switched to datafile copy
input datafile copy RECID=16 STAMP=1099492943 file name=+DG_DATA/XKDG/DATAFILE/sysaux.283.1099492921
datafile 4 switched to datafile copy
input datafile copy RECID=17 STAMP=1099492943 file name=+DG_DATA/XKDG/DA1B78DA7A70857DE053650AA8C0B956/DATAFILE/sysaux.268.1099492921
datafile 5 switched to datafile copy
input datafile copy RECID=18 STAMP=1099492943 file name=+DG_DATA/XKDG/DATAFILE/undotbs1.257.1099492921
datafile 6 switched to datafile copy
input datafile copy RECID=19 STAMP=1099492943 file name=+DG_DATA/XKDG/DA1B78DA7A70857DE053650AA8C0B956/DATAFILE/undotbs1.258.1099492923
datafile 7 switched to datafile copy
input datafile copy RECID=20 STAMP=1099492943 file name=+DG_DATA/XKDG/DATAFILE/undotbs2.256.1099492923
datafile 8 switched to datafile copy
input datafile copy RECID=21 STAMP=1099492943 file name=+DG_DATA/XKDG/DATAFILE/users.269.1099492923
datafile 9 switched to datafile copy
input datafile copy RECID=22 STAMP=1099492944 file name=+DG_DATA/XKDG/DA1C290B57902A2EE053650AA8C05C87/DATAFILE/system.279.1099492925
datafile 10 switched to datafile copy
input datafile copy RECID=23 STAMP=1099492944 file name=+DG_DATA/XKDG/DA1C290B57902A2EE053650AA8C05C87/DATAFILE/sysaux.262.1099492925
datafile 11 switched to datafile copy
input datafile copy RECID=24 STAMP=1099492944 file name=+DG_DATA/XKDG/DA1C290B57902A2EE053650AA8C05C87/DATAFILE/undotbs1.275.1099492925
datafile 12 switched to datafile copy
input datafile copy RECID=25 STAMP=1099492944 file name=+DG_DATA/XKDG/DA1C290B57902A2EE053650AA8C05C87/DATAFILE/undo_2.274.1099492929
datafile 13 switched to datafile copy
input datafile copy RECID=26 STAMP=1099492944 file name=+DG_DATA/XKDG/DA1C290B57902A2EE053650AA8C05C87/DATAFILE/users.276.1099492929

contents of Memory Script:
{
set until scn 2939768;
recover
standby
clone database
delete archivelog
;
}
executing Memory Script

executing command: SET until clause

Starting recover at 2022-03-16 14:42:24

starting media recovery

archived log for thread 1 with sequence 50 is already on disk as file +DG_REDO/XKDG/ARCHIVELOG/2022_03_16/thread_1_seq_50.274.1099492943
archived log for thread 1 with sequence 51 is already on disk as file +DG_REDO/XKDG/ARCHIVELOG/2022_03_16/thread_1_seq_51.271.1099492943
archived log for thread 2 with sequence 39 is already on disk as file +DG_REDO/XKDG/ARCHIVELOG/2022_03_16/thread_2_seq_39.273.1099492943
archived log for thread 2 with sequence 40 is already on disk as file +DG_REDO/XKDG/ARCHIVELOG/2022_03_16/thread_2_seq_40.275.1099492943
archived log file name=+DG_REDO/XKDG/ARCHIVELOG/2022_03_16/thread_1_seq_50.274.1099492943 thread=1 sequence=50
archived log file name=+DG_REDO/XKDG/ARCHIVELOG/2022_03_16/thread_2_seq_39.273.1099492943 thread=2 sequence=39
archived log file name=+DG_REDO/XKDG/ARCHIVELOG/2022_03_16/thread_2_seq_40.275.1099492943 thread=2 sequence=40
archived log file name=+DG_REDO/XKDG/ARCHIVELOG/2022_03_16/thread_1_seq_51.271.1099492943 thread=1 sequence=51
media recovery complete, elapsed time: 00:00:02
Finished recover at 2022-03-16 14:42:27

contents of Memory Script:
{
delete clone force archivelog all;
}
executing Memory Script

deleted archived log
archived log file name=+DG_REDO/XKDG/ARCHIVELOG/2022_03_16/thread_1_seq_51.271.1099492943 RECID=2 STAMP=1099492942
Deleted 1 objects

deleted archived log
archived log file name=+DG_REDO/XKDG/ARCHIVELOG/2022_03_16/thread_2_seq_38.272.1099492943 RECID=4 STAMP=1099492942
Deleted 1 objects

deleted archived log
archived log file name=+DG_REDO/XKDG/ARCHIVELOG/2022_03_16/thread_1_seq_50.274.1099492943 RECID=3 STAMP=1099492942
Deleted 1 objects

deleted archived log
archived log file name=+DG_REDO/XKDG/ARCHIVELOG/2022_03_16/thread_2_seq_39.273.1099492943 RECID=1 STAMP=1099492942
Deleted 1 objects

deleted archived log
archived log file name=+DG_REDO/XKDG/ARCHIVELOG/2022_03_16/thread_2_seq_40.275.1099492943 RECID=5 STAMP=1099492942
Deleted 1 objects

Finished Duplicate Db at 2022-03-16 14:42:30

sql statement: ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT
released channel: c1
released channel: c2
released channel: c3
released channel: c4
released channel: c5
released channel: c6
released channel: c7
released channel: c8
released channel: s1
released channel: s2
released channel: s3
released channel: s4
released channel: s5
released channel: s6
released channel: s7
released channel: s8

RMAN>

复制

2.备库状态查看

duplicate完成,登陆备库查看状态,执行open

SQL> show pdbs; CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED MOUNTED 3 TEST01 MOUNTED SQL> alter database open; Database altered. SQL> show pdbs; CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 TEST01 MOUNTED
复制

3. 备库添加standby redo log

alter database add standby logfile thread 1 group 11 ('+DG_DATA') size 200M; alter database add standby logfile thread 1 group 12 ('+DG_DATA') size 200M; alter database add standby logfile thread 1 group 13 ('+DG_DATA') size 200M; alter database add standby logfile thread 2 group 14 ('+DG_DATA') size 200M; alter database add standby logfile thread 2 group 15 ('+DG_DATA') size 200M; alter database add standby logfile thread 2 group 16 ('+DG_DATA') size 200M;
复制

五、开启同步

19c的开启同步命令与11g有变化,但是原先命令也兼容

--实时同步 alter database recover managed standby database disconnect; --日志切换才同步 alter database recover managed standby database using archived logfile disconnect; --取消同步 alter database recover managed standby database cancel; --查看状态 select name,open_mode,database_role,protection_mode,protection_level from v$database;
复制

六、需要注意的

建完备库,发现能够正常登陆使用,但是在集群资源里没有db服务,执行下方命令加入集群资源

--详细看-h srvctl add database -db xkdg -o /u01/app/oracle/product/19.0.0/dbhome_1 -spfile /u01/app/oracle/product/19.0.0/dbhome_1/dbs/spfilexkdg.ora -role PHYSICAL_STANDBY -pwfile /u01/app/oracle/product/19.0.0/dbhome_1/dbs/orapwxkdg -instance xkdg
复制

另外:
1、不加入集群资源,不能用dbca -silent删库
2、正常dbca静默建库能加入集群资源

透明2.png

透明背景.png

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

文章被以下合辑收录

评论

Ceeport
暂无图片
2年前
评论
暂无图片 2
后续设置的这两个参数实际会生效吗? 1、db_file_name_convert 2、log_file_name_convert
2年前
暂无图片 2
评论
墨天轮福利君
暂无图片
3年前
评论
暂无图片 0
您好,您的文章已入选墨力原创作者计划合格奖,10墨值奖励已经到账请查收! ❤️我们还会实时派发您的流量收益。
3年前
暂无图片 点赞
评论