注册
数据库安装及数据迁移(DM6-DM7)
专栏/培训园地/ 文章详情 /

数据库安装及数据迁移(DM6-DM7)

十之八九💫 2024/10/09 323 0 0
摘要

一、数据库安装
1.DM6数据库安装
使用“./DMInstall.bin -i”命令,运行数据库安装程序
(1)选择key文件
(2)选择安装类型
①1 Typical 典型安装
②2 Server 服务器安装
③3 Client 客户端安装
④4 Custom 自定义安装
(3)输入数据库安装目录
(4)确认安装路径
(5)选择是否初始化数据库
(6)是否初始化安装演示数据库
(7)输入初始化路径
(8)确认初始化路径
(9)是否修改数据库初始化参数
(10)是否修改SYSDBA密码
(11)是否修改SYSAUDITOR密码
(12)确认安装摘要
(13)安装确认
image.pngimage.pngimage.png
2.DM7数据库安装
(1)创建用户及用户组
image.png
(2)挂载镜像文件
image.png
(3)运行数据库安装程序
image.pngimage.png
(4)root用户执行脚本
image.png
(5)初始化实例
image.png
(6)配置启动脚本
image.pngimage.png
(7)启动数据库
image.png
二、迁移方案
1.DM数据迁移工具(DTS)
image.png
DTS工具支持达梦数据库之间的迁移、其他数据库迁移至达梦、达梦迁移到其他数据库、文件迁移到达梦以及达梦迁移到文件,根据不同的场景灵活运用不同的方式实现数据迁移工作。
在使用梦数据库之间的迁移、其他数据库迁移至达梦、达梦迁移到其他数据库时,要保证DTS工具能够同时访问到两台数据库,连接源端与目的端后,选择要迁移的数据库名称、模式名称、表名、触发器、存储过程及函数。
2.DMHS数据同步工具
DMHS数据同步工具也可以实现数据迁移的功能,在目的端数据库创建好数据库、用户以及添加权限后,可以一次性将所需数据copy到目的端数据库,与DTS工具不同的地方在于DMHS数据同步工具部署完成后可以实现后续新增数据的实时同步,可用于数据迁移完成后,源库还需使用的情况下使用,而DTS工具则只能将现有数据迁移到目的库,如果源库后续有数据更新的情况下,只能再使用DTS工具再次进行迁移,建议在源端库迁移完成后不再使用的情况下使用。

