DB_FILE_NAME_CONVERT参数导致ORA-15124:ASMfilename'..

php中文网
发布: 2016-06-07 16:12:44
原创
1697人浏览过

rac主库+dg单机环境中,一旦主备库之前有归档间隔,而这些归档可能由于种种原因被删除,如归档被清理了,备份集策略已经超出所需归档。也不用担心,可以按以下大致步骤做恢复: o 主库上做基于SCN的增量备份 o 将备份传输至备库 o 备库恢复增量备份 o 主库创

rac主库+dg单机环境中,一旦主备库之前有归档间隔,而这些归档可能由于种种原因被删除,如归档被清理了,备份集策略已经超出所需归档。也不用担心,可以按以下大致步骤做恢复:

o 主库上做基于SCN的增量备份

o 将备份传输至备库

o 备库恢复增量备份

o 主库创建一个standby controlfile,并传输至备库

o 上一步生成的控制文件替换备库的控制文件

这几天遇到个非常奇怪的问题,主库创建standby controlfile时总是报错ORA-15124。这个问题也困扰了自己很多天。

都试过:

o 检查数据库的所有物理文件 asmcmd ls -l来查看

o 检查数据库数据字典 v$database.name / dba_data_files.file_name

o 在asmcmd debug模式下ls -l 查看文件

o 检查ASM的v$asm_file, v$asm_alias等等

o 对ORA-15124做10046和errorstack

o 检查DG备份等等

在创建standby controlfile依旧报错,错误如下:

SQL> show parameter conver;

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_file_name_convert string /data, +DATA/orcl/datafile
log_file_name_convert string /data, +DATA/orcl/onlinelog

(实际过程中,这两个参数如此配置是没有问题的...)

 

SQL> alter database create standby controlfile as '/tmp/a.ctl' reuse;
alter database create standby controlfile as '/tmp/a.ctl' reuse
*
ERROR at line 1:
ORA-15124: ASM file name '+data/odsptdb+DATAfile/system.259.862837403' containsan invalid alias name

对以上加粗部分的字符串是哪里来的表示非常有疑问!

最终,检查DB_FILE_NAME_CONVERT参数的配置,并且做了以下试验:

SQL> alter session set db_file_name_convert='/data','+abc';
------------------------------------------------------------------------/\\\\
Session altered.

SQL> alter database create standby controlfile as '/tmp/a.ctl' reuse;
alter database create standby controlfile as '/tmp/a.ctl' reuse
*
ERROR at line 1:
ORA-15124: ASM file name '+data/odsptdb+abcfile/system.259.862837403' containsan invalid alias name
----------------------------------------------------------/\\\\\

SQL> alter session set db_file_name_convert='/data','abc+abc';
-------------------------------------------------------------------------////\\
Session altered.

SQL> alter database create standby controlfile as '/tmp/a.ctl' reuse;
alter database create standby controlfile as '/tmp/a.ctl' reuse
*
ERROR at line 1:
ORA-15124: ASM file name '+data/odsptdbabc+abcfile/system.259.862837403' contains an invalid alias name
-------------------------------------------------------------////\\

 

SQL> alter session set db_file_name_convert='/data','abc';

Session altered.

SQL> alter database create standby controlfile as '/tmp/a.ctl' reuse;

Database altered.

 

从以上几个试验可以看出,DB_FILE_NAME_CONVERT确实影响了standby controlfile的创建。而且串里不能包含“+” (即加号)

在以往的RAC+ASM中,印象里面DB_FILE_NAME_CONVERT和LOG_FILE_NAME_CONVERT参数是可以有“+” (即加号)的,这一次遇到了很奇怪的问题。计划找个时间窗口,将以上两个参数后半部分都改为"+DATA",完全让ASM来管理。

特意在此记录一下。

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号