rman的一些命令

LIST BACKUP;                              # lists backup sets, image copies, and proxy copies
LIST BACKUPSET;                # lists only backup sets and proxy copies
LIST COPY;                     # lists only disk copies
LIST BACKUP BY FILE;            # shows backup sets, proxy copies, and image copies
LIST COPY BY FILE;              # shows only disk copies
LIST EXPIRED BACKUP;
LIST EXPIRED BACKUP BY FILE;
LIST BACKUP SUMMARY;            # lists backup sets, proxy copies, and disk copies
LIST EXPIRED BACKUP SUMMARY;
LIST BACKUP OF DATABASE;            # lists backups of all files in database
LIST COPY OF DATAFILE 'ora_home/system01.dbf';   # lists copy of specified datafile
LIST BACKUPSET 213;                 # lists specified backup set
LIST DATAFILECOPY '/tmp/tools01.dbf';        # lists datafile copy
LIST BACKUPSET TAG 'weekly_full_db_backup';        # specify a backup set by tag
LIST COPY OF DATAFILE 'ora_home/system01.dbf' DEVICE TYPE sbt;    # specify a backup or copy by device type
LIST BACKUP LIKE '/tmp/%';    # specify a backup by directory or path
LIST COPY OF DATAFILE 2 COMPLETED BETWEEN '10-DEC-2002' AND '17-DEC-2002';   # specify a backup or copy by a range of completion dates
LIST ARCHIVELOG ALL BACKED UP 2 TIMES TO DEVICE TYPE sbt;   # specify logs backed up at least twice to tape
LIST BACKUP OF DATAFILE 1;
LIST BACKUP OF TABLESPACE;
LIST BACKUP OF DATAFILE;
LIST BACKUP ARCHIVELOG ALL;    #简要信息
LIST BACKUP OF ARCHIVELOG ALL;    #详细信息
LIST BACKUP OF CONTROFILE;
LIST BACKUP OF SPFILE;

 

CROSSCHECK BACKUP;  # crosschecks backup sets and proxy copies
CROSSCHECK COPY;    # crosschecks only disk copies of archived redo logs,datafiles and control file
REPORT NEED BACKUP;
给出DAYS参数来按照我们的要求时间让RMAN给出需要备份的结果
REPORT NEED BACKUP DAYS = 10 TABLESPACE SYSTEM;
REPORT NEED BACKUP DAYS = 5 DATAFILE '…/tools01.dbf';
报告那些文件需要进行增量备份:
REPORT NEED BACKUP INCREMENTAL = 1 DATABASE;
REPORT NEED BACKUP INCREMENTAL = 3 TABLESPACE SYSTEM;
REPORT NEED BACKUP INCREMENTAL = 5 DATAFILE '…/users01.dbf';
报告过期备份:
CROSSCHECK BACKUP;
# lists backups that not needed to recover the database to within last week
REPORT OBSOLETE RECOVERY WINDOW OF 7 DAYS;
# lists backups that are superfluous because more than 2 copies are on tape
REPORT OBSOLETE REDUNDANCY = 2 DEVICE TYPE sbt;
ORPHAN参数报告在同一个标记 (INCARNATION)中间断的备份,前一个备份和后一个备份不连续,也就是说同一个标记(INCARNATION)中两个备份中间有被删除的备份。
REPORT OBSOLETE ORPHAN;
删除过期备份:
# delete obsolete backups displayed when you issue REPORT OBSOLETE
DELETE OBSOLETE;
# delete obsolete backups according to a specified recovery window
DELETE OBSOLETE RECOVERY WINDOW OF 7 DAYS;
# delete obsolete backups according to a specified redundancy
DELETE OBSOLETE REDUNDANCY = 2;

报告数据库方案:
REPORT SCHEMA AT TIME 'SYSDATE-14';     # schema as it was two weeks ago
REPORT SCHEMA AT SCN 1000;              # schema as it was at scn 1000
REPORT SCHEMA AT SEQUENCE 100 THREAD 1; # schema as it was at sequence 100
REPORT SCHEMA AT SCN 1000;

给出几个CORSSCHECK示例命令:
CROSSCHECK BACKUP;  # checks backup sets, proxy copies, and image copies
CROSSCHECK COPY OF DATABASE;
CROSSCHECK BACKUPSET 1338, 1339, 1340;
CROSSCHECK BACKUPPIECE TAG = 'nightly_backup';
CROSSCHECK CONTROLFILECOPY '/tmp/control01.ctl';
CROSSCHECK DATAFILECOPY 113, 114, 115;
CROSSCHECK PROXY 789;


