暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

oracle dataguard,备份恢复

原创 nick 2021-12-29
614

更改orapw<SID>密码文件,分发各个主机,用md5sum校验
cd $ORACLE_HOME/dbs
orapwd file=ora<SID> password=oracle force=y

---查看主库pfile和监听--
lsnrctl status
srvctl config scan
SQL> create pfile from spfile;

-----主库更改,open状态----
强制logging
SQL> alter database force logging;
增加standby
show parameter name
show parameter archive
col name for a70
set linesize 200
set pagesize 100
SQL> select l.THREAD#,l.GROUP#,l.SEQUENCE#,f.MEMBER as name,l.STATUS,l.ARCHIVED,l.BYTES/1024/1024 as m from v$log l,v$logfile f where f.group#=l.group#;
SQL> select l.THREAD#,l.GROUP#,l.SEQUENCE#,f.MEMBER as name,l.STATUS,l.ARCHIVED,l.BYTES/1024/1024 as m from v$standby_log l,v$logfile f where f.group#=l.group#;
SQL> alter database add standby logfile thread 1 group 4 size 50m;
SQL> alter database drop standby logfile group 4;
参数更改
SQL> alter system set log_archive_config='DG_CONFIG=(主库db_unique_name,备库db_unique_name)' scope=both sid='*';
SQL> alter system set log_archive_dest_1='LOCATION=+DATA01 valid_for=(all_logfiles,all_roles) db_unique_name=主库db_unique_name' scope=both sid='*';
SQL> alter system set log_archive_dest_2='SERVICE=备库监听 LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=备库db_unique_name' scope=both sid='*';
SQL> alter system set fal_server=备库监听 scope=both sid='*';
SQL> alter system set standby_file_management=auto scope=both; --切换为备库时生效


-----主库更改,需要重启----
SQL> alter system set db_unique_name=orat252 scope=spfile; ---尽量使用默认,减少重启机率
SQL> alter system set remote_login_passwordfile=EXCLUSIVE scope=spfile; ---默认EXCLUSIVE,不需要更改
SQL> alter system set db_file_name_convert='/xx/','/xxx/' scope=spfile; ---除非切换为备份,否则不用设置
SQL> alter system set log_file_name_convert='/xx/','/xxx/' scope=spfile; ---除非切换为备份,否则不用设置
SQL> alter system set log_archive_format='%arc' scope=spfile; --无必要更改

SQL> shutdown immediate --默认为archivelog状态,不需要此步骤
SQL> startup mount
SQL> alter database archivelog;



-----备库更改,需要重启----
SQL> alter system set db_unique_name='备库db_unique_name' scope=spfile;
SQL> alter system set remote_login_passwordfile=EXCLUSIVE scope=spfile;
SQL> alter system set db_file_name_convert='/xx/','/xxx/' scope=spfile;
SQL> alter system set log_file_name_convert='/xx/','/xxx/' scope=spfile; ---目标目录必须先创建
SQL> alter system set log_archive_format='%arc' scope=spfile; --无必要更改

-----备库更改,不需要重启----
SQL> alter system set log_archive_config='DG_CONFIG=(主db_unique_name,备库db_unique_name)' scope=both;
SQL> alter system set log_archive_dest_1='LOCATION=+DATA01 valid_for=(all_logfiles,all_roles) db_unique_name=备库db_unique_name' scope=both;
SQL> alter system set log_archive_dest_2='SERVICE=主库监听 LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=主库db_unique_name' scope=both;
SQL> alter system set fal_server=主库监听 scope=both;
SQL> alter system set standby_file_management=auto scope=both;


方法1: standby database采用duplicate database方式
(1)增加静态监听,全量同步完成后可删除静态监听
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME= xxx_stb)
(ORACLE_HOME = /oracle/product/11.2.0)
(SID_NAME = xxx)
)
)


(2)sys密码明文
cat duplicate_rman.cmd
run {
allocate auxiliary channel c1 device type disk;
allocate auxiliary channel c2 device type disk;
allocate auxiliary channel c3 device type disk;
allocate auxiliary channel c4 device type disk;
allocate auxiliary channel c5 device type disk;
allocate auxiliary channel c6 device type disk;
allocate auxiliary channel c7 device type disk;
allocate auxiliary channel c8 device type disk;
allocate channel d1 device type disk;
allocate channel d2 device type disk;
allocate channel d3 device type disk;
allocate channel d4 device type disk;
allocate channel d5 device type disk;
allocate channel d6 device type disk;
allocate channel d7 device type disk;
allocate channel d8 device type disk;
duplicate target database for standby from active database nofilenamecheck dorecover;
}
exit


export NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'
nohup rman target sys/**@xxx auxiliary sys/**@xxx_stb cmdfile=duplicate_rman.cmd log=duplicate_rman_1214.log &


方法2: standby database采用rman备份集恢复方式
(1)备份
export NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'
RMAN> backup database format '/xxx/full_%d_%T_%s_%p.bks' plus archivelog format '/xxx/arch_%d_%T_%s_%p.bks' delete all input;

(2)恢复 (归档断档时,可重复recover database,利用备份集重新生成archivelog)
export NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'
nohup rman target / cmdfile=restore_rman.rcv log=restore_rman_`date +%Y-%m-%d_%T`.log &
cat restore_rman.rcv
run {
restore standby controlfile from '/xx/c-2377430574-20210927-01';
sql 'alter database mount standby database';
crosscheck backup;
crosscheck copy;
delete noprompt expired backup;
delete noprompt expired archivelog all;
catalog start with '/xx/';
restore database;
switch tempfile all;
recover database;
}
exit



---备库增量或实时同步
SQL> alter database recover managed standby database using current logfile disconnect;
SQL> alter database recover managed standby database cancel;
SQL> alter database open read only;
SQL> alter system archive log current;

---日常检查
SQL> show parameter archive
SQL> select dest_id,error from v$archive_dest;
SQL> select * from v$archive_gap;
--重启通道
SQL> alter system set log_archive_dest_state_2=defer;
SQL> alter system set log_archive_dest_state_2=enable;


1.备份spfile ,更改db_name
SQL> create pfile from spfile;

2.删除数据库
SQL> startup restrict exclusive mount;
SQL> alter system enable restricted session;
SQL> drop database;

3. 启动恢复
nohup rman target / cmdfile=restore_rman.rcv log=restore_rman_`date+%Y%m%d_%T`.log &
cat restore_rman.rcv
run {
allocate channel ch1 type disk;
allocate channel ch2 type disk;
allocate channel ch3 type disk;
allocate channel ch4 type disk;
allocate channel ch5 type disk;
allocate channel ch6 type disk;
allocate channel ch7 type disk;
allocate channel ch8 type disk;
set newname for database to '+DATA01/';
alter database mount;
catalog start with '/xxx';
restore database;
switch datafile all;
switch tempfile all;
recover database;
}
exit

4. srvctl 添加new_dbname
srvctl add database -d <new_dbname> -o <ORACLE_HOME> -p '+DATA01/spfile<new_dbname>.ora

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

评论