Apache Pulsar消息队列-数据库复制(可选)

作者: Apache Pulsar

数据库复制(可选)

CloudStack支持MySQL节点间的数据库复制。这个通过标准的MySQL复制功能来实现。你这样做可能希望防止MySQL服务器或者存储损坏。MySQL复制使用master/slave的模型。master节点是直接为管理服务器所使用。slave节点为备用,接收来自master节点的所有写操作,并将它应用于本地冗余数据库。以下是实施数据库复制的步骤。

注解

创建复制并不等同于备份策略,你需要另外开发一个有别于复制的MySQL数据的备份机制。

  1. 确保这是一个全新安装且没有数据的master数据库节点。
  2. 编辑master数据库的my.cnf,在[mysqld]的datadir下增加如下部分。
       

 log_bin=mysql-bin

 server_id=1

考虑到其他的服务器,服务器id必须是唯一的。推荐的方式是将master的ID设置为1,后续的每个slave节点序号大于1,使得所有服务器编号如:1,2,3等。
3. 重启MySQL服务。如果是RHEL/CentOS系统,命令为:

       

  service mysqld restart

如果是Debian/Ubuntu系统,命令为:

       

  service mysql restart

  1. 在master上创建一个用于复制的账户,并赋予权限。我们创建用户"cloud-repl",密码为"password"。假设master和slave都运行在172.16.1.0/24网段。
       

  mysql -u root

 mysql> create user 'cloud-repl'@'172.16.1.%' identified by 'password';

 mysql> grant replication slave on *.* TO 'cloud-repl'@'172.16.1.%';

 mysql> flush privileges;

 mysql> flush tables with read lock;

  1. 离开当前正在运行的MySQL会话。
  2. 在新的shell中打开第二个MySQL会话。
  3. 检索当前数据库的位置点。
       

  mysql -u root

 mysql> show master status;


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


 | File | Position | Binlog_Do_DB | Binlog_Ignore_DB |


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


 | mysql-bin.000001 | 412 | | |


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

  1. 注意你数据库实例所返回的文件及位置点。
  2. 退出该会话。
  3. 完成master安装。返回到master的第一个会话,取消锁定并退出MySQL。
        

 mysql> unlock tables;

  1. 安装并配置slave节点。在slave服务器上,运行如下命令。
        

  yum install mysql-server

  chkconfig mysqld on

  1. 编辑my.cnf,在[mysqld]的datadir下增加如下部分。
        

 server_id=2

 innodb_rollback_on_timeout=1

 innodb_lock_wait_timeout=600

  1. 重启MySQL。对于RHEL/CentOS系统,使用"mysqld"
        

  service mysqld restart

对于Ubuntu/Debian系统,使用"mysql."
        

  service mysql restart

  1. 引导slave连接master并进行复制。使用上面步骤中得到数据来替换IP地址,密码,日志文件,以及位置点。
        

 mysql> change master to

  -> master_host='172.16.1.217',

  -> master_user='cloud-repl',

  -> master_password='password',

  -> master_log_file='mysql-bin.000001',

  -> master_log_pos=412;

  1. 在slave上启动复制功能。
        

 mysql> start slave;

  1. 在slave上可能需要开启3306端口,就像之前在master上所做的一样。
    这对复制来说不是必须的。但如果没有做,当需要进行数据库切换时,你仍然需要去做。
    故障切换

这将为管理服务器提供一个复制的数据库,用于实现手动故障切换。管理员将CloudStack从一个故障MySQL实例切换到另一个。当数据库失效发生时,你应该:

  1. 停止管理服务器(通过命令:service cloudstack-management stop)
  2. 将数据库的复本服务器修改为master并重启
  3. 确保数据库的副本服务器的3306端口开放给管理服务器。
  4. 更改使得管理服务器使用这个新的数据库。最简单的操作是在管理服务器的/etc/cloudstack/management/db.properties文件中写入新的数据库IP地址。
  5. 重启管理服务器:
       

  service cloudstack-management start

文章列表

更多推荐

更多
  • Pulsar消息队列-一套高可用实时消息系统实现 实时消息【即时通信】系统,有群聊和单聊两种方式,其形态异于消息队列:1 大量的 group 信息变动,群聊形式的即时通信系统在正常服务形态下,瞬时可能有大量用户登入登出。2 ...
  • Pulsar消息队列-Pulsar对比Kafka笔记 很多人查看 Pulsar 之前可能对 Kafka 很熟悉,参照上图可见二者内部结构的区别,Pulsar 和 Kafka 都是以 Topic 描述一个基本的数据集合,Topic 数据又分为若干 Partition,即对数据进行逻辑上的 ...
  • Pulsar消息队列-对 2017 年一套 IM 系统的反思 信系统的开发,前前后后参与或者主导了六七个 IM 系统的研发。上一次开发的 IM 系统的时间点还是 2018 年,关于该系统的详细描述见 [一套高可用实时消息系统实现][1] ...
  • Apache APISIX文档-快速入门指南-如何构建 Apache APISIX 如何构建 Apache APISIX,步骤1:安装 Apache APISIX,步骤2:安装 etcd,步骤3:管理 Apache APISIX 服务,步骤4:运行测试案例,步骤5:修改 Admin API key,步骤6:为 Apac
  • Apache APISIX文档-快速入门指南-快速入门指南 快速入门指南,概述,前提条件,第一步:安装 Apache APISIX,第二步:创建路由,第三步:验证,进阶操作,工作原理,创建上游服务Upstream,绑定路由与上游服务,添加身份验证,为路由添加前缀,APISIX Dashboard
  • Apache APISIX文档-架构设计-APISIX APISIX,软件架构,插件加载流程,插件内部结构,配置 APISIX,插件加载流程,比如指定 APISIX 默认监听端口为 8000,并且设置 etcd 地址为 http://foo:2379, 其他配置保持默认。在 ...
  • Apache APISIX文档-架构设计-Service Service 是某类 API 的抽象(也可以理解为一组 Route 的抽象)。它通常与上游服务抽象是一一对应的,Route 与 Service 之间,通常是 N:1 的关系,参看下图。不同 Route 规则同时绑定到一个 Service ...
  • Apache APISIX文档-架构设计-Plugin Config 如果你想要复用一组通用的插件配置,你可以把它们提取成一个 Plugin config,并绑定到对应的路由上。举个例子,你可以这么做:创建 Plugin config,如果这个路由已经配置了 plugins,那么 Plugin config ...
  • Apache APISIX文档-架构设计-Debug Mode 注意:在 APISIX 2.10 之前,开启基本调试模式曾经是设置 conf/config.yaml 中的 apisix.enable_debug 为 true。设置 conf/debug.yaml 中的选项,开启高级调试模式。由于 ...
  • Apache APISIX文档-架构设计-Consumer 如上图所示,作为 API 网关,需要知道 API Consumer(消费方)具体是谁,这样就可以对不同 API Consumer 配置不同规则。授权认证:比如有 [key-auth] 等。获取 consumer_...
  • 近期文章

    更多
    文章目录

      推荐作者

      更多