ITPub博客

首页 > 数据库 > Oracle > oracle RAC中表空间数据文件错误创建到了节点本地位置

oracle RAC中表空间数据文件错误创建到了节点本地位置

原创 Oracle 作者:Z少校 时间:2017-01-16 15:33:51 0 删除 编辑
    由于测试环境和生产环境不同,测试环境为单实例,生产环境为oracle RAC,当批量运行脚本时由于程序员疏忽,将其中一个创建表空间的脚本数据文件路径为修改成集群路径,导致表空间的数据文件创建到了节点1的本地目录,脚本运行正常,但是你会发现后期创建表时发现有个别表节点2查询报错。
解决的方法:
1.关闭整个集群,然后在节点1中grid用户中登录asmcdm,并执行一下命令:
ASMCMD>cd data/orcl/datafile/
ASMCMD> cp /u02/app/oracle/datafile/tsys.dbf .  (tsys.dbf是错误创建的数据文件
copying /u02/app/oracle/datafile/tsys.dbf -> +data/orcl/datafile/tsys.dbf  
再讲集群启动到mount状态: srvctl start database -d 实例名 -o mount
进入数据库中将表空间重命名: alter datavase rname file '/u02/app/oracle/datafile/tsys.dbf' to '+data/orcl/datafile/tsys.dbf';
再将集群关闭并正常启动即可。

2.如果使用1方法无法将错误创建的表空间文件cp到共享磁盘,而且重启集群报错,导致无法启动时,
使用命令启动创建错误表空间的节点:srvctl start instance -dorcl -i orcl1
因为错误创建的数据文件在节点1上,你可以启动节点1:
(1)创建新的表空间,将错误创建的表空间中存放的数据库对象移动到正确创建的表空间中去。
(2)暂时解决方法是讲该错误表空间中的对象使用exp或者expdp导出成dmp文件,然后将该错误表空间删除掉,关闭集群然后在正常重启整个集群
按照正确的方式在asm中创建表空间,然后将导出的dmp文件导入进去即可。


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30484956/viewspace-2132506/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2015-09-15

  • 博文量
    31
  • 访问量
    22818