达梦数据库系列—30. DTS迁移Mysql到DM

目录

1.MySQL 源端信息

2.DM 目的端信息

3.迁移评估

4.数据库迁移

4.1源端 MySQL 准备

4.2目的端达梦准备

初始化参数设置

兼容性参数设置

创建迁移用户和表空间

4.3迁移步骤

创建迁移

配置迁移对象及策略

开始迁移

对象补迁

5.数据校验

统计 MySQL 端对象及数据

统计 DM 端对象及及数据

6.统计信息与备份

更新统计信息

备份

7.应用迁移


1.MySQL 源端信息

调研项

说明

数据库架构

单机

节点数

1

数据库版本

MySQL 8.0

待迁移库

dbtest

IP 地址/端口

192.168.32.128/3306

服务器运维用户名(密码)

root

数据库用户名(密码)

xxxxx

字符集编码

UTF-8

大小写敏感

不敏感

是否以字节为单位

归档保留策略

/

统计指定库中表的数目。

SELECT COUNT(*) TABLES, TABLE_SCHEMA FROM INFORMATION_SCHEMA.TABLES

WHERE TABLE_SCHEMA = 'eyoucms' GROUP BY TABLE_SCHEMA;

统计指定库中视图的数目

SELECT TABLE_SCHEMA,COUNT(*) VIEWS FROM INFORMATION_SCHEMA.VIEWS  WHERE TABLE_SCHEMA  = 'eyoucms'  GROUP BY TABLE_SCHEMA;

统计指定库中所有的存储过程、函数

SELECT `NAME` FROM MYSQL.PROC WHERE DB = 'eyoucms' AND `TYPE` = 'FUNCTION';

统计指定库中所有的触发器

SELECT TRIGGER_SCHEMA ,TRIGGER_NAME FROM information_schema.TRIGGERS WHERE TRIGGER_SCHEMA= 'eyoucms';

将指定库中所有表数据量记录到辅助表

CREATE TABLE MYSQL_TABLES(TAB_OWNER VARCHAR(100),TAB_NAME VARCHAR(100),TAB_COUNT INT);

INSERT INTO MYSQL_TABLES SELECT TABLE_SCHEMA,TABLE_NAME,TABLE_ROWS FROM INFORMATION_SCHEMA.TABLES

WHERE TABLE_SCHEMA = 'eyoucms' ORDER BY TABLE_ROWS DESC;

2.DM 目的端信息

调研项

调研命令

服务器品牌/型号

dmidecode

服务器操作系统

cat /etc/os-release

内存容量

cat /proc/meminfo

CPU 型号/核数

cat /proc/cpuinfo

端口策略

是否与目的端网络、端口互通

安全策略

是否有软件、硬件相关安全限制(比如堡垒机、网闸、文件摆渡)

是否具备可视化界面

可视化提供的方式(直连、Xmanager、VNC、BMC 等)

其他

/

3.迁移评估

勾选评估内容

指定要评估的数据库模式,勾选 MySQL 中需要迁移的库进行评估。

选择 MySQL 库中具体需要评估的对象

确认评估任务后开始评估

评估完成后可点击右下方的“查看报告”,查看详细的评估报告

这里全部兼容,如果有不兼容的,可单独进行修改迁移。

4.数据库迁移

4.1源端 MySQL 准备

在正式开始移植前需要停止所有对源端 MySQL 数据库的变更操作

4.2目的端达梦准备

初始化参数设置

数据库参数

参数值

DB_NAME(数据库名)

DAMENG(根据需求设置)

INSTANCE_NAME(实例名)

DMSERVER(根据需求设置)

PORT_NUM(端口)

5236(正式移植环境下,为保证数据库安全,不建议使用默认端口 5236)

管理员、审计员、安全员密码(安全版本特有)

不推荐使用默认密码

EXTENT_SIZE(簇大小)

16

PAGE_SIZE(页大小)

32

LOG_SIZE (日志大小)

2048M

CHARSET(字符集)

UTF-8(一般是 UTF8,根据实际要求设置)

CASE_SENSITIVE(大小写敏感)

不敏感(一般是不敏感,根据实际要求设置)

BLANK_PAD_MODE(尾部空格填充)

其中页大小(page_size)、簇大小(extent_size)、大小写敏感(case_sensitive)、字符集(charset)、结尾空格填充(BLANK_PAD_MODE)一旦确定无法修改,需谨慎设置。

(1)CASE_SENSITIVE 大小写是否敏感设置。CASE_SENSITIVE=1 大小写敏感,包含 2 层意思:

  ① 表中数据:区分大小写。

  ② 对象名:对象名区分大小写。

兼容性参数设置

参数名

含义

建议值

COMPATIBLE_MODE

