Oracle涂抹oracle学习笔记第8章RMAN说,我能备份
本次测试服务器为172.16.25.33
使用rman连接本地数据库
rman target /
在rman中执行启动与关闭的命令与sqlplus相同
在rman中执行sql语句
sql ‘需要执行的语句’;
也可以通过输入host进入主机执行系统命令然后exit退出主机页面再进入rman
整库的备份
backup database;
提示在非存档模式下无法备份
需要设置成归档模式步骤如下
非归档模式转换成归档模式
数据库创建过程中需要指定归档和非归档模式,如果选择的是非归档模式,可以在数据库创建完成后 手工改变成归档模式,具体操作步骤如下。
(1 )关闭数据库:
shutdown immediate;
(2 )启动数据库到 mount 状态:
startup mount;
(3 )修改数据库归档模式:
alter database archivelog;
(4 )启动数据库:
alter database open;
(5 )定义归档位置,也就是归档日志保存路径:
alter system set log_archive_dest_1="location=/home/oracle/app/oracle/arch/orcl" scope=both;
(6 )确认配置生效:
archive log list;
再次执行全库备份
默认备份位置为
/home/oracle/app/flash_recovery_area/ORCL/backupset
下面以日期生成一个文件夹
真的备份操作系统指定备份集的存储位置,最简单的方式是在执行backup命令的时候指定备份段的路径
backup database format '/home/oracle/rman_backup/bak_%U';
表空间的备份
只要实例启动并处于加载状态,无论数据库是否打开,都可以在rman中对表空间进行备份.例如备份users表空间
同样可以指定format参数显式自定义备份片段名称
通过 list backup of tablespace users;查看一下备份
从输出的信息中显示,users表空间存在多份备份,因为前面执行过全库备份
删除备份
delete backupset 6;
要求输入yes确认
8.3.3数据文件的备份
有两种方式指定数据文件的名称(即数据文件的详细路径)和FILE_ID.这两项信息都可以通过数据字典DBA_DATA_FILES查询
select file_id,file_name from dba_data_files;
PS:实际上在整库备份操作和list操作时都显示了数据文件的文件名称和序号
备份USERS表空间的数据文件
backup datafile '/home/oracle/app/oradata/orcl/users01.dbf';
PS:使用backup datafile指定数据文件的备份既可以指定datafile名称也可以指定file_id
如果要查看指定数据文件的备份,可以用如下命令
list backup of datafile n; n值指定数据文件的序号
8.3.4控制文件的备份
backup current controlfile;
执行backup命令指定include current controlfile如
backup database include current controlfile;
甚至在备份控制文件的时候也可以包含控制文件
backup current controlfile include current controlfile;
备份system表空间也会触发控制文件的备份
通过configure命令将controlfile autobackup置为on
configure controlfile autobackup on;
当autobackup被置为on时,rman做任何的备份操作,都会自动对控制文件做备份.
如果要查看备份的控制文件,可以使用以下命令
list backup of controlfile;
8.3.5归档文件的备份
归档日志对于数据库介质恢复相当关键,其虽然不像控制文件一旦损坏则数据库马上崩溃,但重要性丝毫不减,只要拥有归档日志文件
,就能确保我们将数据库恢复到备份之后的任意时刻
backup archivelog all;
8.3.6初始化参数文件的备份
通常在备份控制文件时,rman也会自动备份服务器端的初始化参数文件,并置于控制文件相同的备份片段中.由此极少单独对spfile进行
备份,如果确实需要备份使用backup spfile即可
8.3.7对备份集进行备份
备份集也能备份
备份所有备份集
backup backupset all;
备份指定备份集
backup backupset n;
8.4RMAN命令知多少
8.4.1显示rman默认配置-show命令
#default代表使用默认配置没有修改过
8.4.2列出备份信息
列出数据库所有备份信息
list backup
列出备份的控制文件信息
list backup of controlfile;
列出指定数据文件的备份信息
list backup of datafile 1;
列出指定表空间的备份信息
ist backup of tablespace 'system';
列出所有备份的归档文件信息
list backup of archivelog all;
列出某个设备上的所有信息
list device type disk backup;
列出当前数据库的所有归档
list archivelog all;
列出所有无效备份
list expired backup;
8.4.3删除备份
用于删除rman备份记录及相应的物理文件.当使用rman执行备份操作时,会在rman资料库中生成rman的备份记录,默认情况下rman备份记录
会被存放在目标数据库的控制文件中,如果配置了恢复目录(Recovery Catalog),那么该备份记录也会被存放到恢复目录中
删除过期备份
delete obsolete;
删除无效备份
delete expired backup;
删除expired副本
delete expired copy;
删除所有备份集
delete backup;
删除所有映像副本
delete copy;
8.4.4报表显示-report命令
report命令主要用于当前备份信息的分析,如那些备份已过期,那些文件该备份,那些备份不可用
那些备份可以删除
查看7天前的数据库模式
report schema at time 'sysdate-7';
PS:查看模式信息必须了解到catalog数据库
查看所有需要的备份
report need backup;
查看指定的表空间是否备份
report need backup tablespace system;
查看过期备份
report obsolete;
8.4.5执行检查-crosscheck命令
crosscheck命令用来检查备份或者归档物理文件的状态,如果物理文件存在,并且控制文件(恢复记录)中有匹配记录,则标记该对象为avilable(有效),如果文件不存在了,则标记对象状态为expired(无效)
crosscheck不会主动删除文件(没有这个功能),它只是修改控制文件中对应记录的标记状态,因此如果要删除哪些expired记录,还是的手动通过delete expired命令进行.
检查所有归档文件
crosscheck archivelog all;
检查所有备份集
crosscheck backup;
8.4.5修改状态-change命令
change命令可以用来修改备份文件或者归档文件的状态,不是指物理文件,而是这些文件在控制文件(或恢复目录)中记录的状态,状态又两种available(可用),和unacaiable(不可用)
修改指定备份集不可用
change backupset 24 unavailable;
8.5RMAN备份进阶篇
8.5.1是否选择增量备份
虽然说用backup命令生成的备份集中只备份了那些使用了的数据块,备份集实际大小已经比目标数据库小了很多.不过对于修改不是很频繁但数据文件体积较大的的数据库,在执行备份的时候
希望有一种功能,备份时只备份那些修改过的数据,这样一来备份集就会小很多.增量备份功能正是满足这一功能而出现的.
建立增量备份非常简单,实质就是指定一个参数incremental level=n(n最大不超过4),0级备份相当于数据库的完整备份
建立级别为0的全库备份
backup incremental level=0 database;
PS:如果没有先建立0级备份直接使用backup incremental level=1 database;命令建立级别为1的增量备份则会先建立级别为0的全量备份再建立增量备份
RMAN提供了两种增量备份的类型:DIFFERENTIAL(差异)和CUMULATIVE(累积),这两种增量类型在创建备份集时的算法是不一样的.默认情况是差异备份,如果要建立累积备份需要在建立备份是时候指定CUMULATIVE
backup incremental level=2 cumulative database;