本次围绕达梦数据库DM8完成了完整操作,先后实操数据库初始化、disql交互工具、dexp逻辑导出、dimp逻辑导入、dmrman物理备份四类命令行工具,同时梳理图形化管理工具基础操作逻辑。学习过程中频繁遇到参数语法、字符转义、进程运行、文件权限、工具参数混用等各类报错问题,理清了单机达梦命令行工具的运行逻辑。
dminit是达梦创建数据库实例的初始化命令行工具,用于生成dm.ini、数据文件、控制文件、日志文件,核心常用参数释义如下:
数据库实例文件存放根目录,指定data文件夹路径,如/home/dmdba/dmdbms/data,所有数据、日志、配置文件都会生成在此目录下。
数据页大小,支持4/8/16/32,创建实例后不可修改,该参数直接约束单行数据最大存储长度。
簇大小,数据文件单次分配磁盘空间单位。
标识符大小写敏感开关,0不敏感、1敏感,影响表名、字段名匹配规则。
字符集,默认GB18030,可选UTF-8,决定中文存储与编码长度。
数据库库名,本次实操使用DMTEST,是实例唯一标识,备份、连接、备份语句中均需引用该名称。
实例名,区分同一服务器多个达梦实例,监听端口与实例绑定。
数据库监听端口,默认5236,本次修改为5237,disql、dexp、dimp连接时必须匹配该端口,端口不匹配会直接报socket连接失败。
管理员SYSDBA账号密码,支持特殊符号如@,但命令行传递时会被Shell解析,极易引发连接报错,下面会有报错示例。
用于设置数据库内置审计管理员账号SYSAUDITOR的登录密码,控制审计账号登录权限。特别注意:密码包含@等特殊符号时,同SYSDBA_PWD一样,不能直接拼接在命令行,会被Shell解析报错。
下面给出操作实例:
命令行创建了页大小为32KB,簇大小为32KB,大小写敏感,字符集为UTF-8,数据库名为DMTEST,实例名为DBSERVER,端口为5237,SYSDBA_PWD为Dm@123456,SYSAUDITOR_PWD为Zxy@123456的数据库实例。
本次主要操作四类核心命令行工具:DISQL(SQL交互)、DEXP(导出dmp)、DIMP(导入dmp)、DMRMAN(脱机备份)。
./disql SYSDBA@127.0.0.1:5237,使用交互式输密码的登录方式;
这步用来验证实例创建成功,可以正确输出实例名和端口号:
建表CREATE TABLE TEST(id INT,name VARCHAR(20))、修改字段长度ALTER TABLE TEST MODIFY NAME VARCHAR(50)、删表DROP TABLE TEST;
插入数据INSERT INTO TEST VALUES(1,‘测试数据’)、查询SELECT * FROM TEST,执行COMMIT永久保存提交事务;
输入exit断开会话,仅关闭客户端,不会停止数据库服务。
1)密码含特殊符号@时,直接拼接SYSDBA/Dm@123456@127.0.0.1:5237会被Shell拆分解析,识别错误报socket连接失败;下面展示使用账户名和密码拼接的连接方式连接失败的示意图。
解决方案:不带密码仅写地址,登录时交互式输入密码。
2)在运行dmserver数据库服务的终端窗口输入exit,会直接触发数据库完整关机,端口关闭,所有客户端无法连接;
解决方案:区分服务窗口与操作窗口,服务窗口仅保留运行日志,不执行任何指令。
3)插入字符串长度超出字段定义,报错[-6169]列长度超出定义;
解决方案:使用 ALTER TABLE 扩容字段长度后再插入长文本。
单表导出语句:./dexp SYSDBA@127.0.0.1:5237 FILE=/home/dmdba/test_tab.dmp TABLES=TEST,交互式输入密码,将指定表数据导出为dmp备份文件。
导入恢复语句:./dimp SYSDBA@127.0.0.1:5237 FILE=/home/dmdba/test_tab.dmp TABLES=TEST TABLE_EXISTS_ACTION=REPLACE,用于将dmp文件恢复至数据库,TABLE_EXISTS_ACTION控制表已存在时的处理逻辑。
1)冷备份(数据库停机):终端单行指定dm.ini路径执行备份,无需连接运行中的实例。
首先通过pkill dmserver命令强制关闭达梦数据库服务进程,确保数据库处于关闭状态以执行离线备份;随后切换到达梦安装目录下的bin工具目录,调用备份工具dmrman并通过CTLSTMT参数传入备份语句,语句指定读取实例配置文件dm.ini路径、执行完整备份,定义备份集名称为bak01、备份文件存放路径为/home/dmdba/dmbak/bak01。
dmrman备份工具为脱机备份,需要停机,不然会一直报错!
./disql ‘SYSDBA/“Dm@123456”@127.0.0.1:5237’
CREATE TABLE TEST(C1 INT, C3 DATE);
SELECT TABLE_NAME FROM USER_TABLES WHERE TABLE_NAME=‘TEST’;
在/home/dmdba/目录下创建数据文件test.txt:vi /home/dmdba/test.txt
1|2015-11-06
2|2015-11-05
3|2015-11-04
./dmfldr USERID=SYSDBA/’“Dm@123456”’@127.0.0.1:5237 TABLE=TEST DATA=’/home/dmdba/test.txt’ MODE=‘IN’
在正式使用DTS工具前,需要确保源端和目的端网络互通,并完成必要的账号与权限配置。
Oracle开启监听:确保Oracle的Listener已经正常启动,可以通过lsnrctl status命令检查。创建Oracle迁移账号并授权:建议创建一个专门用于迁移的只读用户,赋予CONNECT、RESOURCE以及SELECT ANY TABLE权限。全库迁移需DBA权限。DM创建用户与表空间:提前创建好对应的表空间及接收数据的目标用户(如SYSDBA)。停止数据库的应用;确认要迁移的用户(模式、数据库);记录原数据库中要迁移的对象的数量;记录原数据库中要迁移的所有对象名称;记录原数据库中要迁移的表的数据量(行数);创建目标数据及实例;创建目标数据的表空间及用户。
Windows 环境启动 DM 数据迁移工具
点击【开始界面】,选择【达梦数据库】菜单,点击【DM 数据迁移工具】,即可进入数据迁移工具,如下图所示:
1、新建评估与选择评估方式:右键【新建评估】,选择Oracle—>DM评估方式。
2、目前达梦迁移工具支持的迁移评估如下图所示,以 ORACLE 迁移达梦评估为例:
3、配置Oracle源库连接:填写主机名(IP)、端口(1521)、服务名(如ORCL)、用户名及口令。
4、指定模式与对象:勾选需要评估的模式(如HR)及其下的表、视图、序列和存储过程,指定目标对象后执行评估。
5、兼容性分析:评估完成后查看兼容率报告。针对不兼容的存储过程或特殊语法,可通过工具内置的【校验】功能进行语法验证和手动调整转换。
1、新建迁移并配置:新建Oracle—>DM的迁移任务。分别配置Oracle源库和DM目的库(默认端口5236)的连接信息。
2、指定模式映射:勾选源端模式,系统自动映射到目的端同名模式。
3、设置表映射关系:选中要迁移的表。
4、审阅并执行:核对源端和目的端连接URL及对象列表,确认无误后点击完成正式开启数据迁移。
迁移结束后,在源端和目的端分别执行以下SQL核验。
select object_type,count(*) from all_objects where owner=‘HR’ group by object_type order by 1;
文章
阅读量
获赞
