bay——RAC 表空间时数据文件误放置到本地文件系统-介质恢复.txt

RAC添加新表空间时数据文件误放置到本地文件系统的修正

于是我想11G 也兼容这些操作的方法,但是11G的新特性有一点就是可以直接支持ASM文件系统直接可以和本地文件系统进行文件的拷贝了,也就是有三种方法。

1. RMAN的 copy datafile 方式

2. dbms_file_transfer方式

3. ASMCMD中的直接cp方式了

分别演示三种方式:


RMAN

1)创建好本地开始的表空间

SQL> create tablespace andy datafile '/u01/app/oracle/admin/bai.dbf' size 100M;

2)查看一下状态

SQL> select name,status from v$datafile;

3)在本地表空间上创建表 andy01

SQL> create table andy01 tablespace andy as select * from dba_objects;

4)在第二个实例上去创建表也放在andy这个表空间上,注意红色字体部分,报告无法定位andy.dbf数据文件


[oracle@racdb2 ~]$ sqlplus /nolog
SQL> conn / as sysdba

Connected.

SQL> create table andy02 tablespace andy as select * from dba_objects;

create table andy02 tablespace andy as select * from dba_objects

*

ERROR at line 1:

ORA-01157: cannot identify/lock data file 11 - see DBWR trace file

ORA-01110: data file 11: '/home/oracle/andy.dbf'

----------------------------------------------------------------
注意:下面回到rac1 上执行:

5)然后进行修正操作,先将andy表空间进行offline

然后进行RMAN 拷贝 在将数据文件进行移动,online即可


5.1 如果是归档模式可以执行如下SQL设置数据文件的状态为OFFLINE:

ALTER DATABASE DATAFILE '/u01/app/oracle/admin/bai.dbf' OFFLINE;
此时数据文件为 “RECOVER” 状态


5.2 如果是非归档模式执行以下SQL将数据文件状态设置为OFFLINE:

SQL> ALTER DATABASE DATAFILE '/u01/app/oracle/admin/bai.dbf' OFFLINE DROP;

rac1-> rman target /
RMAN> copy DATAFILE '/u01/app/oracle/admin/bai.dbf' TO '+DATA/baydb/DATAFILE/bai.dbf';
Starting backup at 2019/05/23 15:57:46
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=63 instance=baydb1 device type=DISK
channel ORA_DISK_1: starting datafile copy
input datafile file number=00007 name=/u01/app/oracle/admin/bai.dbf
rac1-> rman target /output file name=+DATA/baydb/datafile/bai.dbf tag=TAG20190523T155749 RECID=2 STAMP=1009036676
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:07
Finished backup at 2019/05/23 15:57:57

SQL> alter database rename file '/u01/app/oracle/admin/bai.dbf' to '+DATA/baydb/DATAFILE/bai.dbf';


完成介质恢复:
SQL> recover datafile '+DATA/baydb/DATAFILE/bai.dbf';


将数据文件在线:
ALTER DATABASE DATAFILE '+DATA/baydb/DATAFILE/bai.dbf' ONLINE;

检查数据恢复了:

SELECT * FROM andy01;

-------------------------------------------

--删除非空表空间,包含物理文件
drop tablespace tablespace_name including contents and datafiles;

猜你喜欢

转载自www.cnblogs.com/bayaim/p/11120176.html