--時(shí)間:2020年8月24日
--作者:飛翔的小胖豬
手工目錄:
#############################################################
二、管理表空間
2.1 創(chuàng )建數據表空間
2.1.1 不指定路徑創(chuàng )建表空間
2.1.2 指定路徑創(chuàng )建表空間
2.1.3 創(chuàng )建自增長(cháng)表空間
2.1.4 查看獲取表空間使用情況
2.1.5 擴容表空間
2.2 管理臨時(shí)表空間
2.2.1 新建臨時(shí)表空間
2.2.2 擴容臨時(shí)表空間
2.2.3 查看臨時(shí)表空間狀態(tài)
2.3 刪除表空間
2.3.1 查看表空間是否綁定用戶(hù)
2.3.2 查看表空間中是否有表
2.3.3 刪除表空間
#############################################################
新建表空間時(shí)需要指定表空間名、表空間文件路徑、表空間大小、是否自動(dòng)增長(cháng)等參數。
創(chuàng )建表空間的時(shí)候可以不指定文件路徑,系統將會(huì )默認的格式創(chuàng )建一個(gè)新文件。
SQL> show parameter db_create_file_dest; #查看表空間自動(dòng)填充目錄
SQL> alter system set db_create_file_dest='/app/oracle/oradata/orcl/' scope=both; #設置表空間自動(dòng)填充目錄
SQL> show parameter db_create_file_dest; #查看表空間自動(dòng)填充目錄
SQL> create tablespace test_lvan datafile size 2G; #新建一個(gè)名為test_lvan的表空間
SQL> set linesize 200; #設置顯示行長(cháng)度200字符
SQL> col file_name for a60; #設置file_name字段顯示長(cháng)度a60
SQL> col TABLESPACE_NAME for a15; #設置tablespace_name字段顯示長(cháng)度a15
SQL> select file_name,file_id,tablespace_name,round(bytes/1024/1024) total_M from dba_data_files; #查看表空間名及表空間大小

使用指定路徑的方式創(chuàng )建表空間時(shí),首先要確認oracle用戶(hù)對路徑文件夾有讀寫(xiě)執行權限。否則將無(wú)法正常使用。
SQL> set linesize 200; #設置顯示行長(cháng)度200字符
SQL> col file_name for a60; #設置file_name字段顯示長(cháng)度a60
SQL> col TABLESPACE_NAME for a15; #設置tablespace_name字段顯示長(cháng)度啊5
SQL> select file_name,file_id,tablespace_name,round(bytes/1024/1024) total_M from dba_data_files; #查看表空間名及表空間大小

從命令得知所有表空間的文件均在/app/oracle/oradata/WANWAN/datafile/目錄下。
手動(dòng)指定一個(gè)路徑創(chuàng )建一個(gè)表空間
SQL> create tablespace test_wan datafile '/app/oracle/oradata/WANWAN/datafile/test_wan.dbf'size 2G; #新建一個(gè)名為test_wan的表空間,大小為2G。
SQL> select file_name,file_id,tablespace_name,round(bytes/1024/1024) total_M from dba_data_files; #查看表空間名及表空間大小

SQL> set linesize 220; #設置顯示行長(cháng)度220字符
SQL> col tablespace_name for a15; #設置tablespace_name字段顯示長(cháng)度為a15
SQL> col file_name for a75; #設置file_name字段顯示長(cháng)度a75
SQL> select tablespace_name,file_name,AUTOEXTENSIBLE from dba_data_files; #查看表空間是否為自增長(cháng)

SQL> create tablespace test_auto_add datafile size 2G autoextend on next 100M maxsize 16G; #新建一個(gè)初始大小為2G的表空間,開(kāi)啟自動(dòng)增長(cháng),每次增加100M,最大為16G。
SQL> set linesize 220; #設置顯示行長(cháng)度220字符
SQL> col tablespace_name for a15; #設置tablespace_name字段顯示長(cháng)度為a15
SQL> col file_name for a75; #設置file_name字段顯示長(cháng)度a75
SQL> select tablespace_name,file_name,AUTOEXTENSIBLE,round(bytes/1024/1024) total_MB from dba_data_files; #查看表空間是否為自增長(cháng)

SQL> SELECT D.TABLESPACE_NAME,SPACE "SUM_SPACE(M)",SPACE-NVL(FREE_SPACE,0) "USED_SPACE(M)",
ROUND((1-NVL(FREE_SPACE,0)/SPACE)*100,2) "USED_RATE(%)",FREE_SPACE "FREE_SPACE(M)"
FROM
(SELECT TABLESPACE_NAME,ROUND(SUM(BYTES)/(1024*1024),2) SPACE
FROM DBA_DATA_FILES
GROUP BY TABLESPACE_NAME) D,
(SELECT TABLESPACE_NAME,ROUND(SUM(BYTES)/(1024*1024),2) FREE_SPACE
FROM DBA_FREE_SPACE
GROUP BY TABLESPACE_NAME) F
WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME(+);

使用重置文件大小方式擴容表空間
格式:
alter database datafile '表空間位置'resize 新的尺寸
SQL> alter database datafile '/u01/oracle/oradata/wyzc11g/sysaux01.dbf' resize 780M;

