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

  • 相关阅读:
    android的Fragment
    c#接口深入一步探究其作用,适合新人了解
    浅谈c#接口的问题,适合新手来了解
    再谈“我是怎么招聘程序员的”(下)转
    再谈“我是怎么招聘程序员的”(上)转
    关于如何写出优秀的代码(转)
    winserver服务器安全部署详细文档
    VS高效的调试技巧
    常用正则表达式(转自月光博客)
    JavaScript数组方法的兼容性写法 汇总:indexOf()、forEach()、map()、filter()、some()、every()
  • 原文地址:https://www.cnblogs.com/binliubiao/p/15133810.html
Copyright © 2020-2023  润新知