三、迁移步骤
背景介绍:在测试环境部署两台测试数据库服务器,一台部署了DM6一台部署了DM7, 且两台服务器均能进行公网访问,后续DM6将不再使用,所以选择DM数据迁移工具 (DTS)进行数据迁移
1.目的端迁移准备
(1)创建表空间
image.png
填写表空间名称,添加数据文件,填写数据文件路径及名称,可根据需求增加多个数据文件
image.png
(2)创建用户
image.png
填写用户名、密码以及选择表空间
image.png
选择角色
image.png
2.表结构及数据迁移
(1)打开DM数据迁移工具(DTS),点击黄色按钮新建工程,填写工程信息后点击确定
image.png
(2)点开工程,如下创建新的迁移
image.png
(3)填写相关迁移信息后点击确定
image.png
(4)点击“下一步”
image.png
(5)选择迁移类型,根据不同场景及需求选择不同的迁移类型,这里选择“DM6=>DM7”
image.png
(6)将DM6源端示例库BOOKSHOP迁移至DM7,填写源端数据库连接信息,并填写要迁移的数据库名称
image.pngimage.png
(7)填写目的端数据库连接信息
image.png
(8)选择数据库下要迁移的模式
image.png
(9)点击选择可全选表,也可单独选择某个表,点击转换可根据需求进行修改迁移策略
image.png
也可对列映射进行修改,点击下方的“应用当前选项到其他同类对象”,可对选中的所有表进行相同的修改
image.png
(10)查看预览信息发现存在一个存储过程一个函数,一起迁移可能出现很多报错,,点击上一步,先将存储过程和函数勾选掉,点击下一步
image.pngimage.png
(11)预览迁移任务信息,勾选下方“以文本显示执行任务”以文本方式显示执行任务,勾选“同步生成迁移日志”生成迁移过程中的日志文件,点击“完成”进行迁移
image.png
(12)迁移过程中可能会出现报错,如下图报错信息显示为创建索引时冲突导致报错,点击“查看详细信息”=>“详情”
image.png
(13)将SQL语句复制出来在DM7数据库中执行未发现报错,错误解决
image.png
3.存储过程及函数迁移
(1)关闭迁移并保存
image.png
(2)双击打开之前创建的迁移点击“下一步”
image.png
(3)重复之前的步骤选择含有存储过程及函数的模式,点击“下一步”
image.png
(4)选择存储过程及函数,点击“下一步”
image.png
(5)查看预览信息,无问题后点击“完成”
image.png
(6)迁移过程发现函数报错,点击“查看详细信息”,“详情”将SQL复制到客户端
image.png
(7)将报错SQL复制到客户端执行发现与DTS报错一致
image.png
因DM6划分了数据库而DM7只有一个数据库和不同的模式,所以进行了如下修改,删除了“AT BOOKSHOP”
image.png
删除后SQL正常执行
image.png
4.数据对比
数据对比主要是对比迁移前后的表结构、表记录数、存储过程及函数是否一致,正常需要手动进行比对,因DM8工具中的DTS包含对比功能,这里介绍一下使用方法。
(1)与DM7 DTS迁移工具一致,创建工程后,新建对比
image.png
(2)连接源端库与目的库
image.pngimage.png
(3)选择模式
image.png
(4)添加源端库表与目的端库表,点击“添加目的”=>“选择”=>勾选去掉“同步添加相同对象的源对象”=>“确定”
image.pngimage.png
点击“添加源”=>“选择”=>勾选去掉“同步添加相同对象的目的对象”=>“确定”
image.png
这样源与目的表就相互匹配上了且是所有的表都展示出来了
image.png
(5)点击“按源行数排序”和“按目的行数排序”,统计源表行数与目的表行数,进行表数据行数对比
image.pngimage.png
(6)点击下一步后,预览对比信息,点击“完成”后进行对比
image.png
(7)显示对比信息
image.png
(8)点击“查看对比报告”查看详细的对比信息,选中一条记录,点击“详细”,查看具体差异,因DM6与DM7存在表结构差异且存储过程及函数在语法方面也存在一些差异,经对比并未发现问题
image.png
5.更新统计细信息
更新统计信息便于在执行SQL语句时执行计划根据代价选择SQL执行的方式,提高SQL执行效率。
(1)客户端方式
打开客户端,连接数据库,数据库名称右键选择更新统计信息,点击完成后,弹出的更新统计信息窗口消失后即更新完成。
image.png
(2)命令方式生成统计信息
①.针对特定对象生成:
SP_TAB_INDEX_STAT_INIT:对指定表的索引生成统计信息。
SP_TAB_INDEX_STAT_INIT ( schname varchar(128),tablename varchar(128) )
参数说明:schname:模式名,tablename:表名
例:CALL SP_TAB_INDEX_STAT_INIT ('SYS', 'SYSOBJECTS');
SP_INDEX_STAT_INIT:对指定索引生成统计信息。
SP_INDEX_STAT_INIT ( schname varchar(128),indexname varchar(128) )
参数说明:schname:模式名,indexname:索引名
例:CALL SP_INDEX_STAT_INIT ('SYSDBA', 'IND');
SP_COL_STAT_INIT:对指定列生成统计信息。
SP_COL_STAT_INIT ( schname varchar(128), tablename varchar(128), colname varchar(128) )
参数说明: schname:模式名,tablename:表名,colname:列名
例:CALL SP_COL_STAT_INIT ('SYS', 'SYSOBJECTS', 'ID');
SP_TAB_COL_STAT_INIT:对指定表的所有列生成统计信息。
SP_TAB_COL_STAT_INIT ( schname varchar(128), tablename varchar(128) )
参数说明: schname:模式名,tablename:表名
例:CALL SP_TAB_COL_STAT_INIT ('SYS', 'SYSOBJECTS');
SP_TAB_STAT_INIT:对指定表或索引生成统计信息。
SP_TAB_STAT_INIT ( schname varchar(128), tablename varchar(128) )
参数说明: schname:模式名,tablename:表名或索引名
例:CALL SP_TAB_STAT_INIT ('SYS', 'SYSOBJECTS');

