大家好,这里是公众号 DBA学习之路,分享一些学习国产数据库路上的知识和经验。
目录
- 前言
- 介绍
- 安装前准备
- 关闭防火墙
- 用户数参数配置
- 创建用户
- 依赖包安装
- 配置 JAVA8 环境
- YMP 安装
- OCI 环境准备(可选)
- YMP 安装包解压
- 安装参数调整
- 默认内置库安装 YMP(推荐方案)
- 查看运行状态
- 查看版本
- 浏览器打开 YMP
- 启动与停止 YMP
- 默认内置库启动 YMP
- 默认内置库停止 YMP
- 重置密码
- YMP 卸载
前言
本次 YCP 考试还涉及到了 YMP 迁移工具,本文演示如何快速安装部署一套 YMP 环境。
介绍
崖山迁移平台(YashanDB Migration Platform,YMP)是 YashanDB 提供的数据库迁移产品,提供异构 RDBMS 与 YashanDB 之间进行迁移评估、离线迁移、数据校验的能力。YMP 提供可视化服务,用户只需通过简单的界面操作,即可完成从评估到迁移整个流程的执行与监控,实现低门槛、低成本、高效率的异构数据库迁移。
崖山迁移平台(YashanDB Migration Platform,YMP)的总体架构如下:
支持的源端数据库类型和版本:
数据库类型 | 支持版本(已验证) | 理论兼容版本(未全部验证) | 说明 |
Oracle | 11.2.0.1.0(单机) | 11g所有版本(包括单机、RAC) | |
12.2.0.1.0(单机) | 12c所有版本(包括单机、RAC) | ||
19.0.0.0.0(单机、RAC) | 19c所有版本(包括单机、RAC) | ||
21.0.0.0.0(单机) | 21c所有版本(包括单机、RAC) | ||
MySQL | 5.6.51-log(单机) | 5.6所有版本(单机) | |
5.7.42-log(单机) | 5.7所有版本(单机) | ||
8.0.23(单机) | 8.0所有版本(单机) | ||
DM | DM8.1.3.26(单机) | DM8所有版本(单机) | DM数据库目前只支持原生模式(0)和MySQL模式(4)。 |
YashanDB | 23.2.1.100(单机) | v23.2所有版本(包括单机、RAC) |
支持的目标端数据库类型和版本:
数据库类型 | 支持版本(已验证) | 理论兼容版本(未全部验证) | 说明 |
YashanDB | 22.2.14.100(单机) | 22.2所有版本(单机、共享集群) | |
23.1.1.200(单机、RAC) | 23.1所有版本(单机、共享集群) | ||
23.2.1.100(单机、RAC)、23.2.3.100(单机、RAC) | 23.2所有版本(单机、共享集群) |
支持的源端数据库数据类型:
数据库 | 支持数据类型 |
Oracle | CHAR、NCHAR、VARCHAR2、NVARCHAR2、NUMBER、FLOAT、INT、INTEGER、SMALLINT、DEC、NUMBERIC、DECIMAL、DOUBLE PRECISION、DATE、TIMESTAMP、TIMESTAMP WITH TIME ZONE、TIMESTAMP WITH LOCAL TIME ZONE、INTERVAL YEAR TO MONTH、INTERVAL DAY TO SECOND、LONG、RAW、LONG RAW、CLOB、NCLOB、BLOB、JSON |
MySQL | TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT、DECIMAL、FLOAT、DOUBLE、TINYINT UNSIGNED、SMALLINT UNSIGNED、MEDIUMINT UNSIGNED、INT UNSIGNED、BIGINT UNSIGNED、CHAR、VARCHAR、DATE、DATETIME、TIMESTAMP、TIME、YEAR、BINARY、VARBINARY、TINYBLOB、TINYTEXT、BLOB、TEXT、MEDIUMBLOB、MEDIUMTEXT、LONGBLOB、LONGTEXT、JSON、BIT、ENUM、SET |
DM | TINYINT、SMALLINT、INT、INTEGER、BIGINT、DEC、DECIMAL、REAL、FLOAT、DOUBLE、DOUBLE PRECISION、NUMBER、NUMERIC、CHAR、CHARACTER、VARCHAR、VARCHAR2、NVARCHAR、NVARCHAR2、NCHAR、DATE、TIME、DATETIME、TIMESTAMP、TIME WITH TIME ZONE、TIMESTAMP WITH LOCAL TIME ZONE、TIMESTAMP WITH TIME ZONE、DATETIME WITH TIME ZONE、INTERVAL DAY TO SECOND、INTERVAL YEAR TO MONTH、BINARY、BLOB、CLOB、IMAGE、LONG、VARBINARY、LONGVARBINARY、LONGVARCHAR、RAW、TEXT |
官方文档提示:理论兼容版本未进行全部的功能验证,可能需要适配兼容。
安装前准备
官方建议内存至少为 8G,因为安装 YMP 时建议内置安装 YashanDB 用于迁移评估,所以内存不足可能会导致安装失败。
注意:若需要使用数据迁移功能,须保持 YMP 环境与目标端环境的 OPENSSL 版本一致,且都需满足 openssl 版本至少 1.1.1 及以上。
关闭防火墙
YashanDB 安装建议关闭防火墙:
systemctl stop firewalld
systemctl disable firewalld
用户数参数配置
需确保操作系统 max user processes 最大用户线程数不小于 65535:
cat<<-EOF>>/etc/security/limits.d/20-nproc.conf
ymp soft nproc 65536
ymp hard nproc 65536
EOF
创建用户
创建一个用户用于安装YMP,以YMP为例,在用户创建和授权后,后续所有安装步骤均在该用户下操作:
useradd -d /home/ymp -m ymp
echo "ymp:ymp" | chpasswd
依赖包安装
安装 YMP 需要 lsof 命令工具以及 libaio 动态库:
yum install -y lsof libaio
如果没有配置软件源,可以参考:DBA 必备:Linux 软件源配置全攻略。
配置 JAVA8 环境
YMP 的 JDK 版本要求参考如下:
依赖项 | 版本要求 | 说明 |
JDK | JDK8、JDK11 | 1. YMP 仅支持在 JDK8 或 JDK11 的下安装使用。 2.处理器架构为 ARM-64,YMP 所需的 JDK 版本必须为 JDK11,能够有效解决可能出现的数据库连接慢问题。 |
支持通过 Java 官方路径
# 以 JDK 安装路径为 /usr/tools/jdk8 为例
cat<<-EOF>>/etc/profile
export JAVA_HOME=/usr/tools/jdk8
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
EOF
# 重新载入配置文件
source /etc/profile
# 安装成功后查看 JDK 版本信息
java -version
YMP 安装
OCI 环境准备(可选)
如需要使用 Oracle 到 YashanDB 的数据迁移功能,请进行 OCI 环境安装,OCI 版本要求参考如下:
依赖项 | 版本要求 | 说明 |
OCI 客户端 | 19.19.0.0.0及以上版本 | 准备 OCI 环境需从 Oracle 官网下载 OCI 客户端并依据官网所列步骤进行安装。 根据处理器架构不同,建议下载和安装的版本信息如下: 1. instantclient-basic-linux.x64-19.19.0.0.0dbru.el9.zip 2. instantclient-basic-linux.arm64-19.10.0.0.0dbru-2.zip |
OCI 下载地址(链接直达官方下载):instantclient-basic-linux.x64-19.19.0.0.0dbru.el9.zip
上传 OCI 安装包至 YMP 用户 /home/ymp/ 路径,手动解压即可:
[root@ymp ~]# chown ymp:ymp /home/ymp/instantclient-basic-linux.x64-19.19.0.0.0dbru.el9.zip
[root@ymp ~]# su - ymp
[ymp@ymp ~]$ unzip -q instantclient-basic-linux.x64-19.19.0.0.0dbru.el9.zip
后续安装 YMP 需要指定解压文件路径。
YMP 安装包解压
上传 YMP 安装包至 /home/ymp 目录下然后解压:
# 修改安装包所属用户及用户组为 ymp 用户
[root@ymp ~]# chown ymp:ymp /home/ymp/yashan-migrate-platform-v23.2.1.3-linux-x86-64.zip
[root@ymp ~]# chown ymp:ymp /home/ymp/yashandb-personal-23.2.3.100-linux-x86_64.tar.gz
[root@ymp ~]# su - ymp
[ymp@ymp ~]$ unzip -q yashan-migrate-platform-v23.2.1.3-linux-x86-64.zip
安装参数调整
依据实际需要对默认内置库安装及 YMP 启动参数进行调整(参数配置文件存放在 /home/ymp/yashan-migrate-platform/conf 目录):
- 默认内置库安装配置文件:db.properties
- YMP 配置文件:application.properties
📢注意:如果系统内存不足 8G,可以在安装 YMP 前将 ymp_memory
参数修改为 2G,默认值为 4G。
默认内置库安装 YMP(推荐方案)
YMP 安装时按默认方式自行安装 YashanDB 作为内置库。默认内置库相关信息:
- 1、部署形态:单机
- 2、集群名称:ymp
- 3、安装目录:/home/ymp/yashan-migrate-platform/db
进入安装目录查看帮助文档:
[ymp@ymp ~]$ cd /home/ymp/yashan-migrate-platform/bin
[ymp@ymp bin]$ ./ymp.sh -h
Usages: ./ymp.sh [<flags>] <command>
Yashan-migrate-platform version: Release v23.2.1.3
Flags:
-h,--help Show detailed help information
-v,--version Show Yashan-migrate-platform version information
Commonly used commands:
install Initialize YMP with the built-in database and start
--db <package path> new yashandb and yasldr package path
[ --path <oci path> ] absolute path of the OCI installation
restart Restart YMP with the built-in database
status View status of YMP and built-in database
uninstall Uninstall the built-in database
[ -f ] force clean the environment
upgrade Upgrade old version of YMP to new version
--from <ymp path> path of old version of YMP
[ --db <package path> ] new yashandb and yasldr package path
[ --path <oci path> ] absolute path of the OCI installation
password Change the password of YMP
--sys <password> change sys password of built-in database in db.properties
| --user <password> change user password of database in application.properties
connection Change url、username、password of YMP
--url <url path> change url in application.properties
--username <username> change username in application.properties
--password <password> change password in application.properties
Other commands:
start Start YMP with the built-in database
stop Stop YMP with the built-in database
startnodb Start YMP with external database
stopnodb Stop YMP with external database
restartnodb Restart YMP with external database
replace Replace yasldr version, need to restart ymp
--yasldr <package path> new yasldr package path
installnodb Initialize YMP with external database and start
--db <package path> new yasldr package path
[ --path <oci path> ] absolute path of the OCI installation
官方建议使用内置库方式安装 YMP,如果不使用内置库方式安装,则需要创建一个 ymp 用户(以 YMP_DEFAULT 为例)并为其授权:
-- 本文不需要做
SQL> create user YMP_DEFAULT IDENTIFIED BY ymppw602 DEFAULT TABLESPACE users;
SQL> GRANT ALL PRIVILEGES TO YMP_DEFAULT;
SQL> GRANT DBA TO YMP_DEFAULT;
依据实际需要对默认内置库安装及 YMP 启动参数进行调整:
# 进入安装目录执行更改密码命令,以 yasdb_123 为例:
[ymp@ymp ~]$ cd /home/ymp/yashan-migrate-platform/bin/
[ymp@ymp bin]$ ./ymp.sh password --sys yasdb_123
2024-09-19 22:40:47 INFO --- [main] com.sics.command.YmpCommandMain : 指令入参:["--operation","password","--sys","yasdb_123"]
2024-09-19 22:40:47 INFO --- [main] com.sics.command.serviceimpl.PasswordServiceImpl : Update sys password and salt successfully!
2024-09-19 22:40:47 INFO --- [main] com.sics.command.operation.FunctionOperation : YMP update password for SYS user successfully!
以上配置仅在安装部署前执行前生效。
执行内置库安装 YMP:
# (Oracle 做数据源的推荐方案):安装内置库和 OCI 客户端并启动 YMP
[ymp@ymp ~]$ cd /home/ymp/yashan-migrate-platform/bin/
[ymp@ymp bin]$ ./ymp.sh install --db /home/ymp/yashandb-personal-23.2.3.100-linux-x86_64.tar.gz --path /home/ymp/instantclient_19_19
2024-09-19 22:44:43 INFO --- [main] com.sics.command.YmpCommandMain : 指令入参:["--operation","install","--db","/home/ymp/yashandb-personal-23.2.3.100-linux-x86_64.tar.gz","--path","/home/ymp/instantclient_19_19","--ip","192.168.6.167","--memory","4G"]
2024-09-19 22:44:46 INFO --- [main] com.sics.command.serviceimpl.CheckServiceImpl : Check for env before install is successfully!
2024-09-19 22:44:51 INFO --- [main] com.sics.command.serviceimpl.PackageServiceImpl : Db package unpackage successfully!
2024-09-19 22:44:51 INFO --- [main] com.sics.command.serviceimpl.CheckServiceImpl : OCI version is 19.19.0.0.0!
2024-09-19 22:44:56 INFO --- [main] com.sics.command.serviceimpl.PackageServiceImpl : Yasldr package unpackage successfully!
2024-09-19 22:44:56 INFO --- [main] com.sics.command.util.CommandUtil : host host0001 openssl version: OpenSSL 1.1.1l 24 Aug 2021
2024-09-19 22:44:56 INFO --- [main] com.sics.command.util.CommandUtil : OpenSSL version is 1.1.1 or greater
2024-09-19 22:44:56 INFO --- [main] com.sics.command.util.CommandUtil : host host0001 openssl version: OpenSSL 1.1.1l 24 Aug 2021
2024-09-19 22:44:56 INFO --- [main] com.sics.command.util.CommandUtil : OpenSSL version is 1.1.1 or greater
2024-09-19 22:44:56 INFO --- [main] com.sics.command.util.CommandUtil : hostid | group | node_type | node_name | listen_addr | replication_addr | data_path
2024-09-19 22:44:56 INFO --- [main] com.sics.command.util.CommandUtil : ----------------------------------------------------------------------------------------------------------------------------
2024-09-19 22:44:56 INFO --- [main] com.sics.command.util.CommandUtil : host0001 | dbg1 | db | 1-1 | 0.0.0.0:8091 | 127.0.0.1:8092 | /home/ymp/yashan-migrate-platform/db/data/ymp
2024-09-19 22:44:56 INFO --- [main] com.sics.command.util.CommandUtil : ----------+-------+-----------+-----------+--------------+------------------+-----------------------------------------------
2024-09-19 22:44:56 INFO --- [main] com.sics.command.util.CommandUtil :
2024-09-19 22:44:56 INFO --- [main] com.sics.command.util.CommandUtil : Generate config success
2024-09-19 22:45:05 INFO --- [main] com.sics.command.util.CommandUtil : host host0001 openssl version: OpenSSL 1.1.1l 24 Aug 2021
2024-09-19 22:45:05 INFO --- [main] com.sics.command.util.CommandUtil : OpenSSL version is 1.1.1 or greater
2024-09-19 22:45:05 INFO --- [main] com.sics.command.util.CommandUtil : checking install profile.toml...
2024-09-19 22:45:05 INFO --- [main] com.sics.command.util.CommandUtil : install version: yashandb 23.2.3.100
2024-09-19 22:45:05 INFO --- [main] com.sics.command.util.CommandUtil : update host to yasom...
type | uuid | name | hostid | index | status | return_code | progress | cost
2024-09-19 22:45:41 INFO --- [main] com.sics.command.util.CommandUtil : ---------------------------------------------------------------------------------------------------------
2024-09-19 22:45:41 INFO --- [main] com.sics.command.util.CommandUtil : task | 23c4a3c120ffbc68 | DeployYasdbCluster | - | ymp | SUCCESS | 0 | 100 | 33
2024-09-19 22:45:41 INFO --- [main] com.sics.command.util.CommandUtil : ------+------------------+--------------------+--------+-------+---------+-------------+----------+------
2024-09-19 22:45:41 INFO --- [main] com.sics.command.util.CommandUtil : task completed, status: SUCCESS
type | uuid | name | hostid | index | status | return_code | progress | cost
2024-09-19 22:45:45 INFO --- [main] com.sics.command.util.CommandUtil : -------------------------------------------------------------------------------------------------------
2024-09-19 22:45:45 INFO --- [main] com.sics.command.util.CommandUtil : task | 3aae570c40510c80 | StopYasdbCluster | - | ymp | SUCCESS | 0 | 100 | 3
2024-09-19 22:45:45 INFO --- [main] com.sics.command.util.CommandUtil : ------+------------------+------------------+--------+-------+---------+-------------+----------+------
2024-09-19 22:45:45 INFO --- [main] com.sics.command.util.CommandUtil : task completed, status: SUCCESS
2024-09-19 22:45:45 INFO --- [main] com.sics.command.util.CommandUtil : YashanDB Loader Personal Edition Release 23.2.3.100 x86_64 f3452be
type | uuid | name | hostid | index | status | return_code | progress | cost
2024-09-19 22:45:51 INFO --- [main] com.sics.command.util.CommandUtil : --------------------------------------------------------------------------------------------------------
2024-09-19 22:45:51 INFO --- [main] com.sics.command.util.CommandUtil : task | 47a4a6ef3b670c73 | StartYasdbCluster | - | ymp | SUCCESS | 0 | 100 | 4
2024-09-19 22:45:51 INFO --- [main] com.sics.command.util.CommandUtil : ------+------------------+-------------------+--------+-------+---------+-------------+----------+------
2024-09-19 22:45:51 INFO --- [main] com.sics.command.util.CommandUtil : task completed, status: SUCCESS
[Mem:, 7981, 2902, 969, 13, 4109, 4985]
2024-09-19 22:45:51 INFO --- [main] com.sics.command.util.CommandUtil : Sep 19, 2024 10:45:51 PM com.sics.migrate.port.common.jna.CallDts dtscInitLog
2024-09-19 22:45:51 INFO --- [main] com.sics.command.util.CommandUtil : INFO: ### call dtscInitLog!
2024-09-19 22:45:51 INFO --- [main] com.sics.command.util.CommandUtil : Sep 19, 2024 10:45:51 PM com.sics.migrate.port.common.jna.CallDts dtscInitLog
2024-09-19 22:45:51 INFO --- [main] com.sics.command.util.CommandUtil : INFO: ### finished dtscInitLog!
2024-09-19 22:45:51 INFO --- [main] com.sics.command.serviceimpl.CheckServiceImpl : Yasdts environment check successfully!
2024-09-19 22:45:52 INFO --- [main] com.sics.command.serviceimpl.PasswordServiceImpl : Update sys password and salt successfully!
YMP started successfully!
查看运行状态
查看运行状态,检查是否安装成功:
[ymp@ymp ~]$ cd /home/ymp/yashan-migrate-platform/bin/
[ymp@ymp bin]$ ./ymp.sh status
2024-09-19 22:46:52 INFO --- [main] com.sics.command.YmpCommandMain : 指令入参:["--operation","status"]
2024-09-19 22:46:52 INFO --- [main] com.sics.command.serviceimpl.StatusServiceImpl : YMP is running, pid is 3349.
2024-09-19 22:46:52 INFO --- [main] com.sics.command.serviceimpl.StatusServiceImpl : Built-in database is used, pid is 3349.
查看版本
[ymp@ymp bin]$ ./ymp.sh -v
2024-09-19 23:05:08 INFO --- [main] com.sics.command.YmpCommandMain : 指令入参:["--operation","version"]
2024-09-19 23:05:08 INFO --- [main] com.sics.command.util.CommandUtil : YashanDB Loader Personal Edition Release 23.2.3.100 x86_64 f3452be
2024-09-19 23:05:08 INFO --- [main] com.sics.command.operation.QueryOperation :
Yashan-migrate-platform version: Release v23.2.1.3
YashanDB SQL Enterprise Edition Release 23.2.3.100 x86_64
YashanDB Loader Personal Edition Release 23.2.3.100 x86_64 f3452be
浏览器打开 YMP
YMP 支持浏览器 Google Chrome、Microsoft Edge 和 Firefox,建议使用当前较新的版本:
浏览器支持 | 要求版本 |
Google Chrome | 88 及以上版本 |
Microsoft Edge | 88 及以上版本 |
Firefox | 78 及以上版本 |
访问方式:http://IP:PORT/,PORT 默认 8090,初始账户名和密码是(admin/admin):
启动与停止 YMP
默认内置库启动 YMP
[ymp@ymp ~]$ cd /home/ymp/yashan-migrate-platform/bin/
[ymp@ymp bin]$ ./ymp.sh start
默认内置库停止 YMP
[ymp@ymp ~]$ cd /home/ymp/yashan-migrate-platform/bin/
[ymp@ymp bin]$ ./ymp.sh stop
在任务运行过程中停止或重启 YMP 会造成当前阶段任务运行失败,需重新开始当前阶段任务。
重置密码
# 对登录用户密码进行重置时,需保证YMP业务库处于正常运行状态
[ymp@ymp ~]$ cd /home/ymp/yashan-migrate-platform/bin/
[ymp@ymp bin]$ ./ymp.sh password --reset
# 重启YMP
[ymp@ymp bin]$ ./ymp.sh restart
YMP 卸载
卸载YMP时,会删除默认内置库(自定义内置库不受影响)并清空db和yashan_client文件夹,若想替换数据库版本,请在卸载后重新部署:
$ cd /home/ymp/yashan-migrate-platform/
$ sh bin/ymp.sh uninstall
## 使用 uninstall 功能时可携带 -f 参数,强制清理环境
$ sh bin/ymp.sh uninstall -f
## 验证
$ ps -ef | grep yas | grep -v grep
强制清理功能会使用 kill -9 强制清理当前用户下 YMP 启动的所有进程,并删除内置库及 yasldr 文件夹下所有内容,请谨慎使用,建议在专用的 YMP 用户下使用。最后还需要手动删除 ~/.bashrc 中与 YashanDB 有关的环境变量。