今天碰到个有意思的事情,有客户在Oracle RAC环境,误操作将新增的数据文件直接创建到了其中一个节点的本地存储上。

发现网上去搜的话这种问题还真不少,对应解决方案也各式各样,客户问我选择哪种方案可行,看来基础的数据维护工作还是有必要进一步规范的。

数据库是归档模式,那么我们实际可以利用rman的backup as copy datafile xxx format ''以及 switch datafile xxx to copy来操作,这样来解决是最简单且最不容易误操作的。

简单做一个实验来说明,整个过程如下:

环境:Oracle 12.2.0.1 RAC

1.模拟误操作添加一个数据文件到本地存储目录下

  1. SQL> alter tablespace users add datafile '/tmp/user02.dbf' size 150M;
  2. Tablespace altered.
  3. SQL> select file_id, file_name from dba_data_files;
  4. FILE_ID FILE_NAME
  5. ---------- ------------------------------------------------------------------
  6. 1 +DATA/NEWDB1/DATAFILE/system.257.954241433
  7. 3 +DATA/NEWDB1/DATAFILE/sysaux.258.954241497
  8. 4 +DATA/NEWDB1/DATAFILE/undotbs1.259.954241533
  9. 7 +DATA/NEWDB1/DATAFILE/users.260.954241535
  10. 15 /tmp/user02.dbf
  11. 9 +DATA/NEWDB1/DATAFILE/undotbs2.269.954241841
  12. 6 rows selected.

查到这个误操作新增的数据文件号是15.

2.利用RMAN把15号文件备份副本(backup as copy)

  1. RMAN> backup as copy datafile 15 format '+data';
  2. Starting backup at 05-DEC-17
  3. using target database control file instead of recovery catalog
  4. allocated channel: ORA_DISK_1
  5. channel ORA_DISK_1: SID=47 instance=newdb11 device type=DISK
  6. channel ORA_DISK_1: starting datafile copy
  7. input datafile file number=00015 name=/tmp/user02.dbf
  8. output file name=+DATA/NEWDB1/DATAFILE/users.279.961935881 tag=TAG20171205T122439 RECID=4 STAMP=961935880
  9. channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01
  10. Finished backup at 05-DEC-17
  11. Starting Control File and SPFILE Autobackup at 05-DEC-17
  12. piece handle=+FRA/NEWDB1/AUTOBACKUP/2017_12_05/s_961935881.262.961935883 comment=NONE
  13. Finished Control File and SPFILE Autobackup at 05-DEC-17

3.将15号数据文件离线

可以只将错误的15号数据文件离线,减小影响;

  1. RMAN> alter database datafile 15 offline;
  2. Statement processed

4.切换15号数据文件到copy副本

  1. RMAN> switch datafile 15 to copy;
  2. datafile 15 switched to datafile copy "+DATA/NEWDB1/DATAFILE/users.279.961935881"

5.恢复15号数据文件

  1. RMAN> recover datafile 15;
  2. Starting recover at 05-DEC-17
  3. using channel ORA_DISK_1
  4. starting media recovery
  5. media recovery complete, elapsed time: 00:00:00
  6. Finished recover at 05-DEC-17

6.将15号数据文件上线

  1. RMAN> alter database datafile 15 online;
  2. Statement processed
  3. FILE_ID FILE_NAME
  4. ---------- ------------------------------------------------------------------
  5. 1 +DATA/NEWDB1/DATAFILE/system.257.954241433
  6. 3 +DATA/NEWDB1/DATAFILE/sysaux.258.954241497
  7. 4 +DATA/NEWDB1/DATAFILE/undotbs1.259.954241533
  8. 7 +DATA/NEWDB1/DATAFILE/users.260.954241535
  9. 15 +DATA/NEWDB1/DATAFILE/users.279.961935881
  10. 9 +DATA/NEWDB1/DATAFILE/undotbs2.269.954241841
  11. 6 rows selected.

注:如果客户有特殊要求,backup as copy时直接将数据文件名改成规范的,比如在步骤2中可以这样指定具体的名字:

  1. RMAN> backup as copy datafile 15 format '+data/NEWDB1/DATAFILE/users02.DBF';

实际上users02.dbf这种也只是个别名,底层还是OMF那种命名的文件,这样做没什么太大的实际意义,但有时候客户会喜欢这种看起来更好管理的方式。

