Oracle表空间操作

1、----查询表空间使用情况---  
 
SELECT UPPER(F.TABLESPACE_NAME) "表空间名",  
D.TOT_GROOTTE_MB "表空间大小(M)",  
D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)",  
TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,2),'990.99') "使用比",  
F.TOTAL_BYTES "空闲空间(M)",  
F.MAX_BYTES "最大块(M)"  
FROM (SELECT TABLESPACE_NAME,  
ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES,  
ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES  
FROM SYS.DBA_FREE_SPACE  
GROUP BY TABLESPACE_NAME) F,  
(SELECT DD.TABLESPACE_NAME,  
ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB  
FROM SYS.DBA_DATA_FILES DD  
GROUP BY DD.TABLESPACE_NAME) D  
WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME  

ORDER BY 4 DESC;  

2、--查看表空间是否具有自动扩展的能力  
SELECT T.TABLESPACE_NAME,D.FILE_NAME,  
D.AUTOEXTENSIBLE,D.BYTES,D.MAXBYTES,D.STATUS  
FROM DBA_TABLESPACES T,DBA_DATA_FILES D  
WHERE T.TABLESPACE_NAME =D.TABLESPACE_NAME  
 ORDER BY TABLESPACE_NAME,FILE_NAME;

3、    --修改表空间文件扩展方式:  
       ALTER DATABASE  
        DATAFILE '/u01/oracle/oradata/orcl/ccen01.dbf' AUTOEXTEND  
        ON NEXT 50M MAXSIZE UNLIMITED  

4、增加表空间的大小

(1)方法一:为表空间增加数据文件

alter tablespace tbsNames add datafile '/data/oracle/db/user02.dbf' size 2048M  ;

(2)方法二:增加表空间原有数据文件大小 

alter database datafile '/data/oracle/db/user01.dbf' resize 4096M  ;

建立表空间
  CREATE TABLESPACE data01
  DATAFILE ’’/oracle/oradata/db/DATA01.dbf’’ SIZE 500M
  UNIFORM SIZE 128k; #指定区尺寸为128k,如不指定,区尺寸默认为64k
  删除表空间
  DROP TABLESPACE data01 INCLUDING CONTENTS AND DATAFILES;
  一、建立表空间
  CREATE TABLESPACE data01
  DATAFILE ’’/oracle/oradata/db/DATA01.dbf’’ SIZE 500M
  UNIFORM SIZE 128k; #指定区尺寸为128k,如不指定,区尺寸默认为64k
  二、建立UNDO表空间
  CREATE UNDO TABLESPACE UNDOTBS02
  DATAFILE ’’/oracle/oradata/db/UNDOTBS02.dbf’’ SIZE 50M
  #注意:在OPEN状态下某些时刻只能用一个UNDO表空间,如果要用新建的表空间,必须切换到该表空间:
  ALTER SYSTEM SET undo_tablespace=UNDOTBS02;
  三、建立临时表空间
  CREATE TEMPORARY TABLESPACE temp_data TEMPFILE ’’/oracle/oradata/db/TEMP_DATA.dbf’’ SIZE 50M
  四、改变表空间状态
  1.使表空间脱机
  ALTER TABLESPACE game OFFLINE;
  如果是意外删除了数据文件,则必须带有RECOVER选项
  ALTER TABLESPACE game OFFLINE FOR RECOVER;
  2.使表空间联机
  ALTER TABLESPACE game ONLINE;
  3.使数据文件脱机
  ALTER DATABASE DATAFILE 3 OFFLINE;
  4.使数据文件联机
  ALTER DATABASE DATAFILE 3 ONLINE;
  5.使表空间只读
  ALTER TABLESPACE game READ ONLY;
  6.使表空间可读写
  ALTER TABLESPACE game READ WRITE;
  五、删除表空间
  DROP TABLESPACE data01 INCLUDING CONTENTS AND DATAFILES;
  六、扩展表空间
  首先查看表空间的名字和所属文件
  select tablespace_name, file_id, file_name,
  round(bytes/(1024*1024),0) total_space
  from dba_data_files
  order by tablespace_name;
  1.增加数据文件
  ALTER TABLESPACE game
  ADD DATAFILE ’’/oracle/oradata/db/GAME02.dbf’’ SIZE 1000M;
  2.手动增加数据文件尺寸
  ALTER DATABASE DATAFILE ’’/oracle/oradata/db/GAME.dbf’’
  RESIZE 4000M;
  3.设定数据文件自动扩展
  ALTER DATABASE DATAFILE ’’/oracle/oradata/db/GAME.dbf
  AUTOEXTEND ON NEXT 100M
  MAXSIZE 10000M;
  设定后查看表空间信息
  SELECT A.TABLESPACE_NAME,A.BYTES TOTAL,B.BYTES USED, C.BYTES FREE,(B.BYTES*100)/A.BYTES "% USED",(C.BYTES*100)/A.BYTES "% FREE" FROM SYS.SM$TS_AVAIL A,SYS.SM$TS_USED B,SYS.SM$TS_FREE C WHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME AND A.TABLESPACE_NAME=C.TABLESPACE_NAME


你可能感兴趣的:(oracle,c,File,database,System,扩展)