前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >自建maridb从库

自建maridb从库

原创
作者头像
云售后焦俊成
修改2020-07-16 12:34:38
9020
修改2020-07-16 12:34:38
举报

虽然云上的数据库已经有了高可用的报障功能了,但是对于某些业务需要更加灵活的数据处理以及其他需求外,需要搭建一个线下的从库来实现,这里实际上腾讯云也给出了一份maridb自建从库的文档,大家也可以按照这里去配置

https://cloud.tencent.com/document/product/237/8636

或者参考这里来安装maridb

https://www.vultr.com/docs/how-to-install-mariadb-10-1-on-centos-7

参考腾讯云配置文档过程如下

1、本次配置涉及服务器配置如下

云linux服务器:centos7.5

云数据库:mariadb10.1.9(高度兼容mysql5.7)

2、配置yum源,这里腾讯云提供了两种yum源,10.0的和10.1版本的,同时注意下,这里yum源内的 baseurl,依据centos系统来做注释。

# MariaDB 10.1 CentOS repository list - created 2016-05-30 02:16 UTC

# http://downloads.mariadb.org/mariadb/repositories/

[mariadb]

name = MariaDB

baseurl = http://yum.mariadb.org/10.1/centos7-amd64

#baseurl = http://archive.mariadb.org/mariadb-10.1.9/yum/centos6-amd64/

gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB

gpgcheck=0

3、yum安装,国外站点,这个慢的要死,下载耗时大概需要半个小时,这里我们要是遇到版本冲突的话,还是需要提前卸载掉老版本的maridb,我是直接安装的,没有冲突,运气好

4、maridb 安装完毕以后继续搞,安装mydumper

编译安装:yum install make cmake pcre-devel glib2-devel zlib-devel gcc-c++

腾讯云提供的安装连接,需要编译安装,但是依赖太多,不一定保证正常安装,我的是在cmake的时候会报错参数不对,这里自己查了下,应该是和安装的扩展包有关系,惭愧的是尝试半天也没有解决,索性直接用rpm包来安装了

rpm包:yum -y install https://github.com/maxbube/mydumper/releases/download/v0.9.3/mydumper-0.9.3-41.el7.x86_64.rpm

地址:https://github.com/maxbube/mydumper/releases

5、安装完毕后继续

删除文件/etc/my.cnf.d/enable_encryption.preset

rm -f /etc/my.cnf.d/enable_encryption.preset

mkdir -p /data/dbdata/{data,tmpdir}

mkdir -p /data/dblogs/relay

修改配置文件/etc/my.cnf.d/server.cnf:

[mysqld]
character-set-server = utf8
collation-server = utf8_general_ci
innodb_page_size=16384
lower_case_table_names=1
server-id=101
innodb_buffer_pool_size=2097152000
skip-name-resolve
datadir = /data/dbdata/data/
relay-log = /data/dblogs/relay/relay.log
log-error = /data/dblogs/mysqld.err
tmpdir = /data/dbdata/tmpdir

注意事项: 在配置这些参数时,可以在原实例上使用show gloabl variabels like xxx来查看原实例的参数做参考。其中:

  • character-set-server、lower_case_table_names、innodb_page_size等参数要和原TDSQL实例一样(上面的配置就行)
  • innodb_buffer_pool_size的值可以参考tdsql的参数
  • server-id要和原TDSQL实例不同
  • 运行mysql_install_db 安装db

  • 修改文件所有者:chown -R mysql:mysql /data/dbdata/ /data/dblogs/
  • 启动mariadb:service mysql start
  • 修改root密码并测试登录: mysqladmin -u root password 'root'; mysql -uroot -proot -hlocalhost -P3306

测试正常

6、创建用于同步的数据库账号

如果准备从主机上同步,创建普通账号,如果从备机上同步,则创建只读账号(建议从备机上进行同步,避免影响主机)。

设置数据库账号的权限至少包含全局SELECT, REPLICATION SLAVE,REPLICATION CLIENT, RELOAD的权限(如果在控制台进行设置权限失败,或者没有所需的权限,请提交工单联系客服为您的同步账号添加所需的权限)。

我这里是用的主实例账号,开通的reload权限

7、使用mydumper导出TDSQL数据(导出数据可以自行指定路径)

myloader 导入数据到本地数据库

8、建立主从同步关系

查看export_tdsql目录中的medata的位点信息

登录自建数据库配置主从

第一次配置的时候密码写错了,直接导致io 线程报错,如下

遇到这种情况,可以单独拿出一个窗口来去mysql 登录测试,看看具体是哪里写的有问题

密码修改好了之后,从库顺利的跑起来了

至此简单同步某个库的搭建测试,顺利跑起来了

后面这种架构下遇到的问题再一一分享,这里就不再做赘述了

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MariaDB
腾讯云数据库 MariaDB(TencentDB for MariaDB) 让您轻松在云端部署、使用 MariaDB 数据库。MariaDB 是在 MySQL 版权被 Oracle 收购后,由 MySQL 创始人 Monty 创立,其版权授予了“MariaDB基金会(非营利性组织)”以保证 MariaDB 永远开源,良好的开源策略,是企业级应用的最优选择,主流开源社区系统/软件的数据库系统,均已默认配置 MariaDB。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档