DM7使用DMRAMN執行備份集恢復
使用DMRAMN執行備份集恢復
使用RECOVER命令完成資料庫恢復工作,可以是基於備份集的恢復工作,也可以是使用本地歸檔日誌的恢復工作。如果還原後,資料已經處於一致性狀態了,則可以使用更新DB_MAGIC方式恢復,前提是不需要重做日誌。語法如下:
RECOVER DATABASE '' [] [USE DB_MAGIC ] [UNTIL TIME '< 時間串>'] [UNTIL LSN ]; | RECOVER DATABASE '' FROM BACKUPSET '< 備份集目錄>'[DEVICE TYPE DISK|TAPE[PARMS '< 介質引數>']] [IDENTIFIED BY < 密碼> [ENCRYPT WITH < 加密演算法>]] ; | RECOVER DATABASE '' UPDATE DB_MAGIC; ::= WITH ARCHIVEDIR '< 歸檔日誌目錄>'{,'< 歸檔日誌目錄>'}
DATABASE:指定還原庫目標的dm.ini檔案路徑。
USE DB_MAGIC:指定本地歸檔日誌對應資料庫的DB_MAGIC,若不指定,則預設使用目標恢復資料庫的DB_MAGIC。
UNTIL TIME:恢復資料庫到指定的時間點。
UNTIL LSN:恢復資料庫到指定的LSN。
BACKUPSET:指定用於還原目標資料庫的備份集目錄。
DEVICE TYPE:指儲存備份集的介質型別,支援DISK和TAPE,預設為DISK。DISK表示儲存備份集到磁碟,TAPE表示儲存到磁帶。
PARMS:介質引數,供第三方儲存介質(TAPE型別)管理使用。
IDENTIFIED BY:指定備份時使用的加密密碼,供還原過程解密使用。
ENCRYPT WITH:指定備份時使用的加密演算法,供還原過程解密使用,若未指定,則使用預設演算法。
WITH ARCHIVEDIR:本地歸檔日誌搜尋目錄,若未指定,則僅使用目標庫配置本地歸檔目錄,RAC環境還會取REMOTE歸檔目錄。
資料庫恢復有三種方式:更新DB_MAGIC恢復、從備份集恢復和從歸檔恢復。
從備份集恢復
如果備份集在備份過程中生成了日誌,且這些日誌在備份集中有完整備份(如聯機資料庫備份),在執行資料庫還原後,可以重做備份集中備份的日誌,將資料庫恢復到備份時的狀態,即從備份集恢復。完整的示例如下:
1) 啟動DIsql聯機備份資料庫。
SQL> backup database full to db_full_bak_recover_bakset backupset '/dm_home/dmdba/dmdbms/data/jydm/bak/db_full_bak_recover_bakset_backupset'; executed successfully used time: 00:00:07.673. Execute id is 247. SQL> select permanent_magic; LINEID PERMANENT_MAGIC ---------- --------------- 1 1250320462 used time: 48.106(ms). Execute id is 282. SQL> select db_magic from v$rlog; LINEID DB_MAGIC ---------- ----------- 1 708657636 used time: 37.277(ms). Execute id is 315.
2) 準備目標庫,可以使用備份庫,也可以重新生成庫。這裡是在別一臺伺服器上建立新庫,重新生成庫操作如下:
[dmdba@dmks ~]$ dminit path=/dm_home/dmdbms/data db_name=dameng_for_recover auto_overwrite=1 port_num=5336 initdb V7.1.6.46-Build(2018.02.08-89107)ENT db version: 0x7000a file dm.key not found, use default license! License will expire in 14 day(s) on 2020-06-30 log file path: /dm_home/dmdbms/data/dameng_for_recover/dameng_for_recover01.log log file path: /dm_home/dmdbms/data/dameng_for_recover/dameng_for_recover02.log write to dir [/dm_home/dmdbms/data/dameng_for_recover]. create dm database success. 2020-06-16 16:03:18 [root@dmks root]# ./dm_service_installer.sh -i /dm_home/dmdbms/data/dameng_for_recover/dm.ini -p dmrc -t dmserver Move the service script file(/dm_home/dmdbms/bin/DmServicedmrc to /etc/rc.d/init.d/DmServicedmrc) Finished to create the service (DmServicedmrc) [root@dmks root]# service DmServicedmrc start Starting DmServicedmrc: [ OK ] [dmdba@dmks ~]$ disql SYSDBA/SYSDBA@localhost:5336 Server[localhost:5336]:mode is normal, state is open login used time: 10.727(ms) disql V7.1.6.46-Build(2018.02.08-89107)ENT Connected to: DM 7.1.6.46 SQL> select permanent_magic; LINEID PERMANENT_MAGIC ---------- --------------- 1 450923536 used time: 1.042(ms). Execute id is 5. SQL> select db_magic from v$rlog; LINEID DB_MAGIC ---------- ----------- 1 1009602608 used time: 1.332(ms). Execute id is 6.
3)將備份集複製到目標庫所在主機上
[dmdba@shard1 bak]$ scp -r db_full_bak_recover_bakset_backupset/ dmdba@10.138.130.187:/dm_home/dmdbms/backup/ dmdba@10.138.130.187's password: db_full_bak_recover_bakset_backupset.bak 100% 211MB 105.3MB/s 00:02 db_full_bak_recover_bakset_backupset_1.bak 100% 225KB 225.0KB/s 00:00 db_full_bak_recover_bakset_backupset.meta 100% 93KB 92.5KB/s 00:00 [dmdba@shard1 bak]$
4)啟動RMAN,校驗備份。
RMAN> check backupset '/dm_home/dmdbms/backup/db_full_bak_recover_bakset_backupset'; check backupset '/dm_home/dmdbms/backup/db_full_bak_recover_bakset_backupset'; CMD END.CODE:[0] check backupset successfully. time used: 6.293(ms)
5)還原資料庫。
RMAN> restore database '/dm_home/dmdbms/data/dameng_for_recover/dm.ini' from backupset '/dm_home/dmdbms/backup/db_full_bak_recover_bakset_backupset'; restore database '/dm_home/dmdbms/data/dameng_for_recover/dm.ini' from backupset '/dm_home/dmdbms/backup/db_full_bak_recover_bakset_backupset'; checking if the database under system path [/dm_home/dmdbms/data/dameng_for_recover] is running...[4]. checking if the database under system path [/dm_home/dmdbms/data/dameng_for_recover] is running...[3]. checking if the database under system path [/dm_home/dmdbms/data/dameng_for_recover] is running...[2]. checking if the database under system path [/dm_home/dmdbms/data/dameng_for_recover] is running...[1]. checking if the database under system path [/dm_home/dmdbms/data/dameng_for_recover] is running...[0]. checking if the database under system path [/dm_home/dmdbms/data/dameng_for_recover] is running, write dmrman info. RESTORE DATABASE CHECK...... RESTORE DATABASE , dbf collect...... RESTORE DATABASE , dbf refresh ...... RESTORE BACKUPSET [/dm_home/dmdbms/backup/db_full_bak_recover_bakset_backupset] START...... total 22 packages processed... RESTORE DATABASE , UPDATE ctl file...... RESTORE DATABASE , REBUILD key file...... RESTORE DATABASE , CHECK db info...... RESTORE DATABASE , UPDATE db info...... total 24 packages processed! CMD END.CODE:[0] restore successfully. time used: 29564.812(ms)
6)恢復資料庫。
RMAN> recover database '/dm_home/dmdbms/data/dameng_for_recover/dm.ini' from backupset '/dm_home/dmdbms/backup/db_full_bak_recover_bakset_backupset'; recover database '/dm_home/dmdbms/data/dameng_for_recover/dm.ini' from backupset '/dm_home/dmdbms/backup/db_full_bak_recover_bakset_backupset'; checking if the database under system path [/dm_home/dmdbms/data/dameng_for_recover] is running...[4]. checking if the database under system path [/dm_home/dmdbms/data/dameng_for_recover] is running...[3]. checking if the database under system path [/dm_home/dmdbms/data/dameng_for_recover] is running...[2]. checking if the database under system path [/dm_home/dmdbms/data/dameng_for_recover] is running...[1]. checking if the database under system path [/dm_home/dmdbms/data/dameng_for_recover] is running...[0]. checking if the database under system path [/dm_home/dmdbms/data/dameng_for_recover] is running, write dmrman info. EP[0] max_lsn: 19945240 RESTORE RLOG CHECK...... RESTORE RLOG ,gen tmp file...... RESTORE RLOG FROM BACKUPSET [/dm_home/dmdbms/backup/db_full_bak_recover_bakset_backupset] START...... total 0 packages processed... total 2 packages processed! CMD END.CODE:[0] EP[0] Recover LSN from 19945241 to 19947077. Recover from archive log finished, time used:0.322s. recover successfully! time used: 7027.238(ms)
7)檢查db_magic,db_maigc從708657636變成了1572156104
[root@dmks init.d]# service DmServicedmrc start Starting DmServicedmrc: [ OK ] [dmdba@dmks ~]$ disql SYSDBA/xxzx7817600@localhost:5336 Server[localhost:5336]:mode is normal, state is open login used time: 12.530(ms) disql V7.1.6.46-Build(2018.02.08-89107)ENT Connected to: DM 7.1.6.46 SQL> select permanent_magic; LINEID PERMANENT_MAGIC ---------- --------------- 1 1250320462 used time: 1.288(ms). Execute id is 4. SQL> select db_magic from v$rlog; LINEID DB_MAGIC ---------- ----------- 1 1572156104 used time: 1.845(ms). Execute id is 5.
8)檢查資料
SQL> select * from t1; LINEID ID NAME ---------- ----------- ---- 1 1 jy 2 2 hy used time: 1.286(ms). Execute id is 5.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26015009/viewspace-2732294/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- DM7使用DMRAMN執行歸檔恢復
- DM7使用DMRAMN執行更新DB_MAGIC恢復
- DM7使用DMRAMN對多次故障恢復後使用不同資料庫的歸檔進行恢復資料庫
- DM7使用DMRMAN執行歸檔備份
- DM7使用DMRMAN工具執行備份集對映檔案匯出
- 詳解叢集級備份恢復:物理細粒度備份恢復
- DM7使用DMRMAN執行RAC資料庫恢復資料庫
- DM7使用DMRMAN工具刪除備份集
- DM7使用DMRMAN工具檢視備份集
- DM7使用DMRMAN工具匯入備份集
- 利用innobackupex備份集恢復指定庫
- Elasticsearch叢集的備份與恢復Elasticsearch
- DM7使用DMRMAN執行資料庫還原和恢復資料庫
- RAC備份恢復之Voting備份與恢復
- DM7使用離線工具DMRMAN執行資料庫備份資料庫
- Oracle使用備份檔案集恢復歸檔日誌Oracle
- DM7使用聯機執行SQL語句進行備份還原SQL
- 02 . MongoDB複製集,分片集,備份與恢復MongoDB
- 備份與恢復:polardb資料庫備份與恢復資料庫
- MySQL備份與恢復——基於Xtrabackup物理備份恢復MySql
- mydumper備份恢復
- Mysql備份恢復MySql
- 備份和恢復
- DM7聯機執行SQL語句進行表備份SQL
- DM7使用disql管理備份SQL
- DM7使用DMRMAN執行歸檔修復
- MySQL備份與恢復——基於MyDumper/MyLoader 邏輯備份恢復MySql
- Mysql備份與恢復(1)---物理備份MySql
- 【Mongo】mongo分片加複製集的備份恢復Go
- DM7使用DMRMAN工具執行加密備份與設定跟蹤日誌加密
- rman 增量備份恢復
- Jenkins備份與恢復Jenkins
- Postgresql 備份與恢復SQL
- MySQL 備份與恢復MySql
- KunlunDB備份和恢復
- RMAN備份恢復技巧
- redis 備份和恢復Redis
- Grafana 備份恢復教程Grafana