是否兼容其他数据库模式。0:不兼容,1:兼容 SQL92 标准 2:兼容 ORACLE 3:兼容 MS SQL SERVER 4:兼容 MYSQL 5:兼容 DM6 6:兼容 TERADATA。

4(表示部分语法兼容 MYSQL),重启数据库生效。

ORDER_BY_NULLS_FLAG

控制排序时 NULL 值返回的位置,取值 0、 1、2。 0 表示 NULL 值始终在最前面返回; 1 表示 ASC 升序排序时 NULL 值在最后返回, DESC 降序排序时 NULL 值在最前面返回, 在参数等于 1 的情况下, NULL 值的返回与 ORACLE 保持一致; 2 表示 ASC 升序排序时 NULL 值在最前面返回, DESC 降序排序时 NULL 值在最后返回,在参数等于 2 的情况下, NULL 值的返回与 MYSQL 保持一致。

2(兼容 MYSQL)。

MY_STRICT_TABLES

是否开启 STRICT 模式(严格模式),仅在 COMPATIBLE_MODE=4 时有效。0:不开启,数据超长时自动截断;字符类型转换数值类型(包括 INT、SMALLINT、TINYINT、BIGINT、DEC、FLOAT、DOUBLE)失败时,转换为 0;1:开启,数据超长或计算错误时报错。

建议值:1。

创建迁移用户和表空间

针对 MySQL 中的每一个库在达梦里面创建一个用户和表空间来对应。例如 MySQL 中有一个库 dbtest,达梦里面先创建一个表空间 dbtest,然后创建一个用户 DBTEST,指定默认表空间为 dbtest。

create tablespace eyoucms datafile '/dm/data/DAMENG/eyoucms01.dbf' size 128 autoextend on next 32 maxsize 1024;

create user eyoucms identified by "eyoucms123" default tablespace eyoucms;

grant public,resource,soi,svi,vti to eyoucms;

4.3迁移步骤

创建迁移

新建迁移工程

选择迁移方式为 “MySQL ==> DM”

配置数据源

配置迁移对象及策略

迁移对象方式及迁移策略中勾选“保持对象名大小写”

在这里勾选了“使用默认数据类型映射关系”,如果后面又自定义了数据类型映射关系,DTS 会优先选择使用自定义的数据映射关系

注意修改字符长度,字符集CHARSET=0代表使用GB18030,即一个中文两个字节。CHARSET=1代表使用UTF-8,即一个中文3个字节,查看字符集select UNICODE ();

默认映射关系:

勾选源端待迁移的数据库

这里不再勾选“创建模式”

勾选源端数据库中需要迁移的对象

在 SQL 评估阶段不兼容的对象不需要勾选,待其它对象迁移完成后,再手动修改和导入这些不兼容的对象

右上角“分析源对象”,可查看源端对象统计:

可点击转换进行自定义对象迁移策略

迁移策略

在迁移策略中可根据需要设置表及数据迁移的策略

一般先迁移表,再迁移主键、索引和约束

部分选项说明:

① 压缩:指定迁移的目的表是否按照压缩方式存储。

② 强制聚集索引:即使源表的主键为非聚集主键,创建目的表时也会被转换为聚集主键。

③ 强制非聚集索引:即使源表的主键为聚集主键,创建目的表时也会被转换为非聚集主键。

④ 启用标志列插入:如果表上有标志列,则迁移数据时会强制向标志列插入值,以保证源和目的数据完全一致。

⑤ 显示行数:将在迁移任务过程中,显示数据的行数。

⑥ 拷贝记录:如果目的表已存在,直接拷贝记录,不需要创建表。

⑦ 删除后拷贝记录:迁移过程中先删除已存在的目的表,再重新创建新目的表。

⑧ 源一次读取行数:设置从数据源中读取数据时每次读取数据的行数,该参数决定内存中缓存结果集的大小,对于数据量很大的数据源,设置该参数,可以控制内存的使用。

⑨ 目的一次提交行数:设置向目的数据库中每次写入数据的行数。当数据量比较大时,减小该参数的值可以减少内存的使用。但会影响迁移的速度。

⑩ 缓存批数:设置缓存队列的长度。调整该参数可以调整迁移过程中内存的使用。

列映射选项

可根据需求修改映射信息,根据需要勾选“应用当前选择项到其他同类对象”

开始迁移

检查迁移任务,确认迁移对象是否正确

有迁移失败,和因为失败取消的任务。

对象补迁

通过“查看详细信息”,记录每一个失败的表。

例以上第一个失败:

由于达梦中文字符集char类型存放一个中文字符是2个字节,这里需要在“配置对象及策略”里,修改字符字符长度为2。

可以重新建一个迁移,选择刚才失败的表,重新做一次迁移。

