rac库数据文件创建在os本地的解决办法

简介: 按照影响程度大小,方案A需要down库,方案B需要offline tablespace,方案C只需offline datafile即可。综合来看,下面的Testcase_C_2的方法来的最简单。影响也最小。

按照影响程度大小,方案A需要down库,方案B需要offline tablespace,方案C只需offline datafile即可。综合来看,下面的Testcase_C_2的方法来的最简单。影响也最小。

方案A:
Testcase_A_1: (用ASM的cp)
srvctl stop database -d ora11g
ASMCMD> cp /tmp/test.dbf test01.dbf
SQL> startup mount
SQL> alter database rename file '/tmp/test.dbf' to '+DATA/ora11g/datafile/test01.dbf';
SQL> alter database open;
srvctl stop instance -d ora11g -i ora11g1
srvctl start database -d ora11g

Testcase_A_2_a:(用rman的backup as copy)
srvctl stop database -d ora11g
RMAN> startup mount
RMAN> backup as copy datafile 7 format '+DATA';
RMAN> SWITCH DATAFILE 7 to COPY;
SQL> alter database open;
srvctl stop instance -d ora11g -i ora11g1
srvctl start database -d ora11g

Testcase_A_2_b:(用rman的copy)
srvctl stop database -d ora11g
RMAN> startup mount
RMAN> copy datafile 7 to '+DATA';
RMAN> switch datafile 7 to copy;
RMAN> alter database open;
srvctl stop instance -d ora11g -i ora11g1
srvctl start database -d ora11g

Testcase_A_2_c:(用rman的copy+sqlplus的rename)
srvctl stop database -d ora11g
RMAN> startup mount
RMAN> copy datafile 7 to '+DATA';
SQL> alter database rename file '/tmp/test.dbf' to '+DATA/ora11g/datafile/TEST.272.921855725';
SQL> alter database open;
srvctl stop instance -d ora11g -i ora11g1
srvctl start database -d ora11g

方案B:
Testcase_B_1(用asm的cp)
SQL> alter tablespace test offline;
ASMCMD> cp /tmp/test.dbf test.dbf
SQL> alter database rename file '/tmp/test.dbf' to '+data/ora11g/datafile/test.dbf';
SQL> alter tablespace test online;

Testcase_B_2: (用rman的copy)
SQL> alter tablespace test offline;
RMAN> copy datafile 7 to '+DATA';
RMAN> switch datafile 7 to copy;
SQL> alter tablespace test online;

方案C:
Testcase_C_1:(用create datafile as)
SQL> alter database datafile 7 offline;
SQL> alter database create datafile '/tmp/test.dbf' as '+DATA';
SQL> recover datafile 7;
auto
SQL> alter database datafile 7 online;

Testcase_C_2:(用rman的copy)
SQL> alter database datafile 7 offline;
RMAN> copy datafile 7 to '+DATA';
RMAN> switch datafile 7 to copy;
RMAN> recover datafile 7;
SQL> alter database datafile 7 online;

(具体的测试日志,见附件)

另外,邮件中方案C提到的,offline drop的方式,还是不建议采用,因为offline drop只是标记了一下数据文件,在控制文件中,还是会看到这个文件的信息。除非重建控制文件或者drop整个tablespace。

另外,recover datafile的时候,不建议使用SQL> alter database recover datafile 7。因为会挂住。
SQL> alter database recover datafile 7;
alter database recover datafile 7
*
ERROR at line 1:
ORA-00279: change 4025242 generated at 09/06/2016 15:28:47 needed for thread 1
ORA-00289: suggestion :
+FRA/ora11g/archivelog/2016_09_06/thread_1_seq_669.669.921857351
ORA-00280: change 4025242 for thread 1 is in sequence #669
建议使用:

  1. recover datafile XX,然后指定auto
  2. 用rman的recover datafile xx
  3. 在sqlplus中set autorecovery on之后,再alter database recover datafile xx
  4. Alter database recover automatic datafile xxx
目录
相关文章
|
5月前
|
测试技术 KVM 开发工具
【OS Pintos】Pintos 内核库基本数据结构 | 运行测试用例 alarm-multiple
【OS Pintos】Pintos 内核库基本数据结构 | 运行测试用例 alarm-multiple
73 0
|
8月前
|
Unix API 调度
【python】 一文了解 OS 操作系统交互库简单使用方法
Python的os模块(Operating System Interface)提供了访问操作系统相关功能的接口,它允许程序与底层操作系统交互,对文件系统、进程、套接字等底层操作进行控制。典型的用法是程序打开某个文件时,os库可以帮助我们判断文件是否存在/是否可读/是否可写等等,同时也可以帮助我们创建和删除目录、文件链接等等。os库提供了一系列的函数和方法,用于处理和管理操作系统文件、文件夹,以及运行和控制进程,具体包括以下功能:对文件和目录(文件夹)的操作:包括创建、重命名、删除等等。
102 0
|
6月前
|
缓存 BI Linux
《Linux操作系统编程》第九章 数据查找和筛选工具 : 了解流编辑器sed和报表生成器awk的简单使用
《Linux操作系统编程》第九章 数据查找和筛选工具 : 了解流编辑器sed和报表生成器awk的简单使用
51 0
|
8月前
|
机器学习/深度学习 机器人 中间件
ubuntu16.04下ROS操作系统学习笔记(五)gazebo物理仿真环境搭建、加载服务端模型数据减少报错
ubuntu16.04下ROS操作系统学习笔记(五)gazebo物理仿真环境搭建、加载服务端模型数据减少报错
122 0
|
11月前
|
Oracle 关系型数据库 数据库
RAC中,控制文件的快照文件必须能够被所有节点的数据实例访问到 ORA-00245
RMAN在使用控制文件备份的时候,备份开始点需要最新的检查点信息以及文件头信息。
|
11月前
|
Python
Python 用os和win32api库模仿DOS命令dir (完整实例)
Python 用os和win32api库模仿DOS命令dir (完整实例)
111 0
|
11月前
|
Python
Python使用platform库获取系统信息:操作系统信息、硬件信息、python环境信息
Python使用platform库获取系统信息:操作系统信息、硬件信息、python环境信息
195 0
|
11月前
|
Python Windows
Python中的交互库-os库
Python中的交互库-os库
338 0
|
Shell API Python
OS库常用API讲解
OS库常用API讲解
239 0
|
Android开发
android.os.DeadObjectException的解决办法
android.os.DeadObjectException的解决办法
423 0