zoukankan      html  css  js  c++  java
  • Oracle-RAC中误建本地数据文件问题处理

    概述

    1. 对数据库服务器管理操作不规范,容易被非专业技术人员,特别是对RAC不熟悉人员,在添加数据文件或创建表空间时,往往容易创建数据文件到本节点主机上,此时仅能被当前节点访问
    2. 认为不小心添加的数据文件漏写+号,导致自动创建到dbs目录上

    处理过程

    非系统表空间本地数据文件(归档模式)

    可以不停库处理

    确定本地数据文件编号

    col file_name for a80
    col tablespace_name for a32
    select file_name,file_id,ONLINE_STATUS,tablespace_name from dba_data_files;
    

    将本地数据文件offline处理

    将本地数据文件OFFLINE,或可以将整个表空间OFFLINE。这里假设本地数据文件号为11

    alter database datafile 11 offline;
    

    拷贝本地磁盘文件到ASM

    asmcmd方式
    asmcmd
    cd +DATA/orcl/datafile
    cp /oradata/orcl/datafile/test01.dbf .
    
    rman方式
    rman target /
    copy datafile 11 to '+DATA'
    

    rename数据文件

    -- sqlplus "/ as sysdba"
    alter database rename file '/oradata/orcl/datafile/test01.dbf' to '+data/orcl/datafile/test01.dbf';
    
    -- 查看文件状态为RECOVER
    select file_name,file_id,ONLINE_STATUS,tablespace_name from dba_data_files;
    

    recover数据文件并online

    sqlplus "/ as sysdba"
    alter database recover datafile 11;
    alter database datafile 11 online;
    select file_name,file_id,ONLINE_STATUS,tablespace_name from dba_data_files;
    

    非系统表空间本地数据文件(非归档模式)

    将对应的表空间offline

    非归档模式下单个数据文件在数据库OPEN状态下无法OFFLINE

    alter tablespace test offline;
    

    拷贝本地数据文件到ASM

    rman target /
    copy datafile 11 to '+data';
    
    

    rename数据文件

    -- sqlplus "/ as sysdba"
    alter database rename file '/oradata/orcl/datafile/test01.dbf' to '+data/orcl/datafile/test01.dbf';
    
    -- 查看文件状态为RECOVER
    select file_name,file_id,ONLINE_STATUS,tablespace_name from dba_data_files;
    

    将offline表空间修改为online

    alter tablespace test online;
    

    系统表空间(SYSTEM)本地数据文件

    停数据库

    shutdown immediate;
    

    移动数据文件到ASM

    asmcmd方式
    asmcmd
    cp 
    
    rman方式
    report schema;
    backup as copy datafile 11 format '+data';
    switch datafile 11 to copy;
    

    数据库启动到mount状态

    startup mount;
    

    rename数据文件

    -- sqlplus "/ as sysdba"
    alter database rename file '/oradata/orcl/datafile/system02.dbf' to '+data/orcl/datafile/system02.dbf';
    

    打开数据库

    alter database open;
    

    重启数据库

    可能出现errors ORA-01516 or original error ORA-01157: cannot identify/lock data file错误,需要重启其它DB实例

    shutdown immediate;
    startup;
    

    12C 环境可以在线移动数据文件

    alter database move datafile 12 to '+data/O12C/datafile/test02.dbf';
    

    不需区分系统表空间还是非系统表空间数据文件

    附录

    使用rman backup as copy方式

    不需要执行rename数据文件

    # sqlplus offline数据文件
    alter database datafile 8 offline;
    
    # rman 
    report schema;
    backup as copy datafile 8 format '+data';
    switch datafile 8 to copy;
    
    # sqlplus
    recover datafile 8;
    alter database datafile 8 online;
    

    How to move a datafile from a file system to ASM (Doc ID 390274.1)

    How to Move a Datafile from Filesystem to ASM Using ASMCMD CP Command. (Note 1610615.1)

  • 相关阅读:
    C#细说多线程(下)
    C#细说多线程(上)
    C#:进程、线程、应用程序域(AppDomain)与上下文分析
    C#委托与事件
    SQL Server 查询优化器运行方式
    SQL优化之索引分析
    C#反射机制
    Sql注入
    JAVA内存泄漏解决办法
    spring4声明式事务—02 xml配置方式
  • 原文地址:https://www.cnblogs.com/binliubiao/p/15133810.html
Copyright © 2011-2022 走看看