注册
dm8数据库数据命令行操作
专栏/技术分享/ 文章详情 /

dm8数据库数据命令行操作

管杨 2026/09/04 250 0 0
摘要

一、创建用户及表空间等
1.SYSDBA用户disql登录创建DMDBA用户,授予dba权限;
image.png
登录DMDBA报错:
image.png
退出disql,重新以SYSDBA用户登录,查询当前参数值,如果返回PARA_VALUE=1,代表开启通信加密:
image.png
修改 dm.ini 静态参数:
image.png
image.png
image.png
重启生效:
image.png
正常登录:
image.png
2.DMDBA登录创建用户DM_TEST并设置默认表空间,授予RESOURCE+VTI+SOI角色权限
VTI:查询 V$ 动态性能视图;SOI:查询 DBA_* 字典视图;
image.png
image.png
image.png
image.png
3.建表插入及查询(在DMDBA下创建,需加上模式名.)
建表及插入:

CREATE TABLE DMTEST.EMPLOYEES(EMPLOYEE_ID DEC(6) NOT NULL,EMPLOYEE_NAME VARCHAR(25) NOT NULL,EMAIL VARCHAR(25) NOT NULL,PHONE_NUMBER VARCHAR(20),HIRE_DATE DATETIME NOT NULL,JOB_ID VARCHAR(10) NOT NULL,SALARY DEC(8,2),COMMISSION_PCT DEC(2,2),MANAGER_ID DEC(6),DEPARTMENT_ID DEC(4),PRIMARY KEY (EMPLOYEE_ID))TABLESPACE "TBS_TEST";
INSERT INTO DMTEST.EMPLOYEES(EMPLOYEE_ID,EMPLOYEE_NAME,EMAIL,PHONE_NUMBER,HIRE_DATE,JOB_ID,SALARY,COMMISSION_PCT,MANAGER_ID,DEPARTMENT_ID) VALUES (10001,'赵磊','zhaolei@dm.com','13511112222','2025-03-10','DEV',11500.00,0.08,10005,10);

image.png
image.png
切换DMTEST下查询表:
image.png
image.png
建表及插入数据可不加(.模式名)
image.png
二、达梦命令行工具:DISQL、DMRMAN、DEXP、DIMP等
1.DISQL交互式SQL客户端
1)登录方式
方式 1:命令行直接登录
完整格式:disql 用户名/密码@IP:端口,本地实例可省略IP端口(密码避免带@符号)

./disql DMTEST/DmTest2026@127.0.0.1:5236
./disql DMTEST/DmTest2026

image.png
image.png
image.png
方式 2:先进入 disql,再输入账号密码

./disql

image.png
2)常用内部命令(disql > 提示符下执行)
–执行SQL脚本(START /home/dmdba/test.sql或者反引号 ` /home/dmdba/test.sql)
image.png
–显示表结构(DESC SYSDBA.EMP;)
image.png
–编辑sql
image.png
–执行操作系统shell命令(HOST+shell命令)
HOST ls -l /home/dmdba/dm; #查看目录文件
image.png
HOST df -h; #查看磁盘空间
image.png
HOST cd /home/dmdba/dm; #切换目录
image.png
–DISCONNECT断开数据库连接,不退出 disql 程序;(命令后面不加;号)
image.png
–退出disql(EXIT;QUIT;)
image.png
3)shell直接执行SQL,不进入交互界面
#执行单条SQL

./disql DMDBA/DmDba_2026! -e "SELECT * FROM DMTEST.EMPLOYEES;"

image.png
2.DEXP 逻辑导出(备份,dmp文件)
逻辑备份:导出对象定义+数据;支持:整个库、用户、模式、表;不备份底层数据文件。
示例命令
#全库导出(DMDBA为DBA权限)

./dexp DMDBA/DmDba_2026! file=dexp01.dmp log=dexp01.log directory=/home/dmdba/backup/dexp full=y

image.png
#模式导出,导出DMTEST模式

./dexp DMDBA/DmDba_2026! file=dmtest_schema.damp log=dmtest_exp.log directory=/home/dmdba/backup/dexp SCHEMAS=DMTEST

image.png
#只导出指定表

./dexp DMDBA/DmDba_2026! file=tables.damp log=table_exp.log directory=/home/dmdba/backup/dexp TABLES=DMTEST.EMPLOYEES

image.png
#只导出指定表结构

./dexp DMDBA/DmDba_2026! file=tables2.damp log=table2_exp.log directory=/home/dmdba/backup/dexp TABLES=DMTEST.EMPLOYEES ROWS=N

image.png
3.DIMP 逻辑导入(恢复 dexp 导出的 dmp)
dimp与dexp成对使用,把dmp文件导入数据库。
注意:导入目标库 PAGE_SIZE 必须和导出源库保持一致,否则导入报错。
#全库导入
1)本地导入导出

./dimp DMDBA/DmDba_2026! file=/home/dmdba/backup/dexp/dexp01.dmp log=/home/dmdba/backup/dexp/dimp02.log

image.png
2)在192.168.121.130执行导入到192.168.121.131

./dimp SYSDBA/*****@192.168.121.131:5236 file=/home/dmdba/backup/dexp/dexp01.dmp log=/home/dmdba/backup/dexp/dimp01.log

image.png
3)导入DMTEST模式

./dimp DMDBA/DmDba_2026! file=/home/dmdba/backup/dexp/dmtest_schema.damp log=/home/dmdba/backup/dmtest_dimp1.log

image.png
4)只导入表

./dimp DMDBA/DmDba_2026! file=/home/dmdba/backup/dexp/tables.damp log=/home/dmdba/backup/table_dimp.log

image.png
DEXP/DIMP 属于逻辑备份,适合迁移、版本升级;不能做介质故障恢复。
4.DMRMAN 物理备份还原工具(物理 RMAN)
物理备份:拷贝真实的数据文件、控制文件、日志文件;用于故障介质恢复。
两种模式:
数据库可以正常启动(MOUNT/OPEN):联机备份
数据库关闭状态:脱机备份
1)DMRMAN数据库实例运行,联机备份(./disql下)
#全量压缩备份:

./disql DMDBA/DmDba_2026! backup database full backupset '/dbbak/dmbak/DB_FULL_BAK_20260814' compressed;

image.png
#增量备份(基于上一次全量)

backup database increment backupset '/dbbak/dmbak/DB_FULL_BAK_2026081401';

image.png
#备份归档日志

backup archive log backupset '/dbbak/dmbak/ARCH_BAK_2026081401';

image.png
2)还原恢复(数据库必须关闭!)
物理还原操作:数据库实例要停止,不能open。
#关闭实例 service dmserverd stop
image.png
#执行还原+恢复

./dmrman
restore database '/home/dmdba/dm/dmdbms/bin/dm.ini' from backupset '/dbbak/dmbak/DB_FULL_BAK_20260814';

image.png

recover database '/home/dmdba/dm/dmdbms/bin/dm.ini' from backupset '/dbbak/dmbak/DB_FULL_BAK_20260814';

image.png
RESTORE:把备份集复制回磁盘(还原数据文件)
RECOVER:重做日志回滚,把数据库恢复到一致性状态
还原完成之后,需要执行:

recover database '/home/dmdba/dm/dmdbms/bin/dm.ini' update db_magic;

更新魔数,实例才能正常启动。
image.png
3)脱机备份

backup database '/home/dmdba/dm/dmdbms/bin/dm.ini' full backupset '/dbbak/dmbak/DB_FULL_BAK_2026081402';

image.png

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服