obce_6
切换 web-terminal
cd /root/t-oceanbase-antman
vim 1ecs-1ob-cluster.yaml
user:
username: root
password: password #这里请修改为 ecs 的登陆密码
port: 22
……
oceanbase:
servers:
- 172.23.xxx.xx #修改为 ecs 分配的 ip 地址
……
obproxy:
depends:
- oceanbase
servers:
- 172.23.xxx.xx #修改为 ecs 分配的 ip 地址
yum -y install libaio-devel.x86_64 #安装依赖包
obd cluster deploy obce_test -c 1ecs-1ob-cluster.yaml
obd cluster start obce_test
实验步骤
1. 商品表 sbtest6 为静态表,提供数据为 csv 格式数据文件,学员使用工具 obloader 将该数据文
件导入到目标 OceanBase 数据库中;
2. 其余表(sbtest1-sbtest5)的数据需要通过全量 + 增量的方式导入 OB mysql 租户中,增量记录
保存时间为 1 天;
3. 源数据库的存储过程需要导入 OceanBase mysql 租户中,保持跟源库同步;
4. 结构和数据迁移完毕后,进行数据和对象验证
ssh 172.16.1.146s
cd /root/t-oceanbase-antman
# 安装 antman v1.4.3, install docker
rpm -ivh t-oceanbase-antman-1.4.3-20220807062003.alios7.x86_64.rpm
cd /root/t-oceanbase-antman/clonescripts
./clone.sh -i
#创建/data_dir 目录
mkdir -p /data_dir
#装载 OAT 镜像
cd /root/t-oceanbase-antman
docker load -i oat_3.2.0_BP1_20220825_x86.tgz
#获取 OAT 镜像标签
oat_image=`docker images | grep oat | awk '{printf $1":"$2"\n"}'`
#验证
echo $oat_image
reg.docker.alibaba-inc.com/oceanbase/oat:3.2.0_BP1_20220825_x86
#启动oat
docker run -d -v /data_dir:/data -p 7000:7000 --restart on-failure:5 $oat_image
#确认 oat docker 服务已启动
docker ps
4.1.2 配置 OMS 组件 metadb 所需环境
#步骤 1 使用 Linux fdisk 工具对/dev/vdb 建立两个如下分区
/dev/vdb1 2048 230688767 115343360 83 Linux (110G)
/dev/vdb2 230688768 272629759 20970496 83 Linux (20G)
fdisk /dev/vdb
n
p
+110G
w
fdisk /dev/vdb
n
p
+20G
w
#步骤 2 创建文件系统
mkfs.ext4 /dev/vdb1
mkfs.ext4 /dev/vdb2
#步骤 3 创建/data/1 和/data/log1 路径
mkdir -p /data/1
mkdir -p /data/log1
#步骤 4 装载分区
mount /dev/vdb1 /data/1
mount /dev/vdb2 /data/log1
df -h
#步骤 6 创建 admin 用户
/root/t-oceanbase-antman/clonescripts/clone.sh -u
#查看用户
id admin
mkdir -p /home/admin/oceanbase
chown admin.admin /home/admin/oceanbase
#步骤 7 将部署 OMS 产品的 3 个镜像移动到/data_dir/images 目录下
cd /root/t-oceanbase-antman
mv current_branchs_feature_3.3.1-bp2_oms.feature_3.3.1-bp2.202208220356.tar.gz influxdb_1.8.tar.gz metaob_OB2277_OBP320_x86_20220429.tgz /data_dir/images/
4.1.3 /0 OMS 56 metadb 9 influxdb
步骤 1 登陆 oat web 页面, http://101.132.249.139:7000, 修改密码
初始用户名: admin
初始密码:aaAA11__
修改密码为: obcetest_4U
点击「激活」,使用新的密码重新登陆 oat 页面
步骤 2 添加服务器, 点击「服务器 」-> 「服务器管理 」-> 「添加服务器」,确认服务器用途
全部勾选
步骤 3 按照实际 OMS 服务器的信息填写
添加凭据
oms_cre
root
passwd
步骤 4 等待初始化任务结束, 或者查看任务进度, 在进度输出如果看到“python 没有找到”的错
误, 可以忽略,点击 precheck 步骤-> 设置成功
步骤 5 确认服务器部署成功,点击服务器管理,确认操作状态为「正常运行」
步骤 6 点击 产品服务 ->「组件管理」-> 「 创建组件」 -> 「创建 MetaDB」
步骤 7 在 metaDB 镜像中,点击「添加镜像文件」-> 「扫描本地镜像」 -> 选择 metaDB 的镜像
(metaob_OB2277_OBP320_x86_20220429.tgz),其他参数如下图, system_memory
可以减小为 15G(默认 30G),点击「提交」
8c 30G
metadb_oms
system_memory 15G
步骤 8 点击「查看任务」,此步骤创建一个 OceanBase 数据库集群作为 metaDB 使用, 在任务
进度页面,执行 start_metadb 步骤时会每隔 30 秒报告“连接不上 mysql”的错误, 这是
正常报错, 因为系统正在执行磁盘的 IO bench 操作,需要 20 分钟左右,请耐心等待(注
意:如果遇到报错终止,请选择该步骤右侧三个小点按钮,选择重试即可)
步骤 9 metadb 部署成功后,点击「组件管理」, 确认操作状态为正常运行
步骤 10 点击「组件管理」-> 「 创建组件」 -> 「创建 influxDB」
步骤 11 使用默认配置创建 influxDB,点击「提交」,查看任务
步骤 12 点击「组件管理」,确认 influxDB 操作状态为正常运行
4.1.4 部署 OMS 服务
步骤 1 在 OAT web 界面, 点击「产品管理」 -> 「安装产品」 -> 「安装 OMS」
步骤 2 输入下图信息 ,点击「提交」 , 查看任务,确认此步骤没有错误(注意:此处 metaDB
的租户名为新建,与之前安装 metaDB 时不同,同理 influxDB 也是一样)
oms
8c 16g
meta01
1c 2G
负载均衡不使用
步骤 3 确认 OMS 部署成功,点击「产品管理」, 确认 OMS 组件的操作状态是正常运行
步骤 4 点击此页面的立即访问,第一次登录 OMS,登陆地址<ip 地址:8089>,用户名:admin,
初始密码:aaAA11__
设置密码: obcetest_4U
ssh 172.16.1.147
mysql -uroot -pobce_TEST1
ssh 172.16.1.146
obclient -uroot@sys -h127.0.0.1 -P2881
#新建资源规格
create resource unit u1_mysql max_cpu=1,min_cpu=1,max_memory='2G',min_memory='2G',max_iops=128,max_disk_size='10G',max_session_num=100;
#新建资源池
create resource pool pool_mysql unit='u1_mysql',unit_num=1 ;
#新建 mysql 租户
CREATE TENANT IF NOT EXISTS ob_rpt charset='utf8mb4', replica_num=1, resource_pool_list=('pool_mysql') SET ob_tcp_invited_nodes='%', ob_compatibility_mode='mysql';
步骤 6 登陆 ob 集群,新建一个 mysql 租户,root 用户登陆密码设置为 obce_TEST1,新建一个sbtest 数据库
obclient -uroot@ob_rpt -h127.0.0.1 -P2881
create database sbtest ;
alter user root identified by 'obcetest_4U';
步骤 7 设置 OceanBase 目标数据库端满足迁移要求
set global max_allowed_packet=67108864; --64M,如果此参数低于 64M,后面预检过程会报错
步骤 1 登录 OMS,点击「数据源管理」 -> 「添加数据源」,按下图信息创建 MySQL 数据库
源,注意主机 IP 以 MySQL 数据库部署的实际 IP 为准, 点击「测试」,确认无错误信息,
点击「添加」
mysql5.7
DB Nam: sbtest
步骤 2 添加 OceanBase 目标数据库源, 按下图输入 OceanBase 目标数据库的信息,点击「测
试」,确认无错误, 点击「添加」
ob_mysql
步骤 3 点击「数据迁移」 -> 「新建迁移项目」,填写源端和目标端
mysql_to_ob
步骤 4 在选择迁移对象页面, 选择除 sbtest1-sbtest5 一共 5 张表,sbtest6 不选
步骤 5 接受预检前所有默认设置,在预检页面,如果存在不满足条件的报告,需要进行修改, 如
果确认警告信息可以跳过,可以忽略
步骤 6 确认结构迁移步骤正确
步骤 7 结构迁移正确以后,OMS 迁移项目自动进入下一个全量数据迁移步骤,全量数据同步过程
大约需要 2 分钟;在此过程中,可以点击右上角功能「查看组件监控」,确认各个组件没有
错误,检查源表的所有记录全部迁移,索引也成功迁移
步骤 8 全量数据迁移完成后, OMS 迁移项目自动进入下一个增量同步步骤, 计数器自动基数,
等待源端数据库发生的 DML 和 DDL 变更自动同步到目标 Ocenabase 数据库
步骤 9 点击全量检查,查看源数据库表的记录个数和目标表记录个数是否一致,确认全量迁移项目
成功完成
4.2 <= OMS >?@ABC
4.2.1 DEF@AG9#H@AG$@AGF
4.2.2 测试增量同步功能
步骤 1 在源数据库 mysql 中增加一条记录
mysql -uroot -pobce_TEST1
select count(*) from sbtest.sbtest1; --观察到原表中有 10 万条记录
insert into sbtest.sbtest1 values (100001,49846,19311860671-38324788600-
35446232687-53872256828-73652723622-45267173145-9933939-4949494,03117916432-
62675534274-90474510002-37731562046-9971185959595);
select count(*) from sbtest.sbtest1; --观察到原表中有 10 万零 1 条记录
步骤 2 10 秒后,查看目标数据库,看到新的记录已经自动添加到目标 OceanBase 数据库的
sbtest schema 中
obclient -uroot@ob_rpt -h127.0.0.1 -P2881 -p
Select * from sbtest.sbtest1 where id>100000;
#导入 DDL 在 OcenaBase 数据库 Mysql 租户创建 sbtest6 表
ssh OMS
cd /root/t-oceanbase-antman
unzip schema.zip
rpm -ivh jdk-8u333-linux-x64.rpm #安装 java 环境
export JAVA_HOME=/usr/java/jdk1.8.0_333-amd64/jre #设置 java 变量
cd /root/t-oceanbase-antman/ob-loader-dumper-3.1.0-SNAPSHOT/bin
./obloader -tob_mysql --ddl -t ob_rpt --database sbtest --table sbtest6 -f /root -h172.16.1.146 -P2883 -uroot -pobcetest_4U --sys-user=root --external-data
#步骤 2 导入 data
cd /root/t-oceanbase-antman
unzip data.zip #选择覆盖现有目录
cd /root/t-oceanbase-antman/ob-loader-dumper-3.1.0-SNAPSHOT/bin
./obloader -tob_mysql --csv -t ob_rpt --database sbtest --table sbtest6 -f /root/t-oceanbase-antman/data -h172.16.1.146 -P2883 -uroot -pobcetest_4U --sys-user=root --external-data
4.3 PQ obloader -.RST sbtest6 $@A
提供 sbtest6 表的 obdumper 导出文件(csv 格式),分别为 DDL 和 data 两部分; 这两部分
文件在/root/t-oceanbase-antman目录下, 文件名为schema.zip (创建表的ddl命令) 和data.zip
(表数据)
参考以下 obloader 命令进行导入, 这里的/tmp/obdumper 目录为 zip 文件解压后所在目录,
根据实际环境进行替换
ssh OMS
mysql -uroot -pobce_TEST1
DELIMITER $$
CREATE PROCEDURE `sbtest`.`GetSampleData` ()
BEGIN
SELECT count(*) FROM sbtest.sbtest3;
END
$$;
cd /root/t-oceanbase-antman
tar -zxvf dbcat-1.7.1-SNAPSHOT
cd /root/t-oceanbase-antman/dbcat-1.7.1-SNAPSHOT/bin
./dbcat convert --host 172.16.1.147 -P 3306 -u root -p obce_TEST1 -D sbtest --from mysql57 --to obmysql32x --procedure '*'
cd /root/t-oceanbase-antman/dbcat-1.7.1-SNAPSHOT/output/dbcat-2022-09-09-164005/sbtest
more PROCEDURE-schema.sql
[root@iZuf6dqy0azvw83u101c9lZ sbtest]# cat PROCEDURE-schema.sql
DELIMITER $$
CREATE PROCEDURE `sbtest`.`GetSampleData` ()
BEGIN
SELECT count(*) FROM sbtest.sbtest3;
END
$$