达梦(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 '全备文件的路径' ;