交叉验证指定数据库文件的备份
# these CROSSCHECK commands use configured channels, which means that they
# always check the disk device. If you configured an sbt channel, then RMAN
# checks the sbt device, too
CROSSCHECK BACKUP OF DATAFILE "ora_home/oradata/trgt/system01.dbf"
  COMPLETED AFTER 'SYSDATE-180';
CROSSCHECK BACKUP OF ARCHIVELOG ALL SPFILE;


删除备份

删除指定的备份:

1、 先用LIST命令找到备份唯一标识。
LIST BACKUP OF DATABASE ARCHIVELOG ALL; # lists backups of db files and logs
LIST COPY; # lists only image copies
LIST BACKUP; # lists everything


2、 删除指定的备份存储库记录和备份文件。
DELETE BACKUPPIECE 101;
DELETE CONTROLFILECOPY '/tmp/control01.ctl';
DELETE NOPROMPT ARCHIVELOG UNTIL SEQUENCE = 300;


批量删除:
DELETE BACKUP; # deletes all backups on disk and tape
DELETE BACKUP OF TABLESPACE users DEVICE TYPE sbt; # delete only from tape
DELETE COPY OF CONTROLFILE LIKE '/tmp/%';  # LIKE specifies name of the copy
DELETE NOPROMPT ARCHIVELOG ALL
BACKED UP 3 TIMES TO sbt; # backs up only if already backed up 3X to tape


删除无效备份:

RMAN>CROSSCHECK BAKCUP;
RMAN>DELETE EXPIRED BACKUP;


删除过期备份:
RMAN>DELETE OBSOLETE;

如果没有指定其他参数RMAN默认按照保留冗余策略找到过期备份后执行删除,等效于:
DELETE OBSOLETE REDUNDANCY = 1;

删除过期备份也可以指定按照时间冗余策略来删除,例如:
DELETE OBSOLETE RECOVERY WINDOW OF 7 DAYS;

强制删除备份

如果没有执行CROSSCHECK,而磁盘上备份文件确实被删除了,我们执行删除备份的时候会从RMAN收到错误提示,如下:
RMAN> delete backup tag 'TAG20070130T161822'; 使用通道 ORA_DISK_1 备份段列表 BP 关键字 BS 关键字 Pc# Cp# 状态 设备类型段名称 ------- ------- --- --- ----------- ----------- ---------- 110 115 1 1 AVAILABLE DISK D:/ORACLE/PRODUCT/10.2.0/FLASH_R ECOVERY_AREA/ROME/BACKUPSET/2007_01_30/O1_MF_NNNDF_TAG20070130T161822_2VXZTH2G_. BKP 是否确定要删除以上对象 (输入 YES 或 NO)? yes RMAN-06207: 警告: 由于状态不匹配, 所以不能删除 1 对象 (对于 DISK 通道)。 RMAN-06208: 请用 CROSSCHECK 命令修正状态 RMAN-06210: 不匹配对象的列表 RMAN-06211: ========================== RMAN-06212: 对象类型 文件名/句柄 RMAN-06213: --------------- --------------------------------------------------- RMAN-06214: Backup Piece D:/ORACLE/PRODUCT/10.2.0/FLASH_RECOVERY_AREA/ROME/BA CKUPSET/2007_01_30/O1_MF_NNNDF_TAG20070130T161822_2VXZTH2G_.BKP 我们可以用带有force参数的选项来强制删除备份: RMAN> delete force backup tag 'TAG20070130T161822'; 使用通道 ORA_DISK_1 备份段列表 BP 关键字 BS 关键字 Pc# Cp# 状态 设备类型段名称 ------- ------- --- --- ----------- ----------- ---------- 110 115 1 1 AVAILABLE DISK D:/ORACLE/PRODUCT/10.2.0/FLASH_R ECOVERY_AREA/ROME/BACKUPSET/2007_01_30/O1_MF_NNNDF_TAG20070130T161822_2VXZTH2G_. BKP 是否确定要删除以上对象 (输入 YES 或 NO)? yes 已删除备份段 备份段 handle=D:/ORACLE/PRODUCT/10.2.0/FLASH_RECOVERY_AREA/ROME/BACKUPSET/2007_0 1_30/O1_MF_NNNDF_TAG20070130T161822_2VXZTH2G_.BKP recid=110 stamp=613239503 1 对象已删除


