热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

oms迁移测试(二)

oms数据迁移测

本次测试通过oms测试,迁移mysql数据到ob数据库。

本次测试使用sysbench初始化数据库,并模拟在线业务,分别测试了结构迁移,全量迁移,增量迁移,全量校验。

本次测试,已经正确配置源数据,目标数据,OCP相关信息。


OMS部署:https://www.modb.pro/db/332629

OMS迁移配置,添加源和目标数据库,OCP:https://www.modb.pro/db/334459



1,源数据库信息


192.168.6.61-主库 测试连接成功

数据库版本: MYSQL 5.7.22

字符集:utf8mb4


1.1 创建测试数据库

用sysbench初始化测试数据库。


#新建测试数据库:

mysql> create database loadtest default character set utf8mb4;
Query OK, 1 row affected (0.00 sec)


#初始化数据

[root@i-AAB0CE27 ~]# sysbench --test=/usr/local/share/sysbench/tests/include/oltp_legacy/oltp.lua --db-driver=mysql --mysql-db=loadtest --mysql-user=root --mysql-password='root' --mysql-port=3306 --mysql-host=192.168.6.61 --oltp-tables-count=10 --oltp-table-size=10000 --num-threads=20 prepare
WARNING: the --test option is deprecated. You can pass a script name or path on the command line without any options.
WARNING: --num-threads is deprecated, use --threads instead
sysbench 1.0.20 (using bundled LuaJIT 2.1.0-beta2)
Creating table 'sbtest1'...
Inserting 10000 records into 'sbtest1'
Creating secondary indexes on 'sbtest1'...
Creating table 'sbtest2'...
Inserting 10000 records into 'sbtest2'
Creating secondary indexes on 'sbtest2'...
Creating table 'sbtest3'...
Inserting 10000 records into 'sbtest3'
Creating secondary indexes on 'sbtest3'...
Creating table 'sbtest4'...
Inserting 10000 records into 'sbtest4'
Creating secondary indexes on 'sbtest4'...
Creating table 'sbtest5'...
Inserting 10000 records into 'sbtest5'
Creating secondary indexes on 'sbtest5'...
Creating table 'sbtest6'...
Inserting 10000 records into 'sbtest6'
Creating secondary indexes on 'sbtest6'...
Creating table 'sbtest7'...
Inserting 10000 records into 'sbtest7'
Creating secondary indexes on 'sbtest7'...
Creating table 'sbtest8'...
Inserting 10000 records into 'sbtest8'
Creating secondary indexes on 'sbtest8'...
Creating table 'sbtest9'...
Inserting 10000 records into 'sbtest9'
Creating secondary indexes on 'sbtest9'...
Creating table 'sbtest10'...
Inserting 10000 records into 'sbtest10'
Creating secondary indexes on 'sbtest10'...



2,结构迁移测试


2.1 选择结构迁移

迁移类型选择结构迁移。




2.2 任务状态检查


2.3 目标库,检查确认

登录目标数据库确认,目标数据库,已经正确建立了源数据库的所有表。


[root@i-405104EB ~]# mysql -h192.168.6.69 -P2881 -uroot@sys -p34QWas$%
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 3221633905
Server version: 5.7.25 OceanBase 3.1.0 (r-) (Built May 30 2021 11:21:29)
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MySQL [(none)]> use loadtest;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
MySQL [loadtest]> show tables;
+--------------------+
| Tables_in_loadtest |
+--------------------+
| sbtest1 |
| sbtest10 |
| sbtest2 |
| sbtest3 |
| sbtest4 |
| sbtest5 |
| sbtest6 |
| sbtest7 |
| sbtest8 |
| sbtest9 |
+--------------------+
10 rows in set (0.00 sec)
MySQL [loadtest]>


3,全量迁移测试

在源数据库静止状态,或者不考虑增量数据的情况可以考虑采用本迁移方法。


3.1 全量迁移和全量校验



3.2 任务状态检查


3.3 数据全量校验

3.3.1 确认数据校验阶段


3.3.2 检查数据校验信息

确认每个表的数据一致性。



3.3.3 启动正向切换

启动正向切换##此步骤不会停止链路,仅确认即将开始执行切换流程

启动正向切换前请确保源端数据源为即将停写或者已经停写状态





需要手动标记完成,确认处理Trigger/Sequence等对象迁移目标端。



3.3.4 迁移完成,释放任务资源


#确认迁移完成


#释放资源



4,增量数迁移测试

4.1 运行sysbench不断读写数据库

sysbench --test=/usr/local/share/sysbench/tests/include/oltp_legacy/insert.lua --db-driver=mysql --mysql-db=loadtest --mysql-user=root --mysql-password='' --mysql-port=3306 --mysql-host= --oltp-tables-count=10 --oltp-table-size=1000 --max-time=3600 --max-requests=0 --num-threads=10 --report-interval=3 --rate=20 --forced-shutdown=1 run


