10.11.4 mysql_MyCAT+MySQL 搭建高可用企业级数据库集群——第4章 MyCat进阶实战至垂直分库...

4-1 为什么要进行垂直分库和相关操作

4-2 收集分析业务模块

4-3 MySQL复制的步骤

4-4 MySQL复制环境说明

4-5 MySQL复制实战

4-6 MySQL复制总结

4-7 垂直切分

4-8 垂直切分相关配置

4-9 垂直切分schema文件配置

4-10 垂直切分server文件配置

4-11 后续工作

4-12 Mycat启动调试

4-13 Mycat验证配置

4-14 清理多余数据

4-15 跨分片查询

4-16 配置和验证全局表

4-17 垂直切分的优缺点

4-1 为什么要进行垂直分库和相关操作

1、垂直分库的操作说明;

20180605180900235889.png

纵向扩展方案(可拓展性能有限,会出现瓶颈);

20180605180900662620.png

水平拓展(垂直分库,水平分库,分单写请求负载);

20180605180900875497.png

20180605180901089350.png

数据库的垂直切分步骤;

1、搜集分析业务模块间的关系;

2、复制数据库到其他势力

3、配置Mycat垂直分库;

4、通过Mycat访问DB;

5、删除元库中已迁移的表;

20180605180901223131.png

4-2 收集分析业务模块

1、分析业务模块间的关系;

20180605180901363747.png

4-3 MySQL复制的步骤

1、如何配置MySQL的主从复制;

1、备份原数据库并记录相关事务点;

2、在原数据库中建立复制的用户;

3、在新实例上恢复备份的数据库;

4、在新实例上皮遏制复制链路;

5、新新实例上启动复制;

20180605180901457491.png

4-4 MySQL复制环境说明

1、演示环境说明;

20180605180901577600.png

4-5 MySQL复制实战

1、MySQL复制实战演示;

1)创建数据库实例并导入数据;mysql -uroot -p -e"create database imooc_db"

2)导入数据mysql -uroot -p imooc_db < imooc_db.sql

3)查看导入的表的信息;use imooc_db;show tables;

4)mysqldump --master-data=2 --single-transaction --routines --triggers --events

20180605180901683062.png

20180605180901860785.png

20180605180902034602.png

20180605180902216231.png

20180605180902381260.png

20180605180902487698.png

20180605180902622455.png

20180605180902844121.png

20180605180902955442.png

20180605180903114611.png

20180605180903243509.png

20180605180903355807.png

20180605180903602861.png

4-6 MySQL复制总结

1、总结步骤;

1)使用master-data=2 记录事物日志点;

2)使用change master to 配置复制链路;

3)使用change replication filter配置数据库名转换;

20180605180903839174.png

4-7 垂直切分

1、数据库架构升级至垂直切分;

20180605180903968072.png

4-8 垂直切分相关配置

1、mycat配置;

20180605180904312777.png

20180605180904426051.png

20180605180904562761.png

20180605180904725836.png

4-9 垂直切分schema文件配置

1、配置详解说明;

20180605180904901606.png

20180605180905050034.png

4-10 垂直切分server文件配置

1、垂直切分配置详解;

20180605180905218969.png

20180605180905419151.png

20180605180905595898.png

[root@iZqmo9i3j77p7eZ lib]#java -cp Mycat-server-1.6.5-release.jar io.mycat.util.DecryptUtil 0:app_imooc:123456

bDbWr7bVMgszTe82oMo8NaUsmFFdPCNl/lYXzOYoG8anTpQLvdx5e+LYJEmT0IAeSVp1loyxSZPyv1GoHbHFHg==

4-11 后续工作

1、在一个夜黑更高的夜晚,可以开始操作了;

20180605180905931814.png

20180605180906005051.png

mycat全局表应对以上报错;

4-12 Mycat启动调试

1、mycat start判断启动是否正常;

2、通过查看wrapper.log,判断启动故障或正常;

20180605180906136879.png

20180605180906336085.png

tf8, txIsolation=3, autocommit=true, attachment=null, respHandler=null, host=47.94.211.18, port=3306, statusSync=null, writeQueue=0, modifiedSQLExecuted=false] (io.mycat.backend.mysql.nio.handler.GetConnectionHandler:GetConnectionHandler.java:67)

