达梦数据库的使用

发布时间:2024年01月11日

一、安装程序介绍

官网文档:https://eco.dameng.com/docs/zh-cn/faq/faq-import-export.html

达梦数据库安装成功后,会显示如下客户端
在这里插入图片描述

1.dm管理工具

用于建立连接,建表,查询等操作,可在模式下查看建立的数据库信息
在这里插入图片描述
在库中建表,表名只能大写,或者查询时报错

2.dm服务查看器

用于启动停止服务
在这里插入图片描述

3.数据迁移工具

用于导入导出数据
建立迁移任务,选择导入数据
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
去管理工具,查询验证,只有姓名导入,其他导入失败
在这里插入图片描述
新建的表则插入成功
在这里插入图片描述
重新建立迁移任务
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
建立迁移任务,选择导出数据
在这里插入图片描述
在这里插入图片描述
数据成功导出,切可以支持导入多个表
在这里插入图片描述

二、达梦数据库联机备份与还原操作

1.配置归档

联机备份前必须要配置归档,脱机可配置可不配置

##修改数据库为 Mount 状态
ALTER DATABASE MOUNT

##配置本地归档
ALTER DATABASE ADD ARCHIVELOG ‘DEST = /home/dm_arch/arch, TYPE = local,FILE_SIZE = 1024, SPACE_LIMIT = 40960’;

##开启归档模式
ALTER DATABASE ARCHIVELOG;

##修改数据库为 Open 状态
ALTER DATABASE OPEN;

查看数据库归档状态(arch_mode 为y说明处于归档)
select arch_mode from v$database;

在这里插入图片描述

右键管理服务器也可以查看
在这里插入图片描述

2.备份

1.归档备份

命令行

##配置归档,请参考归档配置;
##保证数据库处于脱机状态;
##启动 DMRMAN 命令行工具;

##DMRMAN 中输入以下命令:
RMAN>BACKUP ARCHIVE LOG ALL DATABASE '/opt/dmdbms/data/DAMENG/dm.ini' BACKUPSET  '/home/dm_bak/arch_all_bak_01'; 

页面
代理=》创建代理环境=》新建作业=》确定
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
会自动生成一个ddl语句
在这里插入图片描述
设置定时任务

call SP_CREATE_JOB('db_bak_gd_log',1,0,'',0,0,'',0,'配置归档备份');

call SP_JOB_CONFIG_START('db_bak_gd_log');

call SP_ADD_JOB_STEP('db_bak_gd_log', '归档备份库', 6, '31020200D:\dmdbms\data\bfwj_gdbf', 1, 1, 0, 0, NULL, 0);

call SP_ADD_JOB_SCHEDULE('db_bak_gd_log', '归档备份调度', 1, 1, 1, 0, 0, '11:03:55', NULL, '2024-01-08 10:57:43', NULL, '');

call SP_JOB_CONFIG_COMMIT('db_bak_gd_log');

错误码为0说明备份成功
在这里插入图片描述
备份路径下会生成一个文件夹
在这里插入图片描述
查询备份相关信息
SELECT * FROM V B A C K U P S E T B K P ; S E L E C T ? F R O M V BACKUPSET_BKP; SELECT * FROM V BACKUPSETB?KP;SELECT?FROMVBACKUPSET_SEARCH_DIRS;
SELECT * FROM V$BACKUP_HISTORY;
在这里插入图片描述
查看数据库相关信息

SELECT '实例名称' 数据库选项,INSTANCE_NAME  数据库集群相关参数值 FROM V$INSTANCE UNION ALL
SELECT '数据库名',CUR_DATABASE()FROM DUAL UNION ALL
SELECT '授权客户',(SELECT AUTHORIZED_CUSTOMER FROM V$LICENSE) UNION ALL
SELECT '数据库授权码',(SELECT SERIES_NO FROM V$LICENSE) UNION ALL
SELECT '数据库有效期',CAST((SELECT EXPIRED_DATE FROM V$LICENSE)AS VARCHAR) UNION ALL
SELECT '数据库版本',SUBSTR(SVR_VERSION,INSTR(SVR_VERSION,'('))  FROM V$INSTANCE UNION ALL
SELECT '数据库实例路径',(SELECT PARA_VALUE FROM V$DM_INI WHERE PARA_NAME LIKE'%SYSTEM_PATH%')  FROM V$INSTANCE UNION ALL
SELECT '数据库模式',MODE$ FROM V$INSTANCE  UNION ALL
SELECT '数据库状态',STATUS$ FROM V$INSTANCE UNION ALL
SELECT 'OGUID',CAST(OGUID AS VARCHAR) FROM V$INSTANCE UNION ALL
SELECT '归档状态_开 Y/关 N',ARCH_MODE FROM V$DATABASE UNION ALL
SELECT '长度是否以字符为单位',CASE (SELECT PARA_VALUE FROM V$DM_INI WHERE "V$DM_INI".PARA_NAME ='LENGTH_IN_CHAR') WHEN '0' THEN '否' WHEN '1' THEN '是' END UNION ALL
SELECT '大小写是否敏感_是 Y,1/否N,0',CAST(SF_GET_CASE_SENSITIVE_FLAG() AS VARCHAR) UNION ALL
SELECT '字符集',CASE SF_GET_UNICODE_FLAG() WHEN '0' THEN 'GBK18030' WHEN '1' THEN 'UTF-8' WHEN '2' THEN 'EUC-KR' END UNION ALL
SELECT '页大小',CAST(PAGE()/1024 AS VARCHAR) UNION ALL
SELECT '簇大小',CAST(SF_GET_EXTENT_SIZE() AS VARCHAR) UNION ALL
SELECT '唯一魔数',CAST(PERMANENT_MAGIC AS VARCHAR) UNION ALL
SELECT 'LSN',CAST(CUR_LSN AS VARCHAR) FROM V$RLOG UNION ALL
SELECT '当前登录用户',USER;

