日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql中的rman备份与恢复_使用RMAN备份与恢复数据库

發布時間:2023/12/31 数据库 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql中的rman备份与恢复_使用RMAN备份与恢复数据库 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、備份信息

1.1、列出備份信息

列出數據庫中所有文件的備份信息:

RMAN>LIST BACKUP OF DATABASE;

列出指定表空間的備份信息:

RMAN>LIST BACKUP OF TABLESPACE SYSTEM;

列出指定數據文件的備份信息:

RMAN>LIST BACKUP OF DATAFILE 4;

列出歸檔日志的備份信息:

RMAN>LIST BACKUP OF ARCHIVELOG ALL;

1.2、刪除備份信息

1.刪除陳舊備份

當使用RMAN 執行備份操作時,RMAN 會根據備份冗余策略確定陳舊備份。

RMAN> delete obsolete;

2.刪除EXPIRED 備份

執行crosscheck 命令核對備份集,如果備份集丟失或者損壞,那么會將該備份集標記為EXPIRED 狀態。為了刪除相應的備份記錄,可以執行delete expired backup 命令。

RMAN> delete expired backup;

3.刪除EXPIRED 副本

RMAN> delete expired copy;

4.刪除特定備份集

RMAN> delete backupset 19;

5.刪除特定備份片

RMAN> delete backuppiece '/home/backup/DEMO_19.bak';

6.刪除所有備份集

RMAN> delete backup;

7.刪除特定映像副本

RMAN> delete datafilecopy '/home/backup/DEMO_19.bak';

8.刪除所有映像副本

RMAN> delete copy;

9.在備份后刪除輸入對象

RMAN> delete archivelog all deleteinput;

RMAN> delete backupset 22 format = '/home/backup/%u.bak' delete input;

二、指令運行方式

2.1、批處理

RMAN>run{

......

......

}

2.2、運行腳本

[oracle@node1~]$ RMAN TARGET / @backup_db.rman

運行存儲在恢復目錄中的腳本(需要首先為rman 創建恢復目錄)

RMAN> RUN { EXECUTE SCRIPT backup_whole_db };

2.3、操作系統腳本

[oracle@node1 ~]$rman target / cmdfile=/home/backup_db.rman

三、增量備份的機制

所謂增量備份,顧名思義即是每次備份僅操作那些發生了"變化"的數據塊。RMAN 中增量備份有兩種:Differential 方式和Cumulative 方式。

3.1、差異備份Differential ( DEFUALT )

備份上級及同級以來所有變化的數據塊

3.2、累積增量備份Cumulative

備份上級以來所有變化的數據塊

所有增量備份要以0級備份為基礎,0級備份指對數據庫做全備。

0 級備份和全庫備份的區別:

1)全庫備份不能作為1 級備份的基礎

2)全庫備份會對unused 數據庫做備份

0 級備份

RMAN>backup incremental level 0 database;

1 級差異增量

RMAN>backup incremental level 1 database;

1 級累積增量

RMAN>backup incremental level 1 cumulative database;

四、備份數據庫命令

4.1、對數據庫全備

RMAN>backup database;

執行上述命令后將對目標數據庫中的所有數據文件進行備份,由于沒有顯式指定FORMAT 參數,rman 會自動為每個備份片段命名。

當然,也可以通過顯式指定format 參數來自定義備份片段的命令規則,比如:

RMAN> BACKUP DATABASE FORMAT '/home/backup/%U';

全備數據庫的同時可以包含控制文件,比如:

RMAN> BACKUP DATABASE FORMAT '/home/backup/%U' include current controlfile;

4.2、備份表空間

RMAN> backup tablespace users;

4.3、備份數據文件

首先可以先通過數據字典DBA_DATA_FILES 查詢出表空間對應的數據文件及其序號,例如:

select file_name,file_id,tablespace_name from dba_data_files;

然后再通過BACKUP DATAFILE 備份指定序號的數據文件,例如:

RMAN> BACKUP DATAFILE n;

注:n=指定的的數據文件序號,如果需要備份的數據文件有多個, n=多個序號,中間以逗號分隔即可。

4.4、備份控制文件

控制文件在ORACLE 中的重要性是毋庸置疑的,你看,連RMAN 都給予特殊的照顧,在RMAN 中備份控制文件的方式是最多的。

1.最簡單的方式,通過CONFIGURE 命令將CONTROLFILE AUTOBACKUP 置為ON。

RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;

然后你再通過rman 做任何備份操作的同時,都會自動對控制文件做備份。

2.對編號為1 的數據文件,即SYSTEM 表空間的數據文件做備份時,RMAN 也會自動對控制文件做備份。

3.手動執行備份命令。

RMAN> BACKUP CURRENT CONTROLFILE;

