点击上方“IT那活儿”公众号--专注于企业全栈运维技术分享,不管IT什么活儿,干就完了!!!
TMS架构总览
1.1 硬件需求
x86服务器1台,用于部署tms后端和前端代码,也可以选择和TiDB部署到一台服务器。
配置
4C/8G/200G
操作系统
redhat/centos 7.9/8+(如果需要运行在ARM/麒麟平台,请跟TS团队提前沟通)。
1.2 软件需求
Mysql 8.0 数据库或tidb6.0+。
TMS后端部署
2.1 安装Mysql数据库
如果现场tidb允许tms接入使用,可直接在tidb创建schema。
环境必须安装Mysql客户端。
登陆数据库,创建tms后台schema:
Shell
CREATE DATABASE tms_meta;
CREATE USER tms IDENTIFIED BY 'tms';
GRANT ALL PRIVILEGES on *.* to tms;
2.2 安装Oracle客户端
如果客户环境已安装Oracle客户端或服务端,可以跳过此步骤。
安装步骤来自ODPI-C Installation — ODPI-C v4.6.1,概述如下:
https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html
Plaintext
mkdir -p /tidb-data1/oracle
cd /tidb-data1/oracle
unzip instantclient-basic-linux.x64-21.11.0.0.0dbru.zip
Plaintext
yum install libaio
Package libaio-0.3.109-13.el7.x86_64 already installed and latest version
Plaintext
vi /etc/profile
export LD_LIBRARY_PATH=/tidb-data1/oracle/instantclient_21_11
部署TMS服务
SQL
mkdir tidb-data1/tms/bin
Tms软件存放9.20.160.18:/tidb-data1/oracle/soft/timsv0.5.zip
上传如下3个软件包到部署目录:
SQL
tms-server
config.toml
dist.zip
Plaintext
vi config.toml
配置文件示例:
Python
#server ip
#server-host = "127.0.0.1"
#server listen port
server-port = 8082
#data storage directory, include database file, log file; default value is './data'
data-dir = "./data"
static-file-path = "./dist"
license = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2ODQzNzYzODMsInN1YiI6eyJNYWNoaW5lSUQiOiI5NzY5NjEzYjQxNTRiZWMwMzUxZDU1Y2NkZjYwMjAwOWM2MGNiOGUyNGMyNTFiMTVmMjRiODZlODMyNTdhYzU2IiwiRmxhZyI6ImxpY2Vuc2UifX0.X0-3Xp0FIRYOt4PRa0q83I5r4RWunjplJ-r1AD9WgGs"
[db]
host = "9.20.160.18" #TMS后台库的连接地址
port = 8000 #TMS后台库的连接端口
user = "tms" #TMS后台库的连接用户
password = "tms" #TMS后台库的连接密码
schema = "tms_meta" #TMS后台库的schema
# database log level, its value is info, warn, silent, error; dafault value is warn.
db-log-level = "info"
# database log file name, default value is 'sql'
#db-log-file = "sql"
# sqlite database file directory, default value is the same as 'data-dir'
#db-file-dir = "./data"
[log]
# log level
#log-level ="info"
log-level ="debug"
#log file name, default value is 'tms'
#log-file-name = "tms"
#root directory to store log file, default value is the same as 'data-dir'
#log-file-root = "./data"
#max size(M) of log
log-max-size = 512
log-max-age = 30
log-max-backups = 0
SQL
unzip dist.zip
SQL
nohup ./tms-server 2>&1 &
Plaintext
MySQL [tms_meta]> source /tidb-data1/tms/bin/tims_init.sql
下面的附件仅供参考,tms_init.sql在软件包中:
SQL
http://ip:8082
用户名/密码: admin/admin
显示如下页面,即为部署成功:

软件license申请步骤
TMS部署需要联系TS团队申请License,获取步骤如下:
SQL
./tms-server --genKey

如果不方便把key拷贝出来,也可以在tms-server启动起来以后,通过tms页面获取key的二维码。


