1. 程式人生 > 其它 >Oracle表空間自動擴充套件設定

Oracle表空間自動擴充套件設定

一、表空間自動擴充套件的好處
1.資料檔案自動擴充套件的好處
1)不會出現因為沒有剩餘空間可以利用到資料無法寫入
2)儘量減少人為的維護

二、設定表空間自動擴充套件的方法
1、查看錶空間情況
SQL>select tablespace_name,file_name,autoextensible from dba_data_files where tablespace_name = '表空間名稱';

2、修改表空間資料檔案,使其達到表空間自動擴充套件
SQL>alter database datafile '/u01/app/oracle/oradata/orcl/user01.dbf' autoextend on;

3、對修改結果進行驗證
SQL>select tablespace_name,file_name,autoextensible from dba_data_files where tablespace_name = '表空間名稱';

三、語法總結
開啟自動擴充套件功能語法:
alter database datafile '對應的資料檔案路徑資訊' autoextend on;

關閉自動擴充套件功能語法:
alter database datafile '對應的資料檔案路徑資訊' autoextend off;

四、建立臨時表空間

create temporary tablespace ***_temp tempfile '***/TEMPFILE/***_temp.dbf' size 1024m  autoextend on  next 500m maxsize unlimited  extent management local;

五、建立表空間

create tablespace ***_tablespace logging  datafile '***/DATAFILE/***_tablespace.dbf' size 30720m  autoextend on  next 500m maxsize unlimited    extent management local;

六、建立使用者及

create user ****** identified by ***** default tablespace ***_tablespace  temporary tablespace ***_temp;

七、授權

grant connect,resource,dba to *****;

--資料檔案位置
select file_name FROM dba_data_files

--資料檔案位置2
select * from v$datafile

--檢視控制檔案
select * from v$controlfile

--檢視歸檔日誌檔案
select * from v$archived_log

--檢視閃迴文件位置
select * from v$flashback_database_logfile

--臨時表空間
select name from v$tempfile;

--檢視分割槽和段空間管理方式
select tablespace_name, segment_space_management from dba_tablespaces;

--查詢使用者
select username,t.CREATED from all_users t order by t.CREATED desc;

-- 查詢表空間是否設定了自增
SELECT FILE_NAME,TABLESPACE_NAME,AUTOEXTENSIBLE FROM dba_data_files where TABLESPACE_NAME='KPIDBS';

--查詢表空間
SELECT TABLESPACE_NAME "表空間",
       To_char(Round(BYTES / 1024, 2), '99990.00') || '' "實有",
       --To_char(Round(FREE / 1024, 2), '99990.00') || 'G' "現有",
       To_char(Round((BYTES - FREE) / 1024, 2), '99990.00') || 'G' "使用",
       To_char(Round(10000 * USED / BYTES) / 100, '99990.00') || '%' "比例"
  FROM (SELECT A.TABLESPACE_NAME TABLESPACE_NAME,
               Floor(A.BYTES / (1024 * 1024)) BYTES,
               Floor(B.FREE / (1024 * 1024)) FREE,
               Floor((A.BYTES - B.FREE) / (1024 * 1024)) USED
          FROM (SELECT TABLESPACE_NAME TABLESPACE_NAME, Sum(BYTES) BYTES
                  FROM DBA_DATA_FILES
                 GROUP BY TABLESPACE_NAME) A,
               (SELECT TABLESPACE_NAME TABLESPACE_NAME, Sum(BYTES) FREE
                  FROM DBA_FREE_SPACE
                 GROUP BY TABLESPACE_NAME) B
         WHERE A.TABLESPACE_NAME = B.TABLESPACE_NAME)
 WHERE TABLESPACE_NAME ='xxxx' --這一句用於指定表空間名稱
 ORDER BY Floor(10000 * USED / BYTES) DESC;