rman异机恢复 为什么 1级 恢复 慢

RMAN基于时间的不完全恢复_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
RMAN基于时间的不完全恢复
上传于||文档简介
&&R​M​A​N​基​于​时​间​的​不​完​全​恢​复
阅读已结束,如果下载本文需要使用3下载券
想免费下载本文?
定制HR最喜欢的简历
你可能喜欢ylw6006 的BLOG
用户名:ylw6006
文章数:233
评论数:734
访问量:1661021
注册日期:
阅读量:5863
阅读量:12276
阅读量:358885
阅读量:1055009
51CTO推荐博文
本节将演示下rman基于时间点的不完全恢复,修改过的数据有执行commit操作的事务,只要备份文件和联机重做日志或者归档日志文件存在,理论上都是可以恢复的
1:使用rman备份test表空间,test在oracle里面是一个保留关键字,所以备份的时候要加双引号
RMAN& backup tablespace &TEST& format '/u01/backup/test_1216.dbf'
2:使用yang用户连接数据库实例,进行数据操作,改用户的默认表空间即为test
yang SQL&select default_tablespace from dba_users where username='YANG';
DEFAULT_TABLESPACE
------------------------------
yang SQL&conn yang/yang
Connected.
yang SQL&col object_name format a30;
yang SQL&select object_name,object_type from user_
OBJECT_NAME&&&&&&&&&&&&&&&&&&& OBJECT_TYPE
------------------------------ -------------------
TEST&&&&&&&&&&&&&&&&&&&&&&&&&& TABLE
yang SQL&select * from test order by 1;
&&&&&&& ID NAME
---------- --------------------------------
&&&&&&&& 1 one
&&&&&&&& 2 two
&&&&&&&& 3 three
3:插入一条新数据,并提交事务
yang SQL&insert into test values (4,'four');
1 row created.
Commit complete.
4:使用sys用户登录数据库,查看当前的联机日志组为组1
USER is &SYS&
yang SQL&select group#,status from v$
&&& GROUP# STATUS
---------- ----------------
&&&&&&&& 1 CURRENT
&&&&&&&& 2 UNUSED
&&&&&&&& 3 UNUSED
yang SQL&!strings /u01/app/oracle/oradata/yang/redo01.log |grep 'four' //在lgwr进程发生之前,记录是保存在redolog buffer中
yang SQL&!strings /u01/app/oracle/oradata/yang/redo01.log |grep 'four' //commit后,记录保存在当前active状态的联机重做日志文件中
yang SQL&!strings /u01/app/oracle/oradata/yang/test01.dbf |grep 'four'
yang SQL&alt //在checkpoint发生后,记录才真实可靠的写入到数据文件中
System altered.
yang SQL&!strings /u01/app/oracle/oradata/yang/test01.dbf |grep 'four'
5:继续更新一条记录,但不执行提交操作
yang SQL&insert into test values (5,'five');
1 row created.
yang SQL&select count(*)
& COUNT(*)
----------
&&&&&&&& 5
6:记录正常时刻的系统时间,后面用来做恢复操作时使用,生产环境下如果遇到类似的情况,可以根据实际情况进行估计,通常使用logminer工具获取这个时间
yang SQL&select to_char(sysdate,'YYYY-MM-DD:HH24:MI:SS')
-------------------
7:模拟数据丢失,这里就直接删除test表,在生产环境下,可能出现磁盘故障,用户误操作等情况使关键的数据丢失
Table dropped.
yang SQL&select count(*)
select count(*) from test
&&&&&&&&&&&&&&&&&&&& *
ERROR at line 1:
ORA-00942: table or view does not exist
8:将数据库关闭,重新启动到mount状态,并使用rman进行恢复
yang SQL&conn /as sysdba
Connected.
Database closed.
Database dismounted.
ORACLE instance shut down.
[oracle@rhel6 oradata]$ rman target /
Recovery Manager: Release 11.2.0.1.0 - Production on Thu Dec 16 16:01:43 2010
Copyright (c) , Oracle and/or its affiliates.& All rights reserved.
connected to target database: YANG (DBID=, not open)
Oracle instance started
database mounted
Total System Global Area&&&
Fixed Size&&&&&&&&&&&&&&&&&&&& 2220200 bytes
Variable Size&&&&&&&&&&&&&&&
Database Buffers&&&&&&&&&&&&
Redo Buffers&&&&&&&&&&&&&&&&&& 5554176 bytes
RMAN& run {
2& allocate channel c1&&& //分配三个通道,提高并发
3& allocate channel c2
4& allocate channel c3
5& set until time &to_date(':15:37:05','YYYY-MM-DD:HH24:MI:SS')&; //指定恢复数据库状态的时间点
6&&&&&&&&&&&&&&&&& //还原数据库文件
7&&&&&&&&&&&&&&&&& //恢复数据库文件
8& alter dat&&& //将数据库打到open状态,resetlogs参数将日志重新归位,使数据库的scn,检查点等保持一致
using target database control file instead of recovery catalog
allocated channel: c1
channel c1: SID=6 device type=DISK
allocated channel: c2
channel c2: SID=89 device type=DISK
allocated channel: c3
channel c3: SID=8 device type=DISK
executing command: SET until clause
Starting restore at 16-DEC-10
channel c1: starting datafile backup set restore
channel c1: specifying datafile(s) to restore from backup set
channel c1: restoring datafile 00001 to /u01/app/oracle/oradata/yang/system01.dbf
channel c1: restoring datafile 00002 to /u01/app/oracle/oradata/yang/sysaux01.dbf
channel c1: restoring datafile 00003 to /u01/app/oracle/oradata/yang/undotbs01.dbf
channel c1: restoring datafile 00004 to /u01/app/oracle/oradata/yang/users01.dbf
channel c1: restoring datafile 00006 to /u01/app/oracle/oradata/yang/backup_test1.dbf
channel c1: reading from backup piece /u01/backup/full_bak1216.dbf
channel c2: starting datafile backup set restore
channel c2: specifying datafile(s) to restore from backup set
channel c2: restoring datafile 00005 to /u01/app/oracle/oradata/yang/test01.dbf
channel c2: reading from backup piece /u01/backup/test_1216.dbf
channel c2: piece handle=/u01/backup/test_1216.dbf tag=TS
channel c2: restored backup piece 1
channel c2: restore complete, elapsed time: 00:00:03
channel c1: piece handle=/u01/backup/full_bak1216.dbf tag=FULL_BACKUP
channel c1: restored backup piece 1
channel c1: restore complete, elapsed time: 00:00:45
Finished restore at 16-DEC-10
Starting recover at 16-DEC-10
starting media recovery
archived log for thread 1 with sequence 1 is already on disk as file /u01/app/oracle/flash_recovery_area/YANG/archivelog//o1_mf_1_1_6jmc341s_.arc
archived log file name=/u01/app/oracle/flash_recovery_area/YANG/archivelog//o1_mf_1_1_6jmc341s_.arc thread=1 sequence=1
media recovery complete, elapsed time: 00:00:08
Finished recover at 16-DEC-10
database opened
released channel: c1
released channel: c2
released channel: c3
9:测试恢复数据
&SQL&conn yang/yang
Connected.
&Name&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& Null?&&& Type
&----------------------------------------- -------- ----------------------------
&ID&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& NUMBER(38)
&NAME&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& VARCHAR2(32)
yang SQL&select *
&&&&&&& ID NAME
---------- --------------------------------
&&&&&&&& 3 three
&&&&&&&& 1 one
&&&&&&&& 2 two
&&&&&&&& 4 four
&本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:┆阅读(0)┆评论(0)RMAN全库【完全恢复/不完全恢复】_数据库技术_Linux公社-Linux系统门户网站
你好,游客
RMAN全库【完全恢复/不完全恢复】
来源:Linux社区&
作者:Oracle之路
今天有幸做了几个RMAN的全库恢复实验,这里是一个brief版,方便忘了时可以瞬速找到
一 完全恢复1.数据库全库【完全恢复】$ rman target /& & & & & & & & & & & & & & 登录rman工具,如果使用了catalog,则登陆方法rman targetsys/@lscatalogcata/cata@leoRMAN& startup mount& & & & & & & & & & & & 必须为mount状态,才能restore 和 recover 数据库RMAN& restore database;& & & & & & & & & & 复制旧数据文件覆盖损坏的数据文件
RMAN& recover database;& & & & & & & & & & 数据文件头SCN号同步当前日志中最后一个SCN号【完全恢复】RMAN& alter database open;& & & & & & & & 打开数据文件
二 不完全恢复
1.基于时间点【不完全恢复】在restore& recover命令中直接使用until time 、until scn 、 until sequence参数这种方法避免使用run代码块,建议使用这种方法& & 【必须启动到mount状态,才能restore 和 recover& 数据库】restore database until time "to_date(' 19:13:50','yyyy-mm-dd hh24:mi:ss')";recover database until time "to_date(' 19:13:50','yyyy-mm-dd hh24:mi:ss')";alter dat& & & & & & & & & 【resetlogs只在&不完全恢复&之后才有效,不完全恢复必须加resetlogs/noresetlogs选项打开数据,重置归档日志序列号从1开始】注:该命令可将数据库恢复到指定时间点状态,但必须具备此时间点之前最后的有效备份,和所有相关归档日志。
2.基于scn号的【不完全恢复】restore database until scn 10000;recover database until scn 10000;alter dat& & & & & & & & & 【resetlogs只在&不完全恢复&之后才有效,不完全恢复必须加resetlogs/noresetlogs选项打开数据,重置归档日志序列号从1开始】注:该命令可将数据库恢复到指定的scn号的状态,但不包括此scn号。
3.基于归档日志序列号【不完全恢复】restore database until sequence 123 thread 1;recover database until sequence 123 thread 1;alter dat& & & & & & & & & 【resetlogs只在&不完全恢复&之后才有效,不完全恢复必须加resetlogs/noresetlogs选项打开数据,重置归档日志序列号从1开始】注:该命令可将数据库恢复到指定归档日志序列号的状态,如果归档日志列表存在断点使用这中方法恢复比较方便,断点意味着我们只能恢复到断点的开始点
如果在open下直接restore database ,会报如下错误channel ORA_DISK_1: reading from backup piece /home/oracle/backup/DB_0fn7d50b 备份块,此备份块就是最后一次的备份来恢复,在catalog库中自动找【前提必须连接到catalog】RMAN-00571: ===========================================================RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============RMAN-00571: ===========================================================RMAN-03002: failure of restore command at 04/04/:18ORA-19870: error reading backup piece /home/oracle/backup/DB_0fn7d50b& 错误读取备份块ORA-19573: cannot obtain exclusive enqueue for datafile 4& & & & & & & 不能包括独占数据文件4队列
小结:一般&实例恢复&采用完全恢复的多,&介质恢复&采用不完全恢复的多。
推荐阅读:
Oracle基础教程之通过RMAN复制数据库
RMAN备份策略制定参考内容
RMAN备份学习笔记
Oracle数据库备份加密 RMAN加密
更多Oracle相关信息见 专题页面
相关资讯 & & &
& (05月22日)
& (02月17日)
& (08月30日)
& (03月10日)
& (01月19日)
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款

我要回帖

更多关于 rman异地恢复数据库 的文章

 

随机推荐