4.2 启动数据库同步





4.3 检查任务状态



4.4 增量迁移状态检查

可以监控数据库增量延迟时间:。



迁移任务详细信息。




4.5 停止sysbench数据的读写操作


4.6 检查增量同步状态

确认数据库延迟为0,进行数据校验。



#开始数据校验


#数据校验结果



4.8 启动正向切换

#本过程主要涉及停业同步,数据追平相关操作。


Step 1 启动正向切换此步骤不会停止链路,仅确认即将开始执行切换流程

Step 2 切换预检查检查当前项目状态是否具备切换条件

Step 3 确认源端停写确认源端无增量数据产生

Step 4 确认同步追平停写位点OMS自动检查源端与目标端处于一致位点

Step 5 停止正向同步停止源端到目标端的JDBCWriter

Step 6 执行数据库对象处理完成数据库对象迁移,删除数据迁移附加对象并补充执行未迁移数据库对象





4.9 迁移完成,结束任务

#迁移任务结束


#释放任务资源


#确认资源释放


























































推荐阅读
  • Python操作MySQL(pymysql模块)详解及示例代码
    本文介绍了使用Python操作MySQL数据库的方法,详细讲解了pymysql模块的安装和连接MySQL数据库的步骤,并提供了示例代码。内容涵盖了创建表、插入数据、查询数据等操作,帮助读者快速掌握Python操作MySQL的技巧。 ... [详细]
  • Python SQLAlchemy库的使用方法详解
    本文详细介绍了Python中使用SQLAlchemy库的方法。首先对SQLAlchemy进行了简介,包括其定义、适用的数据库类型等。然后讨论了SQLAlchemy提供的两种主要使用模式,即SQL表达式语言和ORM。针对不同的需求,给出了选择哪种模式的建议。最后,介绍了连接数据库的方法,包括创建SQLAlchemy引擎和执行SQL语句的接口。 ... [详细]
  • WhenIusepythontoapplythepymysqlmoduletoaddafieldtoatableinthemysqldatabase,itdo ... [详细]
  • 本文主要复习了数据库的一些知识点,包括环境变量设置、表之间的引用关系等。同时介绍了一些常用的数据库命令及其使用方法,如创建数据库、查看已存在的数据库、切换数据库、创建表等操作。通过本文的学习,可以加深对数据库的理解和应用能力。 ... [详细]
  • MySQL语句大全:创建、授权、查询、修改等【MySQL】的使用方法详解
    本文详细介绍了MySQL语句的使用方法,包括创建用户、授权、查询、修改等操作。通过连接MySQL数据库,可以使用命令创建用户,并指定该用户在哪个主机上可以登录。同时,还可以设置用户的登录密码。通过本文,您可以全面了解MySQL语句的使用方法。 ... [详细]
  • 本文介绍了在使用Laravel和sqlsrv连接到SQL Server 2016时,如何在插入查询中使用输出子句,并返回所需的值。同时讨论了使用CreatedOn字段返回最近创建的行的解决方法以及使用Eloquent模型创建后,值正确插入数据库但没有返回uniqueidentifier字段的问题。最后给出了一个示例代码。 ... [详细]
  • 上图是InnoDB存储引擎的结构。1、缓冲池InnoDB存储引擎是基于磁盘存储的,并将其中的记录按照页的方式进行管理。因此可以看作是基于磁盘的数据库系统。在数据库系统中,由于CPU速度 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • 如何在php中将mysql查询结果赋值给变量
    本文介绍了在php中将mysql查询结果赋值给变量的方法,包括从mysql表中查询count(学号)并赋值给一个变量,以及如何将sql中查询单条结果赋值给php页面的一个变量。同时还讨论了php调用mysql查询结果到变量的方法,并提供了示例代码。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • 本文详细介绍了如何使用MySQL来显示SQL语句的执行时间,并通过MySQL Query Profiler获取CPU和内存使用量以及系统锁和表锁的时间。同时介绍了效能分析的三种方法:瓶颈分析、工作负载分析和基于比率的分析。 ... [详细]
  • 本文讨论了在使用sp_msforeachdb执行动态SQL命令时,当发生错误时如何捕获数据库名称。提供了两种解决方案,并介绍了如何正确使用'?'来显示数据库名称。 ... [详细]
  • PDO MySQL
    PDOMySQL如果文章有成千上万篇,该怎样保存?数据保存有多种方式,比如单机文件、单机数据库(SQLite)、网络数据库(MySQL、MariaDB)等等。根据项目来选择,做We ... [详细]
  • 在Oracle11g以前版本中的的DataGuard物理备用数据库,可以以只读的方式打开数据库,但此时MediaRecovery利用日志进行数据同步的过 ... [详细]
author-avatar
deng_xiaomi
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有