Posted on 2010-09-18 20:16
非洲小白臉 閱讀(2198)
評論(0) 編輯 收藏 所屬分類:
oracle
剛改了oracle10g里面的SPFILE***.ORA文件,數據庫就起不來了,抱錯ORA-27046: file size is not a multiple of logical block size 。原因是動態服務器參數文件(SPFILE)是一個二進制文件,是不可以手工修改的,如果手工改了,該文件就成為了無效文件。
此時可以通過以下方法解決:
1。將SPFILE中的參數拷貝到init***.ora文件中
2。刪除DATABASE目錄下的SPFILE***.ORA文件。
3。啟動數據庫 (現在應該可以成功啟動)
4。SQL> create spfile from pfile 生成SPFIEL
使用startup命令啟動數據庫,,Oralce將會按照以下順序在缺省目錄中(9i,10i在oracle_home/database目錄下)搜索參數文件:(1)spfile***.ora文件 (2)如果沒有spfile***.ora文件就用spfile.ora文件(3) 如果沒有spfile.ora文件就用init***.ora(4)如果沒有init***.ora文件就用 pfile.ora
所以上面我們采取的解決方法是將破壞的SPFILE中的參數復制到init***.ora中,然后刪除SPFILE文件,這樣啟動時就會用init***.ora文件啟動,然后用create spfile from pfile 命令生成SPFIEL
以后如果要修改SPFILE中的參數絕對不能在手工修改SPFILE文件了,用下面命令:alter system set parameter=Value scope=spfile|both|memory 例如:alter system set db_cache_size=24M scope=both;來修改