rman備份和恢復oracle

利用RMAN備份壓縮技術對數據庫做全備並備份控制文件和歸檔日誌後刪除已備份的歸檔日誌:

1.保證開啓歸檔

查看數據庫是否開啓歸檔:

archive log list;

先關閉數據庫

shutdown immediate;

啓動數據庫到mount狀態,mount加載控制文件

startup mount;

開啓歸檔

alter database archivelog

******show all命令可以顯示已經配置過的有默認值的參數,其中包括通道參數

RMAN>show all;

單獨備份表空間

備份USERS表空間

RMAN>backup tablespace users;

 

備份多個表空間

RMAN>backup filesperset=3 tablespace users,system,sysaux;

backup as compressed backupset full database format '/home/oracle/backup/full_bk1_%u%p%s.dfb'
include current controlfile
plus archivelog format '/home/oracle/backup/arch_bk1_%u%p%s.dfb'
delete all input;

執行整庫備份

RMAN> BACKUP DATABASE FORMAT '/u01/backup/FUL_BAK_%T';

--數據文件被備份到的路徑和備份的數據文件有哪些
RMAN> LIST BACKUP OF DATABASE;

--參數文件和控制文件被備份到默認路徑。
RMAN> LIST BACKUP OF SPFILE;

--備份歸檔日誌文件
RMAN> BACKUP ARCHIVELOG ALL FORMAT '/u01/backup/ARC_%T';


--之前自己手動用rm命令刪掉了歸檔日誌。但是controlfile中還記錄着歸檔日誌信息,oracle還會去找這些歸檔日誌文件,因此就會報錯。

解決方法:使控制文件中的歸檔日誌信息和實際物理文件信息保持一致;
1. corsscheck archivelog all;
此命令用來檢查控制文件和實際物理文件信息的差異。

2.delete expired archivelog all;
刪除無效的歸檔日誌信息,使檢查控制文件和實際物理文件信息同步。

--查看上一步備份的歸檔日誌文件,可以查看歸檔scn是否連續完整
RMAN> LIST BACKUP OF ARCHIVELOG ALL;

RMAN中對控制文件的幾種備份方法

參考博客:http://blog.itpub.net/31444259/viewspace-2154367/

 

-- 開啓控制文件自動備份
--設置控制文件備份路勁和備份格式,加數據文件備份
run{
configure controlfile autobackup on;
configure controlfile autobackup format for device type disk to '/u01/backup01/%F';
BACKUP DATABASE FORMAT '/u01/backup01/FUL_BAK_%T';
}

全備文件 

--數據文件和控制文件
--歸檔文件
--spfile文件
run{
backup as compressed backupset full database FORMAT '/u01/backup01/full_bk1_%u%p%s.bak' 
include current controlfile;
BACKUP ARCHIVELOG ALL FORMAT '/u01/backup01/ARC_%u%p%s';
backup spfile format '/u01/backup01/SPFILE_%d';
}
--和以上的區別是,控制文件是單獨備份的
run{
backup as compressed backupset full database FORMAT '/u01/backup01/full_bk1_%u%p%s.bak';
backup current controlfile format '/u01/backup01/Con_%u%p%s.bak';
BACKUP ARCHIVELOG ALL FORMAT '/u01/backup01/ARC_%u%p%s';
backup spfile format '/u01/backup01/SPFILE_%d';
}

控制文件的備份

指定備份壓縮

在backup後添加as compressed backupset

方法一:

backup current controlfile format '/u01/backup01/c_bk1_%u%p%s.bak';

方法二:

--執行 BACKUP 時指定 INCLUDE CURRENT CONTROLFILE 參數,例如:
RMAN> BACKUP DATABASE INCLUDE CURRENT CONTROLFILE;
如果要查看備份的控制文件,可以通過:
RMAN> LIST BACKUP OF CONTROLFILE;

OMF方式壓縮備份全庫(數據文件+控制文件)

backup as compressed backupset database to destination '/u01/backup01/';

--不壓縮備份
backup database to destination '/u01/backup01/';

檢查備份集有效性

覈實備份集

RMAN> crosscheck backupset;

RMAN> crosscheck backup;

刪除無效備份集

RMAN> delete obsolete;

檢驗歸檔日誌有效性

RMAN> crosscheck archivelog all;

無效的歸檔,可以刪除

有效的歸檔

列出所有失效的歸檔日誌

list expired archivelog all;

刪除log sequence爲16及16之前的所有歸檔日誌

delete archivelog until sequence 16;

--刪除系統時間7天以前的歸檔日誌,不會刪除閃回區有效的歸檔日誌

 delete archivelog all completed before 'sysdate-7';

--該命令清除所有的歸檔日誌

delete noprompt archivelog all;

知識補存:

RMAN命令詳解

https://www.iteye.com/blog/wallimn-1208204

RMAN命令LIST操作總結

https://www.cnblogs.com/kerrycode/p/5773050.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章