INFO| jvm 1 | 2018/06/05 17:32:57 | 2018-06-05 17:32:56,987 [DEBUG][WrapperSimpleAppMain] release channel MySQLConnection [id=2, lastTime=1528191176987, user=root, schema=db_mycat, old shema=db_mycat, borrowed=true, fromSlaveDB=false, threadId=130, charset=utf8, txIsolation=3, autocommit=true, attachment=null, respHandler=null, host=47.94.211.18, port=3306, statusSync=null, writeQueue=0, modifiedSQLExecuted=false] (io.mycat.backend.datasource.PhysicalDatasource:PhysicalDatasource.java:442)

INFO| jvm 1 | 2018/06/05 17:32:57 | 2018-06-05 17:32:56,988 [INFO ][WrapperSimpleAppMain] connected successfuly MySQLConnection [id=1, lastTime=1528191176988, user=root, schema=db_mycat, old shema=db_mycat, borrowed=true, fromSlaveDB=false, threadId=129, charset=utf8, txIsolation=3, autocommit=true, attachment=null, respHandler=null, host=47.94.211.18, port=3306, statusSync=null, writeQueue=0, modifiedSQLExecuted=false] (io.mycat.backend.mysql.nio.handler.GetConnectionHandler:GetConnectionHandler.java:67)

INFO| jvm 1 | 2018/06/05 17:32:57 | 2018-06-05 17:32:56,988 [DEBUG][WrapperSimpleAppMain] release channel MySQLConnection [id=1, lastTime=1528191176988, user=root, schema=db_mycat, old shema=db_mycat, borrowed=true, fromSlaveDB=false, threadId=129, charset=utf8, txIsolation=3, autocommit=true, attachment=null, respHandler=null, host=47.94.211.18, port=3306, statusSync=null, writeQueue=0, modifiedSQLExecuted=false] (io.mycat.backend.datasource.PhysicalDatasource:PhysicalDatasource.java:442)

INFO| jvm 1 | 2018/06/05 17:32:57 | 2018-06-05 17:32:56,990 [DEBUG][$_NIOConnector] 连接后台真正完成 (io.mycat.net.AbstractConnection:AbstractConnection.java:594)

INFO| jvm 1 | 2018/06/05 17:32:57 | 2018-06-05 17:32:56,993 [INFO ][$_NIOREACTOR-3-RW] connected successfuly MySQLConnection [id=3, lastTime=1528191176993, user=root, schema=db_mycat, old shema=db_mycat, borrowed=true, fromSlaveDB=false, threadId=131, charset=utf8, txIsolation=3, autocommit=true, attachment=null, respHandler=null, host=47.94.211.18, port=3306, statusSync=null, writeQueue=0, modifiedSQLExecuted=false] (io.mycat.backend.mysql.nio.handler.GetConnectionHandler:GetConnectionHandler.java:67)

INFO| jvm 1 | 2018/06/05 17:32:57 | 2018-06-05 17:32:56,994 [DEBUG][$_NIOREACTOR-3-RW] release channel MySQLConnection [id=3, lastTime=1528191176993, user=root, schema=db_mycat, old shema=db_mycat, borrowed=true, fromSlaveDB=false, threadId=131, charset=utf8, txIsolation=3, autocommit=true, attachment=null, respHandler=null, host=47.94.211.18, port=3306, statusSync=null, writeQueue=0, modifiedSQLExecuted=false] (io.mycat.backend.datasource.PhysicalDatasource:PhysicalDatasource.java:442)

INFO| jvm 1 | 2018/06/05 17:32:57 | 2018-06-05 17:32:56,995 [DEBUG][$_NIOConnector] 连接后台真正完成 (io.mycat.net.AbstractConnection:AbstractConnection.java:594)

INFO| jvm 1 | 2018/06/05 17:32:57 | 2018-06-05 17:32:56,999 [INFO ][$_NIOREACTOR-4-RW] connected successfuly MySQLConnection [id=4, lastTime=1528191176999, user=root, schema=db_mycat, old shema=db_mycat, borrowed=true, fromSlaveDB=false, threadId=132, charset=utf8, txIsolation=3, autocommit=true, attachment=null, respHandler=null, host=47.94.211.18, port=3306, statusSync=null, writeQueue=0, modifiedSQLExecuted=false] (io.mycat.backend.mysql.nio.handler.GetConnectionHandler:GetConnectionHandler.java:67)

INFO| jvm 1 | 2018/06/05 17:32:57 | 2018-06-05 17:32:56,999 [DEBUG][$_NIOREACTOR-4-RW] release channel MySQLConnection [id=4, lastTime=1528191176999, user=root, schema=db_mycat, old shema=db_mycat, borrowed=true, fromSlaveDB=false, threadId=132, charset=utf8, txIsolation=3, autocommit=true, attachment=null, respHandler=null, host=47.94.211.18, port=3306, statusSync=null, writeQueue=0, modifiedSQLExecuted=false] (io.mycat.backend.datasource.PhysicalDatasource:PhysicalDatasource.java:442)

