--==========================css
-- RMAN catalog 的建立和使用sql
--==========================數據庫
1、建立恢復目錄session
建立恢復目錄通常分爲三大步驟oracle
建立存放恢復目錄的數據庫(或使用已存在的數據庫)app
建立恢復目錄的的全部者ide
建立恢復目錄spa
建立數據庫能夠參考:Oralce 10g 使用DBCA創建數據庫.net
在存儲恢復目錄的數據庫建立表空間用於存儲恢復目錄schema及恢復目錄數據(本文使用已經建立好的數據庫catadb來存儲恢復目錄)日誌
SQL> create tablespace tbs_rman datafile '/u01/app/oracle/oradata/catadb/tbs_rman01.dbf'--建立rman恢復目錄表空間
2 size 200m autoextend on;
SQL> create user rman identified by rman --建立rman schema
2 temporary tablespace temp
3 default tablespace tbs_rman
4 quota unlimited on tbs_rman;
SQL> grant recovery_catalog_owner to rman; --角色授予
SQL> conn rman/rman
SQL> select * from session_privs;
PRIVILEGE
----------------------------------------
CREATE SESSION
ALTER SESSION
CREATE TABLE
CREATE CLUSTER
CREATE SYNONYM
CREATE VIEW
CREATE SEQUENCE
CREATE DATABASE LINK
CREATE PROCEDURE
CREATE TRIGGER
CREATE TYPE
SQL> select * from session_roles;
ROLE
------------------------------
RECOVERY_CATALOG_OWNER
RMAN> connect catalog rman/rman@catadb --鏈接到恢復目錄
connected to recovery catalog database
RMAN> create catalog tablespace tbs_rman; --建立恢復目錄
recovery catalog created
[oracle@oradb ~]$ rman target sys/redhat@orcl catalog rman/rman@catadb --鏈接到目標數據庫及恢復目錄
connected to target database: ORCL (DBID=1260850162)
connected to recovery catalog database
RMAN> register database; --將目標數據庫註冊到恢復目錄
database registered in recovery catalog
starting full resync of recovery catalog
full resync complete
2、基於恢復目錄的備份
1.查看相關信息
RMAN> list incarnation;
List of Database Incarnations
DB Key Inc Key DB Name DB ID STATUS Reset SCN Reset Time
------- ------- -------- ---------------- --- ---------- ----------
1 8 ORCL 1260850162 PARENT 1 30-JUN-05
1 2 ORCL 1260850162 CURRENT 446075 22-OCT-10
----------------------------------------------------------------------------------------------------
RMAN> crosscheck copy; --校驗copy
RMAN> delete expired copy; --刪除過時的copy
2.全備
RMAN> run{
2> allocate channel ch1 device type disk;
3> backup as compressed backupset
4> database plus archivelog delete input
5> format='/u01/app/oracle/bk/rmbk/Whole_%d_%U'
6> tag='Whole_bak';
7> release channel ch1;}
3.增量備份(級)
RMAN> run{
2> allocate channel ch1 device type disk;
3> allocate channel ch2 device type disk;
4> backup as compressed backupset
5> incremental level 0
6> database plus archivelog delete input
7> format='/u01/app/oracle/bk/rmbk/Inc_0_%d_%U'
8> tag='Inc_0';
9> release channel ch1;
10> release channel ch2;}
RMAN> list backup summary;
4.增量備份(1級)
RMAN> run{
2> allocate channel ch1 device type disk;
3> allocate channel ch2 device type disk;
4> backup as compressed backupset
5> incremental level 1 database
6> format='/u01/app/oracle/bk/rmbk/Inc_1_%d_%U'
7> tag='Inc_1';
8> release channel ch1;
9> release channel ch2;}
RMAN> list backup by file;
5.累計增量備份(1級)
RMAN> run{
2> allocate channel ch1 device type disk;
3> backup as compressed backupset
4> incremental level 1 cumulative database
5> format '/u01/app/oracle/bk/rmbk/Cum_1_%d_%U'
6> tag='Cum_1';
7> release channel ch1;}
6.備份表空間
RMAN> run{
2> allocate channel ch1 device type disk;
3> backup as compressed backupset
4> tablespace users,example
5> format='/u01/app/oracle/bk/rmbk/tbs_%d_%U'
6> tag='tbs';
RMAN> list backupset tag=tbs;
7.備份數據文件
RMAN> run{
2> allocate channel ch1 device type disk;
3> backup as compressed backupset
4> datafile 3
5> format='/u01/app/oracle/bk/rmbk/df_%d_%U'
6> tag='df';
7> release channel ch1;}
8.備份歸檔日誌
備份歸檔日誌前,建議先使用crosscheck校驗一下
crosscheck一般用於檢查備份是否被刪除,若是刪除將會打上刪除標籤
RMAN> crosscheck archivelog all;
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=148 devtype=DISK
validation succeeded for archived log
archive log filename=/u01/app/oracle/oradata/orcl/arch/log_1_117_733069427.arc recid=111 stamp=733171369
Crosschecked 1 objects
RMAN> sql 'alter system switch logfile';
sql statement: alter system switch logfile
RMAN> sql 'alter system switch logfile';
sql statement: alter system switch logfile
RMAN> list archivelog all;
List of Archived Log Copies
Key Thrd Seq S Low Time Name
------- ---- ------- - --------- ----
465 1 117 A 22-OCT-10 /u01/app/oracle/oradata/orcl/arch/log_1_117_733069427.arc
553 1 118 A 23-OCT-10 /u01/app/oracle/oradata/orcl/arch/log_1_118_733069427.arc
569 1 119 A 23-OCT-10 /u01/app/oracle/oradata/orcl/arch/log_1_119_733069427.arc
9.基於SCN來備份歸檔日誌
RMAN> run{
2> allocate channel ch1 device type disk;
3> backup as compressed backupset
4> archivelog from scn 848043
5> format='/u01/app/oracle/bk/rmbk/arc_%d_%U'
6> tag='arc';
7> release channel ch1;
8> }
10.鏡像備份
RMAN> run{
2> allocate channel ch1 device type disk;
3> backup as copy datafile 1,4
4> format '/u01/app/oracle/bk/rmbk/df_%d_%U'
5> tag 'copybak';
6> release channel ch1;}
11.其它
RMAN> crosscheck backupset;
RMAN> change backupset 1
RMAN> validate backupset
RMAN> validate backupset 635;
12.基於catalog的數據庫恢復請參考:基於catalog 的RMAN 備份與恢復
3、更多參考
有關基於用戶管理的備份和備份恢復的概念請參考:
Oracle 基於用戶管理恢復的處理(詳細描述了介質恢復及其處理)
有關RMAN的恢復與管理請參考:
RMAN 還原與恢復
有關Oracle體系結構請參考:
Oracle 實例和Oracle數據庫(Oracle體系結構)
Oracle 聯機重作日誌文件(ONLINE LOG FILE)