ITPub博客

首页 > 数据库 > Oracle > oracle10g数据库恢复(用户管理的不完全恢复——使用备份控制文件进行恢复)

oracle10g数据库恢复(用户管理的不完全恢复——使用备份控制文件进行恢复)

原创 Oracle 作者:丶慕子房 时间:2014-04-21 09:59:25 0 删除 编辑
使用备份控制文件进行恢复(数据文件或表空间)

测试:【使用备份控制文件进行恢复(数据文件或表空间)】
【首先创建一个表空间】
SQL> create tablespace test1 datafile'/u01/oracle/oradata/orcl/test1.dbf' size 20m;
【在表空间里创建一些表】
SQL> conn scott/tiger
Connected.
SQL> create table te2 tablespace test1 as select * from emp;
Table created.

SQL> create table te3 tablespace test1 as select * from emp;
Table created.

SQL> commit;
Commit complete.

【查看表】
SQL> select * from tab;
TNAME                          TABTYPE  CLUSTERID
------------------------------ ------- ----------
E1                             TABLE
E22                            TABLE
USER1                          TABLE
TE2                            TABLE
TE3                            TABLE
DEPT                           TABLE
EMP                            TABLE
BONUS                          TABLE
SALGRADE                       TABLE
9 rows selected.

【查看表空间】
SQL> select name from v$tablespace;                                          NAME
------------------------------
SYSTEM
UNDOTBS1
SYSAUX
USERS
TEMP
RMAN_CATA
TEST1

【备份】
SQL> alter database begin backup;
$ cp * /u01/back
SQL> alter database end backup;

【设置时间】
SQL>set time on;

【删除表空间】
14:22:46 SQL>
14:22:46 SQL>
14:22:46 SQL>
14:22:47 SQL> drop tablespace test1 including contents and datafiles;


Tablespace dropped.【同时删除了内容和文件】

如果想找回现有的表空间就不能用现有的控制文件了,现有的控制文件没有它的信息,只能用过去的控制文件。

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

2.删除所有的数据文件和控制文件【破坏】
$ cd /u01/oracle/oradata/orc
$ rm -f *.dbf
$ rm -f *.ctl

3.复制备份文件中的数据文件和控制文件
$cd /u01/back
$cp *.dbf /u01/oracle/oradata/orcl
$cp *.ctl /u01/oracle/oradata/orcl sqlplus 


4.mount 数据库
SQL> startup mount


5.恢复数据库
SQL>recover database until time'2014-04-18:05:26:43'using backup controlfile;
14:40:02 SQL> recover database until time '2014-04-02:14:22:46'using backup controlfile;
ORA-00279: change 961855 generated at 04/02/2014 14:20:36 needed for thread 1
ORA-00289: suggestion : /u01/arch/1_1_843820505.dbf
ORA-00280: change 961855 for thread 1 is in sequence #1
14:40:06 Specify log: {=suggested | filename | AUTO | CANCEL}
/u01/oracle/oradata/orcl/redo01.log
Log applied.
Media recovery complete.

6.打开数据库
14:41:25 SQL> alter database open resetlogs;

Database altered.

7.查看恢复的表空间。
14:42:05 SQL> select name from v$tablespace;

NAME
------------------------------
SYSTEM
UNDOTBS1
SYSAUX
USERS
TEMP
EXAMPLE
TEST1
7 rows selected.


14:42:30 SQL> conn scott/tiger
Connected.

14:44:55 SQL> select * from tab;
TNAME                          TABTYPE  CLUSTERID
------------------------------ ------- ----------
DEPT                           TABLE
EMP                            TABLE
BONUS                          TABLE
SALGRADE                       TABLE
T4                             TABLE
EE2                            TABLE
T1                             TABLE
TE2                            TABLE
TE3                            TABLE

8.使用备份控制文件进行恢复(数据文件或表空间)成功。

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

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

注册时间:2014-04-09

  • 博文量
    19
  • 访问量
    88485