INFO| jvm 1 | 2018/06/05 17:32:57 | 2018-06-05 17:32:57,088 [INFO ][WrapperSimpleAppMain] init result :finished 10 success 10 target count:10 (io.mycat.backend.datasource.PhysicalDBPool:PhysicalDBPool.java:319)

INFO| jvm 1 | 2018/06/05 17:32:57 | 2018-06-05 17:32:57,088 [INFO ][WrapperSimpleAppMain] mysql_host1 index:1 init success (io.mycat.backend.datasource.PhysicalDBPool:PhysicalDBPool.java:265)

INFO| jvm 1 | 2018/06/05 17:32:57 | MyCAT Server startup successfully. see logs in logs/mycat.log

4-13 Mycat验证配置

1、Myca验证配置;

MySQL客户端来连接测试:mysql -uapp_imooc  -p -P8066 -h192.168.0.1

20180605180906479630.png

[C:\~]$

Connecting to47.94.220.79:22...

Connection established.

To escape to local shell, press‘Ctrl+Alt+]‘.

Last login: Tue Jun5 16:30:33 2018 from 117.119.97.51Welcome to Alibaba Cloud Elastic Compute Service !

cuixiaozhao

[root@localhost~]#mycat stop

Stopping Mycat-server...

Stopped Mycat-server.

[root@localhost~]#mycat start

Starting Mycat-server...

[root@localhost~]#mysql -uec_pre_user -p -P8066 -h47.94.220.79

Enter password:

Welcome to the MySQL monitor. Commands end with ;or\g.

Your MySQL connection idis 1Server version:5.6.29-mycat-1.6-RELEASE-20161028204710MyCat Server (OpenCloundDB)

Copyright (c)2000, 2016, Oracle and/orits affiliates. All rights reserved.

Oracleis a registered trademark of Oracle Corporation and/orits

affiliates. Other names may be trademarks of their respective

owners.

Type‘help;‘ or ‘\h‘ for help. Type ‘\c‘to clear the current input statement.

mysql>

335b83df261c422459d4afc29ba290e5.png

d1b641f023dd079c9e4a800b96607d9d.gif

mysql>show databases;+----------------+

| DATABASE |

+----------------+

| ec_pre_schemas |

+----------------+

1 row in set (0.01sec)

mysql>use ec_pre_schemas

Reading table informationfor completion of table andcolumn names

You can turn off this feature to get a quicker startup with-A

Database changed

mysql>show tables;+----------------------------------+

| Tables in ec_pre_schemas |

+----------------------------------+

| bd_account_bm |

| bd_approval_process |

| bd_archive_file |

| bd_auditing |

| bd_auditing_detail |

| bd_auditor |

| bd_authority |

| bd_balance_detail |

| bd_balance_detail_budget |

| bd_balance_rule |

| bd_balance_rule_budget |

| bd_balance_user |

| bd_balance_user_budget |

| bd_base_report |

| bd_butler_product |

| bd_case |

| bd_case_allot |

| bd_case_balance |

| bd_case_balance_budget |

| bd_case_doc_property_value |

| bd_case_file |

| bd_case_flow |

| bd_case_official |

| bd_case_official_code_config |

| bd_case_official_status_config |

| bd_case_operation |

| bd_case_process_info |

| bd_case_property_configuration |

| bd_channel |

| bd_contact |

| bd_contract |

| bd_contract_file |

| bd_contract_operation |

| bd_contract_product |

| bd_contract_product_payment |

| bd_contract_ratio |

| bd_cooperation_drools |

| bd_cooperation_drools_config |

| bd_corp_info |

| bd_corp_system_info |

| bd_customer |

| bd_customer_address |

| bd_customer_attachment_summary |

| bd_customer_bm |

| bd_customer_body |

| bd_customer_body_bm |

| bd_customer_body_file |

| bd_customer_body_file_bm |

| bd_customer_communication |

| bd_customer_communication_file |

| bd_customer_d |

| bd_customer_dn |

| bd_customer_file |

| bd_customer_h |

| bd_customer_operation |

| bd_customer_property_value |

| bd_customer_rating |

| bd_customer_statistics |

| bd_customer_valuation |

| bd_custom_workbench |

| bd_dealing_people |

| bd_department_info |

| bd_diarly_type |

| bd_districtvalues |

| bd_districtvalues_cpc |

| bd_document_list |