5.数据校验

统计 MySQL 端对象及数据

见“Mysql源端信息”章节

统计 DM 端对象及及数据

统计达梦数据库中相关用户的对象数

SELECT OBJECT_TYPE,COUNT(*) FROM ALL_OBJECTS WHERE OWNER='EYOUCMS' GROUP BY OBJECT_TYPE;

统计表数据

CREATE TABLE DM_TABLES

(

TAB_OWNER VARCHAR(100),

TAB_NAME  VARCHAR(100),

TAB_COUNT INT

);

declare

v_owner VARCHAR2(100);

v_tabname VARCHAR2(100);

stmt  VARCHAR2(200);

num_rows number;

         begin

         for rec in (SELECT OWNER,OBJECT_NAME FROM ALL_OBJECTS WHERE OWNER='EYOUCMS' AND OBJECT_TYPE='TABLE')---owner根据实际情况调整

            loop

            select rec.owner,rec.OBJECT_NAME into v_owner,v_tabname from dual;

            stmt := 'select count(*) from "' || v_owner || '"."' || v_tabname || '"';

            EXECUTE IMMEDIATE stmt INTO num_rows;  

            EXECUTE IMMEDIATE 'insert into dm_tables values('''||v_owner||''','''||v_tabname||''','''||to_number(num_rows)||''')';

EXECUTE IMMEDIATE 'commit';

           end loop;

           end;

6.统计信息与备份

更新统计信息

按模式更新统计信息:

DBMS_STATS.GATHER_SCHEMA_STATS('DBTEST',100,FALSE,'FOR ALL COLUMNS SIZE AUTO');

 --DBTEST 为模式名,需要根据实际情况修改为自己的模式名。

如果数据量较大,该过程执行较慢,需要等待一段时间。

按表进行统计信息的收集:

DBMS_STATS.GATHER_TABLE_STATS('username','table_name',null,100,TRUE,'FOR ALL COLUMNS SIZE AUTO');

备份

7.应用迁移

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/383141.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Eclipse 搭建 C/C++ 开发环境以及eclipse的使用

一、下载、安装 MinGW 1、下载: 下载地址:MinGW - Minimalist GNU for Windows - Browse Files at SourceForge.net 点击“Download Latest Version”即可 下载完成后,得到一个名为 mingw-get-setup.exe 的安装文件。双击运行,安装即可。 …

Docker容器限制内存与CPU使用

文章目录 Docker 容器限制内存与 CPU 使用内存限额内存限制命令举例使用 `nginx` 镜像学习内存分配只指定 `-m` 参数的情况CPU 限制命令举例验证资源使用Docker 容器限制内存与 CPU 使用 在生产环境中,为了保证服务器不因某一个软件导致服务器资源耗尽,我们会限制软件的资源…

WPF启动失败报System.Windows.Automation.Peers.AutomationPeer.Initialize()错误解决

问题描述 win10系统上WPF程序启动后就崩溃,通过查看崩溃日志如下: 应用程序: xxx.exe Framework 版本: v4.0.30319 说明: 由于未经处理的异常,进程终止。 异常信息: System.TypeLoadException 在 System.Windows.Automation.Peers.Automatio…

META 备受期待的 Llama 3 405B 即将发布

本心、输入输出、结果 文章目录 META 备受期待的 Llama 3 405B 即将发布前言Llama 3 405B或许会彻底改变专用模型的数据质量Llama 3 405B将形成新的模型生态系统:从基础模型到专家组合Llama 3 405B有最高效 API 的竞争Llama 3 405B 基准测试META 备受期待的 Llama 3 405B 即将…

VMware三种网络模式---巨细

文章目录 目录 ‘一.网络模式概述 二.桥接模式 二.NAT模式 三.仅主机模式 四.案例演示 防火墙配置: 虚拟电脑配置 前言 本文主要介绍VMware的三种网络模式 ‘一.网络模式概述 VMware中分为三种网络模式: 桥接模式:默认与宿主机VMnet0绑…

pytest常用命令行参数解析

简介:pytest作为一个成熟的测试框架,它提供了许多命令行参数来控制测试的运行方式,以配合适用于不同的测试场景。例如 -x 可以用于希望出现错误就停止,以便定位和分析问题。–rerunsnum适用于希望进行失败重跑等个性化测试策略。 …

.NET 8+Vue2 部署到Window Server

.NET 8Vue2 部署到Window Server 1 配置环境 1.1 下载安装.NET 8 SDK,下载时需注意目标服务器的系统类型(64位 or 32位) https://dotnet.microsoft.com/zh-cn/download 1.2 下载安装SQL Server数据库(服务和管理工具&#xff…

QT 信号槽机制

核心函数为 QMetaObject::Connection QObject::connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type Qt::AutoConnection) 参数为 1.信号发生对象 2.信号发生对象的信号 3.槽对象 4.槽对象的槽函…

分享 .NET EF6 查询并返回树形结构数据的 2 个思路和具体实现方法

前言 树形结构是一种很常见的数据结构,类似于现实生活中的树的结构,具有根节点、父子关系和层级结构。 所谓根节点,就是整个树的起始节点。 节点则是树中的元素,每个节点可以有零个或多个子节点,节点按照层级排列&a…

试过可道云teamOS的权限管理,才知道团队协作可以这么顺

在快节奏的工作环境中,团队协作的顺畅与否往往决定了项目的成败。作为团队中的一员,我深知权限管理在团队协作中的重要性。 我们的团队在协作过程中总是被权限问题所困扰。文件共享、资料访问、任务分配……每一个环节都需要小心翼翼地处理权限设置&…

字符函数和字符串函数(二)

一、strncpy函数的使用 拷贝num个字符从源字符串到目的空间。 如果源字符串的长度小于num&#xff0c;则拷贝完源字符串后&#xff0c;在目标后面追加0&#xff0c;直到num个。 #include<stdio.h> #include<string.h> int main() {char arr1[] "abcdef"…

【C++】标准库:介绍string类

string 一.string类介绍二.string类的静态成员变量三.string类的常用接口1.构造函数&#xff08;constructor&#xff09;2.析构函数&#xff08;destructor&#xff09;3.运算符重载&#xff08;operator&#xff09;1.operator2.operator[]3.operator4.operator 4.string的四…

ML.Net 学习之使用经过训练的模型进行预测

什么是ML.Net&#xff1a;&#xff08;学习文档上摘的一段&#xff1a;ML.NET 文档 - 教程和 API 参考 | Microsoft Learn 【学习入口】&#xff09; 它使你能够在联机或脱机场景中将机器学习添加到 .NET 应用程序中。 借助此功能&#xff0c;可以使用应用程序的可用数据进行自…

【漏洞复现】某学院教务一体化系统——任意账号密码重置

声明&#xff1a;本文档或演示材料仅供教育和教学目的使用&#xff0c;任何个人或组织使用本文档中的信息进行非法活动&#xff0c;均与本文档的作者或发布者无关。 文章目录 漏洞描述漏洞复现 漏洞描述 某学院教务一体化系统存在任意账号密码重置漏洞 漏洞复现 点击忘记密码…

<数据集>玉米地杂草识别数据集<目标检测>

数据集格式&#xff1a;VOCYOLO格式 图片数量&#xff1a;9900张 标注数量(xml文件个数)&#xff1a;9900 标注数量(txt文件个数)&#xff1a;9900 标注类别数&#xff1a;2 标注类别名称&#xff1a;[Maize, Weed] 序号类别名称图片数框数1Maize8439125142Weed959231048…

mysql之视图的创建以及查询;

一&#xff1a;数据库及其表的创建&#xff1a; mysql> create database mydb15_indexstu; Query OK, 1 row affected (0.00 sec)mysql> use mydb15_indexstu; Database changed mysql> create table student(-> sno int primary key auto_increment,-> sname …

CFPRF:一种用于音频时间伪造检测和定位的框架

关键词&#xff1a;音频伪造检测、时间伪造定位、差异特征感知学习 最近&#xff0c;一种新型的音频部分伪造形式对音频取证提出了挑战&#xff0c;这要求采取先进的对策来检测长时间音频中的微妙伪造操作。然而&#xff0c;现有的对策仍然服务于分类目的&#xff0c;未能对部分…

Binius-based zkVM:为Polygon AggLayer开发、FPGA加速的zkVM

1. 引言 近日&#xff0c;ZK硬件加速巨头Irreducible和Polygon团队宣布联合开发生产级的Binius-based zkVM&#xff0c;用于助力Polygon AggLayer&#xff0c;实现具有低开销、硬件加速的binary proofs。 Irreducible&#xff08;曾用名为Ulvetanna&#xff09;团队 Benjamin …

Hyper-V 安装 CentOS 8.5

前言 Hyper-V安装文档:在 Windows 10 上安装 Hyper-VCentOS 系统下载:CentOS 国内镜像源 8.5.2111作者:易墨发布时间:2023.10.01原文地址:https://www.cnblogs.com/morang/p/devops-hyperv-centos-install.html使用命令安装 以管理员身份运行 PowerShell 命令: Enable-…

Three.js投射光线实现三维物体交互

<template><div id"webgl"></div> </template><script setup> import * as THREE from three //导入轨道控制器 import { OrbitControls } from three/examples/jsm/controls/OrbitControls // 导入 dat.gui import { GUI } from thre…