--時(shí)間:2020年8月24日 --作者:飛翔的小胖豬 手工目錄: ############################################################# 二、管理表空間 ############################################################# 2.1 創(chuàng)建數(shù)據(jù)表空間新建表空間時(shí)需要指定表空間名、表空間文件路徑、表空間大小、是否自動增長等參數(shù)。 2.1.1 不指定路徑創(chuàng)建表空間創(chuàng)建表空間的時(shí)候可以不指定文件路徑,系統(tǒng)將會默認(rèn)的格式創(chuàng)建一個(gè)新文件。 SQL> show parameter db_create_file_dest; #查看表空間自動填充目錄 SQL> alter system set db_create_file_dest='/app/oracle/oradata/orcl/' scope=both; #設(shè)置表空間自動填充目錄 SQL> show parameter db_create_file_dest; #查看表空間自動填充目錄 SQL> create tablespace test_lvan datafile size 2G; #新建一個(gè)名為test_lvan的表空間 SQL> set linesize 200; #設(shè)置顯示行長度200字符 SQL> col file_name for a60; #設(shè)置file_name字段顯示長度a60 SQL> col TABLESPACE_NAME for a15; #設(shè)置tablespace_name字段顯示長度a15 SQL> select file_name,file_id,tablespace_name,round(bytes/1024/1024) total_M from dba_data_files; #查看表空間名及表空間大小
2.1.2 指定路徑創(chuàng)建表空間使用指定路徑的方式創(chuàng)建表空間時(shí),首先要確認(rèn)oracle用戶對路徑文件夾有讀寫執(zhí)行權(quán)限。否則將無法正常使用。 SQL> set linesize 200; #設(shè)置顯示行長度200字符 SQL> col file_name for a60; #設(shè)置file_name字段顯示長度a60 SQL> col TABLESPACE_NAME for a15; #設(shè)置tablespace_name字段顯示長度啊5 SQL> select file_name,file_id,tablespace_name,round(bytes/1024/1024) total_M from dba_data_files; #查看表空間名及表空間大小 從命令得知所有表空間的文件均在/app/oracle/oradata/WANWAN/datafile/目錄下。
手動指定一個(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; #查看表空間名及表空間大小
2.1.3 創(chuàng)建自增長表空間SQL> set linesize 220; #設(shè)置顯示行長度220字符 SQL> col tablespace_name for a15; #設(shè)置tablespace_name字段顯示長度為a15 SQL> col file_name for a75; #設(shè)置file_name字段顯示長度a75 SQL> select tablespace_name,file_name,AUTOEXTENSIBLE from dba_data_files; #查看表空間是否為自增長
SQL> create tablespace test_auto_add datafile size 2G autoextend on next 100M maxsize 16G; #新建一個(gè)初始大小為2G的表空間,開啟自動增長,每次增加100M,最大為16G。 SQL> set linesize 220; #設(shè)置顯示行長度220字符 SQL> col tablespace_name for a15; #設(shè)置tablespace_name字段顯示長度為a15 SQL> col file_name for a75; #設(shè)置file_name字段顯示長度a75 SQL> select tablespace_name,file_name,AUTOEXTENSIBLE,round(bytes/1024/1024) total_MB from dba_data_files; #查看表空間是否為自增長
2.1.4 查看獲取表空間使用情況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(+);
2.1.5 擴(kuò)容表空間使用重置文件大小方式擴(kuò)容表空間 格式: alter database datafile '表空間位置'resize 新的尺寸 SQL> alter database datafile '/u01/oracle/oradata/wyzc11g/sysaux01.dbf' resize 780M;
使用添加文件方式擴(kuò)容表空間 格式: alter tablespace 表空間名稱add datafile '新的數(shù)據(jù)文件地址' size 數(shù)據(jù)文件大小 SQL> alter tablespace sysaux add datafile '/u01/oracle/oradata/wyzc11g/sysaux04.dbf' size 100M;
為表空間設(shè)置自動擴(kuò)展 格式: alter database datafile '數(shù)據(jù)文件位置' autoextend on next 自動擴(kuò)展大小maxsize 最大擴(kuò)展大小 SQL> alter database datafile '/u01/oracle/oradata/wyzc11g/sysaux04.dbf' autoextend on next 10M maxsize 1000M;
2.2.1 新建臨時(shí)表空間所有用戶默認(rèn)共享使用同一個(gè)臨時(shí)表空間,對于業(yè)務(wù)而言一般需要?jiǎng)?chuàng)建獨(dú)立的臨時(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(+);
2.2.2 擴(kuò)容臨時(shí)表空間通過添加文件的方式擴(kuò)容temp表空間 擴(kuò)展temp表空間并開啟自動增長,使用alter tablespace temp add tempfile '文件路徑’ size 大小 autoextend(自動擴(kuò)展開啟) on next 每次增長大小 maxsize 最大大?。?/strong> SQL>alter tablespace temp add tempfile '/u01/oracle/oradata/wyzc11g/temp02.dbf' size 1G autoextend on next 128M maxsize 3G;
添加文件方式擴(kuò)容temp不開啟自動增長 擴(kuò)展temp表空間不開啟自動增長,使用alter tablespace temp add tempfile '文件路徑’ size 大小 autoextend off (自動擴(kuò)展關(guān)閉); SQL>alter tablespace temp add tempfile '/u01/oracle/oradata/wyzc11g/temp02.dbf' size 1G autoextend off;
重置文件大小的方式擴(kuò)容temp表空間 使用重置文件大小方式擴(kuò)容表空空間,不建議縮小通過這種方式,大表空間不能用重置文件方式擴(kuò)容表空間。命令:alter database tempfile '表空間文件路徑’ resize 調(diào)整大?。?/strong> SQL> alter database tempfile '/u01/oracle/oradata/wyzc11g/temp03.dbf' resize 3G ;
設(shè)置現(xiàn)有temp文件為自動擴(kuò)展 設(shè)置當(dāng)前使用的temp表空間文件設(shè)置自動擴(kuò)展 SQL>alter database tempfile '/u01/oracle/oradata/wyzc11g/temp03.dbf' autoextend on next 100M maxsize 6G;
2.2.3 查看臨時(shí)表空間狀態(tài)查看系統(tǒng)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è)用戶TEMP狀態(tài) 查看有哪些用戶使用了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(+);
2.3 刪除表空間在刪除表空間的時(shí)候需要確認(rèn)表空間是否真的不需要了、是否為用戶的默認(rèn)存儲表空間、是否存在不可刪除的數(shù)據(jù)表。如果確定真的不需要該表空間時(shí)則進(jìn)行刪除操作。 2.3.1 查看表空間是否綁定用戶持續(xù)更新 2.3.2 查看表空間中是否有表持續(xù)更新 2.3.3 刪除表空間持續(xù)更新 |
|