简单说说RDS的主从功能是如何实现
什么是RDS高可用
目前睿江云已经推出的RDS数据库,也已经将以上提到的高可用,进行了融合。用户无需进行上面的配置,直接选购即可使用。
相信不少的读者朋友,数据库的使用经验,相信使用的最多得应该是MYsql这个数据库软件了。如果一台系统能够不间断的提供服务,那么这台系统的可用性据说100%。那如果系统每运行100个时间单位,就会出现1个时间单位无法提供服务,那么该台系统的可用性是99%。数据库除了定期备份还需要实现冷热备份。甚至可以在全球范围内部署灾备数据中心。
常见的RDS高可用思路
主主模型,双方互为主备。可以负载均衡读请求,但是无法负载写请求,因为每份数据都会在两台主机中写入。
主备模型。写入服务器作为主服务器,读数据服务器作为从服务器,从服务器可以有多台,因此都可以做到读负载均,引入了memcache的机制也是可以的。
主主模型和主备模型,都是可以实现读负载均衡,但是无法实现写负载均衡。
最简单的主备模型是如何实现的
下面是关于一个数据库主从复制的大体模型
1、主节点上的操作: //启动二进制日志,为master设定全局唯一的ID号 [mysqld] Log_bin=mysql-bin Server_id=1 //创建具有复制权限的用户账户 GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'repluser'@'121.201.%.%' IDENTIFIED BY 'replpass'; FLUSH PRIVILEGES; //重启mysql之后,查看master的状态,记录二进制文件跟位置 mysql> show master status; +------------------+----------+--------------+------------------+-------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | +------------------+----------+--------------+------------------+-------------------+ | mysql-bin.000001 | 154 | | | | +------------------+----------+--------------+------------------+-------------------+ 提示:如果是ubuntun系统的话,默认是不允许数据库远程访问的,因此可以修改监听的地址bind_address = 0.0.0.0 2、从节点上的操作 //启动中继日志,为slave节点设定全局唯一的ID号 [mysqld] Relay_log=relay-log Server_id=2 //重启mysql //登录指定复制权限权限指向master服务器,并启动复制进程 CHANGE MASTER TO MASTER_HOST='121.201.55.49', MASTER_USER='repluser',MASTER_PASSWORD='replpass',MASTER_LOG_FILE='master-bin.000001',MASTER_LOG_POS=154; //或者使用较为直观的方式查看 mysql> CHANGE MASTER TO MASTER_HOST='121.201.55.49', -> MASTER_USER='repluser', -> MASTER_PASSWORD='replpass', -> MASTER_LOG_FILE='mysql-bin.000001', -> MASTER_LOG_POS=0; //启动复制线程 Start slave;//默认启动2个线程 START SLAVE IO_THREAD; START SLAVE SQL_THREAD; //查看线程是否启动正常 mysql> SHOW SLAVE STATUS\G
如果看到以上的两个进程都是running的,那么则表示做基本的主从已经实现了。各家的云厂商的高可用策略设计都有所不同,但如果是简单级别的高可用方案,也会采用主从同步的方式。
本篇简单的分享了一个简单的主从同步配置案例,感兴趣的朋友们可以按照以上的步骤进行尝试,笔者在centos7系列的环境中搭建过多次,都是成功的。另外目前睿江云已经推出的RDS数据库,也已经将以上提到的高可用,进行了融合。用户无需进行上面的配置,直接选购即可使用。
以上都是笔者在实际过程中用到的一些解决方案,只有适合业务本身的方案才是好方案。许多时候并不一定追寻最新的前沿技术,只有在充分了解自身业务的本质需求的前提下,才能挑选出最适合的解决方案,其次在稳定性的基础下适当向功能性方面拓展。另外本系列也会后续跟读者朋友分享其他的常见的容器应用的搭建,敬请关注。