注册
达梦命令行工具介绍
专栏/技术分享/ 文章详情 /

达梦命令行工具介绍

Coisini. 2025/08/01 361 0 0
摘要

一、初始化库及数据库交互

1. 功能简介

  • dminit:DM数据库初始化工具。

    设置数据库存放路径、段页大小、大小写敏感、以及是否使用UNICODE等;

  • disql:命令行客户端工具,用来与DM数据库服务器进行交互。

    识别用户输入,将SQL语句打包发送给DM数据库服务器执行,接收服务器的
    执行结果,并按用户的要求将执行结果展示给用户;

2. 初始化库工具——dminit

常用参数:HELP、PATH、EXTENT_SIZE、PAGE_SIZE、CASE_SENSITIVE、CHARSET/UNICODE_FLAG、DB_NAME、PORT_NUM、ARCH_FLAG、AUTO_OVERWRITE;

初始化
./dminit path=/data/sda/data db_name=db_dm port_num=3366

启动服务器

./dmserver /data/sda/data/db_dm/dm.ini

3. 数据库交互工具——disql

启动

disql sysdba/Hust4400_DBA@192.168.100.146:14601

登录/退出

  • 查询登录方式:disql help

  • 切换登录:login/logout conn/disconn

  • 退出:exit/quit/Ctrl+C

设置环境变量help set

常用命令:HELP、SPOOL、HOST、DESCRIBE、DEFINE和COLUMN、EXPLAIN、WHENEVER、MORE、LIST;

插入大对象数据,示例:@INSERT INTO T1 VALUES(@‘e:\DSC_1663.jpg’)

