2010年(61)
分类: Oracle
2010-01-19 11:16:42
有两种方式指定数据文件的名称(即数据文件详细路径)和FILE_ID。这两项信息都可以从数据字典DBA_DATA_FILES中查询,例如:
SQL> SELECT FILE_ID,FILE_NAME FROM DBA_DATA_FILES;
FILE_ID FILE_NAME
---------- ---------------------------------------------
1 F:\ORACLE\ORADATA\JSSBOOK\SYSTEM01.DBF
2 F:\ORACLE\ORADATA\JSSBOOK\UNDOTBS01.DBF
3 F:\ORACLE\ORADATA\JSSBOOK\SYSAUX01.DBF
4 F:\ORACLE\ORADATA\JSSBOOK\USERS01.DBF
5 F:\ORACLE\ORADATA\JSSBOOK\SCOTT_TBS01.DBF实际上,如果前面你对RMAN的提示信息看得足够认真,完全不需要查询 DBA_DATA_FILES ,在整库备份和LIST操作时都显示了数据文件名称和序号。
接下来尝试通过 BACKUP DATAFILE 命令备份USERS表空间的数据文件:
RMAN> BACKUP DATAFILE 'F:\ORACLE\ORADATA\JSSBOOK\USERS01.DBF' ;
Starting backup at 29-MAR-09
using channel ORA_DISK_1
channel ORA_DISK_1: starting full datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
input datafile fno=00004 name=F:\ORACLE\ORADATA\JSSBOOK\USERS01.DBF
channel ORA_DISK_1: starting piece 1 at 29-MAR-09
channel ORA_DISK_1: finished piece 1 at 29-MAR-09
piece handle=F:\ORACLE\PRODUCT\10.2.0\DB_2\DATABASE\0EKB5694_1_1 tag=TAG20090329T164732 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 29-MAR-09提示:
在使用BACKUP DATAFILE命令时即可以指定DATAFILE名称,也可以指定FILE_ID,比如上述执行的命令完全等价于BACKUP DATAFILE 4。如果要查看指定数据文件的备份,可以用如下命令:
注:n=指定的数据文件序号,如果需要备份的数据文件有多个,n=多个序号,中间以逗号分隔即可,指定的序号在备份中必须存在对应的数据文件,否则会报错。
控制文件在Oracle中的重要性是毋庸置疑的,你看,连RMAN都给予特殊的照顾,在RMAN中备份控制文件的方式那是相当灵活,相当多。
RMAN> BACKUP CURRENT CONTROLFILE;
Starting backup at 29-MAR-09
using channel ORA_DISK_1
channel ORA_DISK_1: starting full datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
including current control file in backupset
channel ORA_DISK_1: starting piece 1 at 29-MAR-09
channel ORA_DISK_1: finished piece 1 at 29-MAR-09
piece handle=F:\ORACLE\PRODUCT\10.2.0\DB_2\DATABASE\0IKB5APP_1_1 tag=TAG20090329T180441 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:02
Finished backup at 29-MAR-09不仅限于 DATABASE ,执行 BACKUP 命令备份任何文件时都可以指定 INCLUDE CURRENT CONTROLFILE 子句,甚至是 BACKUP CURRENT CONTROLFILE 。另外你不妨猜猜,执行 BACKUP CURRENT CONTROLFILE INCLUDE CURRENT CONTROLFILE 命令时,会备份几次控制文件呢?
同理,备份 SYSTEM 表空间也会触发控制文件的自动备份。
当 AUTOBACKUP 被置为 ON 时, RMAN 做任何备份操作,都会自动对控制文件做备份。
如果要查看备份的控制文件,可以通过以下命令进行:
=================================================