表空間是oracle數(shù)據(jù)庫中最大的邏輯單位與存儲空間單位,,數(shù)據(jù)庫系統(tǒng)通過表空間為數(shù)據(jù)庫對象分配空間。表空間在物理上體現(xiàn)為磁盤數(shù)據(jù)文件,,每一個表空間由一個或多個數(shù)據(jù)文件組成,,一個數(shù)據(jù)文件只可與一個表空間相聯(lián)系,這是邏輯與物理的統(tǒng)一,。了解表空間和數(shù)據(jù)文件的的屬性及使用率,,是數(shù)據(jù)庫管理員的一項(xiàng)重要職責(zé)。下面以oracle9i為例,,詳細(xì)介紹查詢Oracle數(shù)據(jù)庫表空間信息和數(shù)據(jù)文件信息的方法,。 一、查看Oracle數(shù)據(jù)庫中表空間信息的方法 1,、查看Oracle數(shù)據(jù)庫中表空間信息的工具方法: 使用oracle enterprise manager console工具,,這是oracle的客戶端工具,當(dāng)安裝oracle服務(wù)器或客戶端時會自動安裝此工具,,在windows操作系統(tǒng)上完成oracle安裝后,,通過下面的方法登錄該工具:開始菜單——程序——Oracle-OraHome92——Enterprise Manager Console(單擊)——oracle enterprise manager console登錄——選擇‘獨(dú)立啟動’單選框——‘確定’ —— ‘oracle enterprise manager console,獨(dú)立’ ——選擇要登錄的‘實(shí)例名’ ——彈出‘?dāng)?shù)據(jù)庫連接信息’ ——輸入’用戶名/口令’ (一般使用sys用戶),,’連接身份’選擇選擇SYSDBA——‘確定’,,這時已經(jīng)成功登錄該工具,選擇‘存儲’ ——表空間,會看到如下的界面,,該界面顯示了表空間名稱,,表空間類型,區(qū)管理類型,,以”兆”為單位的表空間大小,,已使用的表空間大小及表空間利用率。
圖1 表空間大小及使用率 2,、查看Oracle數(shù)據(jù)庫中表空間信息的命令方法: 通過查詢數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)字典表(data dictionary tables)獲取表空間的相關(guān)信息,,首先使用客戶端工具連接到數(shù)據(jù)庫,這些工具可以是SQLPLUS字符工具、TOAD,、PL/SQL等,連接到數(shù)據(jù)庫后執(zhí)行如下的查詢語句:
該語句通過查詢dba_free_space,dba_data_files,,dba_tablespaces這三個數(shù)據(jù)字典表,,得到了表空間名稱,表空間類型,,區(qū)管理類型,,以”兆”為單位的表空間大小,已使用的表空間大小及表空間利用率,。dba_free_space表描述了表空間的空閑大小,,dba_data_files表描述了數(shù)據(jù)庫中的數(shù)據(jù)文件,dba_tablespaces表描述了數(shù)據(jù)庫中的表空間,。 上面語句中from子句后有三個select語句,,每個select語句相當(dāng)于一個視圖,視圖的名稱分別為a,、b,、c,通過它們之間的關(guān)聯(lián)關(guān)系,,我們得到了表空間的相關(guān)信息,。 語句執(zhí)行結(jié)果如下:
上面描述中分別介紹了查看Oracle數(shù)據(jù)庫中表空間信息的工具方法和命令方法。 二,、查詢Oracle數(shù)據(jù)庫中數(shù)據(jù)文件信息的方法 1,、查看Oracle數(shù)據(jù)庫中數(shù)據(jù)文件信息的工具方法: 使用上面介紹過的方法登錄oracle enterprise manager console工具,選擇‘存儲’ ——數(shù)據(jù)文件,,會看到如下的界面,,該界面顯示了數(shù)據(jù)文件名稱,表空間名稱,,以”兆”為單位的數(shù)據(jù)文件大小,,已使用的數(shù)據(jù)文件大小及數(shù)據(jù)文件利用率。
2、查看Oracle數(shù)據(jù)庫中數(shù)據(jù)文件信息的命令方法: 通過查詢數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)字典表(data dictionary tables)獲取數(shù)據(jù)文件的相關(guān)信息,,首先使用客戶端工具連接到數(shù)據(jù)庫,這些工具可以是SQLPLUS字符工具,、TOAD、PL/SQL等,連接到數(shù)據(jù)庫后執(zhí)行如下的查詢語句:
語句執(zhí)行結(jié)果如下:
上明描述中分別介紹了查看Oracle數(shù)據(jù)庫中數(shù)據(jù)文件信息的工具方法和命令方法 三,、查看臨時表空間和數(shù)據(jù)庫文件的方法 在oracle數(shù)據(jù)庫中,,臨時表空間主要用于用戶在使用order by 、group by語句進(jìn)行排序和匯總時所需的臨時工作空間,。要查詢數(shù)據(jù)庫中臨時表空間的名稱,,大小及數(shù)據(jù)文件,可以查詢數(shù)據(jù)字典dba_tablespaces及dba_data_files,。命令如下:
查詢結(jié)果如下:
從oracle 9i開始,,可以創(chuàng)建Temporary tablespace類表空間,即“臨時“表空間,,這類表空間使用臨時文件,。臨時文件的信息被存儲在數(shù)據(jù)字典V$tempfile中。命令如下: Select file#,,status,,name from V$tempfile; 查詢數(shù)據(jù)字典V$tempfile結(jié)果如下:
在上面介紹的方法中,建議掌握命令方法,因?yàn)槟愕沫h(huán)境可能沒有圖形工具,,而SQLPLUS一般情況下都是可以使用的,,有了命令腳本,很容易得到表空間和數(shù)據(jù)文件的相關(guān)信息,。另外,,數(shù)據(jù)庫管理員應(yīng)該多整理命令腳本,在需要時直接執(zhí)行腳本以提高工作效率,。 在數(shù)據(jù)庫管理員的日常工作中,,應(yīng)該經(jīng)常查詢表空間的利用率,按照數(shù)據(jù)庫系統(tǒng)的具體情況估算表空間的增長量,,當(dāng)表空間的利用率超過90%時,,要及時采取措施,如清理歷史表,、歷史數(shù)據(jù)以釋放空間,,向表空間中添加新的數(shù)據(jù)文件,擴(kuò)展現(xiàn)有數(shù)據(jù)文件大小等方法來降低表空間的利用率,,避免表空間利用率接近100%時,,將產(chǎn)生空間不夠的錯誤。 |
|