--==========================
-- RMAN catalog 的创建和使用
--==========================
一、创建恢复目录
创建恢复目录一般分为三大步骤
创建恢复目录的的所有者
创建恢复目录
在存储恢复目录的数据库创建表空间用于存储恢复目录schema及恢复目录数据(本文使用已经创建好的数据库catadb来存储恢复目录)
2size 200m autoextend on;
SQL> create user rman identified by rman--创建rman schema
2temporary tablespace temp
3default tablespace tbs_rman
4quota 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
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
二、基于恢复目录的备份
1.查看相关信息
RMAN> list incarnation;
List of Database Incarnations
DB KeyInc Key DB NameDB IDSTATUSReset SCNReset Time
------- ------- -------- ---------------- --- ---------- ----------
18ORCL1260850162PARENT130-JUN-05
12ORCL1260850162CURRENT 44607522-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.增量备份(0级)
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 succe