如何利用DG環(huán)境的備庫來異機(jī)還原一個新主庫
DG環(huán)境介紹
一、備庫執(zhí)行備份
二、在新主機(jī)執(zhí)行恢復(fù)操作
2.1、恢復(fù)spfile
2.2、恢復(fù)控制文件
2.3、注冊備份信息
2.4、還原數(shù)據(jù)文件
2.5、恢復(fù)數(shù)據(jù)庫
2.6、激活備庫為主庫,并啟動數(shù)據(jù)庫
DG環(huán)境介紹
一、備庫執(zhí)行備份
二、在新主機(jī)執(zhí)行恢復(fù)操作
2.1、恢復(fù)spfile
2.2、恢復(fù)控制文件
2.3、注冊備份信息
2.4、還原數(shù)據(jù)文件
2.5、恢復(fù)數(shù)據(jù)庫
2.6、激活備庫為主庫,并啟動數(shù)據(jù)庫
在部署完ADG(Active Data Guard)后,不但可以將只讀的查詢交給備庫執(zhí)行,還可以把日常的數(shù)據(jù)庫備份工作放在備庫上執(zhí)行,從而減輕主庫的壓力,充分的發(fā)揮服務(wù)器資源。
本文演示的是利用Oracle DG環(huán)境的備庫執(zhí)行備份,然后異機(jī)還原恢復(fù)成一個新的主庫的過程。
DG環(huán)境介紹
一、備庫執(zhí)行備份
cat > /rman/rman_backup_oradgphy_full.sh <<"EOF0" #!/bin/ksh export ORACLE_SID=oradgphy export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 export PATH=$ORACLE_HOME/bin:$PATH export NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss" MYDATE=`date +'%Y%m%d%H%M%S'` rman target / log /rman/backup_oradgphy_full_$MYDATE.log append < 賦予可執(zhí)行權(quán)限: chmod +x /rman/rman_backup_oradgphy_full.sh 執(zhí)行備份,或添加定時任務(wù): nohup sh /rman/rman_backup_oradgphy_full.sh & 備份結(jié)果:數(shù)據(jù)庫790G(非分配大小),壓縮備份后140G,用時30分鐘。 接下來就是把/rman備份目錄下的內(nèi)容都拷貝到新主機(jī)上,方法很多,例如scp、磁盤卸載重新掛載等。 二、在新主機(jī)執(zhí)行恢復(fù)操作 2.1、恢復(fù)spfile export ORACLE_SID=LHRDB rman target / startup nomount; restore spfile to pfile '?/dbs/initLHRDB.ora' from '/rman/spfile_ORADG11G_3lv6cd9m_1_1.ora'; -- 修改pfile,去除dg相關(guān)參數(shù) vi $ORACLE_HOME/dbs/initLHRDB.ora 需要根據(jù)情況對pfile做相關(guān)的修改,最終的參數(shù)文件內(nèi)容: *.audit_file_dest='/u01/app/oracle/admin/LHRDB/adump' *.audit_trail='db' *.compatible='11.2.0.0.0' *.control_files='/u01/app/oracle/oradata/LHRDB/crontal01.ctl','/u01/app/oracle/oradata/LHRDB/control02.ctl' *.db_block_size=8192 *.db_domain='' *.db_name='oradg11g' *.db_recovery_file_dest='/u01/app/oracle/flash_recovery_area' *.db_recovery_file_dest_size=4322230272 *.db_unique_name='LHRDB' *.diagnostic_dest='/u01/app/oracle' *.dispatchers='(PROTOCOL=TCP) (SERVICE=oradg11gXDB)' *.log_archive_dest_1='LOCATION=USE_DB_RECOVERY_FILE_DEST' *.memory_max_target=209715200 *.memory_target=209715200 *.open_cursors=300 *.processes=3000 *.remote_login_passwordfile='EXCLUSIVE' *.undo_tablespace='UNDOTBS1' 根據(jù)pfile文件內(nèi)容創(chuàng)建相關(guān)目錄 mkdir -p /u01/app/oracle/admin/LHRDB/adump mkdir -p /u01/app/oracle/oradata/LHRDB/ 根據(jù)pfile創(chuàng)建spfile,并啟動到nomout create spfile from pfile; startup force nomount 2.2、恢復(fù)控制文件 -- 因?yàn)橐謴?fù)為主庫,所以需要加上primary關(guān)鍵字 restore primary controlfile from '/rman/standby_3kv6cd9k_1_1.ctl'; 2.3、注冊備份信息 -- 啟動到mout階段 alter database mount; -- 清除之前的備份信息 EXECUTE DBMS_BACKUP_RESTORE.RESETCFILESECTION(11); /** CLEAR V$ARCHIVED_LOG */ EXECUTE DBMS_BACKUP_RESTORE.RESETCFILESECTION(12); /** CLEAR V$BACKUP_SET */ EXECUTE DBMS_BACKUP_RESTORE.RESETCFILESECTION(13); /** CLEAR V$BACKUP_PIECE */ --重新注冊,注意路徑最后一定需要加上/ catalog start with '/rman/'; 2.4、還原數(shù)據(jù)文件 # 創(chuàng)建日志路徑 mkdir -p /home/oracle/rman_log/ chown oracle.dba /home/oracle/rman_log/ cat > /home/oracle/rman_restore_LHRDB.sh <<"EOF0" #!/bin/ksh export ORACLE_SID=LHRDB export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 export PATH=$ORACLE_HOME/bin:$PATH MYDATE=`date +'%Y%m%d%H%M%S'` export NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss" rman target / log /home/oracle/rman_log/rman_restore_LHRDB_$MYDATE.log append < 開始后臺執(zhí)行還原: chmod +x /home/oracle/rman_restore_LHRDB.sh nohup sh /home/oracle/rman_restore_LHRDB.sh & 還原時間大概2小時。 2.5、恢復(fù)數(shù)據(jù)庫 首先使用如下命令找到最大的日志序列號: list backupset of archivelog from time "sysdate - 1"; 準(zhǔn)備恢復(fù)數(shù)據(jù)庫的腳本: cat > /home/oracle/rman_recover_LHRDB.sh <<"EOF0" #!/bin/ksh export ORACLE_SID=LHRDB export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 export PATH=$ORACLE_HOME/bin:$PATH MYDATE=`date +'%Y%m%d%H%M%S'` export NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss" rman target / log /home/oracle/rman_log/rman_recover_LHRDB_$MYDATE.log append < 開始后臺執(zhí)行恢復(fù): chmod +x /home/oracle/rman_recover_LHRDB.sh nohup sh /home/oracle/rman_recover_LHRDB.sh & 恢復(fù)時間大概30分鐘。 2.6、激活備庫為主庫,并啟動數(shù)據(jù)庫 -- 1、查詢數(shù)據(jù)庫狀態(tài) select open_mode , database_role, flashback_on from v$database; -- 2、激活備庫為主庫,如果已經(jīng)是主庫了,那就跳過該步驟 alter database activate standby database; -- ALTER DATABASE CLEAR LOGFILE GROUP 4; -- alter database drop logfile group 4; -- 3、啟動數(shù)據(jù)庫 alter database open resetlogs; 結(jié)果: SYS@LHRDB > alter database open resetlogs; Database altered. SYS@LHRDB > archive log list; Database log mode Archive Mode Automatic archival Enabled Archive destination USE_DB_RECOVERY_FILE_DEST Oldest online log sequence 1 Next log sequence to archive 1 Current log sequence 1 SYS@LHRDB > select open_mode , database_role, flashback_on from v$database; OPEN_MODE DATABASE_ROLE FLASHBACK_ON -------------------- ---------------- ------------------ READ WRITE PRIMARY NO 數(shù)據(jù)庫
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。