在这里插入图片描述
备份集校验

--SF_BAKSET_CHECK (device_type,backup_dir)
SELECT  SF_BAKSET_CHECK ('DISK','/home/dm_bak/db_bak_for_check');

在这里插入图片描述
为1说明备份成功
验证备份集是否有效
在这里插入图片描述

3.备份还原

备份之后,尝试修改数据
备份前的数据
在这里插入图片描述
备份后修改数据
在这里插入图片描述
新建测试表
在这里插入图片描述
考虑到生产环境的实例不能关闭,切为了不影响实际业务数据,新建一个实例进行恢复
实际生产环境端口5236,且实例名为DAMENG,新建一个5237,实例名为DM02

[dmdba@localhost bin]$ ./dminit path=/dm8/data1/ DB_NAME=DM02 INSTANCE_NAME=DMSVR02 PORT_NUM=5237 page_size=16 extent_size=32 CASE_SENSITIVE=1 log_size=500
initdb V8
db version: 0x7000c
file dm.key not found, use default license!
License will expire on 2023-06-30
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL

 log file path: /dm8/data1/DM02/DM0201.log


 log file path: /dm8/data1/DM02/DM0202.log

write to dir [/dm8/data1/DM02].
create dm database success. 2022-12-29 14:15:45
#
#前台启动数据库,确认实例是否初始化正常。

[dmdba@localhost bin]$ ./dmserver /dm8/data1/DM02/dm.ini

#退出实例准备数据还原

在这里插入图片描述
以上是window系统操作,同样的指令,可见新建一个实例成功
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
新建达梦连接,端口号给5237,可见创建成功
在这里插入图片描述

里面是空的
在这里插入图片描述
实例2当前未配置归档
在这里插入图片描述

数据库备份还原恢复
./dmrman
restore database '/dm8/data1/DM02/dm.ini' from backupset '/dm8/backup/1229';
recover database '/dm8/data1/DM02/dm.ini' WITH ARCHIVEDIR '/dm8/data/DM01/arch' UNTIL LSN 1000050;
recover database '/dm8/data1/DM02/dm.ini' update db_magic;

归档备份还原恢复
##还原归档。启动 DMRMAN,设置 OVERWRITE 为 2,如果归档文件已存在,会报错。 
##1、指定还原的目标归档日志目录:
RMAN>RESTORE ARCHIVE LOG FROM BACKUPSET '/home/dm_bak/arch_all_for_restore' TO ARCHIVEDIR'/opt/dmdbms/data/DAMENG_FOR_RESTORE/arch_dest' OVERWRITE 2; 

##2、指定还原目标库的 dm.ini 文件路径:
RMAN>RESTORE ARCHIVE LOG FROM BACKUPSET '/home/dm_bak/arch_all_for_restore' TO  DATABASE '/opt/dmdbms/data/DAMENG_FOR_RESTORE/dm.ini' OVERWRITE 2; 

以下用的是归档方式
在这里插入图片描述
在这里插入图片描述
归档还原时候报错,不知道什么原因,有大佬知道可以回复下
CHECK BACKUPSET ‘D:\dmdbms\data\bfwj_gdbf\DB_DAMENG_FULL_2024_01_11_10_25_45’;
在这里插入图片描述
尝试使用管理工具页面还原
在这里插入图片描述
在这里插入图片描述
换个备份方式,重新备份,后面选择全备试下
在这里插入图片描述

call SP_CREATE_JOB('db_bak_gd_log',1,0,'',0,0,'',0,'配置归档备份');

call SP_JOB_CONFIG_START('db_bak_gd_log');

call SP_ADD_JOB_STEP('db_bak_gd_log', '归档备份库', 6, '01020200D:\dmdbms\data\bfwj_gdbf', 1, 1, 0, 0, NULL, 0);

call SP_ADD_JOB_SCHEDULE('db_bak_gd_log', '归档备份调度', 1, 1, 1, 0, 0, '10:24:55', NULL, '2024-01-08 10:57:43', NULL, '');

call SP_JOB_CONFIG_COMMIT('db_bak_gd_log');

注意备份的时候这两个地方都要启动
在这里插入图片描述
刚刚全备的已经成功了
在这里插入图片描述
测试在新实例上还原,新实例之前已经开启过归档了,可以看到改用完全备份方式成功

./dmrman
restore database 'D:\dmdbms\data\DM02\dm.ini' from backupset 'D:\dmdbms\data\bfwj_gdbf\ARCH_LOG_DAMENG_2024_01_10_11_20_57';
recover database 'D:\dmdbms\data\DM02\dm.ini' WITH ARCHIVEDIR 'D:\dmdbms\data\DAMENG\he_gd' UNTIL LSN 1000050;
recover database 'D:\dmdbms\data\DM02\dm.ini' update db_magic;

在这里插入图片描述

注意这里用的是归档路径不是备份集路径
在这里插入图片描述
在这里插入图片描述
开启新实例,查看数据是否和旧实例数据一样

dmserver D:\dmdbms\data\DM02\dm.ini

在这里插入图片描述
可以看到5237的数据和5236的数据一致
在这里插入图片描述
整个过程中实例5236的数据是不需要关闭的,只是把数据恢复到了5237的实例中

文章来源:https://blog.csdn.net/qq_45798550/article/details/125717637
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。