使用下列命令来显示恢复目录中该表的备份信息: RMAN> list backupset of tablespace users; 4.4.3.4 表空间备份的恢复 RMAN> RUN{
sql \restore tablespace xx; recover tablespace xx;
sql \}
4.4.3.5 备份控制文件 RMAN> run {
2> allocate channel dev1 type \3> backup
4> format \5> tag cf_monday_night 6> (current controlfile); 7> release channel dev1; 8> }
注:数据库完全备份将自动备份控制文件。(或者备份时加 include current controlfile)
4.4.4 归档模式下的BACKUP备份与完全恢复
要用 RMAN 进行联机备份操作,数据库就必须位于 ARCHIVELOG 模式。恢复 目录必须打开,目标数据库例程必须启动,数据库加载或者打开。 这部分只介绍完全恢复,不完全恢复见下一节。
4.4.4.1 整库备份与恢复备份命令:
只备份数据文件 (如果 configure controlfile autobackup on; 将自动包括控件文件, SPFILE):
RMAN> backup database;
同时备份归档日志,然后将备份后的归档日志删除 RMAN> backup database plus archivelog delete input; 明确指定同时备份控件文件: RMAN> run{
allocate channel c1 type disk;
sql 'alter system archive log current';
backup full database include current controlfile tag 'dbfull' format '/u06/oracle/rmanback/full_%u_%s_%p'; sql 'alter system archive log current'; release channel c1; }
可以用 RMAN的 plus archvielog 选项简化数据库备份: RMAN> run { 2> backup database
3> format '/xxfull%d_%T_%s' 4> plus archivelog
5> format '/xx/arch_%d_%T_%s' 6> delete all input; 7> }
完全恢复:
目标数据库必须是 mount状态 $ rman target / RMAN> startup mount RMAN> restore database; RMAN> recover database; RMAN> alter database open; 4.4.4.3 表空间的备份与恢复 备份命令:
RMAN> backup tablespace users ; 例: RMAN> RUN{
allocate channel c1 type disk;
backup tablespace users tag 'ts_users' format '/oracle/rmanback/ts_%u_%s_%p' ; release channel c1; } 恢复:
如果我们只丢失了特定的表空间的数据文件,那么我们可以选择只恢复这个表空间,而 不是恢复整个数据库。表空间恢复可以在不关闭数据库的情况下进行,只需要将需要恢复的 表空间 offline。 RMAN> RUN{
sql \restore tablespace xx; recover tablespace xx;
sql \}
恢复到一个不同的位置: RMAN> RUN{
sql \SET NEWNAME for datafile 1 to '/xx'; restore tablespace xx; switch datafile 1; recover tablespace xx;
sql \}
4.4.4.3 数据文件的备份与恢复 备份命令:
RMAN> backup datafile 3;
RMAN> backup datafile 'D:\\ORAC LE\\ORADATA\\TEST\\TEST.DB'; 恢复命令:
数 据文件 恢复与表 空间恢 复类 似 。假设数 据文件 号 为 5 的文件丢 失 ,文 件名 是:
'E:\\ORACLE\\ORADATA\\USERS.DBF', 那么我们恢复的时候可以指定文件号,也可以指定 文件名。 RMAN> run {
2> allocate channel dev1 type disk;
3> sql \
4> restore datafile 4; --或者 restore 'E:\\ORACLE\\ORADATA\\USERS.DBF' 5> recover datafile 4;
6> sql \7> release channel dev1; 8> }
恢复到一个不同的位置: $ rman target / RMAN> startup mount RMAN> RUN{
sql \SET NEWNAME for datafile 9 to '/xx/user01.dbf'; restore datafile 9; switch datafile all; recover datafile 9;
sql \}
4.4.4.4 归档重做日志的备份与恢复 备份:
整库备份的同时,备份所有归档 (以及联机日志): RMAN> backup database plus archivelog; 备份所有归档:
RMAN> backup archivelog all; 备份两天来的归档:
RMAN> backup archivelog from time='sysdate-2' [to time=’xxx’] ;