设为首页 加入收藏

TOP

ORACLERMAN备份及还原RMAN可以进行增量备份:数据库,表空间,数据文件(一)
2015-11-21 01:56:58 来源: 作者: 【 】 浏览:0
Tags:ORACLERMAN 备份 还原 RMAN 可以 进行 增量 数据库 空间 数据 文件

ORACLE RMAN备份及还原




RMAN可以进行增量备份: 数据库,表空间,数据文件


只有使用过的block可以被备份成backup set


表空间与数据文件对应关系:dba_data_files / v$datafile_header


在noarchivelog模式下,可以使用RMAN备份read-only和offline的表空间


ORACLE RMAN停机备份:


备份


RMAN连接上ORACLE,WINDOWS下在命令模式下


RMAN TARGET /


连接本地数据库用的是本地认证模式。RMAN连接数据库必须在dedicate模式下。因此在share模式下的数据库应配置一个dedicate的连接用于RMAN连接。


如果要把控制文件、参数文件也一起备份


configure controfile autobackup on;//打开autobackup
configure controfile autobackup off;//关闭autobackup
关闭数据库
RMAN>shutdown immediate
mount 数据库RMAN的备份必须在MOUNT模式下,这也就是控制文件备份的重要。
RMAN>startup mount
最简单的备份
RMAN>backup database
就这一句就OK了
这样的备份,备份集在数据库默认位置。%oracle_home%/ora92/database
当然你也可以用run来灵活的定义你的备份。
RMAN>run{
>allocate chennel d1 type disk; //分配通道
>backup full database //全备份数据库
>include current controlfile //包括当前的controlfile
>format 'e:\oracle\orders\db_%d_%s_%p_%t_%T'; //备份文件位置和文件名格式
>release channel d1;//释放通道
>}


恢复
1、数据文件损坏,而控制文件是好,或者已经恢复
RMAN连上数据库
startup mount
restore database
recover database noredo;
alter database open resetlogs;
recover database noredo该命令指示RMAN执行最后的恢复操作以准备打开这个数据库。因为是在NOARCHIVELOG模式下并且不应用任何归档的重做日志并且丢失了联机重做日志,所以要求在这条命令中使用noredo参数。


最后使用alter database open resetlogs打开数据库。由于已经还原了控制文件并且需要重新构建重做日志,所以必须用resetlogs。
2、还原控制文件
startup nomount;
set dbid =
restore controlfile from autobackup ;
alter database mount;
restore database;
recover database noredo;
alter database open resetlogs;
alter database open;
在这个例子中有一个DBID这个可以
select * from v$database中查到。但是一个数据库在控制文件坏掉了不能OPEN如何能看的到呢这就在平时把这个DBID记下来。
这是最简单的用RMAN备份与恢复的例子,但从中可以看到RMAN备份与恢复的梗概。


ORACLE RMAN在线备份:


1. ORACLE RMAN在线备份之前需要切换日志方式为归档日志;


a. 关闭数据库
SQL> shutdown immediate;


b. 启动数据库到mount状态
SQL> startup mount;


c. 启用归档模式
SQL> alter database archivelog;


d. 查看修改后的数据库备份和恢复策略及归档文件的位置
SQL> archive log list;


注意:修改成archive模式之后,之前所有的数据库备份均无效。


e. 修改相应的初始化参数
Oracle10g之前,你还需要修改初始化参数使数据库处于自动归档模式。
可用SQL> show parameter log_archive_start;查看
NAME TYPE VALUE
------------------------------------ ----------- --------------
log_archive_start boolean FALSE
SQL> alter system set log_archive_start=true scope=spfile;
重启数据库此参数生效,此时数据库处于自动归档模式。


当然你也可以不做第5步,直接
SQL>archive log start
使数据库启用自动归档,但是重启后数据库仍然处于手工归档模式。


2. 运行:RMAN target /


3. RMAN信息保存:默认保存在control file中,保存周期7天


调整:alter system set control_file_record_keep_time=天数;


4. 搭建独立数据库保存RMAN备份信息


由于只有一个数据库,就建在本身数据库上


a. 创建表空间RC:create tablespace rc datafile size 10M autoextend on next 1M


b. 创建用户RC:


CREATE USER rc IDENTIFIED BY rc TEMPORARY TABLESPACE temp DEFAULT TABLESPACE rc QUOTA UNLIMITED ON rc;


c. 授权RC: GRANT RECOVERY_CATALOG_OWNER TO rc;


d. 搭建:


rman catalog rc/rc@orcl


RMAN>create catalog;


RMAN>exit


rman target / catalog rc/rc@orcl


RMAN>register database;


e. 使用:


rman target / catalog rc/rc@orcl


这种连接方式后,数据就会在控制文件和catalog各存一份


5. 全局参数配置:


查看:show all;


修改:configure 参数名称 具体设置


例如:修改是否自动保存control file:configure controlfile autobackup on;


恢复默认值:configure 参数名称 clear;


关键参数:


a. 保存周期:retention policy


默认是redundancy 1:保留一个备份;


可用值:recovery window of 7 days:保留可以满足7天恢复周期的备份


根据条件检查:report obsolete:RMAN会根据保存周期参数来列出可以删除的备份


删除多于备份:delete obsolete


b. 优化备份:backup optimization:RMAN会自动忽略已经备份过的内容(数据文件,归档日志,备份块)


前提:备份指定同一个channel
首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇oracle中使用物化视图实现表的同步 下一篇Oracle远程连接数据库解决方案

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: