適用范圍
linux7,oracle19c,NetBackup8,搭建RAC-RAC環(huán)境ADG
問題概述
通過NBU的備份搭建ADG
問題原因
在運(yùn)數(shù)據(jù)庫需要搭建ADG,且均有NBU實(shí)時(shí)備份,為了最大程度減少主庫的操作以及節(jié)約時(shí)間,提升效率的同時(shí)降低風(fēng)險(xiǎn),故在此記錄通過NBU的備份來搭建ADG過程
解決方案
ADG數(shù)據(jù)庫相關(guān)環(huán)境的準(zhǔn)備在此不再贅述,主備庫均為兩節(jié)點(diǎn)RAC+ASM,搭建過程如下:
1、NBU客戶端檢查
檢查客戶端安裝及NBU服務(wù)啟動(dòng)情況
[root@racdg01 bin]# /usr/openv/netbackup/bin/bpps
root 28947 1 1 14:42 ? 00:00:00 /usr/openv/netbackup/bin/vnetd -proxy inbound_proxy -number 0
root 28948 1 2 14:42 ? 00:00:00 /usr/openv/netbackup/bin/vnetd -proxy outbound_proxy -number 0
root 29004 1 0 14:42 ? 00:00:00 /usr/openv/netbackup/bin/vnetd -standalone
root 29010 1 1 14:42 ? 00:00:00 /usr/openv/netbackup/bin/bpcd -standalone
root 29190 1 0 14:42 ? 00:00:00 /usr/openv/netbackup/bin/bpclntcmd -crl_download
root 29195 1 7 14:42 ? 00:00:00 /usr/openv/netbackup/bin/nbdisco
root 29263 1 1 14:42 ? 00:00:00 /usr/openv/netbackup/bin/bmrbd
啟動(dòng)/usr/openv/netbackup/bin/bp.start_all
停止/usr/openv/netbackup/bin/bp.kill_all
2、主、備庫配置ADG靜態(tài)監(jiān)聽
配置主備庫靜態(tài)監(jiān)聽(靜態(tài)監(jiān)聽配置在grid下面$ORACLE_HOME/network/admin/listener.ora)
備節(jié)點(diǎn)1
LISTENER_DG = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.10.13)(PORT = 1521)))
ADR_BASE_LISTENER_DG = /u01/db/oracle
SID_LIST_LISTENER_DG =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = testdbdg)
(SID_NAME = testdbdg1)
(ORACLE_HOME = /u01/db/oracle/product/19.3.0/dbhome_1)
)
)
備節(jié)點(diǎn)2
LISTENER_DG = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.10.14)(PORT = 1521)))
ADR_BASE_LISTENER_DG = /u01/db/oracle
SID_LIST_LISTENER_DG =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = testdbdg)
(SID_NAME = testdbdg2)
(ORACLE_HOME = /u01/db/oracle/product/19.3.0/dbhome_1)
)
)
主節(jié)點(diǎn)1
LISTENER_DG = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.10.11)(PORT = 1521)))
ADR_BASE_LISTENER_DG = /u01/db/oracle
SID_LIST_LISTENER_DG =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = testdb)
(SID_NAME = testdb1)
(ORACLE_HOME = /u01/db/oracle/product/19.3.0/dbhome_1)
)
)
主節(jié)點(diǎn)2
LISTENER_DG = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.10.12)(PORT = 1521)))
ADR_BASE_LISTENER_DG = /u01/db/oracle
SID_LIST_LISTENER_DG =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = testdb)
(SID_NAME = testdb2)
(ORACLE_HOME = /u01/db/oracle/product/19.3.0/dbhome_1)
)
)
#啟動(dòng)靜態(tài)監(jiān)聽
su - grid
lsnrctl start LISTENER_DG
3、主、備庫配置連接串tnsnames.ora
echo
"TESTDB_PRM_DG =
(DESCRIPTION =
(FAILOVER = ON)
(LOAD_BALANCE = YES)
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.10.11)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.10.12)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = testdb)
)
)
TESTDB_STB_DG =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.10.13)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.10.14)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = testdbdg)
)
)">>$ORACLE_HOME/network/admin/tnsnames.ora
cat $ORACLE_HOME/network/admin/tnsnames.ora
#主備庫tnsping互相測(cè)試
su - oracle
tnsping TESTDB_PRM_DG
tnsping TESTDB_STB_DG
4、復(fù)制密碼文件創(chuàng)建目錄
主庫1節(jié)點(diǎn):
SQL> alter user sys identified by "oracle";
pwcopy +data/testdb/PASSWORD/pwdtestdb.256.1107705063 /tmp/orapwtestdb1
scp /tmp/orapwtestdb1 oracle@10.10.10.13:$ORACLE_HOME/dbs/
備庫1節(jié)點(diǎn):
ASM中創(chuàng)建共享目錄
su - grid
asmcmd
mkdir -p +data/testdbdg/PASSWORD
備庫復(fù)制
pwcopy /u01/db/oracle/product/19.3.0/dbhome_1/dbs/orapwtestdb1 +data/testdbdg/PASSWORD/
5、備庫所有節(jié)點(diǎn)創(chuàng)建adump目錄:
su - oracle
mkdir -p /u01/db/oracle/admin/testdbdg/adump
6、修改備庫參數(shù)文件(/home/oracle/inittestdbdg1.ora)
*.audit_file_dest='/u01/db/oracle/admin/testdbdg/adump'
*.audit_trail='NONE'
*.cluster_database=true
*.compatible='19.0.0'
*.control_files='+DATA'#Set by RMAN
*.db_file_name_convert='+DATA/testdb','+DATA/testdbdg'
*.log_file_name_convert='+DATA/testdb','+DATA/testdbdg'
*.db_block_size=8192
*.db_create_file_dest='+DATA'
*.db_name='testdb'
*.db_unique_name='testdbdg'
*.fal_client='TESTDB_STB_DG'
*.fal_server='TESTDB_PRM_DG'
testdb2.instance_number=2
testdb1.instance_number=1
*.log_archive_config='dg_config=(testdb,testdbdg)'
*.log_archive_dest_1='location=+ARCH valid_for=(all_logfiles,all_roles) db_unique_name=testdbdg'
*.log_archive_dest_2='service=TESTDB_PRM_DG async lgwr valid_for=(online_logfile,primary_role) db_unique_name=testdb'
*.log_archive_dest_state_2='ENABLE'
*.open_cursors=1500
*.pga_aggregate_target=3000m
*.sga_target=8000m
*.standby_file_management='AUTO'
testdb2.thread=2
testdb1.thread=1
testdb2.undo_tablespace='UNDOTBS2'
testdb1.undo_tablespace='UNDOTBS1'
#數(shù)據(jù)庫啟動(dòng)到nomount
SQL> startup nomount pfile='/home/oracle/inittestdbdg1.ora';
7、主、備庫策略配置:
#檢查歸檔刪除策略
su - oracle
rman target /
show all;
configure archivelog deletion policy to applied on all standby;
8、連通性測(cè)試
在Adg環(huán)境中,所有實(shí)例執(zhí)行下面操作,保證都是可以正確連接的。
sqlplus sys/oracle@TESTDB_PRM_DG as sysdba
sqlplus sys/oracle@TESTDB_STB_DG as sysdba
9、主庫備份standby controlfile
alter database create standby controlfile as '/tmp/ctrl_202207.ctl';
scp /tmp/ctrl_202207.ctl oracle@10.10.10.13:/home/backup/
9、目標(biāo)端恢復(fù)standby controlfile
修改備庫兩節(jié)點(diǎn)oracle文件權(quán)限
重啟實(shí)例后修改
su - grid
/u01/db/grid/19.3.0/bin/setasmgidwrap -o /u01/db/oracle/product/19.3.0/dbhome_1/bin/oracle
su - oracle
rman target /
restore controlfile from '/home/oracle/ctrl_202207.ctl';
alter database mount standby database;
10、通過NBU備份Rman整庫恢復(fù)
#恢復(fù)數(shù)據(jù)庫
oracle@racdbdg01 ~]$ cat /home/oracle/rman_restore202207.sh
rman target / msglog=//home/oracle/rman_restore202207.log << EOF
run {
allocate channel c1 type 'sbt_tape';
send 'NB_ORA_CLIENT=racdb01-dca';
allocate channel c2 type 'sbt_tape';
send 'NB_ORA_CLIENT=racdb01-dca';
allocate channel c3 type 'sbt_tape';
send 'NB_ORA_CLIENT=racdb01-dca';
allocate channel c4 type 'sbt_tape';
send 'NB_ORA_CLIENT=racdb01-dca';
set newname for database to '+data/testdbdg/DATAFILE/%b';
restore database;
switch datafile all;
recover database;
release channel c1;
release channel c2;
release channel c3;
release channel c4;
}
exit;
EOF
#執(zhí)行恢復(fù)庫腳本
nohup sh /home/oracle/rman_restore202207.sh &
--需修改以上腳本中參數(shù):
主庫NBU連接串為racdb01-dca
備庫共享目錄為+data/testdbdg/DATAFILE/%b
10、主庫增加至備庫的歸檔目錄及創(chuàng)建standby logfile
alter system set log_archive_config='dg_config=(testdb,testdbdg)' sid='*';
alter system set log_archive_dest_2='service="TESTDB_STB_DG", LGWR ASYNC NOAFFIRM compression=enable db_unique_name="testdbdg" valid_for=(all_logfiles,primary_role)' sid='*';
alter system set log_archive_dest_state_2=enable;
alter system set fal_server=TESTDB_STB_DG;
alter system set fal_client=TESTDB_PRM_DG;
alter system set db_file_name_convert='+DATA/testdbdg','+DATA/testdb' scope=spfile;
alter system set log_file_name_convert='+DATA/testdbdg','+DATA/testdb' scope=spfile;
sqlplus / as sysdba
alter database add standby logfile thread 1 group 9 ('+DATA') size 500M;
alter database add standby logfile thread 1 group 10 ('+DATA') size 500M;
alter database add standby logfile thread 1 group 11 ('+DATA') size 500M;
alter database add standby logfile thread 1 group 12 ('+DATA') size 500M;
alter database add standby logfile thread 1 group 13 ('+DATA') size 500M;
alter database add standby logfile thread 2 group 14 ('+DATA') size 500M;
alter database add standby logfile thread 2 group 15 ('+DATA') size 500M;
alter database add standby logfile thread 2 group 16 ('+DATA') size 500M;
alter database add standby logfile thread 2 group 17 ('+DATA') size 500M;
alter database add standby logfile thread 2 group 18 ('+DATA') size 500M;
11、查看備庫GAP情況
select * from gv$archive_gap;
--如無gap,則啟動(dòng)MRP
alter database recover managed standby database using current logfile disconnect;
--如存在GAP,則通過NBU恢復(fù)缺失歸檔
12、恢復(fù)缺失歸檔
在備庫查詢控制文件中的備份信息
rman target /
run {
allocate channel c1 type 'sbt_tape';
send 'NB_ORA_CLIENT=racdb01-dca';
allocate channel c2 type 'sbt_tape';
send 'NB_ORA_CLIENT=racdb01-dca';
allocate channel c3 type 'sbt_tape';
send 'NB_ORA_CLIENT=racdb01-dca';
allocate channel c4 type 'sbt_tape';
send 'NB_ORA_CLIENT=racdb01-dca';
restore database preview;
release channel c1;
release channel c2;
release channel c3;
release channel c4;
}
如無備份的al歸檔信息,手動(dòng)catalog歸檔備份集信息
檢查備份信息
/usr/openv/netbackup/bin/bplist -C racdb01-dca -t 4 -R -l / |more
catalog歸檔備份集信息(catalog控制文件恢復(fù)時(shí)間點(diǎn)后的al文件)
run {
CONFIGURE CHANNEL device TYPE 'SBT_TAPE' PARMS'ENV=(NB_ORA_SERV=nbusvr,NB_ORA_CLIENT=racdb01-dca)';
CATALOG DEVICE TYPE 'SBT_TAPE' backuppiece 'al_42_1_1108637731';
CATALOG DEVICE TYPE 'SBT_TAPE' backuppiece'al_41_1_1108637731';
CATALOG DEVICE TYPE 'SBT_TAPE' backuppiece'al_35_1_1108630546';
CATALOG DEVICE TYPE 'SBT_TAPE' backuppiece'al_34_1_1108630546';
CATALOG DEVICE TYPE 'SBT_TAPE' backuppiece'al_28_1_1108623333';
CATALOG DEVICE TYPE 'SBT_TAPE' backuppiece'al_27_1_1108623333';
CATALOG DEVICE TYPE 'SBT_TAPE' backuppiece'al_21_1_1108616133';
CATALOG DEVICE TYPE 'SBT_TAPE' backuppiece'al_20_1_1108616133';
CATALOG DEVICE TYPE 'SBT_TAPE' backuppiece'al_14_1_1108576277';
CATALOG DEVICE TYPE 'SBT_TAPE' backuppiece'al_12_1_1108576262';
CATALOG DEVICE TYPE 'SBT_TAPE' backuppiece'al_11_1_1108576262';
CATALOG DEVICE TYPE 'SBT_TAPE' backuppiece'al_1_1_1108576072';
CATALOG DEVICE TYPE 'SBT_TAPE' backuppiece'al_2_1_1108576072';
}
恢復(fù)所缺歸檔日志
RUN {
ALLOCATE CHANNEL ch00 TYPE 'SBT_TAPE' parms='ENV=(NB_ORA_SERV=nbusvr,NB_ORA_CLIENT=racdb01-dca)';
ALLOCATE CHANNEL ch01 TYPE 'SBT_TAPE' parms='ENV=(NB_ORA_SERV=nbusvr,NB_ORA_CLIENT=racdb01-dca)';
set archivelog destination to '+ARCH';
restore archivelog from logseq 17 thread 1;
restore archivelog from logseq 9 thread 2;
RELEASE CHANNEL ch00;
RELEASE CHANNEL ch01;
}
13、備庫添加standby(redo同大小,組數(shù)+1),啟動(dòng)MRP,驗(yàn)證同步情況
sqlplus / as sysdba
alter database add standby logfile thread 1 group 9 ('+DATA') size 500M;
alter database add standby logfile thread 1 group 10 ('+DATA') size 500M;
alter database add standby logfile thread 1 group 11 ('+DATA') size 500M;
alter database add standby logfile thread 1 group 12 ('+DATA') size 500M;
alter database add standby logfile thread 1 group 13 ('+DATA') size 500M;
alter database add standby logfile thread 2 group 14 ('+DATA') size 500M;
alter database add standby logfile thread 2 group 15 ('+DATA') size 500M;
alter database add standby logfile thread 2 group 16 ('+DATA') size 500M;
alter database add standby logfile thread 2 group 17 ('+DATA') size 500M;
alter database add standby logfile thread 2 group 18 ('+DATA') size 500M;
alter database recover managed standby database using current logfile disconnect;
14、修改pfile為spfile,將spfile由本地遷移至ASM
create spfile='+DATA' from pfile='/home/oracle/inittestdbdg1.ora';
ASM中檢查參數(shù)文件名稱+data/testdbdg/PARAMETERFILE/spfile.271.1070639177
修改spfile
cd $ORACLE_HOME/dbs/
echo "
SPFILE='+data/testdbdg/PARAMETERFILE/spfile.290.1108910633'
"> inittestdbdg1.ora
15、集群添加數(shù)據(jù)庫實(shí)例
su - oracle
srvctl add database -d testdbdg -o /u01/db/oracle/product/19.3.0/dbhome_1 -p +DATA/testdbdg/PARAMETERFILE/spfile.290.1108910633
srvctl add instance -db testdbdg -instance testdb1 -node racdg01
srvctl add instance -db testdbdg -instance testdb2 -node racdg02
su - grid
crsctl stat res -t
srvctl stop database -d testdbdg
srvctl start database -d testdbdg
su - oracle
srvctl modify database -db testdbdg -pwfile +data/testdbdg/PASSWORD/orapwtestdbdg1
16、啟動(dòng)MRP,檢查同步情況
alter database recover managed standby database using current logfile disconnect;
--查看同步狀態(tài)
set line 999
select inst_id,thread#,process,pid,status,client_process,client_pid,sequence#,block#,active_agents,known_agents from gv$managed_standby;
--同步檢查
set echo off
set lines 300 pages 50
set heading on
set verify off
col name for a30
col value for a30
col TIME_COMPUTED for a20
col datum_time for a20 heading 'LAST_RECEIVED_TIME'
col inst_id for 99 heading 'ID'
break on inst_id
alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
select inst_id,name,value,time_computed,DATUM_TIME,sysdate from gv$dataguard_stats order by inst_id;
17、主、備配置歸檔刪除腳本crontab
最后修改時(shí)間:2022-07-13 17:08:03
「喜歡這篇文章,您的關(guān)注和贊賞是給作者最好的鼓勵(lì)」
關(guān)注作者
【版權(quán)聲明】本文為墨天輪用戶原創(chuàng)內(nèi)容,轉(zhuǎn)載時(shí)必須標(biāo)注文章的來源(墨天輪),文章鏈接,文章作者等基本信息,否則作者和墨天輪有權(quán)追究責(zé)任。如果您發(fā)現(xiàn)墨天輪中有涉嫌抄襲或者侵權(quán)的內(nèi)容,歡迎發(fā)送郵件至:contact@modb.pro進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),墨天輪將立刻刪除相關(guān)內(nèi)容。