②.针对整个数据库生成:
SP_DB_STAT_INIT:对数据库中所有用户表及其索引生成统计信息。
SP_DB_STAT_INIT ( )
例:CALL SP_DB_STAT_INIT ();
SP_SQL_STAT_INIT:对 SQL 查询语句中涉及的所有表和过滤条件中的列(不包括大字段、
ROWID)生成统计信息。
SP_SQL_STAT_INIT ( sql varchar(8187) )
可能返回的错误提示:
1) 语法分析出错,sql 语句语法错误
2) 对象不支持统计信息,统计的表或者列不存在,或者不允许被统计
参数说明:sql:sql 语句
例:CALL SP_SQL_STAT_INIT ('SELECT * FROM SYSOBJECTS');

③.按采样率生成:
SP_STAT_ON_TABLE_COLS:对指定表的所有列按指定采样率生成统计信息。
SP_STAT_ON_TABLE_COLS(
SCHEMA_NAME VARCHAR(128),TABLE_NAME VARCHAR(128),E_PERCENT INT )
参数说明:schname:模式名 ,tablename:表名 ,E_PERCENT:采样率(0-100]
例:CALL SP_STAT_ON_TABLE_COLS ('SYS','SYSOBJECTS',90);

(3)删除统计信息的方式:
针对特定对象删除:
SP_INDEX_STAT_DEINIT:删除指定索引的统计信息。
SP_INDEX_STAT_DEINIT ( schname varchar(128), indexname varchar(128) )
参数说明: schname:模式名,indexname:索引名
例:CALL SP_INDEX_STAT_DEINIT ('SYSDBA', 'IND');

SP_COL_STAT_DEINIT:删除指定列的统计信息。
SP_COL_STAT_DEINIT (
schname varchar(128), tabname varchar(128), colname varchar(128) )
参数说明: schname:模式名 ,tabname:表名 ,colname:列名
例:CALL SP_COL_STAT_DEINIT ('SYS', 'SYSOBJECTS', 'ID');

SP_TAB_COL_STAT_DEINIT:删除指定表的所有列的统计信息。
SP_TAB_COL_STAT_DEINIT ( schname varchar(128),tablename varchar(128) )
参数说明: schname:模式名,tablename:表名
例:CALL SP_TAB_COL_STAT_DEINIT ('SYS', 'SYSOBJECTS');

SP_TAB_STAT_DEINIT:删除指定表的统计信息。
SP_TAB_STAT_DEINIT ( schname varchar(128), tablename varchar(128))
参数说明: schname:模式名,tablename:表名
例:CALL SP_TAB_STAT_DEINIT ('SYS', 'SYSOBJECTS');

(4)升级和迁移统计信息
SP_UPDATE_SYSSTATS:用于升级和迁移统计信息。
SP_UPDATE_SYSSTATS( flag int )
参数说明:flag:标记,取值 0、1、2、3、4、99。 0:回退版本;1:创建统计信 息升级辅助表; 2:升级 SYS.SYSSTATS 表结构; 3:导入 SYS.SYSSTATS 表数据;4:删除升级辅助表;参数 99:理想状态下使用,集合了参数 1、2、3、4 的功能。
例:如果想要将老库升级,需要手动升级,升级步骤如下:
SP_UPDATE_SYSSTATS(99);
或者
SP_UPDATE_SYSSTATS(1);
SP_UPDATE_SYSSTATS(2);
SP_UPDATE_SYSSTATS(3);
SP_UPDATE_SYSSTATS(4);
如果想使用老库,且使用了之前的加列版本服务器且升级失败,那么需要先回退版
本,再升级:
SP_UPDATE_SYSSTATS(0);
SP_UPDATE_SYSSTATS(99);
统计信息对于数据库优化器选择合适的查询计划至关重要。缺乏或过时的统计信息可能导致查询性能下降。因此,定期更新统计信息对于保持数据库性能至关重要。
这里使用“SP_DB_STAT_INIT ( )”更新全库统计信息
image.png

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服