一、创建用户及表空间等
1.SYSDBA用户disql登录创建DMDBA用户,授予dba权限;
登录DMDBA报错:
退出disql,重新以SYSDBA用户登录,查询当前参数值,如果返回PARA_VALUE=1,代表开启通信加密:
修改 dm.ini 静态参数:
重启生效:
正常登录:
2.DMDBA登录创建用户DM_TEST并设置默认表空间,授予RESOURCE+VTI+SOI角色权限
VTI:查询 V$ 动态性能视图;SOI:查询 DBA_* 字典视图;
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);
切换DMTEST下查询表:
建表及插入数据可不加(.模式名)
二、达梦命令行工具:DISQL、DMRMAN、DEXP、DIMP等
1.DISQL交互式SQL客户端
1)登录方式
方式 1:命令行直接登录
完整格式:disql 用户名/密码@IP:端口,本地实例可省略IP端口(密码避免带@符号)
./disql DMTEST/DmTest2026@127.0.0.1:5236
./disql DMTEST/DmTest2026
方式 2:先进入 disql,再输入账号密码
./disql
2)常用内部命令(disql > 提示符下执行)
–执行SQL脚本(START /home/dmdba/test.sql或者反引号 ` /home/dmdba/test.sql)
–显示表结构(DESC SYSDBA.EMP;)
–编辑sql
–执行操作系统shell命令(HOST+shell命令)
HOST ls -l /home/dmdba/dm; #查看目录文件
HOST df -h; #查看磁盘空间
HOST cd /home/dmdba/dm; #切换目录
–DISCONNECT断开数据库连接,不退出 disql 程序;(命令后面不加;号)
–退出disql(EXIT;QUIT;)
3)shell直接执行SQL,不进入交互界面
#执行单条SQL
./disql DMDBA/DmDba_2026! -e "SELECT * FROM DMTEST.EMPLOYEES;"
2.DEXP 逻辑导出(备份,dmp文件)
逻辑备份:导出对象定义+数据;支持:整个库、用户、模式、表;不备份底层数据文件。
示例命令
#全库导出(DMDBA为DBA权限)
./dexp DMDBA/DmDba_2026! file=dexp01.dmp log=dexp01.log directory=/home/dmdba/backup/dexp full=y
#模式导出,导出DMTEST模式
./dexp DMDBA/DmDba_2026! file=dmtest_schema.damp log=dmtest_exp.log directory=/home/dmdba/backup/dexp SCHEMAS=DMTEST
#只导出指定表
./dexp DMDBA/DmDba_2026! file=tables.damp log=table_exp.log directory=/home/dmdba/backup/dexp TABLES=DMTEST.EMPLOYEES
#只导出指定表结构
./dexp DMDBA/DmDba_2026! file=tables2.damp log=table2_exp.log directory=/home/dmdba/backup/dexp TABLES=DMTEST.EMPLOYEES ROWS=N
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
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
3)导入DMTEST模式
./dimp DMDBA/DmDba_2026! file=/home/dmdba/backup/dexp/dmtest_schema.damp log=/home/dmdba/backup/dmtest_dimp1.log
4)只导入表
./dimp DMDBA/DmDba_2026! file=/home/dmdba/backup/dexp/tables.damp log=/home/dmdba/backup/table_dimp.log
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;
#增量备份(基于上一次全量)
backup database increment backupset '/dbbak/dmbak/DB_FULL_BAK_2026081401';
#备份归档日志
backup archive log backupset '/dbbak/dmbak/ARCH_BAK_2026081401';
2)还原恢复(数据库必须关闭!)
物理还原操作:数据库实例要停止,不能open。
#关闭实例 service dmserverd stop
#执行还原+恢复
./dmrman
restore database '/home/dmdba/dm/dmdbms/bin/dm.ini' from backupset '/dbbak/dmbak/DB_FULL_BAK_20260814';
recover database '/home/dmdba/dm/dmdbms/bin/dm.ini' from backupset '/dbbak/dmbak/DB_FULL_BAK_20260814';
RESTORE:把备份集复制回磁盘(还原数据文件)
RECOVER:重做日志回滚,把数据库恢复到一致性状态
还原完成之后,需要执行:
recover database '/home/dmdba/dm/dmdbms/bin/dm.ini' update db_magic;
更新魔数,实例才能正常启动。
3)脱机备份
backup database '/home/dmdba/dm/dmdbms/bin/dm.ini' full backupset '/dbbak/dmbak/DB_FULL_BAK_2026081402';
文章
阅读量
获赞
