oracle备份与恢复(5)

2019-02-21 01:14

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;


oracle备份与恢复(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2011高中数学知识点总结大全

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: