RMAN备份2

1.Create catalog

2.Register database

3.Backup database Using catalog option

4.Maintenance catalog


实验环境:

Target  DB  SID=clonedb

Catalog DB SID=digoal


创建catalog分为三步:

1. create tablespace to store catalog's object

2. create rman user & grant privilege to it

3. create catalog on rman

 

 

Register target database

1.Connect to target using sysdba

2.Register database;

3.List incarnation;(查看target数据库的信息)

4.Report schema (查看target数据库的信息)

=================================================================================


uniread sqlplus / as sysdba

create tablespace tbs_rman datafile '/oradata/digoal/tbs_rman01.dbf' size 300m;

create user rmanuser identified by rman default tablespace tbs_rman temporary tablespace temp;

grant recovery_catalog_owner to rmanuser;

conn rmanuser/rman

select * from session_privs;(查看rman用户的权限,发现没有对表空间进行操作的权限)

 

 

 

conn /as sysdba

alter user rmanuser quota unlimited on tbs_rman;(rmanuser用户可以对tbs_rman表空间具有写权限)

conn rmanuser/rman

select * from session_privs;

select * from session_roles;

在rman命令行下注册和创建catalog

shell>rman catalog rmanuser/rman (rmanuser用户必须有RECOVERY_CATALOG_OWNER权限)

create catalog tablespace tbs_rman;

catalog已经创建好了


connect target sys/oracle@clonedb;(必须用sys角色来进行连接)
register database;

List incarnation;(列出target db的信息)

Report schema (目标库有那些表空间和临时文件)


List backup; 查看以前做过的一些备份

List copy;   查看一下归档日志

=====================================================================================
Backup target database (备份目标数据库)

1. Full backup (全备份)

2. Incremental backup (增量备份)0,1,2级别

3. Differential&cumulative(差异增量和累计增量)

4. backup tablespace (备份表空间)

5. backup datafile (备份数据文件)

6. backup controlfile&spfile(备份控制文件和参数文件)

7. backup archivelog file (备份归档日志文件)

8. backup as copy (备份影像拷贝)


1.1
 run{
allocate channel d1 device type disk;
backup as compressed backupset(使用压缩)
format='/rmanbak/full_%d_%U'
tag='fullbak'
channel=d1
database plus archivelog delete input;(在run中自动释放channel)
} (备份全库,备份归档日志,归档日志备完用户删除归档日志)


crosschek copy (校验归档日志)

controlfile 和spfile在备份system表空间的时候,会自动备份(在rman的输入信息中可以看到)

 

2. 增量备份
 run{
  allocate channel d1 device type disk;
  backup as compressed backupset (在10g以后,才有压缩备份)
  incremental level=0
  format='/rmanbak/inc0_%d_U'
  tag='inc0'
  channel=d1
  database ;
  release channel d1;
}

查看一下备份细节
list backup summary;


3.做一个级别为1的备份

 run{
 allocate channel d1 device type disk;
 backup as  compressed backupset
 incremental level=1
 format='/rmanbak/inc1_%d_%U'
 tag='inc1'
 channel=d1
 database;
 release channel d1;}


list backup summary;

list backup by file;


3.累计型的增量备份;
 run{
 allocate channel d1 device type disk;
 backup as  compressed backupset
 incremental level=1 cumulative
 format='/rmanbak/cum1_%d_%U'
 tag='cum1'
 channel=d1
 database;
 release channel d1;}


4.备份表空间

  run{
  allocate channel d1 device  type disk;
  backup as compressed backupset
  format='/rmanbak/tbs_users%d_%U'
  tag='tbs'
  channel=d1
  tablespace users; //多个表空间 tablespace users,center,system;
  release channel d1;
}

list backupset summary;

5.备份数据文件
run{
 allocate channel d1 device type disk;
 backup as compressed backupset
 format='/rmanback/df_%d_%U'
 tag='dfile'
 datafile 1;//1表示系统表空间
 release channel d1;
 }

 list backupset tag='DFILE';

6.如何备份archivelog

 crosscheck  archivelog all

 sql " alter system switch logfile";//目标数据库切换日志

 
 list achivelog all;

 
什么样的archivelog需要,什么样的不需要

list backupset (SCN)


run {
 allocate channel d1 device type disk;
 backup as compressed backupset format='/rmanbak/arc_%d_%U'
 tag='arch' channel=d1 archivelog from scn 1219672 ; release channel d1;}


list backupset


7. backup copy

run{
 allocate channel d1 device type disk;
 backup as copy
 format='/rmanbak/copy_%d_%U'
 tag='copybak'
 channel=d1
 database(datafile 1) //databahannel d1
}

8如何查看备份

RMAN> list backupset . (查看) 点号有很多意思(by,backed,completed,device,integer,like ,of reccoverable


9. report.(schema device,need,obsolete)

10.crosscheck (backupset) 检查备份是否删除

11. change backupset

12. validate backupset (检验备份集是否可以用来恢复)

你可能感兴趣的:(oracle,sql)