| bd_document_property |

| bd_document_property_value |

| bd_fee |

| bd_fee_business |

| bd_flow |

| bd_group_user |

| bd_idn |

| bd_industry |

| bd_invoice |

| bd_invoicetitle |

| bd_invoice_body |

| bd_invoice_title |

| bd_invoice_title_body |

| bd_issued_audit |

| bd_issued_file |

| bd_joint_applicant |

| bd_knowledge |

| bd_knowledge_category |

| bd_knowledge_file |

| bd_knowledge_link |

| bd_knowledge_manage |

| bd_knowledge_type |

| bd_label |

| bd_label_customer |

| bd_label_type |

| bd_log_info |

| bd_match |

| bd_message |

| bd_message_text |

| bd_message_text_file |

| bd_niceclassification |

| bd_niceclassification_copy |

| bd_offical_result_remind |

| bd_official_doc |

| bd_order_auditor |

| bd_order_balance |

| bd_order_balance_budget |

| bd_order_body |

| bd_order_body_bg |

| bd_order_info |

| bd_order_info_bg |

| bd_order_operation |

| bd_order_price_value |

| bd_order_property_value |

| bd_order_property_value_bg |

| bd_partner_drools |

| bd_password_bm |

| bd_pay |

| bd_payment |

| bd_payment_contract |

| bd_pay_contract |

| bd_potential |

| bd_price |

| bd_price_value |

| bd_process_bio |

| bd_process_remind_config |

| bd_product |

| bd_product_property |

| bd_product_property_value |

| bd_product_type |

| bd_progressive_sales |

| bd_progressive_sales_config |

| bd_project |

| bd_question_naire |

| bd_receiptaddress |

| bd_relevant_people |

| bd_remind |

| bd_reminder |

| bd_remind_label_config |

| bd_remind_modal |

| bd_replenishment |

| bd_replenishment_detail |

| bd_replenishment_operation |

| bd_returnvisit |

| bd_returnvisit_file |

| bd_returnvisit_order |

| bd_role |

| bd_role_authority |

| bd_share |

| bd_staff_contact |

| bd_staff_notice |

| bd_staff_operation |

| bd_staff_records |

| bd_system_info |

| bd_system_info_copy |

| bd_training_record |

| bd_user |

| bd_user_authdata |

| bd_user_info |

| bd_user_info_bg |

| bd_user_progressive_sale_to_june |

| bd_user_role |

| bd_visit |

| bd_work_diary |

| bd_work_diary_detail |

| bd_work_order |

| bd_work_order_file |

| bd_work_order_flow |

| bd_work_order_group |

| bd_work_order_operation |

| bd_work_order_resource |

| bd_work_order_result |

| ini_dic |

| ini_dic_detail |

| rel_case_order |

| rel_channel_api |

| rel_channel_product |

| rel_contract_order |

| rel_corp_progressive_sales |

| rel_corp_user |

| rel_document_property |

| rel_group_customer |

| rel_invoice_order |

| rel_knowledge_point |

| rel_official_process_config |

| rel_order_property_price |

| rel_order_property_price_copy |

| rel_order_relation |

| rel_price_product |

| rel_price_property |

| rel_product_property |

| rel_product_userstar_royalty |

| rel_projectorder |

| rel_relate_review |

| rel_staff_training_record |

| rel_user_duty |

| rel_workorder |

| rel_work_order_group |

| st_sale_census |

| sys_message |

| sys_property |

| sys_property_area |

| sys_property_value |

| vi_balance_case |

| vi_balance_case_thismonth |

| vi_balance_order |

| vi_balance_order_thismonth |

+----------------------------------+

203 rows in set (0.01sec)

mysql>

View Code

4-14 清理多余数据

1、清理多余节点的数据表;

先停止主从复制,stop slave;

reset slave all;

20180605180906618293.png

4-15 跨分片查询

1、通过mycat查询逻辑表的存在;

20180605180906755003.png

20180605180906859489.png

使用全局表方式来修复以上错误;

4-16 配置和验证全局表

1、每个节点都配置全局表;解决跨分片关联查询的问题;

2、后续工作;

切换应用通过Mycat连接数据库;

删除不属于本模块的表;

20180605180907061624.png

20180605180907131932.png

4-17 垂直切分的优缺点

1、垂直切分的优点;

数据库的拆分简单明了,拆分规则明确;

应用程序模块清晰明确,整合容易;

数据维护方便易行,容易定位;

20180605180907268642.png

2、垂直切分的缺点;

20180605180907334068.png

20180605180907428788.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值