执行脚本

  • start或`运行脚本:SQL>start D:\test.sql或是SQL>D:`\test.sql;

  • 编辑脚本:SQL>edit D:\test.sql

  • 使用变量:

    1. 脚本D:\test.sql
      select * from dual where id = &1;
      select * from dual where id = &2;
      select * from dual where id = &3;
    2. 执行脚本:SQL>`D:\test.sql 11 12 13

二、装载数据

1. dmfldr——功能简介

dmfldr:快速数据装载命令行工具。把按照一定格式排序的文本数据以简单、快速、高效的方式载入到DM数据库中,或把DM数据库中的数据按照一定格式写入文本文件。

2. 参数简介

  • USERID

    USER/PWD@SERVER:PORT#SSL_PATH@SSL_PWD;

  • CONTROL

    控制文件,字符串类型;

  • LOG

    日志文件,字符串类型 (fldr.log);

  • BADFILE

    错误数据记录文件,字符串类型 (fldr.bad);

  • SKIP

    初始忽略逻辑行数 (0);

  • LOAD

    需要装载的行数 (ALL);

  • ROWS

    提交频次 (50000), DIRECT为FALSE有效;

  • DIRECT

    是否使用快速方式装载 (TRUE);

  • ERRORS

    允许的最大数据错误数 (100);

  • CHARACTER_CODE

    字符编码,字符串类型 (GBK, UTF-8, SINGLE_BYTE, EUC-KR);

  • MODE

    装载方式,字符串类型 IN表示载入,OUT表示载出,OUTORA表示载出ORACLE (IN);

  • LOB_DIRECTORY

    大字段数据文件存放目录;

  • LOB_FILE_NAME

    大字段数据文件名称,仅导出有效 (dmfldr.lob);

3. 示例

  1. 数据文件data.txt
    1|a
    2|b
  2. 控制文件ctrl.txt
    LOAD DATA
    INFILE ‘d:\data.txt’ INTO TABLE T
    FIELDS ‘|’
  3. 建表语句
    create table t(x int, y varchar);
  4. 载入数据
    dmfldr sysdba control=‘d:\ctrl.txt’

三、备份还原

1. 功能简介

  • dexp/dimp

    逻辑备份还原工具。备份还原数据库逻辑组件,如表、视图和存储过程等数据库对象。

    数据库对象分为四种级别:数据库级、用户级、模式级、表级;

  • dmrman

    物理备份还原工具。备份是从数据库文件中拷贝有效的数据页保存到备份集中,还原是将备份集中的有效数据页重新写入目标数据文件。

2. dexp——参数简介

  • USERID

    USER/PWD*MPP_TYPE@SERVER:PORT#SSLPATH@SSLPWD;

  • FILE

    导出文件 (dexp.dmp);

  • DIRECTORY

    导出文件所在目录;

  • FULL

    整库导出 (N);

  • OWNER

    以用户方式导出 格式 (user1,user2,…);

  • SCHEMAS

    以模式方式导出 格式 (schema1,schema2,…);

  • TABLES

    以表方式导出 格式 (table1,table2,…);

  • HELP

    打印帮助信息;

3. dimp——参数简介

  • USERID

    USER/PWD*MPP_TYPE@SERVER:PORT#SSLPATH@SSLPWD;

  • FILE

    导入文件名称 (dexp.dmp);

  • DIRECTORY

    导入文件所在目录;

  • FULL

    整库导入 (N);

  • OWNER

    以用户方式导入 格式 (user1,user2,…);

  • SCHEMAS

    以模式方式导入 格式 (schema1,schema2,…);

  • TABLES

    以表名方式导入 格式(table1,table2,…);

  • HELP

    打印帮助信息;

4. dexp/dimp——示例

数据准备

CREATE USER “TEST” IDENTIFIED BY 111111111;

GRANT DBA TO “TEST”;

CREATE USER “TEST1” IDENTIFIED BY 111111111;

GRANT DBA TO “TEST1”;

CREATE TABLE “TEST”.“TEST”(“Q” CHAR(10), “A” CHAR(10)) STORAGE(ON “MAIN”, CLUSTERBTR) ;

导出导入

./dexp “SYSDBA”/“SYSDBA”@192.168.100.164:16437 FILE=TEST.dmp OWNER=(“TEST”)

./dimp “SYSDBA”/“SYSDBA”@192.168.100.164:16437 FILE=TEST.dmp

REMAP_SCHEMA=“TEST”:“TEST1”

5. dmrman——备份还原基本原理

备份:从数据库文件中拷贝有效的数据页保存到备份集中;

还原和恢复:备份的反过程;

故障场景:

  1. 创建一个数据库D1。

  2. 操作数据库并执行数据库备份B1。

  3. 备份完成后继续操作数据库的过程中数据库故障,如何恢复数据库到故障发生前的状态?

示例:

  1. 创建源库D1,即待备份的数据库,然后启动数据库并配置归档,归档目录为/home/dm_arch/arch。

    ./dminit path=/opt/dmdbms/data

    ./dmserver /opt/dmdbms/data/DAMENG/dm.ini --连接数据库配置归档

    SQL>ALTER DATABASE MOUNT;

    SQL>ALTER DATABASE ARCHIVELOG;

    SQL>ALTER DATABASE ADD ARCHIVELOG ‘DEST = /home/dm_arch/arch, TYPE = local, FILE_SIZE = 1024, SPACE_LIMIT = 2048’;

    SQL>ALTER DATABASE OPEN;

  2. 操作数据库的同时备份数据库,备份集为B1。此处以向表中循环插入数据为例来操作数据库。

    SQL>DROP TABLE TAB_FOR_RECOVER;

    SQL>CREATE TABLE TAB_FOR_RECOVER(C1 INT);

    SQL>BEGIN

    FOR I IN 1…100000 LOOP

    INSERT INTO TAB_FOR_RECOVER VALUES(I);

    COMMIT;

    END LOOP;

    END; --插入数据的同时,另外一个会话备份数据库

    SQL>BACKUP DATABASE FULL TO B1 BACKUPSET ‘/home/dm_bak/B1’ DEVICE TYPE DISK

    BACKUPINFO ‘DAMENG FULL BACKUP ONLINE’ MAXPIECESIZE 2048;

  3. 继续向数据库插入数据一段时间后关掉数据库实例,模拟数据库故障。

  4. 创建目标库D2,即待还原的库:

    ./dminit path=/opt/dmdbms/data db_name=DAMENG_FOR_RES

  5. 启动DMRMAN工具,利用备份集B1和归档恢复数据库D2到D1故障前的状态。

    –还原

    RMAN>RESTORE DATABASE ‘/opt/dmdbms/data/DAMENG_FOR_RES/dm.ini’

    FROM BACKUPSET ‘/home/dm_bak/B1’;

    –利用归档恢复

    RMAN>RECOVER DATABASE ‘/opt/dmdbms/data/DAMENG_FOR_RES/dm.ini’

    WITH ARCHIVEDIR ‘/home/dm_arch/arch’;

    –更新DB_MAGIC

    RMAN>RECOVER DATABASE ‘/opt/dmdbms/data/DAMENG_FOR_RES/dm.ini’

    UPDATE DB_MAGIC;

四、其他工具

  • dmdbchk——检查数据库完整性、正确性

    校验DM数据库内部的物理存储结构是否正常,对象信息是否合法等;

    示例:./dmdbchk path=/home/test/data/DAMENG/dm.ini

  • dmlcvt——解析、修改日志文件

    获取联机或归档日志详细信息,分析系统故障原因;

    示例:./dmlcvt f_type=2 f_path=/home/dmdba/dm/ARCHIVE_LOCAL1_0x3E294C0_EP0_2024-04-09_14- 25-21.log out_path=/home/dmdba/dm/arch

  • dmrachk——校验、比较、抽取、修复归档

    操作对象只能是归档日志文件或者归档日志目录;

    示例:./dmrachk f_type=1 f_path=/data/sda/data/arch

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服