免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

Oracledba_data_files數據字典里的bytes大于maxbytes

今天臨下班時,同學發來一個截圖,意思是說dba_data_files里的bytes值大于maxbytes值。截圖如下:

我們提供的服務有:成都網站制作、網站建設、微信公眾號開發、網站優化、網站認證、太原ssl等。為上千余家企事業單位解決了網站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的太原網站制作公司

Oracle dba_data_files數據字典里的bytes大于maxbytesOracle dba_data_files數據字典里的bytes大于maxbytes

立馬感覺就不好了,根據以往的Oracle運維經驗覺得這絕對是不可能的。但是數據查出來的事實就是這樣的。于是上百度搜相關問題,無耐搜出來的都是不太相關的資料。于是直接上MOS找資料,還真有一篇是介紹這個的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).那現在明白了,手動resize數據文件會導致這一現象。

下面動手還原一下

本次測試的平臺為11.2.0.3

--創建一個測試表空間
SQL> create tablespace zx1 datafile '/opt/bboss/tst4/oracle/arch/zx1.dbf' size 10M;

Tablespace created.
--查看數據文件的屬性
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
--看到默認數據文件的自動增長為NO,bytes也只有創建時指定的10M
--把數據文件轉為自動增長
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
--看到打開自動增長后MAXBYTES默認為32G,也就是數據文件擴展到32G后就不再擴展
--測試是自動擴展
--創建測試用戶及表
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.
--循環插入數據
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
--執行一段時間后報錯,表空間無法擴展
--查看數據文件大小
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
--看操作系統上的數據文件大小
SQL> !du -sk /opt/bboss/tst4/oracle/arch/zx1.dbf
33490016        /opt/bboss/tst4/oracle/arch/zx1.dbf
--可以看到數據文件增長沒有超過MAXBYTES指定的32G
--此時resize數據文件
SQL> alter database datafile '/opt/bboss/tst4/oracle/arch/zx1.dbf' resize 33554424k; --由于操作系統限制最大只能33554424k,不過足可以說明問題

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
--現在看到數據文件的bytes>maxbytes了

上面還原了BYTES>MAXBYTES的過程。

上面提到的表空間的數據文件是自動擴展的,那對于不自動擴展的數據文件又會怎么樣呢?

下面繼續測試

--取消數據文件的自動擴展
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變為了0

如果再把數據文件改為可自動擴展又會出現什么情況呢

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了

下面總結一下:

dba_data_files數據字典里的bytes值和maxbytes沒有什么必然的聯系

數據文件不可自動擴展時,MAXBYTES=0,BYTES的值既為該文件已實際分配的大小,也為該為件最大大小

數據文件可自動擴展時,默認的MAXBYTES=32G,BYTES為該文件已實際分配的大小,默認情況下BYTES不會超過MAXBYTES,如果對該文件進行resize操作,那么BYTES就用可能大于MAXBYTES。

文章題目:Oracledba_data_files數據字典里的bytes大于maxbytes
分享網址:http://m.newbst.com/article4/jeeeoe.html

成都網站建設公司_創新互聯,為您提供營銷型網站建設定制開發自適應網站品牌網站制作網站策劃

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

h5響應式網站建設