ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 数据库物理结构发生变化后的恢复

数据库物理结构发生变化后的恢复

原创 Linux操作系统 作者:q418441117 时间:2012-09-25 20:00:49 0 删除 编辑

测试环境:
系统:LINUX-64
数据库:10.2.0.1  两节点的RAC,ASM存储。

测试条件:在全备份数据库后,增加表空间。该如何恢复?

(1)查看数据文件

SQL> SELECT name FROM V$DATAFILE;

NAME
--------------------------------------------------------------------------------
+RAC_DISK/racdb/datafile/system.259.794232627
+RAC_DISK/racdb/datafile/undotbs1.260.794232647
+RAC_DISK/racdb/datafile/sysaux.261.794232657
+RAC_DISK/racdb/datafile/undotbs2.263.794232675
+RAC_DISK/racdb/datafile/users.264.794232683

(2)做一个完全备份

RMAN> backup database;

(3)备份完成后增加数据文件,表空间。

SQL> create tablespace xhm datafile size 2M;

SQL> ALTER tablespace users add  datafile size 2M;

(4)创建数据

SQL> CREATE TABLE TEST tablespace xhm AS SELECT * FROM DBA_USERS ;

SQL> SELECT * FROM SYS.TEST;
SQL> SELECT *  FROM user_segments WHERE segment_name='TEST';

(5)关闭数据库,删除文件

ASMCMD> rm USERS.302.795003773
ASMCMD> rm XHM.301.795003661
ASMCMD> pwd
+rac_disk/racdb/datafile


(6)启动数据库

SQL> startup
ORACLE instance started.

Total System Global Area  184549376 bytes
Fixed Size                  2019448 bytes
Variable Size             142610312 bytes
Database Buffers           37748736 bytes
Redo Buffers                2170880 bytes
Database mounted.
ORA-01157: cannot identify/lock data file 6 - see DBWR trace file
ORA-01110: data file 6: '+RAC_DISK/racdb/datafile/xhm.301.795003661'

(7)恢复数据库

由于备份的时候还没创建数据文件,所以恢复前需重建数据文件。不需要制定大小,属性在控制文件中都有记录。
SQL> alter database create datafile 7;

Database altered.

SQL> alter database create datafile '+RAC_DISK/racdb/datafile/xhm.301.795003661';

Database altered.

SQL> recover datafile 6;
ORA-00283: recovery session canceled due to errors
ORA-01110: data file 6: '+RAC_DISK/racdb/datafile/xhm.301.795003661'
ORA-01157: cannot identify/lock data file 6 - see DBWR trace file
ORA-01110: data file 6: '+RAC_DISK/racdb/datafile/xhm.301.795003661'

由于使用的ASM,新建的文件名会和之前的不一样,具体指定也没用。故需要重命名数据文件。也就是修改控制文件。

SQL> alter database rename file '+RAC_DISK/racdb/datafile/xhm.301.795003661' to '+rac_disk/racdb/datafile/XHM.302.795004969';

SQL> alter database rename file '+rac_disk/racdb/datafile/users.302.795003773' to '+rac_disk/racdb/datafile/USERS.301.795004951';

(8)再次恢复

SQL> recover datafile 6;
Media recovery complete.
SQL> recover datafile 7;
Media recovery complete.

SQL> alter database open;

Database altered.

(9)检查数据

select * from sys.test;
select *  from user_segments where segment_name='TEST';
select * from v$datafile;

 

 

 

 

 

注:参考大话ORACLE

 

 

 

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

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

注册时间:2012-09-11

  • 博文量
    203
  • 访问量
    471899