DM数据迁移

avatar
作者
筋斗云
阅读量:2

达梦数据库常用路径:

容器安装非容器安装
data路径/opt/dmdbms/data/DAMENG/home/dmdba/dmdbms/data/
bin路径/opt/dmdbms/bin/home/dmdba/dmdbms/bin

1】 新建用户

只有具有DBA权限的用户才可以新建,一般用户名为:SYSDBA或者SYSADMIN。权限:

https://eco.dameng.com/document/dm/zh-cn/pm/discretionary-access-control

角色名称角色简单说明
DBADM 数据库系统中对象与数据操作的最高权限集合,拥有构建数据库的全部特权,只有 DBA 才可以创建数据库结构
RESOURCE可以创建数据库对象,对有权限的数据库对象进行数据操纵,不可以创建数据库结构
PUBLIC不可以创建数据库对象,只能对有权限的数据库对象进行数据操纵
VTI具有系统动态视图的查询权限,VTI 默认授权给 DBA 且可转授
SOI具有非审计/安全系统表的查询权限
SVI具有基础 V 视图的查询权限
# 创建用户 create user xiaokkk identified by "xiaokkk@hz123"; 【一般要求密码长度不小于9】  # 用户授权 grant RESOURCE,PUBLIC,VTI,SOI,SVI to abragent;  # 删除用户 # drop user xiaokkk cascade;  # 新建schema # create schema xiaokkk;  # 查询当前用户权限 select * from user_role_privs; 

2】分配表空间

拆分成两个dbf文件(1G+1G),也可能后缀是DBF,需要查v$datafile

# 路径参考:select path from v$datafile;  create tablespace xiaokkk datafile '/home/dmdba/dmdbms/data/DAMENG/xiaokkk01.DBF' size 128 autoextend on next 128 maxsize 1024;  # 初始大小:size 128 表示数据文件的初始大小为128MB(兆字节)。这意呀着在创建时,这个数据文件会立即占用磁盘上的# 128MB空间。 # 自动扩展(Autoextend):autoextend on 表示启用了数据文件的自动扩展功能。这意味着当数据文件达到其当前大小# # 时,如果还需要更多空间来存储数据,它会自动增长,而不需要手动干预。 # 自动扩展的增量:next 128 表示当数据文件需要自动扩展时,它每次会增加128MB的空间。 # 最大大小:maxsize 1024 表示数据文件可以自动扩展到的最大大小为1024MB(即1GB)。当数据文件达到这个大小时,它# 将停止自动扩展,即使需要更多空间来存储数据也不会继续增长。  alter tablespace xiaokkk add datafile '/home/dmdba/dmdbms/data/DAMENG/xiaokkk02.DBF' size 128 autoextend on next 128 maxsize 1024; 

可能遇到的问题:可参考:https://zhuanlan.zhihu.com/p/519449959

3】数据迁移

检查大小写是否敏感:select case_sensitive

若结果为0,大小写不敏感,则继续操作;

若结果为1, 非容器可参考:https://tencentcloud.csdn.net/64d9ec544c7ead5211f108ff.html?dp_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6MjE1MDM2LCJleHAiOjE3MjEyMjEzODIsImlhdCI6MTcyMDYxNjU4MiwidXNlcm5hbWUiOiJxcV80MTA4MTcxNiJ9.3yrd0ZGxqhoDw0yHUqUkdmGiUWJdlyU3SPGsnU7RNhE

注意:确认不敏感后,进行数据迁移,3.1和3.2选择其一,迁移后需要执行3.3语句;

3.1 disql

用法类似mysql的source命令,需要提前

1、新建好schema:xiaokkk;

2、找到bin文件所在位置;

3、准备好建表sql以及插入数据sql(利用DM数据迁移工具);注意查看sql文件是否乱码,若乱码可用vscode进行更改编码,建议GBK;

# 将sql文件上传到指定路径 ... # 执行登录,输入新建的用户名、密码 cd /opt/dmdbms/bin ./disql   # 执行建表sql,sql文件在tmp路径下 start create_table.sql  # 执行插入数据sql start insert_into.sql 
3.2 dimp文件

1、无需新建schema,但是需要建的用户名必为:xiaokkk,因为dmp含有语句:

CREATE SCHEMA “xiaokkk” AUTHORIZATION “xiaokkk”

2、准备好dmp文件,该文件可通过DM管理工具进行导出。

# 将dmp文件上传到指定路径 ... # 执行登录,输入新建的用户名、密码 cd /opt/dmdbms/bin  # 注意:非DBA权限用户无法执行,且新建用户名需为xiaokkk # SYSDBA/SYSDBA001为管理员用户,需要根据实际情况修改  ./dimp USERID=SYSDBA/SYSDBA001 FILE=/tmp/imp_exp_20240715141740.dmp SCHEMAS=abragent 

参考:https://blog.csdn.net/zhiwenganyong/article/details/121878499

3.3 补充update_at触发器
create or replace trigger user_update_at_trg before update  on "user" for each row begin    :new.update_at=current_timestamp(); end;  

4】数据校验

1、检查数据大小写是否正常,中文是否乱码等;

2、检查update_at是否正常更新;

3、检查查询是否正常,如表名无需添加双引号;

5】工具安装

若未安装达梦工具,可根据官网提供的【客户端工具】进行安装

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!