ORA-01506: missing or illegal database name 故障分析一例

來源:互聯網
上載者:User

今天在做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的高手了。

----------------------------------------------------------------------

By aaron8219 Chinaunix Blog:http://blog.chinaunix.net/uid/24612962.html

原創文章,轉載請註明連結,謝謝!

http://blog.csdn.net/aaron8219/article/details/10030523

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.