一个命令交叉验证磁盘和磁带备份的例子:
CONFIGURE DEVICE TYPE sbt PARALLELISM 1;
CONFIGURE DEFAULT DEVICE TYPE to sbt;
CROSSCHECK BACKUP OF DATABASE;

如果没有配置磁带备份设备,也可以手工执行分配通道:
ALLOCATE CHANNEL FOR MAINTENANCE DEVICE TYPE sbt;
CROSSCHECK BACKUP OF DATABASE;


RAC环境下交叉验证的例子:
CONFIGURE DEVICE TYPE DISK PARALLELISM 2;
CONFIGURE CHANNEL 1 DEVICE TYPE DISK CONNECT 'SYS/oracle@node_1';
CONFIGURE CHANNEL 2 DEVICE TYPE DISK CONNECT 'SYS/oracle@node_2';
CROSSCHECK BACKUP;


一个删除磁带和磁盘备份的例子:
CONFIGURE DEVICE TYPE sbt PARALLELISM 1;
CONFIGURE DEFAULT DEVICE TYPE TO sbt;
DELETE BACKUPSET;

释放多个通道,如下命令可以释放所有通道:
RELEASE CHANNEL;

使用RMAN删除数据库

RMAN连接到处于MOUNT状态的TARGET数据库,就可以删除TARGET数据库,而不需要连接恢复目录;如果RMAN同时连接到恢复目录,并且指定INCLUDE COPIES AND BACKUPS参数,RMAN将删除恢复目录中的备份记录。

生成备份文件目录:
RMAN>catalog start with 'd:/oracle/product/10.2.0/flash_recovery_area';
RMAN> DELETE BACKUPSET; # deletes all backups
RMAN> DELETE COPY; # delete all image copies (including archived logs)
RMAN> DROP DATABASE; # delete all database files and unregister the database


修改备份记录的状态:
CHANGE DATAFILECOPY '/tmp/control01.ctl' UNAVAILABLE;
CHANGE COPY OF ARCHIVELOG SEQUENCE BETWEEN 1000 AND 1012 UNAVAILABLE;
CHANGE BACKUPSET 12 UNAVAILABLE;
CHANGE BACKUP OF SPFILE TAG "TAG20020208T154556" UNAVAILABLE;
CHANGE DATAFILECOPY '/tmp/system01.dbf' AVAILABLE;
CHANGE BACKUPSET 12 AVAILABLE;
CHANGE BACKUP OF SPFILE TAG "TAG20020208T154556" AVAILABLE;


修改备份记录状态使得保留冗余策略外的备份不被删除。

我们可以在执行备份的时候直接指定BACKUP...KEEP来把备份文件标记为长期备份。有一点需要注意,如果使用恢复目录来存储备份记录的话,我们应该执行BACKUP...KEEP FOREVER。

我们也可以用CHANGE命令来把一个备份标记为长期备份:
CHANGE BACKUPSET 231 KEEP;
CHANGE BACKUPSET 231 NOKEEP;
CHANGE DATAFILECOPY '/tmp/system01.dbf' KEEP UNTIL 'SYSDATE+180';

维护用户备份文件到存储库目录:
SQL> ALTER TABLESPACE users BEGIN BACKUP;
% cp $ORACLE_HOME/oradata/trgt/users01.dbf /tmp/users01.dbf;
SQL> ALTER TABLESPACE users END BACKUP;
RMAN> CATALOG DATAFILECOPY '/tmp/users01.dbf';

CATALOG BACKUPPIECE '/disk2/09dtq55d_1_2', '/disk2/0bdtqdou_1_1';


维护备份集到存储库目录:
CATALOG BACKUPPIECE '/disk2/09dtq55d_1_2', '/disk2/0bdtqdou_1_1';


备份集文件加入到存储库目录后可以在如下系统视图查找:
V$BACKUP_PIECE, V$BACKUP_SET, V$BACKUP_DATAFILE, V$BACKUP_REDOLOG, and V$BACKUP_SPFILE.

维护所有备份文件到存储库目录:
RMAN> CATALOG RECOVERY AREA; # catalog all files in the recovery area
RMAN> CATALOG START WITH '+disk'; # catalog all files from an ASM disk group
RMAN> CATALOG START WITH '/fs1/datafiles/'; # catalog all files in directory

 

从存储库目录删除记录:
CHANGE ARCHIVELOG ... UNCATALOG.
CHANGE CONTROLFILECOPY '/tmp/control01.ctl' UNCATALOG;
CHANGE DATAFILECOPY '/tmp/system01.dbf' UNCATALOG;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值