获取到TS团队(发正式邮件给@孙林@Stone wang@金文涛)生成的license后(初始默认30天有效期),配置到config.toml文件中的license条目。
SQL
vi config.toml
替换配置文件的如下模块:
SQL
license = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2ODQzNzYzOD
MsInN1YiI6eyJNYWNoaW5lSUQiOiI5NzY5NjEzYjQxNTRiZWMwMzUxZDU1Y2
NkZjYwMjAwOWM2MGNiOGUyNGMyNTFiMTVmMjRiODZlODMyNTdhYzU2IiwiRm
xhZyI6ImxpY2Vuc2UifX0.X0-3Xp0FIRYOt4PRa0q83I5r4RWunjplJ-r1AD9WgGs"
TMS使用手册
5.1 规则配置
数据迁移有关的规则是系统级默认参数,如果需要调整,在规则管理页面修改:



5.2 模版配置
每个迁移任务均有自己对应的参数模版:

模版参数是系统级配置,建议不要修改,可以在具体任务页面进行参数修改。
5.3 配置数据源
在数据源页面点击新增按钮,按提示添加数据库连接,其中页面底部字符集为必填项,点击保存时会校验是否与数据库实际字符集一致。在保存完成后,页面回到数据源列表界,可以点击“连接测试”测试连通性。



1)Oracle数据库用户需要待迁移数据的访问权限和系统包的执行权限
权限命令:
补充:
createuser testtms identifiedby XXXXXX defaulttablespace tbs_data;
grantconnect,resourceto testtms ;
grantselectany dictionary to testtms ;
grantselectanytableto testtms ;
grant select_catalog_role to testtms;
2)TiDB数据库用户需要待迁移数据的增删改查、创建、删除权限
权限命令:
举例,创建testtms用户,权限*.*的schema部分可以指定具体的schema名称或者*号
CREATE USER 'testtms'@'%' IDENTIFIED BY 'XXXXX';
GRANT ALL PRIVILEGES ON schema.* TO 'testtms'@'%';
FLUSH PRIVILEGES;
5.4 创建数据迁移管理
在数据迁移管理页面点击“新建”按钮创建数据通道:

1)创建标准模式通道
选择通道类型、数据源、目标端。通道模式选择“标准模式”,勾选“迁移类型”。

选择迁移schema,在右侧“已选对象”列表中,点击“编辑”,可以对已选schema重命名。

执行预检察:

2)创建CSV模式通道

csv模式无需选择迁移列表,第2步直接点“下一步”:

执行预检察:

从通道列表进入CSV模式的通道,此时任务列表为空。点击“批量新建”按钮创建任务:

任务模板从CSV文件导入,CSV文件样例随TMS版本发布。下面文档仅供参考。
sample_task_cfg.csv


4.5 修改任务参数
在任务配置页面,可以调整任务的执行参数。不同任务类型,对应的配置项也不相同。
对象兼容性评估任务配置:

结构迁移任务配置:

全量数据迁移任务配置:

数据校验任务配置:

SQL兼容性任务配置:

4.6 执行数据迁移任务
进入新建的迁移通道中,依次执行各个迁移任务:

执行结果和进度可以在相应的链接查询:

在TMS页面提供错误处理能力,从详情-详情-详情/修正页面可以查看相应的报错信息,错误解除后,在页面执行重试。



日志查看:
TMS后台日志在部署目录下的./data/logs/目录,使用过程中遇到异常,可以查看后台日志。
Plaintext
[root@vm172-XX-XXX-231 tms]# ls -ltr data/logs/
total 222696
-rw-r--r-- 1 root root 126919898 Apr 1417:41 o2t_sync_diff.log.bak
-rw-r--r-- 1 root root 12994 Apr 2014:32 assessment.log
-rw-r--r-- 1 root root 1381 Apr 2015:17 migrate_full.log
-rw-r--r-- 1 root root 2783318 Apr 2016:27 tidbstats.log
-rw-r--r-- 1 root root 502260 Apr 2016:41 o2t_sync_diff.log
-rw-r--r-- 1 root root 9311467 Apr 2016:52 tms.log
-rw-r--r-- 1 root root 74771824 Apr 2016:52 sql.log
-rw-r--r-- 1 root root 13700674 Apr 2016:52 access.log

本文作者:李亚明(上海新炬中北团队)
本文来源:“IT那活儿”公众号





