ORACLE中裸裝置資料檔案RESIZE/AUTOEXTEND ON

gaopengtttt發表於2013-05-14
ORACLE中裸裝置是否可以RESIZE ,AUTOEXTEND ON?
1、建立一個100M的裸裝置
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1          13      104391   83  Linux
2、建立一個表空間
SQL> create tablespace test
  2  datafile '/dev/raw/raw1' size 10m ;
不啟動自動擴張,
3、建立一個表不斷增加資料,直到報錯
SQL> r
 
insert into test123
select * from test123
 
ORA-01653: unable to extend table PPZHU.TEST123 by 128 in tablespace TEST
我們進行resize
alter database datafile  '/dev/raw/raw1' resize 20m;
檢視
 select * from dba_data_files;已經resize 完成
繼續插入資料,直到報錯
4、設定資料檔案為自動擴張
alter database datafile  '/dev/raw/raw1' autoextend on maxsize 40m;
檢視select * from dba_data_files;如下:
BYTES           MAXBYTES       AUTOEXTENSIBLE    FILE_NAME
20971520 41943040 YES         /dev/raw/raw1
5、繼續插入資料
SQL> insert into test123
  2  select * from test123;
 
71040 rows inserted
可以了,
直到報錯
6、resize檔案
SQL> alter database datafile  '/dev/raw/raw1' resize 80m;
 
Database altered
 
SQL>
SQL> select  BYTES, MAXBYTES ,AUTOEXTENSIBLE,FILE_NAME  from dba_data_files where file_name like '%raw%';
 
     BYTES   MAXBYTES AUTOEXTENSIBLE FILE_NAME
---------- ---------- -------------- --------------------------------------------------------------------------------
  83886080   41943040 YES            /dev/raw/raw1
SQL> insert into test123
  2  select * from test123
  3  ;
 
142080 rows inserted
資料也是可以插入的。
結論
1、裸裝置資料檔案可以resize
2、裸裝置資料檔案可以autoextend on
3、resize大小可以超越autoextend on maxsize
當然為了管理方便一般不啟用AUTOEXTEND ON 在裸裝置上,最好規劃好!
測試版本
SQL> select * from v$version;
 
BANNER
----------------------------------------------------------------
Oracle9i Enterprise Edition Release 9.2.0.4.0 - 64bit Production
PL/SQL Release 9.2.0.4.0 - Production
CORE 9.2.0.3.0 Production
TNS for Linux: Version 9.2.0.4.0 - Production
NLSRTL Version 9.2.0.4.0 - Production
當然10G 11G更沒問題。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7728585/viewspace-761066/,如需轉載,請註明出處,否則將追究法律責任。

相關文章