77范文网 - 专业文章范例文档资料分享平台

oracle备份与恢复(5)

来源:网络收集 时间:2019-02-21 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

www.imissha.com 谜尚bb霜 RMAN-08515: archivelog filename=D:ORACLEORADATATESTARCHIVETESTT001S00327.ARC thread=1 sequence=327

RMAN-08515: archivelog filename=D:ORACLEORADATATESTARCHIVETESTT001S00328.ARC thread=1 sequence=328

RMAN-08055: media recovery complete RMAN-03022: compiling command: sql

RMAN-06162: sql statement: alter database open RMAN-03023: executing command: sql

RMAN-03022: compiling command: release RMAN-03023: executing command: release RMAN-08031: released channel: c1 RMAN>

7、检查数据库的数据(完全恢复) SQL> select * from test; A

--------------------------------------- 1 2

说明:

1、只要有备份与归档存在,RMAN也可以实现数据库的完全恢复(不丢失数据) 2、同OS备份数据库恢复,适合于丢失大量数据文件,或包含系统数据文件在内

的数据库的恢复

3、目标数据库在mount下进行,如果恢复成功,再打开数据库。

4、RMAN的备份与恢复命令相对比较简单并可靠,建议有条件的话,都采用

RMAN进行数据库的备份。

4.4 不完全恢复案例

4.4.1 OS备份下的基于时间的恢复

不完全恢复可以分为基于时间的恢复,基于改变的恢复与基于撤消的恢复,这里已基于时间的恢复为例子来说明不完全恢复过程。

基于时间的恢复可以不完全恢复到现在时间之前的某一个时间,对于某些误操作,如删除了一个数据表,可以在备用恢复环境上恢复到表的删除时间之前,然后把该表导出到正式环境,避免一个人为的错误。

1、连接数据库,创建测试表并插入记录

SQL*Plus: Release 8.1.6.0.0 - Production on Tue May 6 13:46:32 2003 (c) Copyright 1999 Oracle Corporation. All rights reserved. SQL> connect internal/password as sysdba; Connected.

SQL> create table test(a int);

www.imissha.com 谜尚bb霜 Table created

SQL> insert into test values(1); 1 row inserted SQL> commit; Commit complete

2、备份数据库,这里最好备份所有的数据文件,包括临时数据文件 SQL> @hotbak.sql 或在DOS下 svrmgrl @hotbak.sql 或冷备份也可以

3、删除测试表,假定删除前的时间为T1,在删除之前,便于测试,继续插入数据并应用到归档。

SQL> insert into test values(2); 1 row inserted SQL> commit; Commit complete

SQL> select * from test; A

--------------------------------------- 1 2

SQL> alter system switch logfile; Statement processed.

SQL> alter system switch logfile; Statement processed.

SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual; TO_CHAR(SYSDATE,'YY -------------------

2003-05-21 14:43:01 SQL> drop table test; Table dropped.

4、准备恢复到时间点T1,找回删除的表,先关闭数据库 SQL> shutdown immediate; Database closed.

Database dismounted.

ORACLE instance shut down.

5、拷贝刚才备份的所有数据文件回来

C:>copy D:DATABAK*.DBF D:ORACLEORADATATEST 6、启动到mount下 SQL> startup mount; ORACLE instance started.

Total System Global Area 102020364 bytes Fixed Size 70924 bytes

Variable Size 85487616 bytes

Database Buffers 16384000 bytes Redo Buffers 77824 bytes Database mounted.

www.imissha.com 谜尚bb霜 7、开始不完全恢复数据库到T1时间

SQL> recover database until time '2003-05-21:14:43:01';

ORA-00279: change 30944 generated at 05/21/2003 14:40:06 needed for thread 1

ORA-00289: suggestion : D:ORACLEORADATATESTARCHIVETESTT001S00191.ARC

ORA-00280: change 30944 for thread 1 is in sequence #191 Specify log: {=suggested | filename | AUTO | CANCEL} auto

Log applied.

Media recovery complete. 8、打开数据库,检查数据

SQL> alter database open resetlogs; Database altered.

SQL> select * from test; A

--------------------------------------- 1 2

说明:

1、不完全恢复最好备份所有的数据,冷备份亦可,因为恢复过程是从备份点往后恢复的,如果因为其中一个数据文件的时间戳(SCN)大于要恢复的时间点,那么恢复都是不可能成功的。

2、不完全恢复有三种方式,过程都一样,仅仅是recover命令有所不一样,这里用基于时间的恢复作为示例。

3、不完全恢复之后,都必须用resetlogs的方式打开数据库,建议马上再做一次全备份,因为resetlogs之后再用以前的备份恢复是很难了。

4、以上是在删除之前获得时间,但是实际应用中,很难知道删除之前的实际时间,但可以采用大致时间即可,或可以采用分析日志文件(logmnr),取得精确的需要恢复的时间。

5、一般都是在测试机后备用机器上采用这种不完全恢复,恢复之后导出/导入被误删的表回生产系统

4.4.2 RMAN备份下的基于改变的恢复

以上用OS备份说明了一个基于时间的恢复,现在用RMAN说明一个基于改变的恢复

1、连接数据库,创建测试表并插入记录

SQL*Plus: Release 8.1.6.0.0 - Production on Tue May 6 13:46:32 2003 (c) Copyright 1999 Oracle Corporation. All rights reserved. SQL> connect internal/password as sysdba; Connected.

SQL> create table test(a int); Table created

SQL> insert into test values(1);

www.imissha.com 谜尚bb霜 1 row inserted SQL> commit; Commit complete 2、备份数据库 C:>rman

Recovery Manager: Release 8.1.6.0.0 - Production RMAN> connect rcvcat rman/rman@back

RMAN-06008: connected to recovery catalog database RMAN> connect target internal/virpure

RMAN-06005: connected to target database: TEST (DBID=874705288) RMAN> run{

2> allocate channel c1 type disk;

3> backup full tag 'dbfull' format 'd:backupfull%u_%s_%p' database 4> include current controlfile;

5> sql 'alter system archive log current'; 6> release channel c1; 7> }

RMAN-03022: compiling command: allocate RMAN-03023: executing command: allocate RMAN-08030: allocated channel: c1

RMAN-08500: channel c1: sid=12 devtype=DISK RMAN-03022: compiling command: backup RMAN-03023: executing command: backup

RMAN-08008: channel c1: starting full datafile backupset RMAN-08502: set_count=1 set_stamp=494607834 creation_time=21-MAY-03

RMAN-08010: channel c1: specifying datafile(s) in backupset RMAN-08522: input datafile fno=00001 name=D:ORACLEORADATATESTSYSTEM01.DBF

RMAN-08011: including current controlfile in backupset RMAN-08522: input datafile fno=00002 name=D:ORACLEORADATATESTRBS01.DBF

RMAN-08522: input datafile fno=00003 name=D:ORACLEORADATATESTUSERS01.DBF

RMAN-08522: input datafile fno=00004 name=D:ORACLEORADATATESTTEMP01.DBF

RMAN-08522: input datafile fno=00005 name=D:ORACLEORADATATESTTOOLS01.DBF

RMAN-08522: input datafile fno=00006 name=D:ORACLEORADATATESTINDX01.DBF

RMAN-08013: channel c1: piece 1 created RMAN-08503: piece handle=D:BACKUPFULL01ENM7EQ_1_1 comment=NONE

RMAN-08525: backup set complete, elapsed time: 00:00:16 RMAN-03023: executing command: partial resync

RMAN-08003: starting partial resync of recovery catalog

www.imissha.com 谜尚bb霜 RMAN-08005: partial resync complete RMAN-03022: compiling command: sql

RMAN-06162: sql statement: alter system archive log current RMAN-03023: executing command: sql

RMAN-03022: compiling command: release RMAN-03023: executing command: release RMAN-08031: released channel: c1 RMAN>

3、删除测试表,在删除之前,便于测试,继续插入数据并应用到归档,并获取删除前的scn号。

SQL> insert into test values(2); 1 row inserted SQL> commit; Commit complete

SQL> select * from test; A

--------------------------------------- 1 2

SQL> alter system switch logfile; Statement processed.

SQL> alter system switch logfile; Statement processed.

SQL> select max(ktuxescnw * power(2, 32) + ktuxescnb) scn from x$ktuxe;

SCN

---------- 31014

SQL> drop table test; Table dropped.

4、准备恢复到SCN 31014,先关闭数据库,然后启动到mount下 SQL> shutdown immediate; Database closed.

Database dismounted.

ORACLE instance shut down. SQL> startup mount; ORACLE instance started.

Total System Global Area 53126412 bytes Fixed Size 70924 bytes

Variable Size 26763264 bytes

Database Buffers 26214400 bytes Redo Buffers 77824 bytes Database mounted.

5、开始恢复到改变点SCN 31014 RMAN> run{

2> allocate channel c1 type disk;

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库oracle备份与恢复(5)在线全文阅读。

oracle备份与恢复(5).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/483453.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: