一、区别
归档模式:可以进行完全、不完全恢复;若发生硬盘故障会导致数据文件丢失,可以利用物理备份和归档日志完全恢复数据库。
非归档模式:在备份过程中数据库不可用,只能部分恢复,不产生归档日志。
二、含义
1、DML语句
DML操作是对数据库中表记录的操作,主要包括表记录的插入、更新、删除和查询
2、日志分类
oracle中有两种日志,一是系统日志,二是重做日志,归档模式与重做日志有关
如果存放归档日志的空间不足,就无法进行归档,这时候在线重做日志没有组进行切换,DML语句就不能写入日志,就不能对数据库进行操作。
三、归档模式备份
使用rman工具备份及恢复
1、查看数据库是归档模式还是非归档模式,非归档模式就修改数据库归档模式。
sqlplus /nolog; conn / as sysdba; --必须管理员登录才能查看 archive log list; --查看用户是否处于归档模式中
是非归档模式,改为归档模式。
shutdown immediate; --立即关闭数据库
startup mount; --启动数据库实例并加载数据库
alter database archivelog; --更改数据库为归档模式
alter database open; --打开数据库
alter system archive log start; --启动自动归档
2、RMAN备份语句
connect target / run { allocate channel t1 type DISK; allocate channel t2 type DISK; backup format '/rmanbak/full_%T_%t_%U.bak' database; crosscheck backup; sql 'alter system archive log current'; backup format '/rmanbak/arch_%T_%t_%U.bak' archivelog all delete all input; backup current controlfile format '/rmanbak/con_%T_%t_%U.bak'; backup spfile format '/rmanbak/spf_%T_%t_%U.bak'; delete noprompt obsolete; delete expired backup; release channel t1; release channel t2; }
a、connect
connect target / //连接到目标数据库,因为环境变量已经配置好了默认的数据库实例, / 就可以直接连到该数据库
b、run
run代码块,{}中的语句可以作为一个代码块一起执行。如果不想用rman中的默认配置来备份数据库,就可以使用run代码块。
c、allocate channel
allocate channel t1 type DISK; allocate channel t2 type DISK; //分配两个通道,可以并行进行备份,等价于以下语句
configure device type disk parallelism 2; //第一种是显示分配;第二种是隐式分配,名字是有oracle自动指定的 release channel t1; release channel t2; //释放管道
d、backup
backup format '/rmanbak/full_%T_%t_%U.bak' database; //backup database是备份数据库;format是备份文件的存放位置及名称;format在database前后都可以 backup format '/rmanbak/arch_%T_%t_%U.bak' archivelog all delete all input; //backup archivelog all备份所有归档日志 //delet all input删除所有已备份的旧归档日志 backup current controlfile format '/rmanbak/con_%T_%t_%U.bak'; //back current controlfile备份当前控制文件 backup spfile format '/rmanbak/spf_%T_%t_%U.bak'; //backup spfile备份参数文件
format说明:
%c 备份片的拷贝数 %d 数据库名称 %D 位于该月中的天数 %M 位于该年中的月数 %u 是备份集编号和建立时间压缩后组成的8字符名称 %p 是备份集中的备份片的序号 %U 是%u_%p_%c的缩写形式 %t 备份集时间戳 %T 年月日格式YYYYMMDD
e、crosscheck backup 用于核对所有备份文件,包括有效和失效的备份。检查rman目录和物理文件,如果物理文件不存在于介质上,将其标记为Expired,存在就维持Available。为后面delete做准备。
f、sql
alter system archive log current //对当前日志进行归档 sql 'alter system archive log current' //在rman提示符下执行sql语句,命令用单引号括起来;可以执行查询语句,但是无任何结果输出
g、delete
delete obsolete; //清理过期备份,obsolete是过时的意思 delete expired backup; //删除过期备份