ITPub博客

首页 > 数据库 > Oracle > oracle10g数据库恢复(用户管理的不完全恢复——基于时间及基于取消的恢复)

oracle10g数据库恢复(用户管理的不完全恢复——基于时间及基于取消的恢复)

原创 Oracle 作者:丶慕子房 时间:2014-04-18 21:27:33 0 删除 编辑
执行用户管理的不完全恢复
要执行用户管理的不完全恢复步骤:
1.关闭数据库
2.还原数据文件
3.装载数据库
4.恢复数据库
5.使用resetlogs选项打开数据库【resetlogs是把现有的联机重做日志里的内容清空,避免联机重做日志里的内容影响现有数据库】

【首先备份数据库】
SQL>alter database begin backup;
$cd /u01/oracle/oradata/orcl
$ cp * /u01/back
SQL> alter database end backup;

测试【基于时间】
做一些模拟数据:
SQL> conn scott/tiger

SQL> select * from tab;
TNAME                          TABTYPE  CLUSTERID
------------------------------ ------- ----------
DEPT                           TABLE
EMP                            TABLE
BONUS                          TABLE
SALGRADE                       TABLE
T4                             TABLE
EE2                            TABLE
T1                             TABLE
1.查看表ee2;
SQL> select count(*) from ee2;
  COUNT(*)
----------
        56

2.打开时间
SQL> set time on;
09:43:37 SQL>

3.删除表内容
09:44:09 SQL>
09:44:10 SQL> delete from ee2;
56 rows deleted.

4.再次查看表内容
09:44:23 SQL> select count(*) from ee2;
  COUNT(*)
----------
         0

5.关闭数据库
09:47:26 SQL> conn / as sysdba
09:47:58 SQL> shutdown immediate

6.删除数据文件【模拟丢失数据文件】
$cd /u01/oracle/oradata/orcl
$ rm -f *.dbf

7.还原数据文件【从备份中复制】
cp /u01/back/*.dbf .

8.装载数据库
09:48:30 SQL> startup mount;

9.恢复数据库
09:59:21 SQL> recover database until time '2014-04-02:09:44:09';
Media recovery complete.

10.使用resetlogs选项打开数据库;
SQL>alter database open resetlogs;

11.查看数据库
10:35:35 SQL> select count(*) from ee2;
  COUNT(*)
----------
        56

12.基于时间恢复成功。


测试【基于取消的恢复】
用户管理的基于取消的恢复


【备份】
******
开始最新备份:
SQL>alter database begin backup;
cd /u01/oracle/oradata/orcl
cp * /u01/bak
SQL>alter database end backup;
******


【假设在scott中添加一些数据】
【
SQL> conn scott/tiger
SQL> select * from tab;


TNAME                          TABTYPE  CLUSTERID
------------------------------ ------- ----------
E1                             TABLE
E22                            TABLE
USER1                          TABLE
DEPT                           TABLE
EMP                            TABLE
BONUS                          TABLE
SALGRADE                       TABLE


SQL> select count(*) from e1;
  COUNT(*)
----------
        14


SQL> select count(*) from e1;


  COUNT(*)
----------
        56
】

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

2.从最新备份还原所有数据文件
【假设丢失了.dbf文件$rm -f *.dbf】

$ cp /u01/back/*.dbf .

3.已经具有了有效备份,所以可以装载数据库
SQL>startup mount;

4.执行recover database until cancel
SQL> recover database until cancel;

5.执行alter database open resetlogs 以打开数据库
SQL> alter database open resetlogs;

6.基于取消的恢复成功。

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

请登录后发表评论 登录
全部评论

注册时间:2014-04-09

  • 博文量
    19
  • 访问量
    88484