# RMAN
备份
connect target system/oracle@oratest1
#脱机备份需要先关闭和加载 数据库
shutdown immediate
startup mount
run
{
#分配通道
allocate c hannel c1 device type disk format 'd:\ora\backup\oratest1_full_disk_%U';
#allocate channel c2 device type sbt;
#分配通道,限定备份片大小
#allocate channel c3 type disk maxpiecesize=100m format='f:\o racle\backup1\oratest1_full_disk_%U';
#backup 命令
#标记
backup database tag='test backup';
#备份数据库的同时删除过期的archivelog
#backup database plus archivelog delete input
#限定备份集大小
#backup database maxsetsize=100m ; #注意:备份集中的数据文件大小超出定义的限定范围,备份就会失败。
#使用backup命令检查数据库的错误
#backup validate database;
#修改备份集的保存策略
#backup database keep forever; #永久保存备份
#backup database keep until time='sysdata+180'; #只保存备份180天
#跳过脱机的,不可存取的或只读的数据文件
#backup database skip readonly; #跳过只读文件
#backup database skip offline; #跳过脱机文件(脱机但是物理存在的文件)
#backup database skip inaccessible; #跳过不可存取的文件(这些文件是没有物理存在于磁盘上,被删除或移出的文件)
#backup database skip readonly skip offline skip inaccessible;
#强制备份只读的数据文件
#backup database force;
#基于上次备份时间来的备份数据文件
#backup database not backed up ; #只备份添加的新数据文件
#备份指定时间周期内没有被备份的数据文件
#backup database not backed up since time='sysdate-2';
#检查逻辑讹误
#backup check logical database; #检查逻辑讹误的同时物理备份数据库
#backup validate check logical database; #只进行逻辑数据库验证
#如果要在给定的错误数内仍然继续 执行备份,需要先设置maxcorrupt参数值,然后再执行backup命令
#set maxcorrupt for datafile 1,2,3,4,5,6,7 to 10;
#在RMAN复制设备上生成备份副本
#backup database copies=2;
#set backup copies=2 #(也可以使用set命令)
#备份控制文件
#backup database include current controlfile;
#set 命令
#set echo ; #在消息日志中显示RMAN命令
#set DBID ; #指定一个数据库标识符DBID
#set newname ; #用于执行TSPITR或数据库复制操作,该命令允许指定新的数据库数据文件名,使用该命令的同时还要使用开关命令
#set maxcorrupt for datafile ; #定义RMAN 操作失败前所允许的数据库讹误的最大数目
#set archivelog destination ; #修改archivelog的archive_log_dest_1目的地
#联机数据库备份
#不需要关闭数据库,数据库要在archivelog模式
#backup database plus archivelog;
#检查控制文件中 存储的archivelog是否真正存储在磁盘上,在crosscheck期间,oracle假设缺少的archivelog已经丢失,并且不再尝试备份这些archivelog
#crosscheck archivelog all;
#表空间备份
#backup tablespace users;
#backup tablespace users plus archivelog;
#backup tablespace users include current controlfile plus archivelog;
#数据文件备份
#backup datafile 2;
#backup datafile 'F:\oracle\oradata\oratest1\USERS01.DBF';
#backup datafile 'F:\oracle\oradata\oratest1\USERS01.DBF' plus archivelog;
#ARCHIVELOG 备份
#backup archivelog all;
#backup archivelog from time 'sysdate-1';
#backup archivelog from sequence 353; #日志序列号
#backup archivelog all delete input ; #备份之后删除archivelog
#backup archivelog from sequence 353 delete input;
#backup archivelog not backed up 3 times; #确保至少备份3次archivelog,并且不会再次备份已经备份过3次的archivelog
#backup archivelog all delete input until time 'sysdate -2 '; #确保archivelog 在磁盘上保留一定的天数
#delete noprompt archivelog until time 'sysdate-1';
#备份参数文件
#backup spfile;
#备份控制文件
#backup current controlfile; #生成当前控制文件的一个副本
#backup current controlfile for standby; #创建一个备用数据库使用的备份控制文件
#创建一个含有外部创建的控制文件备份的备份集
#sql "alter database backup controlfile to "f:\oracle\backup1\CONTROL01.CTL" "; #此语句可能有问题
#backup controlfilecopy 'F:\contf_back.ctl';
#备份集备份(只能将备份集从磁盘备份到磁盘,或将备份集从磁盘备份到磁带,不支持磁带到磁带或磁带到磁盘的操作)
#backup backupset all;
#backup backupset all format='f:\oracle\backup1\backup_%U.bak' tag='Backup of backupsets' channel 'ORA_DISK_1';
#backup backupset completed before 'sysdate-2';
#backup backupset completed before 'sysdate-2' delete input;
#backup backupset completed after 'sysdate-2' delete input;
#副本(副本只能生成在磁盘上,生成副本是必须mount 和open 数据库,生成副本的历史记录被保存在数据库控制文件中)
#数据文件副本(数据库可以联机也可以脱机)
#copy datafile 'F:\oracle\oradata\oratest1\users01.dbf' to 'f:\oracle\backup1\users01.dbf.bak';
#将已经备份的副本再次复制
#copy datafilecopy 'f:\oracle\backup1\users01.dbf.bak' to 'f:\oracle\backup1\users01.dbf.bak2';
#控制文件副本
#copy current controlfile to 'f:\oracle\backup1\controlfile.backup';
#创建用于备用数据库的控制文件
#copy current controlfile for standby to 'f:\oracle\backup1\controlfile.backup.forstandby';
#创建控制文件副本的副本
#copy controlfilecopy 'f:\oracle\backup1\controlfile.backup' to 'f:\oracle\backup1\controlfile.backup2';
#ARCHIVELOG文件副本
#copy archivelog 'f:\oracle\log1\ARC00021.001' to 'f:\oracle\backup1\ARC00021.001';
#增量RMAN 备份
#基本备份
#backup incremental level=0 database;
#差异备份(备份上一次进行的同级或低级差异增量备份操作以后所有发生变化的数据块)
#backup incremental level=2 database;
#backup incremental level=1 database;
#累积备份(备份以前进行的所有级别备份包含的变化的数据块,包括这次选择的备份级别)
#backup incremental level=2 cumulative database;
#表空间,数据文件以及数据文件副本的增量备份(注意:控制文件,archivelog以及备份集都不能生成增量备份)
#backup incremental level=0 tablespaces users;
#backup incremental level=2 tablespace users;
#backup incremental level=0 datafile 4;
#backup incremental level=3 datafile 4;
#backup incremental level=1 database plus archivelog;
release channel c1;
}
connect target system/oracle@oratest1
#脱机备份需要先关闭和加载 数据库
shutdown immediate
startup mount
run
{
#分配通道
allocate c hannel c1 device type disk format 'd:\ora\backup\oratest1_full_disk_%U';
#allocate channel c2 device type sbt;
#分配通道,限定备份片大小
#allocate channel c3 type disk maxpiecesize=100m format='f:\o racle\backup1\oratest1_full_disk_%U';
#backup 命令
#标记
backup database tag='test backup';
#备份数据库的同时删除过期的archivelog
#backup database plus archivelog delete input
#限定备份集大小
#backup database maxsetsize=100m ; #注意:备份集中的数据文件大小超出定义的限定范围,备份就会失败。
#使用backup命令检查数据库的错误
#backup validate database;
#修改备份集的保存策略
#backup database keep forever; #永久保存备份
#backup database keep until time='sysdata+180'; #只保存备份180天
#跳过脱机的,不可存取的或只读的数据文件
#backup database skip readonly; #跳过只读文件
#backup database skip offline; #跳过脱机文件(脱机但是物理存在的文件)
#backup database skip inaccessible; #跳过不可存取的文件(这些文件是没有物理存在于磁盘上,被删除或移出的文件)
#backup database skip readonly skip offline skip inaccessible;
#强制备份只读的数据文件
#backup database force;
#基于上次备份时间来的备份数据文件
#backup database not backed up ; #只备份添加的新数据文件
#备份指定时间周期内没有被备份的数据文件
#backup database not backed up since time='sysdate-2';
#检查逻辑讹误
#backup check logical database; #检查逻辑讹误的同时物理备份数据库
#backup validate check logical database; #只进行逻辑数据库验证
#如果要在给定的错误数内仍然继续 执行备份,需要先设置maxcorrupt参数值,然后再执行backup命令
#set maxcorrupt for datafile 1,2,3,4,5,6,7 to 10;
#在RMAN复制设备上生成备份副本
#backup database copies=2;
#set backup copies=2 #(也可以使用set命令)
#备份控制文件
#backup database include current controlfile;
#set 命令
#set echo ; #在消息日志中显示RMAN命令
#set DBID ; #指定一个数据库标识符DBID
#set newname ; #用于执行TSPITR或数据库复制操作,该命令允许指定新的数据库数据文件名,使用该命令的同时还要使用开关命令
#set maxcorrupt for datafile ; #定义RMAN 操作失败前所允许的数据库讹误的最大数目
#set archivelog destination ; #修改archivelog的archive_log_dest_1目的地
#联机数据库备份
#不需要关闭数据库,数据库要在archivelog模式
#backup database plus archivelog;
#检查控制文件中 存储的archivelog是否真正存储在磁盘上,在crosscheck期间,oracle假设缺少的archivelog已经丢失,并且不再尝试备份这些archivelog
#crosscheck archivelog all;
#表空间备份
#backup tablespace users;
#backup tablespace users plus archivelog;
#backup tablespace users include current controlfile plus archivelog;
#数据文件备份
#backup datafile 2;
#backup datafile 'F:\oracle\oradata\oratest1\USERS01.DBF';
#backup datafile 'F:\oracle\oradata\oratest1\USERS01.DBF' plus archivelog;
#ARCHIVELOG 备份
#backup archivelog all;
#backup archivelog from time 'sysdate-1';
#backup archivelog from sequence 353; #日志序列号
#backup archivelog all delete input ; #备份之后删除archivelog
#backup archivelog from sequence 353 delete input;
#backup archivelog not backed up 3 times; #确保至少备份3次archivelog,并且不会再次备份已经备份过3次的archivelog
#backup archivelog all delete input until time 'sysdate -2 '; #确保archivelog 在磁盘上保留一定的天数
#delete noprompt archivelog until time 'sysdate-1';
#备份参数文件
#backup spfile;
#备份控制文件
#backup current controlfile; #生成当前控制文件的一个副本
#backup current controlfile for standby; #创建一个备用数据库使用的备份控制文件
#创建一个含有外部创建的控制文件备份的备份集
#sql "alter database backup controlfile to "f:\oracle\backup1\CONTROL01.CTL" "; #此语句可能有问题
#backup controlfilecopy 'F:\contf_back.ctl';
#备份集备份(只能将备份集从磁盘备份到磁盘,或将备份集从磁盘备份到磁带,不支持磁带到磁带或磁带到磁盘的操作)
#backup backupset all;
#backup backupset all format='f:\oracle\backup1\backup_%U.bak' tag='Backup of backupsets' channel 'ORA_DISK_1';
#backup backupset completed before 'sysdate-2';
#backup backupset completed before 'sysdate-2' delete input;
#backup backupset completed after 'sysdate-2' delete input;
#副本(副本只能生成在磁盘上,生成副本是必须mount 和open 数据库,生成副本的历史记录被保存在数据库控制文件中)
#数据文件副本(数据库可以联机也可以脱机)
#copy datafile 'F:\oracle\oradata\oratest1\users01.dbf' to 'f:\oracle\backup1\users01.dbf.bak';
#将已经备份的副本再次复制
#copy datafilecopy 'f:\oracle\backup1\users01.dbf.bak' to 'f:\oracle\backup1\users01.dbf.bak2';
#控制文件副本
#copy current controlfile to 'f:\oracle\backup1\controlfile.backup';
#创建用于备用数据库的控制文件
#copy current controlfile for standby to 'f:\oracle\backup1\controlfile.backup.forstandby';
#创建控制文件副本的副本
#copy controlfilecopy 'f:\oracle\backup1\controlfile.backup' to 'f:\oracle\backup1\controlfile.backup2';
#ARCHIVELOG文件副本
#copy archivelog 'f:\oracle\log1\ARC00021.001' to 'f:\oracle\backup1\ARC00021.001';
#增量RMAN 备份
#基本备份
#backup incremental level=0 database;
#差异备份(备份上一次进行的同级或低级差异增量备份操作以后所有发生变化的数据块)
#backup incremental level=2 database;
#backup incremental level=1 database;
#累积备份(备份以前进行的所有级别备份包含的变化的数据块,包括这次选择的备份级别)
#backup incremental level=2 cumulative database;
#表空间,数据文件以及数据文件副本的增量备份(注意:控制文件,archivelog以及备份集都不能生成增量备份)
#backup incremental level=0 tablespaces users;
#backup incremental level=2 tablespace users;
#backup incremental level=0 datafile 4;
#backup incremental level=3 datafile 4;
#backup incremental level=1 database plus archivelog;
release channel c1;
}