91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2020-09-20 23:59:55 來源:網絡 閱讀:21762 作者:hbxztc 欄目:關系型數據庫

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

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。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

汕头市| 郯城县| 德化县| 咸宁市| 大姚县| 定襄县| 太湖县| 涞水县| 当雄县| 泸州市| 建昌县| 盐源县| 蛟河市| 靖州| 台安县| 大英县| 荆门市| 平乡县| 武汉市| 平顶山市| 宜兴市| 新田县| 如皋市| 米易县| 墨玉县| 越西县| 家居| 阿鲁科尔沁旗| 忻州市| 尼勒克县| 蒲城县| 于田县| 中西区| 大方县| 临清市| 精河县| 阳朔县| 石楼县| 武汉市| 东乡族自治县| 阿拉善盟|