oracle 增加ora容量_案例:Oracle报错ORA-01144 详解数据文件大小32GB的限制的原因
天萃荷凈
Oracle數據文件大小的限制,運維DBA在向Oracle數據庫添加一個32G的數據文件的時候報錯ORA-01144,分析原因為數據庫針對文件有32G限制
1.添加數據文件報錯ORA-01144
添加一個32g的數據文件會報錯
SQL> alter tablespace users add datafile ‘/opt/oracle/oradata/test/user32g.dbf’ size 32g;
alter tablespace users add datafile ‘/opt/oracle/oradata/test/user32g.dbf’ size 32g
*
ERROR at line 1:
ORA-01144: File size (4194304 blocks) exceeds maximum of 4194303 blocks
SQL> !oerr ora 1144
01144, 00000, “File size (%s blocks) exceeds maximum of %s blocks”
// *Cause: Specified file size is larger than maximum allowable size value.
// *Action: Specify a smaller size.
添加一個maxsize為unlimited的數據文件
SQL> alter tablespace users add datafile ‘/opt/oracle/oradata/test/user32g.dbf’ size 10M AUTOEXTEND ON maxsize unlimited;
Tablespace altered.
SQL> select MAXBYTES/1024/1024/1024 from dba_data_files where file_name=’/opt/oracle/oradata/test/user32g.dbf’;
MAXBYTES/1024/1024/1024
———————–
31.9999847
2.Oracle錯誤ORA-01144原因分析
你是不是有疑惑,為什么我添加32g的數據文件報錯,為什么我添加一個數據文件maxsize設置為unlimited了,還是沒有突破32g這個坎
原因分析:
由于Oracle的Rowid中使用22位來代表Block號,這22位最多只能代表2^22-1(4194303)個數據塊,而在我們一般情況下使用的數據塊大小為8k,所以數據文件的理論大小最大為: 31.9999924G
至于maxsize為unlimited時候,數據文件的大小為什么只有31.9999847G(blocks:4194301.99),比最大塊數(4194303)少了一塊,也許是和數據庫和系統之間的銜接原因導致。
由上面的分析我們可以知道,數據文件大小和db_block_size有關,那我們可以得到這樣的數據文件最大理論值
數據塊
數據文件
2KB
8GB
4KB
16GB
8KB
32GB
16KB
64GB
32KB
128GB
注:以上規則適用于smallfile tablespace 下的數據文件,bigfile tablespace 下的數據文件不受此限制
--------------------------------------ORACLE-DBA----------------------------------------
最權威、專業的Oracle案例資源匯總之案例:Oracle報錯ORA-01144 詳解數據文件大小32GB的限制的原因
總結
以上是生活随笔為你收集整理的oracle 增加ora容量_案例:Oracle报错ORA-01144 详解数据文件大小32GB的限制的原因的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: kettle 笛卡尔_Kettle用户操
- 下一篇: 折纸机器人的步骤图解_儿童节特辑丨为你精