ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 【备份恢复】利用冷备份完成基于时间点的恢复

【备份恢复】利用冷备份完成基于时间点的恢复

原创 Linux操作系统 作者:secooler 时间:2011-04-17 23:56:38 0 删除 编辑
  体验一下利用冷备份介质完成基于时间点的恢复过程。

1.冷备份数据库
1)关闭数据库实例
ora10g@secdb /db_backup$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on Sun Apr 17 22:34:26 2011

Copyright (c) 1982, 2005, Oracle.  All rights reserved.


Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

sys@ora10g> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.

2)备份数据库相关文件
将数据库实例相关的文件统一进行备份。
本例中由于所有文件均存放在ora10g中,因此可以简单的按照下面的方法完成冷备份。
ora10g@secdb /oracle/ora10gR2/oradata$ cp -r ora10g ora10g_backup

3)确认备份文件
ora10g@secdb /oracle/ora10gR2/oradata$ ls -ltr
total 8.0K
drwxr-x--- 2 oracle oinstall 4.0K Apr 17 09:07 ora10g/
drwxr-x--- 2 oracle oinstall 4.0K Apr 17 22:53 ora10g_backup/

2.创建测试数据
ora10g@secdb /oracle/ora10gR2/oradata$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on Sun Apr 17 22:53:34 2011

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

Connected to an idle instance.

NotConnected@> startup;
ORACLE instance started.

Total System Global Area  268435456 bytes
Fixed Size                  1218868 bytes
Variable Size              88082124 bytes
Database Buffers          171966464 bytes
Redo Buffers                7168000 bytes
Database mounted.
Database opened.
sys@ora10g> set time on
22:54:01 sys@ora10g> create table t (x date);

Table created.

22:54:04 sys@ora10g> insert into t values (sysdate);

1 row created.

22:54:09 sys@ora10g> commit;

Commit complete.

22:54:12 sys@ora10g> insert into t values (sysdate);

1 row created.

22:54:24 sys@ora10g> commit;

Commit complete.

22:54:29 sys@ora10g> insert into t values (sysdate);

1 row created.

22:54:44 sys@ora10g> commit;

Commit complete.

22:55:06 sys@ora10g> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';

Session altered.

22:55:15 sys@ora10g> select * from t;

X
-------------------
2011-04-17 22:54:09
2011-04-17 22:54:24
2011-04-17 22:54:44

注意,SQL生效时间一上面命令结束后下面的时间显示为准。

3.利用冷备份完成基于时间点的恢复
1)关闭数据库
sys@ora10g> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.

2)使用冷备份恢复数据库文件
ora10g@secdb /oracle/ora10gR2/oradata$ cd ora10g_backup/
ora10g@secdb /oracle/ora10gR2/oradata/ora10g_backup$ cp *.dbf ../ora10g
cp: overwrite `../ora10g/sysaux01.dbf'? y
cp: overwrite `../ora10g/system01.dbf'? y
cp: overwrite `../ora10g/tbs_sec_d_01.dbf'? y
cp: overwrite `../ora10g/temp01.dbf'? y
cp: overwrite `../ora10g/undotbs01.dbf'? y
cp: overwrite `../ora10g/users01.dbf'? y

一一确认覆盖对应的数据文件。
注意,日志文件不要覆盖。保留日志文件用户后面的恢复。

3)启动数据库到mount状态
ora10g@secdb /oracle/ora10gR2/oradata/ora10g_backup$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on Sun Apr 17 22:59:19 2011

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

Connected to an idle instance.

NotConnected@> startup mount;
ORACLE instance started.

Total System Global Area  268435456 bytes
Fixed Size                  1218868 bytes
Variable Size              88082124 bytes
Database Buffers          171966464 bytes
Redo Buffers                7168000 bytes
Database mounted.

4)设置session级别的时间显示格式
NotConnected@> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';

Session altered.

5)恢复到插入最后两条数据的中间时间点
NotConnected@> recover database until time '2011-04-17 22:54:30';
Media recovery complete.

6)以resetlogs方式开启数据库
NotConnected@> alter database open resetlogs;

Database altered.

7)确认数据恢复结果
sys@ora10g> select * from t;

X
-------------------
2011-04-17 22:54:09
2011-04-17 22:54:24

与创建的测试数据进行比较,已经恢复到“2011-04-17 22:54:44”之前的时间点。

4.小结
使用本文提到的方法进行数据恢复的场景不是很多,不过可以利用这个简单的演练理解利用日志文件恢复数据的过程。希望对大家有帮助。

Good luck.

secooler
11.04.17

-- The End --

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/519536/viewspace-692785/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
Oracle ACE 总监,阿里云MVP,北京大学理学硕士,恩墨学院创始人,教育专家,中国区 Cloudera 首位官方授权大数据讲师,金牌培训专家,BDA大数据联盟创始人,OCM联盟创始人,ACCUG创始人、ACOUG核心专家,Blogger。

注册时间:2008-03-16

  • 博文量
    797
  • 访问量
    8198735