4

通过nbu备份搭建oracle 19c adg (rac-m6米乐安卓版下载

原创 张海 云和恩墨 2022-07-13
2875

适用范围
linux7,oracle19c,netbackup8,搭建rac-rac环境adg

问题概述
通过nbu的备份搭建adg

问题原因
在运数据库需要搭建adg,且均有nbu实时备份,为了最大程度减少主库的操作以及节约时间,提升效率的同时降低风险,故在此记录通过nbu的备份来搭建adg过程

m6米乐安卓版下载的解决方案
adg数据库相关环境的准备在此不再赘述,主备库均为两节点rac asm,搭建过程如下:

1、nbu客户端检查
检查客户端安装及nbu服务启动情况
[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
启动/usr/openv/netbackup/bin/bp.start_all
停止/usr/openv/netbackup/bin/bp.kill_all
2、主、备库配置adg静态监听
配置主备库静态监听(静态监听配置在grid下面$oracle_home/network/admin/listener.ora)
备节点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)
  )
)
备节点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)
  )
)
主节点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)
  )
)
主节点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)
  )
)
#启动静态监听
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互相测试
su - oracle
tnsping testdb_prm_dg
tnsping testdb_stb_dg
4、复制密码文件创建目录
主库1节点:
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节点:
asm中创建共享目录
su - grid
asmcmd
mkdir -p  data/testdbdg/password
备库复制
pwcopy /u01/db/oracle/product/19.3.0/dbhome_1/dbs/orapwtestdb1  data/testdbdg/password/
5、备库所有节点创建adump目录:
su - oracle
mkdir -p /u01/db/oracle/admin/testdbdg/adump
6、修改备库参数文件(/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'
#数据库启动到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、连通性测试
在adg环境中,所有实例执行下面操作,保证都是可以正确连接的。
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、目标端恢复standby controlfile
修改备库两节点oracle文件权限
重启实例后修改
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整库恢复
#恢复数据库
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
#执行恢复库脚本
nohup sh /home/oracle/rman_restore202207.sh &
--需修改以上脚本中参数:
主库nbu连接串为racdb01-dca 
备库共享目录为 data/testdbdg/datafile/%b
10、主库增加至备库的归档目录及创建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,则启动mrp
alter database recover managed standby database using current logfile disconnect; 
--如存在gap,则通过nbu恢复缺失归档
12、恢复缺失归档
在备库查询控制文件中的备份信息
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归档信息,手动catalog归档备份集信息
检查备份信息
/usr/openv/netbackup/bin/bplist -c racdb01-dca -t 4 -r -l / |more
catalog归档备份集信息(catalog控制文件恢复时间点后的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';
}
恢复所缺归档日志
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同大小,组数 1),启动mrp,验证同步情况
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中检查参数文件名称 data/testdbdg/parameterfile/spfile.271.1070639177
修改spfile
cd $oracle_home/dbs/
echo "
spfile=' data/testdbdg/parameterfile/spfile.290.1108910633'
"> inittestdbdg1.ora
15、集群添加数据库实例
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、启动mrp,检查同步情况
alter database recover managed standby database using current logfile disconnect; 
--查看同步状态
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
最后修改时间:2022-07-13 17:08:03
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【米乐app官网下载的版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

网站地图