RAC环境下误操作将数据文件添加到本地存储的更多相关文章

  1. Oracle-11g-R2 RAC 环境下 GPnP Profile 文件

    GPnP Profile 文件的作用: GPnP Profile 文件是一个保存于 $GRID_HOME/gpnp/<hostname>/profiles/peer 目录下的小型 XML ...

  2. 测试Oracle 11gr2 RAC 非归档模式下,offline drop数据文件后的数据库的停止与启动测试全过程

    测试Oracle 11gr2 RAC 非归档模式下,offline drop数据文件后的数据库的停止与启动测试全过程 最近系统出现问题,由于数据库产生的日志量太大无法开启归档模式,导致offline的 ...

  3. RAC 环境下参数文件(spfile)管理

    RAC环境下,初始化参数文件与但实例下参数文件有些异同,主要表现在初始化参数可以为多个实例公用,也可以单独设置各个实例的初始化参数.对于那些非共用的初始化参数则必须要单独设置,而共用的则可以单独设置, ...

  4. IDEA环境下GIT操作浅析之一Idea下仓库初始化与文件提交涉及到的基本命令

    目标总括 idea 下通过命令操作文件提交,删除,与更新并推送到github 开源库基本操作idea 下通过命令实现分支的创建与合并操作 idea 下通过图形化方式实现idea 项目版本控制基本操作 ...

  5. 【RAC】rac环境下的数据库备份与还原

    [RAC]rac环境下的数据库备份与还原 一.1  BLOG文档结构图 一.2  前言部分 一.2.1  导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~ ...

  6. 利用XAG在RAC环境下实现GoldenGate自动Failover

    概述 在RAC环境下配置OGG,要想实现RAC节点故障时,OGG能自动的failover到正常节点,要保证两点: 1. OGG的checkpoint,trail,BR文件放置在共享的集群文件系统上,R ...

  7. 【转】Oracle RAC 环境下的连接管理

    文章转自:http://www.oracle.com/technetwork/cn/articles/database-performance/oracle-rac-connection-mgmt-1 ...

  8. RAC 环境下的重要参数

    Oracle 数据库启动时会根据参数文件中提供的相关参数启动Oracle实例.这些参数包括数据库名字.sga,pga的分配,控制文件的位置,undo,process等等.Oracle RAC数据库同样 ...

  9. Oracle RAC 环境下的连接管理(转) --- 防止原文连接失效

    崔华老师的文章!!! 这篇文章详细介绍了Oracle RAC环境下的连接管理,分别介绍了什么是 Connect Time Load Balancing.Runtime Connection Load ...

随机推荐

  1. MVC-HtmlHelper简单总结

    Asp.Net MVC - Htmlhelper 总结 HtmlHelper是一个返回Html字符串的方法.返回的字符串可以是任意类型.例如你可以使用HtmlHelper方法返回一个标准的html标签 ...

  2. zookeeper 笔记-机制的特点

    zookeeper的getData(),getChildren()和exists()方法都可以注册watcher监听.而监听有以下几个特性: 一次性触发(one-time trigger) 当数据改变 ...

  3. javascript高性能写法

    看到一篇不错的博文,如果想写出比较高性能的代码,可参看这个链接http://developer.51cto.com/art/200906/131335.htm

  4. 最长上升子序列(logN算法)

    例如:1 7 3 5 9 4 8 一个序列,比如说a[]={1,7,3,5,9,4,8},找出它的最长上升子序列的个数,很明显是4个,可以是{1,3,5,9},{1,3,5,8}或者{1,3,4,8} ...

  5. Entropy

    Entropy Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  6. Remove Untagged Images From Docker

    I've been playing around a lot with docker. It's awesome, and it creates a whole new world of possib ...

  7. jquery IE6 下animate 动画的opacity无效

    jquery IE6 下animate 动画的opacity无效,其实是有效的,因为IETester的一个小BUG 原生IE6 没问题...呵呵~~

  8. 必须先将 ContentLength 字节写入请求流,然后再调用 [Begin]GetResponse。解决方法

    当在后台实现POST请求的时候,出现如下错误: 必须先将 ContentLength 字节写入请求流,然后再调用 [Begin]GetResponse. 或者是如下错误: 上述是因为由于我们使用的是代 ...

  9. JMeter基础教程3:脚本录制篇

    对于一些JMeter初学者来说,录制脚本可能是最容易掌握的技能之一.虽然我不建议录制性能脚本(因为录制的脚本比较混乱,必须要通过二次处理才可正常使用),但有时做总比不做要好,是吧?下面我们详细介绍使用 ...

  10. IntelliJ配置jenkins服务的Crumb Data

    近期在做jenkins测试,IntelliJ并没有自动安装jenkins服务器,因此需要自己添加,但是如果不配置Crumb Data,jenkins的服务就不能使用. 首先在服务器中开启CSRF服务, ...