表空間管理的相關的一些sql

2021-04-26 06:38:29 字數 2310 閱讀 9485

那天系統出現問題,同事說會不會是資料庫空間不足造成的,想了想檢視空間使用方面的sql我根本不知道,呵呵,當時就在baidu隨便搜了個,執行很慢,當時也沒在意就過去了,今天碰巧看到itpub上一位兄弟總結了這方面的操作,我利用工作時間學習實踐了一下呵呵,然後又用自己的語言稍加了修改,姑且就算原創吧,呵呵。

1. 檢視當前各個表空間的使用情況

select tablespace_name,

sum_mb,

free_mb,

used_mb,

used_persent

from (select t.tablespace_name,

t.sum_mb,

f.free_mb,

t.sum_mb - f.free_mb used_mb,

round(((t.sum_mb - f.free_mb) / t.sum_mb), 4) * 100 || '%' used_persent

from (select a.tablespace_name, sum(a.bytes) / 1024 / 1024 sum_mb

from dba_data_files a

group by a.tablespace_name) t, --總量view

(select b.tablespace_name, sum(b.bytes) / 1024 / 1024 free_mb

from dba_free_space b

group by b.tablespace_name) f --剩餘量view

where t.tablespace_name = f.tablespace_name)

order by 5 desc

2. 當發現used_persent比較高的表空間,查詢這個表空間的各個資料檔案的大小,最大值以及是否能夠自動擴充套件來判斷是否需要對其手動新增資料檔案

select a.bytes / 1024 / 1024 current_mb, -- 當前大小

a.maxbytes / 1024/1024 max_mb,   --允許最大值

a.autoextensible                    --是否可以自動擴充套件

from dba_data_files a

where a.tablespace_name = 'ilearn_data'

3. 得知需要新增資料檔案之前,要檢視磁碟使用情況

執行 df -h       #-h 人類可讀的方式

檢視硬碟使用情況,情況良好則可以新增資料檔案

4. 為了書寫方便 ,首先獲取要表空間建立的ddl語句

select dbms_metadata.get_ddl('tablespace', 'yc_tbs') from dual

--eg

create tablespace "yc_tbs" datafile

'/home/oracle/oracle/oradata/demoyc/yc.dbf' size 104857600,

'/home/oracle/oracle/oradata/demoyc/yc02.dbf' size 20971520,

'/home/oracle/oracle/oradata/demoyc/yc03.dbf' size 20971520

autoextend on next  8192 maxsize 32767m

logging online permanent blocksize 8192

extent management local autoallocate segment space management auto

注意:yc_tbs表空間包含3個資料檔案,其中yc.dbf和yc02.dbf是不可以自動擴充套件的,yc03.dbf是可以自動擴充套件的,由此可知自動擴充套件autoextend是datafile的屬性,即從dba_data_files表中可以查詢得知資料檔案是否可以自動擴充套件

5. 新增資料檔案

alter tablespace yc_tbs

add datafile '/home/oracle/oracle/oradata/demoyc/yc03.dbf'

size 20m

autoextend on --允許自動擴充套件

6. 如果建立錯誤可以刪除這個資料檔案

alter tablespace yc_tbs

drop datafile '/home/oracle/oracle/oradata/demoyc/yc02.dbf'

7. 驗證已經增加的資料檔案

select * from dba_data_files where tablespace_name = 'yc_tbs'

相關的一些東西

這幾天一直在看關於http和前端效能優化相關的內容,今天先寫一篇關於http的文章,如果時間允許的話再接著把前端效能優化的寫完。畢竟還要留著時間去看小片嘛?接下來就是正文啦!瀏覽器輸入url後http請求返回的完整過程 就是下圖這個啦 這個可是我從某課網偷來的 從輸入位址到頁面渲染 在http的五層...

有關oracle表空間查詢的一些記錄

1.查詢剩餘表空間 2.查詢索引資訊 select s.index name,s.table name,s.tablespace name,s.initial extent,s.next extentfrom user indexes s where s.index name idx invalid...

一些經典的SQL

表結構 部門deptid,父級部門parentdeptid,資料庫的每一條記錄都記錄了自身id和父級部門id,現在要從某個部門查詢其下屬部門生成一棵部門關係樹,sql如下 select so.orgid,so.parentdeptid,so.orgname from sys orginfo so s...