• 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;

  • 相关阅读:
    Nexus入门指南(图文)[转]
    java注解[转]
    JS设置IE可信站点及ActiveX设置
    ExtJS 4 树
    SQL大全
    基于Spring aop 和JAVA注解方式添加日志
    Excle自动增长序号
    VS 生成后事件
    Oracle命令分解之正则表达式搜索(一)
    Oracle命令分解之……SOUNDEX
  • 原文地址:https://www.cnblogs.com/bayaim/p/11120176.html
Copyright © 2020-2023  润新知