the target database is called "his" and has the same TNS alias user rman has been granted "recovery_catalog_owner "privileges 目标数据库的连接用户为internal帐号,或者以其他SYSDBA类型帐号连接 the recovery catalog database is called "rman" and has the same TNS alias the schema containing the recovery catalog is "rman" (same password)
7.1.数据库完全备份 RMAN> run { 2> # backup the complete database to disk 3> allocate channel dev1 type disk; 4> backup 5> full 6> tag full_db_backup 7> format "/oracle/backups/db_t%t_s%s_p%p" 8> (database); 9> release channel dev1; 10> } 行# 2: 表明该行为注释行(#是注释符) 3&9: See section 15 - Channels通道定义 5: Full backup (default if full or incremental not specified)完全备份模式(缺省模式) 6: Meaningful string (<=30 chars)(备份集标识,<=30个字符) 7: Filename to use for backup pieces, including substitution variables. 备份片使用的文件名,可以包含代替变量。 8: Indicates all files including controlfiles are to be backed up表明备份所有数据文件包括控制文件
通过下面的命令显示恢复目录中记载的备份集信息:
RMAN> list backupset of database; 7.2.备份表空间 RMAN> run { 2> allocate channel dev1 type disk; 3> backup 4> tag tbs_users_read_only 5> format "/oracle/backups/tbs_users_t%t_s%s" 6> (tablespace users) 7> } 使用下列命令来显示恢复目录中该表的备份信息:
RMAN> list backupset of tablespace users; 假设USERS表空间在备份后被置为READ ONLY表空间,以后的全库备份就可以不用备份该表空间,为了达到这个目的,可以在以后的备份中指定"skip readonly"。
注意,目标数据库不需要一定打开,只要加载就可以,因为表空间的信息存储在控制文件中。
7.3.备份单独数据文件 RMAN> run { 2> allocate channel dev1 type "SBT_TAPE"; 3> backup 4> format "%d_%u" 5> (datafile "/oracle/dbs/sysbigdb.dbf"); 6> release channel dev1; 7> } 行# 2: 使用MML(media manager layer)分配磁带驱动器,必须指定类型为SBT_TAPE;
注意因为没有指定标识,所以标识为空;
使用下面的命令显示恢复目录中备份的表空间:
RMAN> list backupset of datafile 1; 7.4.备份数据文件 RMAN> run { 2> allocate channel dev1 type "SBT_TAPE"; 3> copy datafile "/oracle/dbs/temp.dbf" to "/oracle/backups/temp.dbf"; 4> release channel dev1; 5> } 使用下面的命令显示恢复目录中的文件拷贝:
RMAN> list copy of datafile "/oracle/dbs/temp.dbf"; 拷贝数据文件和备份数据文件是不一样的,数据文件拷贝是一个该文件的镜像。文件的备份产生一个备份集。
7.5.备份控制文件 RMAN> run { 2> allocate channel dev1 type "SBT_TAPE"; 3> backup 4> format "cf_t%t_s%s_p%p" 5> tag cf_monday_night 6> (current controlfile); 7> release channel dev1; 8> } 注意:数据库完全备份将自动备份控制文件。
8.归档模式下的备份 数据库状态:
恢复目录:打开
目标数据库:例程启动,数据库加载或者打开
备份操作使用的命令与非归档模式下基本一样。
8.1. Backing up archived logs 备份归档日志 下面的脚本备份归档日志:
RMAN> run { 2> allocate channel dev1 type disk; 3> backup 4> format "/oracle/backups/log_t%t_s%s_p%p" 5> (archivelog all) 6> release channel dev1; 7> } 下面的脚本归档日志从# 90 to 100:
[ 本帖最后由 rollingpig 于 2006-11-6 09:16 编辑 ]
回复于:2006-11-02 21:25:57
RMAN> run { 2> allocate channel dev1 type disk; 3> backup 4> format "/oracle/backups/log_t%t_s%s_p%p" 5> (archivelog from logseq=90 until logseq=100 thread 1); 6> release channel dev1; 7> } 下面的脚本备份在24小时内产生的归档日志,在备份完成后会自动删除归档日志。如果备份失败,归档日志不会被删除。
RMAN> run { 2> allocate channel dev1 type disk; 3> backup 4> format "/oracle/backups/log_t%t_s%s_p%p" 5> (archivelog from time "sysdate-1" all delete input); 6> release channel dev1; 7> } 使用下面的命令显示恢复目录中的归档日志:
RMAN> list backupset of archivelog all; 注意:RMAN找到归档日志后会备份指定日志,如果无法找到日志,它也不会返回错误信息。
8.2. Backing up the online logs 备份联机日志 联机日志不能用RMAN来备份,必须先将其归档。
为了实现这点,必须在RMAN中执行如下SQL语句:
RMAN> run { 2> allocate channel dev1 type disk; 3> sql "alter system archive log current"; 4> backup 5> format "/oracle/backups/log_t%t_s%s_p%p" 6> (archivelog from time "sysdate-1" all delete input); 7> release channel dev1; 8> } 上面的脚本可以在执行完一个完整的联机数据库备份后执行,确保所有的重做日志可以将数据库恢复到一个一致性的状态。