今天臨下班時(shí),同學(xué)發(fā)來(lái)一個(gè)截圖,意思是說(shuō)dba_data_files里的bytes值大于maxbytes值。截圖如下:
我們提供的服務(wù)有:成都網(wǎng)站制作、網(wǎng)站建設(shè)、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、太原ssl等。為上千余家企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢(xún)和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的太原網(wǎng)站制作公司
立馬感覺(jué)就不好了,根據(jù)以往的Oracle運(yùn)維經(jīng)驗(yàn)覺(jué)得這絕對(duì)是不可能的。但是數(shù)據(jù)查出來(lái)的事實(shí)就是這樣的。于是上百度搜相關(guān)問(wèn)題,無(wú)耐搜出來(lái)的都是不太相關(guān)的資料。于是直接上MOS找資料,還真有一篇是介紹這個(gè)的Value in BYTES Column Greater than MAXBYTES Column in DBA_DATA_FILES (文檔 ID 197244.1) 其中有這么一句The BYTES column in DBA_DATA_FILES has a value greater than MAXBYTES column when a datafile was manually resized to a value GREATER than MAXSIZE (MAXBYTES).那現(xiàn)在明白了,手動(dòng)resize數(shù)據(jù)文件會(huì)導(dǎo)致這一現(xiàn)象。
下面動(dòng)手還原一下
本次測(cè)試的平臺(tái)為11.2.0.3
--創(chuàng)建一個(gè)測(cè)試表空間 SQL> create tablespace zx1 datafile '/opt/bboss/tst4/oracle/arch/zx1.dbf' size 10M; Tablespace created. --查看數(shù)據(jù)文件的屬性 SQL> col file_name for a100 SQL> set linesize 200 SQL> set num 20 SQL> select file_name,tablespace_name,bytes,maxbytes,autoextensible from dba_data_files where tablespace_name='ZX1'; FILE_NAME TABLESPACE_NAME BYTES MAXBYTES AUT ---------------------------------------------------------------------------------------------------- ------------------------------ ---------- ---------- --- /opt/bboss/tst4/oracle/arch/zx1.dbf ZX1 10485760 0 NO --看到默認(rèn)數(shù)據(jù)文件的自動(dòng)增長(zhǎng)為NO,bytes也只有創(chuàng)建時(shí)指定的10M --把數(shù)據(jù)文件轉(zhuǎn)為自動(dòng)增長(zhǎng) SQL> alter database datafile '/opt/bboss/tst4/oracle/arch/zx1.dbf' autoextend on; Database altered. SQL> select file_name,tablespace_name,bytes,maxbytes,autoextensible from dba_data_files where tablespace_name='ZX1'; FILE_NAME TABLESPACE_NAME BYTES MAXBYTES AUT ---------------------------------------------------------------------------------------------------- ------------------------------ -------------------- -------------------- --- /opt/bboss/tst4/oracle/arch/zx1.dbf ZX1 10485760 34359721984 YES --看到打開(kāi)自動(dòng)增長(zhǎng)后MAXBYTES默認(rèn)為32G,也就是數(shù)據(jù)文件擴(kuò)展到32G后就不再擴(kuò)展 --測(cè)試是自動(dòng)擴(kuò)展 --創(chuàng)建測(cè)試用戶(hù)及表 SQL> create user zhaoxu identified by zhaoxu; User created. SQL> grant connect , resource to zhaoxu; Grant succeeded. SQL> create table zhaoxu.test1 tablespace zx1 as select * from dba_objects; Table created. --循環(huán)插入數(shù)據(jù) SQL> begin 2 for i in 1..100 3 loop 4 insert /* append */ into zhaoxu.test1 select * from zhaoxu.test1; 5 commit; 6 end loop; 7 end; 8 / begin * ERROR at line 1: ORA-01653: unable to extend table ZHAOXU.TEST1 by 8192 in tablespace ZX1 ORA-06512: at line 4 --執(zhí)行一段時(shí)間后報(bào)錯(cuò),表空間無(wú)法擴(kuò)展 --查看數(shù)據(jù)文件大小 SQL> select file_name,tablespace_name,bytes,maxbytes,autoextensible from dba_data_files where tablespace_name='ZX1'; FILE_NAME TABLESPACE_NAME BYTES MAXBYTES AUT ---------------------------------------------------------------------------------------------------- ------------------------------ -------------------- -------------------- --- /opt/bboss/tst4/oracle/arch/zx1.dbf ZX1 34293743616 34359721984 YES --看操作系統(tǒng)上的數(shù)據(jù)文件大小 SQL> !du -sk /opt/bboss/tst4/oracle/arch/zx1.dbf 33490016 /opt/bboss/tst4/oracle/arch/zx1.dbf --可以看到數(shù)據(jù)文件增長(zhǎng)沒(méi)有超過(guò)MAXBYTES指定的32G --此時(shí)resize數(shù)據(jù)文件 SQL> alter database datafile '/opt/bboss/tst4/oracle/arch/zx1.dbf' resize 33554424k; --由于操作系統(tǒng)限制最大只能33554424k,不過(guò)足可以說(shuō)明問(wèn)題 Database altered. SQL> select file_name,tablespace_name,bytes,maxbytes,bytes-maxbytes,autoextensible from dba_data_files where tablespace_name='ZX1'; FILE_NAME TABLESPACE_NAME BYTES MAXBYTES BYTES-MAXBYTES AUT ---------------------------------------------------------------------------------------------------- ------------------------------ -------------------- -------------------- -------------------- --- /opt/bboss/tst4/oracle/arch/zx1.dbf ZX1 34359730176 34359721984 8192 YES --現(xiàn)在看到數(shù)據(jù)文件的bytes>maxbytes了
上面還原了BYTES>MAXBYTES的過(guò)程。
上面提到的表空間的數(shù)據(jù)文件是自動(dòng)擴(kuò)展的,那對(duì)于不自動(dòng)擴(kuò)展的數(shù)據(jù)文件又會(huì)怎么樣呢?
下面繼續(xù)測(cè)試
--取消數(shù)據(jù)文件的自動(dòng)擴(kuò)展 SQL> alter database datafile '/opt/bboss/tst4/oracle/arch/zx1.dbf' autoextend off; Database altered. SQL> select file_name,tablespace_name,bytes,maxbytes,bytes-maxbytes,autoextensible from dba_data_files where tablespace_name='ZX1'; FILE_NAME TABLESPACE_NAME BYTES MAXBYTES BYTES-MAXBYTES AUT ---------------------------------------------------------------------------------------------------- ------------------------------ -------------------- -------------------- -------------------- --- /opt/bboss/tst4/oracle/arch/zx1.dbf ZX1 34359730176 0 34359730176 NO --可以看到MAXBYTES變?yōu)榱?
如果再把數(shù)據(jù)文件改為可自動(dòng)擴(kuò)展又會(huì)出現(xiàn)什么情況呢
SQL> alter database datafile '/opt/bboss/tst4/oracle/arch/zx1.dbf' autoextend on; Database altered. SQL> select file_name,tablespace_name,bytes,maxbytes,bytes-maxbytes,autoextensible from dba_data_files where tablespace_name='ZX1'; FILE_NAME TABLESPACE_NAME BYTES MAXBYTES BYTES-MAXBYTES AUT ---------------------------------------------------------------------------------------------------- ------------------------------ -------------------- -------------------- -------------------- --- /opt/bboss/tst4/oracle/arch/zx1.dbf ZX1 34359730176 34359730176 0 YES --可以看到BYTES=MAXBYTES了
下面總結(jié)一下:
dba_data_files數(shù)據(jù)字典里的bytes值和maxbytes沒(méi)有什么必然的聯(lián)系
數(shù)據(jù)文件不可自動(dòng)擴(kuò)展時(shí),MAXBYTES=0,BYTES的值既為該文件已實(shí)際分配的大小,也為該為件最大大小
數(shù)據(jù)文件可自動(dòng)擴(kuò)展時(shí),默認(rèn)的MAXBYTES=32G,BYTES為該文件已實(shí)際分配的大小,默認(rèn)情況下BYTES不會(huì)超過(guò)MAXBYTES,如果對(duì)該文件進(jìn)行resize操作,那么BYTES就用可能大于MAXBYTES。
文章題目:Oracledba_data_files數(shù)據(jù)字典里的bytes大于maxbytes
分享網(wǎng)址:http://www.rwnh.cn/article4/jeeeoe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、定制開(kāi)發(fā)、自適應(yīng)網(wǎng)站、品牌網(wǎng)站制作、網(wǎng)站策劃
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)