數據文件的後綴名

今天看到生產系統表空間99瞭,果斷給表空間加數據文件。沒問題,果斷搞定。

晚上回味的時候,一身冷汗。生產系統RAC,加數據文件是在共享存儲。路徑加對瞭,但是數據文件的後綴名加錯瞭!

原來的數據文件名:

+data/datafile/xxxxxx.dat

我加的數據文件:

+data/datafile/xxxxxx.dbf

業務不會就這樣跪瞭吧????

果斷做瞭測試:

創建一個包含.dbf和.dat的表空間,並在該表空間中創建測試表
create tablespace dxmy datafile '/u01/app/oracle/oradata/single1/dxmy001.dat' size 2m autoextend off;
alter tablespace dxmy add datafile '/u01/app/oracle/oradata/single1/dxmy002.xo' size 2m autoextend off;
alter tablespace dxmy add datafile '/u01/app/oracle/oradata/single1/dxmy003.dbf' size 4m autoextend off;

create table tab_test (id number,name varchar2(100)) tablespace dxmy;
插入數據:
declare
begin
  for i in 1 .. 100000 loop
    insert into tab_test values (i,i||'dxmy');
  end loop;
  commit;
end;
查看表所占空間:
select owner,
       table_name,
       NUM_ROWS,
       BLOCKS * 8192 / 1024 / 1024 "Size M",
       EMPTY_BLOCKS,
       LAST_ANALYZED
  from dba_tables
 where table_name = 'TAB_TEST';

OWNER    TABLE_NAME    NUM_ROWS    Size M    EMPTY_BLOCKS    LAST_ANALYZED
LM    TAB_TEST    200000    4.859375    0    2015/12/10 6:29:07

發現已經大於1M瞭,說明三個數據文件都是在用的。
也就是說,Oracle用數據文件,隻要數據文件屬於該表空間,就能用,不管後綴名。

PS:如果查表所占空間無數據,執行表分析語句就好。

exec dbms_stats.get_tables_stats(ownname => '',tabname => '');

You May Also Like