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
目录
相关文章
|
19天前
|
Python
文件元数据获取方法对比:`os.path` 与 `os.stat`
本文对比了Python中两种获取文件元数据的方法:`os.path`和`os.stat`。通过示例代码展示了如何获取文件大小和修改时间,并从性能、功能性和代码可读性三方面进行了详细对比。最终给出了根据具体需求选择合适方法的最佳实践建议。
24 2
|
2月前
|
Shell Python
Python 的 os 库的应用实例
Python 的 os 库的应用实例
33 3
|
2月前
|
存储 Java iOS开发
MacOS环境-手写操作系统-43-dir命令的实现 和 文件写入
MacOS环境-手写操作系统-43-dir命令的实现 和 文件写入
35 0
|
5月前
|
Python
Python基本文件操作及os库
以上仅为Python文件操作和os库的基本用法,实际使用中需要根据具体需求进行调整。
34 1
|
5月前
|
Python
Python基本文件操作及os库
以上仅为Python文件操作和os库的基本用法,实际使用中需要根据具体需求进行调整。
38 1
|
6月前
|
Python
Python中使用os库管理环境变量
在Python中,可以使用os库来管理操作系统的环境变量。通过os.environ对象,我们可以获取、修改和删除环境变量的值。
121 3
|
6月前
|
Java 开发工具 Android开发
详细解读Android开发DNK开发将.c文件打包成os
详细解读Android开发DNK开发将.c文件打包成os
34 0
|
6月前
|
消息中间件 Java Kafka
实时计算 Flink版操作报错合集之RocksDB在尝试打开更多文件时达到了操作系统允许的最大打开文件数限制,该怎么办
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
127 0
|
4月前
|
运维 Oracle 前端开发
Oracle 11g RAC集群日常运维命令总结
Oracle 11g RAC集群日常运维命令总结
107 2
|
4月前
|
Oracle 关系型数据库
分布式锁设计问题之Oracle RAC保证多个节点写入内存Page的一致性如何解决
分布式锁设计问题之Oracle RAC保证多个节点写入内存Page的一致性如何解决