使用添加文件方式擴容表空間
格式:
alter tablespace 表空間名稱(chēng)add datafile '新的數據文件地址' size 數據文件大小
SQL> alter tablespace sysaux add datafile '/u01/oracle/oradata/wyzc11g/sysaux04.dbf' size 100M;

為表空間設置自動(dòng)擴展
格式:
alter database datafile '數據文件位置' autoextend on next 自動(dòng)擴展大小maxsize 最大擴展大小
SQL> alter database datafile '/u01/oracle/oradata/wyzc11g/sysaux04.dbf' autoextend on next 10M maxsize 1000M;

所有用戶(hù)默認共享使用同一個(gè)臨時(shí)表空間,對于業(yè)務(wù)而言一般需要創(chuàng )建獨立的臨時(shí)表空間。
SQL> create temporary tablespace tmpadd tempfile size 2G;
SQL> SELECT D.TABLESPACE_NAME,SPACE "SUM_SPACE(M)",BLOCKS SUM_BLOCKS,
USED_SPACE "USED_SPACE(M)",ROUND(NVL(USED_SPACE,0)/SPACE*100,2) "USED_RATE(%)",
NVL(FREE_SPACE,0) "FREE_SPACE(M)"
FROM
(SELECT TABLESPACE_NAME,ROUND(SUM(BYTES)/(1024*1024),2) SPACE,SUM(BLOCKS) BLOCKS
FROM DBA_TEMP_FILES
GROUP BY TABLESPACE_NAME) D,
(SELECT TABLESPACE_NAME,ROUND(SUM(BYTES_USED)/(1024*1024),2) USED_SPACE,
ROUND(SUM(BYTES_FREE)/(1024*1024),2) FREE_SPACE
FROM V$TEMP_SPACE_HEADER
GROUP BY TABLESPACE_NAME) F
WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME(+);

通過(guò)添加文件的方式擴容temp表空間
擴展temp表空間并開(kāi)啟自動(dòng)增長(cháng),使用alter tablespace temp add tempfile '文件路徑’ size 大小 autoextend(自動(dòng)擴展開(kāi)啟) on next 每次增長(cháng)大小 maxsize 最大大??;
SQL>alter tablespace temp add tempfile '/u01/oracle/oradata/wyzc11g/temp02.dbf' size 1G autoextend on next 128M maxsize 3G;

添加文件方式擴容temp不開(kāi)啟自動(dòng)增長(cháng)
擴展temp表空間不開(kāi)啟自動(dòng)增長(cháng),使用alter tablespace temp add tempfile '文件路徑’ size 大小 autoextend off (自動(dòng)擴展關(guān)閉);
SQL>alter tablespace temp add tempfile '/u01/oracle/oradata/wyzc11g/temp02.dbf' size 1G autoextend off;

重置文件大小的方式擴容temp表空間
使用重置文件大小方式擴容表空空間,不建議縮小通過(guò)這種方式,大表空間不能用重置文件方式擴容表空間。命令:alter database tempfile '表空間文件路徑’ resize 調整大??;
SQL> alter database tempfile '/u01/oracle/oradata/wyzc11g/temp03.dbf' resize 3G ;

設置現有temp文件為自動(dòng)擴展
設置當前使用的temp表空間文件設置自動(dòng)擴展
SQL>alter database tempfile '/u01/oracle/oradata/wyzc11g/temp03.dbf' autoextend on next 100M maxsize 6G;

查看系統temp表空間的文件路徑名及表空間名
SQL>set linesize 200;
SQL> col file for a50;
SQL> select f.file#,t.ts#,f.name "File",t.name "Tablespace" from v$tempfile f,V$tablespace t where f.ts# = t.ts#;

查看每個(gè)用戶(hù)TEMP狀態(tài)
查看有哪些用戶(hù)使用了temp表空間
SQL>SELECT USERNAME, TEMPORARY_TABLESPACE FROM DBA_USERS;

查看臨時(shí)表空間使用情況
SQL> SELECT D.TABLESPACE_NAME,SPACE "SUM_SPACE(M)",BLOCKS SUM_BLOCKS,
USED_SPACE "USED_SPACE(M)",ROUND(NVL(USED_SPACE,0)/SPACE*100,2) "USED_RATE(%)",
NVL(FREE_SPACE,0) "FREE_SPACE(M)"
FROM
(SELECT TABLESPACE_NAME,ROUND(SUM(BYTES)/(1024*1024),2) SPACE,SUM(BLOCKS) BLOCKS
FROM DBA_TEMP_FILES
GROUP BY TABLESPACE_NAME) D,
(SELECT TABLESPACE_NAME,ROUND(SUM(BYTES_USED)/(1024*1024),2) USED_SPACE,
ROUND(SUM(BYTES_FREE)/(1024*1024),2) FREE_SPACE
FROM V$TEMP_SPACE_HEADER
GROUP BY TABLESPACE_NAME) F
WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME(+);

在刪除表空間的時(shí)候需要確認表空間是否真的不需要了、是否為用戶(hù)的默認存儲表空間、是否存在不可刪除的數據表。如果確定真的不需要該表空間時(shí)則進(jìn)行刪除操作。
持續更新
持續更新
持續更新
聯(lián)系客服