4.執行BACKUP 時指定INCLUDE CURRENT CONTROLFILE 參數,例如:

RMAN> BACKUP DATABASE INCLUDE CURRENT CONTROLFILE;

4.5、備份歸檔日志

歸檔日志對于數據庫介質恢復相當關鍵,其雖然不像控制文件那樣一旦損壞則數據庫馬上崩潰,但重要性絲毫不減。歸檔日志文件能確保我們將數據庫恢復到備份之前的任意時刻。

在RMAN 中備份歸檔日志有兩種方式:

1、利用BACKUP ARCHIVELOG 命令備份

RMAN> BACKUP ARCHIVELOG ALL;

2、在BACKUP 過程中利用PLUS ARCHIVELOG 參數備份,例如:

RMAN> BACKUP DATABASE PLUS ARCHIVELOG;

則在備份數據庫的同時自動對所有歸檔文件進行備份。這種方式與上種有什么區別呢,區別太明顯了,BACKUP.....PLUS ARCHIVELOG 命令在備份過程中會依次執行下列步驟:

1>.運行ALTER SYSTEM ARCHIVE LOG CURRENT 語句對當前redolog 進行歸檔。

2>.執行BACKUP ARCHIVELOG ALL 命令備份所有已歸檔日志。

3>.執行BACKUP 命令對指定項進行備份。

4>.再次運行ALTER SYSTEM ARCHIVE LOG CURRENT 對當前redolog 歸檔。

5>.對新生成的尚未備份的歸檔文件進行備份。

在完成歸檔日志文件備份后,我們通過需要刪除已備份過的歸檔文件(歸檔文件記錄下了數據庫進行過的所有操作,如果您的數據庫操作頻繁而且量大,那歸檔文件大小也是相當恐怖,備份后刪除釋放存儲空間是相當有必要地)。RMAN 提供了DELETE ALL INPUT 參數,加在BACKUP 命令后,則會在完成備份后自動刪除歸檔目錄中已備份的歸檔日志。

RMAN> BACKUP DATABASE PLUS ARCHIVELOG DELETE ALL INPUT;

綜述:比如查看備份基本都是LIST BACKUP OF 備份項名稱,如果想自定義片段的話則在備份命令后加上FORMAT 參數。

五、恢復命令

5.1、數據庫恢復

RMAN> restore/revover database;

5.2、表空間恢復

RMAN> restore/revover tablespace xx ;

5.3、只讀表空間的恢復

默認情況下,即使丟失了只讀的數據文件,RMAN 也不會在執行完全數據庫還原操作時候還原只讀的數據文件。要在完全恢復期間還原只讀的數據文件,就必須在RESTORE命令中使用CHECK READONLY

RMAN> RESTORE DATABASE CHECK READONLY;

5.4、恢復SPFILE/控制文件

#使用自動備份恢復SPFILE/控制文件

RMAN>startup nomount;

RMAN> set dbid=153910023RMAN> restore controlfile fromautobackup

RMAN> restore spfile/controlfile to '/xx/xx' fromautobackup ;

RMAN> restore controlfile from '/arch/ct_c-2347671489-20060630-00';

5.5、恢復歸檔日志

RMAN> RESTORE ARCHIVELOG ALL;

RMAN> RESTORE ARCHIVELOG FROM LOGSEQ=1 UNTIL LOGSEQ=20;

RMAN> RESTORE ARCHIVELOG FROM LOGSEQ=1;

也可以用SET命令來指定歸檔日志的還原位置,例如:

RMAN>run{set archivelog destination to "/home/backup/";restore archivelog all;

}

5.6、數據文件副本還原

RMAN> sql "alter datafile 5offline";

RMAN> restore (datafile 5) fromdatafilecopy;

RMAN> recover datafile 5;

RMAN> sql "alter datafile 5 online";

請注意,上面的圓括號很重要

5.7、還原檢查與恢復測試

與備份檢查一樣,還原操作也可以檢查是否能正常restore 或者是否該備份集是否有效。如:

RMAN> RESTORE DATABASEVALIDATE;

RMAN> VALIDATE BACKUPSET 218;

RMAN> RESTORE DATABASE VALIDATE CHECK LOGICAL ;

5.8、從指定的tag 恢復

RMAN> RESTORE FROM tag=’xxxx’;

5.9、不完全恢復的還原:

RMAN> restore database until scn 1000;

RMAN>restore database "to_date('2005/08/01 13:00:00','yyyy/mm/dd hh24:mi:ss')";

RMAN> restore database until sequence 100 thread 1;

5.10、塊級別的恢復

恢復塊的時候,必須指定具體的塊號,如:

RMAN> blockrecover datafile 6 block 3;

總結

以上是生活随笔為你收集整理的mysql中的rman备份与恢复_使用RMAN备份与恢复数据库的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。