從ORA 00374錯誤看運維工作的規範性

2021-09-05 03:39:20 字數 1714 閱讀 2065

某天,乙個朋友說他們的乙個新裝的資料庫出了問題,無法啟動到open狀態,報錯資訊

sql> startup  

ora-00374: parameter db_block_size = 10000 invalid ; must be a multiple of 512 in the range [2048..16384] 

他很有底氣的告訴我說:沒錯啊,錯誤提示db_block_size大小範圍在2048-16384,現在是10000是對的啊!

我們安裝oracle資料庫的時候,預設大小為8192,但是為什麼他的是10000呢?一問才知道原來他自己修改的,認為改大點增加塊的大小,沒錯,是可以這麼修改,而且也在2048到16384的範圍,但是為什麼還是錯了呢?

1.db_block_size引數的大小理論值為2048-32768,但是根據當前的系統環境值的範圍可能會小些,也就是2048-16384

2.db_block_size引數是以byte為單位

3.db_block_size引數的預設值一般為4096或者8192

4.db_block_size引數的值必須是裝置級別的物理塊大小的整數倍

那麼裝置級別的物理塊大小是多少呢?在裝置級別的上層是作業系統,在作業系統上檢視

# tune2fs -l /dev/sda1 | grep "block size"  

block size:               512  

作業系統上的block size大小為512

db_block_size/system_block_size 不等於整數倍,所以即使在範圍內也是會報錯的!

修改引數檔案中db_block_size為

*.db_block_size=8192

重新生成引數檔案

$ sqlplus / as sysdba  

sql*plus: release 10.2.0.1.0 - production on thu nov 1 05:28:38 2012  

connected to an idle instance.  

sql> create spfile from pfile;  

file created.  

最後重新啟動資料庫!

sql> startup  

oracle instance started.  

total system global area  285212672 bytes  

fixed size                  1218992 bytes  

variable size              71304784 bytes  

database buffers          209715200 bytes  

redo buffers                2973696 bytes  

database mounted.  

database opened. 

發現一切正常了!

這是因為db_block_size/system_block_size:8192/1024=8

資料庫的塊大小是系統塊大小的8倍,整數倍。而且在規定值的範圍內!所以才是正確的!

總結:有此事可知,我們日常dba運維或者系統運維工作都必須要有嚴格的操作規範,最後形成統一的文件,不可隨意和想當然,切記生產環境不可馬虎大意!

ORA錯誤編碼

ora 00942 表或檢視不存在 在oracle新建乙個表並在oracle中用select查得到,可是在asp.net執行sql語句總報錯 ora 00942 表或檢視不存在 原因分析 須在select from table 前加當前使用者名稱 如 select from sys.table 使用...

ORA錯誤小彙總

今天看到一篇不錯的彙總哈 表示立刻mark下哈 ora 12560 協議介面卡錯誤 可能是以下原因 1 服務沒有開啟 oracle的服務,oraclehome92tnslistener 2 資料庫例項沒有開啟 oracleserviceorcl 3 登錄檔中預設oracle sid設定錯誤 orac...

ORA 12571 ORA 03113錯誤解決

問題現象 windows2000 環境下system 檔案壞掉了,不能啟動,修復以後機器是啟動了,但發現原來的 oracle 服務都不見了,也沒有什麼重要的資料,就重灌了一遍,裝完以後一切正常,連線 oracle 正常,重啟動機器以後發現連線 oracle 出現錯誤 ora 12571 tns 包寫...