oracle其他盘添加表空间吗,oracle增加表空间的四种方法
實例1:
在中,磁盤空間不足是DBA都會遇到的問題,問題比較常見。
--1查看表空間已經(jīng)使用的百分比select?a.tablespace_name,a.bytes/1024/1024 "Sum
MB",(a.bytes-b.bytes)/1024/1024?"used MB",b.bytes/1024/1024 "free
MB",round(((a.bytes-b.bytes)/a.bytes)*100,2) "percent_used"
from
(select tablespace_name,sum(bytes) bytes from dba_data_files group
by tablespace_name)?a,
(select tablespace_name,sum(bytes) bytes,max(bytes) largest from
dba_free_space group by
tablespace_name)?b
where?a.tablespace_name=b.tablespace_name
order?by?((a.bytes-b.bytes)/a.bytes)?desc
“Sum
MB”表示表空間所有的數(shù)據(jù)文件總共在操作系統(tǒng)占用磁盤空間的大小比如:test表空間有2個數(shù)據(jù)文件,datafile1為300MB,datafile2為400MB,那么test表空間的“Sum
MB”就是700MB
“userd MB”表示表空間已經(jīng)使用了多少“free MB”表示表空間剩余多少“percent_user”表示已經(jīng)使用的百分比
--2比如從1中查看到MLOG_NORM_SPACE表空間已使用百分比達到90%以上,可以查看該表空間總共有幾個數(shù)據(jù)文件,每個數(shù)據(jù)文件是否自動擴展,可以自動擴展的最大值。select?file_name,tablespace_name,bytes/1024/1024 "bytes
MB",maxbytes/1024/1024 "maxbytes MB"?from?dba_data_files
where
tablespace_name='MLOG_NORM_SPACE';
--3比如MLOG_NORM_SPACE表空間目前的大小為19GB,但最大每個數(shù)據(jù)文件只能為20GB,數(shù)據(jù)文件快要寫滿,可以增加表空間的數(shù)據(jù)文件用操作系統(tǒng)UNIX、Linux中的df?-g命令(查看下可以使用的磁盤空間大小)獲取創(chuàng)建表空間的語句:select?dbms_metadata.get_ddl('TABLESPACE','MLOG_NORM_SPACE')?from?dual;
--4確認磁盤空間足夠,增加一個數(shù)據(jù)文件alter?tablespace?MLOG_NORM_SPACE
add?datafile?'/oracle/oms/oradata/mlog/Mlog_Norm_data001.dbf'
size?10M?autoextend?on?maxsize?20G
--5驗證已經(jīng)增加的數(shù)據(jù)文件select?file_name,file_id,tablespace_name?from?dba_data_files
where?tablespace_name='MLOG_NORM_SPACE'
--6如果刪除表空間數(shù)據(jù)文件,如下:alter?tablespace?MLOG_NORM_SPACE
drop?datafile
'/oracle/oms/oradata/mlog/Mlog_Norm_data001.dbf'
實例2:
1、執(zhí)行以下SQL語句查找存放表空間的數(shù)據(jù)文件的路徑
SELECT ddf.file_name
FROM Dba_Data_Files ddf
where ddf.tablespace_name =
'APPS_TS_TX_DATA'
2、用system/manager登錄PL/SQL
Developer運行如下SQL語句:
ALTER TABLESPACE APPS_TS_TX_DATA ADD DATAFILE
'/d01/dba/vis01data/tx_data14.dbf' SIZE 100M;(增加100M到APPS_TS_TX_DATA表空間)
注意:執(zhí)行上面命令是增加tx_data**.dbf文件,
**請用“不存在SQL結(jié)果”里的數(shù)字代替,一般為SQL中查詢中的最大數(shù)字加1。比如通過1查詢到目前APPS_TS_TX_DATA表空間中共有以下數(shù)據(jù)文件:
/d01/dba/vis01data/tx_data1.dbf
/d01/dba/vis01data/tx_data2.dbf
...
/d01/dba/vis01data/tx_data14.dbf
通過2新增加表空間:
/d01/dba/vis01data/tx_data15.dbf (新增加的表空間的編號一般為前一數(shù)字+1,即15)
表空間刪除
如要找datafile的具體位置,可以使用
select t1.name,t2.name from v$tablespace t1, v$datafile t2 where
t1.ts# = t2.ts#;
SQL code
--刪除空的表空間,但是不包含物理文件
drop tablespace tablespace_name;
--刪除非空表空間,但是不包含物理文件
drop tablespace tablespace_name including contents;
--刪除空表空間,包含物理文件
drop tablespace tablespace_name including datafiles;
--刪除非空表空間,包含物理文件
drop tablespace tablespace_name including contents and
datafiles;
--如果其他表空間中的表有外鍵等約束關(guān)聯(lián)到了本表空間中的表的字段,就要加上CASCADE CONSTRAINTS
drop tablespace tablespace_name including contents and datafiles
CASCADE CONSTRAINTS;
總結(jié)
以上是生活随笔為你收集整理的oracle其他盘添加表空间吗,oracle增加表空间的四种方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: testlink mysql配置_Tes
- 下一篇: kinux查日志_Linux查看日志常用