Welcome 微信登录

首页 / 数据库 / MySQL / ORA-01506: missing or illegal database name 故障分析一例

今天在做RAC-DG实验时,碰到了不少的问题,这个问题是在操作用pifle创建spifle时出现的由于在配置RAC-DG主库参数时,大部分人喜欢直接用alter system set xxx="xxx.xxx" scope=spfile;而我由于不想一条条敲命令,所以先用主库参数创建一个pifle,然后对pfile进行修改,加上我们所需的DG配置参数,然后再把pfile写回spfile参数文件,再用spfile来启动RAC数据库步骤如下:1.在主库正常启动状态下执行:SQL> create pfile="/rmanbackup/initora11dg.ora" from spfile;File created.2.修改生成的pfile参数文件的内容,主要添加以下内容:#装完GI后原有参数
*.audit_file_dest="/u01/app/Oracle/admin/ora11rac/adump"
*.audit_trail="db"
*.cluster_database=true
*.compatible="11.2.0.0.0"
*.control_files="+DATA/ora11rac/controlfile/current.260.823440203","+BACKUPDG/ora11rac/controlfile/current.256.823440203"
*.db_block_size=8192
*.db_create_file_dest="+DATA"
*.db_domain=""
*.db_name="ora11rac"
*.db_recovery_file_dest="+BACKUPDG"
*.db_recovery_file_dest_size=4558159872
*.diagnostic_dest="/u01/app/oracle"
*.dispatchers="(PROTOCOL=TCP) (SERVICE=ora11racXDB)"
ora11rac2.instance_number=2
ora11rac1.instance_number=1
*.memory_target=838860800
*.open_cursors=300
*.processes=150
*.remote_listener="zlm-cluster-scan:1521"
*.remote_login_passwordfile="exclusive"
ora11rac2.thread=2
ora11rac1.thread=1
ora11rac2.undo_tablespace="UNDOTBS2"
ora11rac1.undo_tablespace="UNDOTBS1"#以下为配置DG而添加的内容
*.db_unique_name="ora11rac"
*.log_archive_config="dg_config=(ora11rac,ora11dg)"
*.log_archive_dest_1="location=USE_DB_RECOVERY_FILE_DEST valid_for=(all_logfiles,all_roles) db_unique_name=ora11rac"
*.log_archive_dest_2="service=ora11dg valid_for=(online_logfiles,primary_role) db_unique_name=ora11dg"
*.log_archive_dest_state_1=enable
*.log_archive_dest_state_2=enable
*.log_archive_format="arc_%t_%s_%r.arc"#为switchover或failover而设置的参数
*.fal_server=ora11dg
*.standby_file_management="auto"
*.db_file_name_convert="/u01/app/oracle/oradata/ora11dg/datafile","+DATA/ora11rac/datafile","/u01/app/oracle/oradata/ora11dg/datafile","+DATA/ora11rac/tempfile"
*.log_file_name_convert="/u01/app/oracle/oradata/ora11dg/datafile","+DATA/ora11rac/onlinelog","/u01/app/oracle/oradata/ora11dg/datafile","+BACKUPDG/ora11rac/onlinelog"3.保存退出后,执行以下命令:SQL> create spfile="+DATA/ora11rac/spfileora11rac.ora" from pfile;File created.本来以为这样就完成了我的预定目标->用pfile修改spfile,但是当我再startup启动数据库时,报了ORA-01506的错误SQL> startup force
ORA-01506: missing or illegal database name这个错误,按字面理解就是丢失数据库名,就是参数中没有db_name这项内容或者配置错误。发生这个错误是因为没有之前的创建spfile语句没有指定pfile路径所致。其实和单实例本地路径存放不同(单实例环境直接执行create spifle from pfile是不会有问题的,因为这2个文件都存放在$ORACLE_HOME/dbs路径下),如果pfile不指定路径,默认使用的只是dbs下的initora11rac1.ora去生成spfile,由于在ASM中,此文件是用来指向ASM中spfile文件的存放路径,内容只有一句“+DATA/ora11rac/spfileora11rac.ora”,知道了问题所在,那么把上面那条创建spifle的语句修改如下:SQL> create spfile="+DATA/ora11rac/spfileora11rac.ora" from pfile="/rmanbackup/initora11rac.ora";File created.
SQL> startup
ORACLE instance started.Total System Global Area  835104768 bytes
Fixed Size                  2232960 bytes
Variable Size           578817408 bytes
Database Buffers          251658240 bytes
Redo Buffers                2396160 bytes
Database mounted.
Database opened.
SQL> show parameter spfile
NAME                               TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                             string      +DATA/ora11rac/spfileora11rac.
                                               ora
此时再用spfile启动正常,问题解决了。总结:发现问题不要慌张,根据oracle的错误提示,去思考错误发生的原因,如果自己不能得出有效的判断,可以借助一些手段,比如google,很多ora-xxxxx错误搜索一下就能得出很多条结果,虽然产生的原因和解决的办法不尽相同,但是我想说的是,可以为你提供一种思路。很多情况下,别人可以用的方法,可以执行的命令是ok的,但是到了自己的环境,却不一定是一样的。以上的这个问题,其实是因为自己初学,对ASM的RAC环境还不够熟悉所致,如果知道默认是去dbs使用pfile的这个规则,那么很容易就能发现问题所在,而这个也是一个经验积累的过程,碰到一个问题就解决一个,假以时日,你就会成为truble shooting的高手了。推荐阅读:Data Guard 配置 Standby Redo Log http://www.linuxidc.com/Linux/2013-03/80660.htmRMAN duplicate for Standby失败解决过程 http://www.linuxidc.com/Linux/2013-01/78103.htmData Gurad物理备份方式下以READ ONLY/WRITE模式打开物理Standby http://www.linuxidc.com/Linux/2012-12/76823.htmRAC primary+Single Standby DG配置实践 http://www.linuxidc.com/Linux/2012-08/68504.htmOracle Standby 策略 PPT http://www.linuxidc.com/Linux/2012-07/66033.htm更多Oracle相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12Oracle创建表和约束条件Oracle SCN 深入研究相关资讯      ORA-01506  本文评论 查看全部评论 (0)
表情: 姓名: 字数