达梦(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 0SQL> 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:39284344 16384 16368 16 2 0 8192 2 01 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 '全备文件的路径';