達夢(DM8)常用管理SQL命令(3)
1.表空間
SQL > SELECT * FROM v$tablespace ;
SQL > SELECT * FROM v$datafile;
SQL > SELECT df. tablespace_name "表空間名稱" , df. bytes/ 1024 / 1024 "總大小(MB)" , ( df. bytes- fs. bytes) / 1024 / 1024 "已用(MB)" , fs. bytes/ 1024 / 1024 "剩余(MB)" , ROUND ( 100 * ( df. bytes- fs. bytes) / df. bytes) "使用率(%)"
FROM ( SELECT tablespace_name, SUM ( bytes) bytes FROM dba_data_files GROUP BY tablespace_name) df, ( SELECT tablespace_name, SUM ( bytes) bytes FROM dba_free_space GROUP BY tablespace_name) fs
WHERE df. tablespace_name = fs. tablespace_name; 行號 表空間名稱 總大小( MB) 已用( MB) 剩余( MB) 使用率( % )
1 test2 128 0.125 127.875 0
2 MAIN 128 4.75 123.25 4
3 ROLL 128 3.875 124.125 3
4 TEMP 74 0.375 73.625 1
5 DMHR 128 0.125 127.875 0
6 TEST 32 0.125 31.875 0
7 SYSTEM 74 24.375 49.625 33
8 BOOKSHOP 150 8.5 141.5 6
9 TEST02 32 0.125 31.875 0 SQL > SELECT tablespace_name, SUM ( bytes) / 1024 / 1024 AS "剩余空間(MB)"
FROM dba_free_space
GROUP BY tablespace_name; 行號 TABLESPACE_NAME 剩余空間( MB)
1 test2 127.875
2 TEST02 31.875
3 BOOKSHOP 141.5
4 SYSTEM 49.625
5 TEST 31.875
6 DMHR 127.875
7 TEMP 73.625
8 ROLL 124.125
9 MAIN 123.25
SELECT * FROM v$datafile; 行號 GROUP_ID ID PATH CLIENT_PATH CREATE_TIME STATUS $ RW_STATUS LAST_CKPT_TIME MODIFY_TIME
MODIFY_TRX TOTAL_SIZE FREE_SIZE FREE_PAGE_NO PAGES_READ PAGES_WRITE PAGE_SIZE READ_REQUEST WRITE_REQUESTAUTO_EXTEND MAX_SIZE NEXT_SIZE MIRROR_PATH REAL_FREE_SIZE
1 8 0 D:\dmdbms\data \DAMENG\test2. dbf test2. dbf 2025 - 06 - 25 15 :18 :49 1 2 2025 - 07 - 30 17 :04 :39 2025 - 06 - 25 15 :21 :39 284344 16384 16368 16 2 0 8192 2 0 1 10240 100 NULL 16368
字段詳細解釋
第一行 (主體信息)
字段名 (Field Name) 值 (Value) 解釋 (Explanation) GROUP_ID
8
組ID/表空間ID 。此數據文件所屬的表空間的內部ID。V$TABLESPACE.ID
與此值對應。 ID
0
文件ID 。此數據文件在其所屬表空間內的唯一標識號。 PATH
D:\dmdbms\data\DAMENG\test2.dbf
服務器端路徑 。數據文件在數據庫服務器操作系統上的完整物理路徑。 CLIENT_PATH
test2.dbf
客戶端路徑 。在某些網絡配置下,客戶端看到的文件路徑(通常與 PATH
的文件名部分相同)。 CREATE_TIME
2025-06-25 15:18:49
創建時間 。此數據文件被創建的時間戳。 STATUS$
1
狀態碼 。表示文件的當前狀態。1
通常代表 ONLINE (聯機,可用)。其他可能值如 0
代表 OFFLINE(脫機)。 RW_STATUS
2
讀寫狀態碼 。2
通常代表 READ WRITE (可讀可寫)。 LAST_CKPT_TIME
2025-07-30 17:04:39
最后檢查點時間 。數據庫上一次執行檢查點操作時,將此文件中的臟數據塊刷新到磁盤的時間。這個時間越新,意味著需要恢復的數據越少。 MODIFY_TIME
2025-06-25 15:21:39
修改時間 。此數據文件元數據(如大小、狀態)最后一次被修改的時間。
第二行 (性能與大小信息)
字段名 (Field Name) 值 (Value) 解釋 (Explanation) MODIFY_TRX
284344
修改事務號 。與文件元數據修改相關的內部事務標識號。 TOTAL_SIZE
16384
總大小 。此數據文件的總容量,單位是 頁 (Pages) 。 FREE_SIZE
16368
空閑大小 。此數據文件中當前未被使用的空間大小,單位也是 頁 (Pages) 。 FREE_PAGE_NO
16
空閑頁號 。文件中第一個空閑頁的編號(從0開始計數)。 PAGES_READ
2
讀取頁數 。自數據庫啟動以來,從該文件中讀取的頁面總數。 PAGES_WRITE
0
寫入頁數 。自數據庫啟動以來,向該文件中寫入的頁面總數。 PAGE_SIZE
8192
頁大小 。數據庫中每個數據頁的大小,單位是 字節 (Bytes) 。這里是 8KB。 READ_REQUEST
2
讀取請求數 。自數據庫啟動以來,對該文件發起的讀取操作(I/O 請求)的總次數。 WRITE_REQUEST
0
寫入請求數 。自數據庫啟動以來,對該文件發起的寫入操作(I/O 請求)的總次數。
第三行 (自動擴展信息)
字段名 (Field Name) 值 (Value) 解釋 (Explanation) AUTO_EXTEND
1
是否自動擴展 。1
表示 開啟 自動擴展。當文件空間不足時,數據庫會自動按規則增加文件大小。0
表示關閉。 MAX_SIZE
10240
最大大小 。此文件自動擴展時允許達到的最大大小,單位是 頁 (Pages) 。10240
頁 * 8192
字節/頁 ≈ 80MB。 NEXT_SIZE
100
下一次擴展大小 。每次自動擴展時增加的大小,單位是 頁 (Pages) 。這里每次增加 100 頁 (約 800KB)。 MIRROR_PATH
NULL
鏡像路徑 。如果此文件配置了鏡像(RAID 1 類似功能),這里會顯示鏡像文件的路徑。NULL
表示 未配置鏡像 。 REAL_FREE_SIZE
16368
實際空閑大小 。與 FREE_SIZE
含義基本相同,表示當前可用的空閑頁數。
關鍵計算與分析
文件實際大小 : TOTAL_SIZE
* PAGE_SIZE
= 16384 頁 * 8192 字節/頁 = 134,217,728 字節 ≈ 128 MB 。 已使用空間 : ( TOTAL_SIZE
- FREE_SIZE
) * PAGE_SIZE
= (16384 - 16368) * 8192 = 16 * 8192 = 131,072 字節 ≈ 128 KB 。 這意味著這個 128MB 的數據文件目前只使用了約 128KB,絕大部分空間是空閑的。 使用率 : (已使用頁數 / 總頁數) * 100% = (16 / 16384) * 100% ≈ 0.1% 。 自動擴展 : 該文件開啟了自動擴展 (AUTO_EXTEND=1
)。 最大可擴展到 10240 頁 * 8192 字節/頁 ≈ 80MB 。 每次擴展 100 頁 ≈ 800KB。 I/O 活動 : 自啟動以來,有 2 次讀取請求,讀取了 2 個頁面。 沒有寫入請求和寫入頁面。這可能表示該文件最近沒有被修改,或者數據庫剛啟動不久。
結論 :這是一個名為 test2.dbf
的小型數據文件,屬于表空間 8,大小約 128MB,但幾乎為空(使用率約 0.1%)。它配置了自動擴展,上限約 80MB。數據庫啟動后只有少量讀取操作,沒有寫入。
2.備份
SELECT * FROM v$backupset;
BACKUP DATABASE FULL BACKUPSET '全備文件的路徑' ;