zoukankan      html  css  js  c++  java
  • galera cluster状态快照转移

     当一个节点需要一个来自集群的状态转移,它默认会尝试增量的状态转移 Incremental State Transfer(IST)方法。但当没有节点可供使用或者发现是一个用wsrep_sst_donor参数人工定义的供体时,它会使用State Snapshot Transfer(SST)的方式。galera cluster SST后端可以是多种方式,这里有两个方法可选:Logical State Snapshots,通过数据库server和client来交互;Physical State Snapshots,在节点间直接拷贝数据文件

    MethodSpeedBlocks DonorAvailable on Live NodeTypeDB Root Access
    mysqldump Slow Blocks Available Logical Donor and Joiner
    rsync Fastest Blocks Unavailable Physical None
    xtrabackup Fast Briefly Unavailable Physical Donor only
    设置状态快照转移的方法是用wsrep_sst_method这个参数
    wsrep_sst_method = rsync
    这几个方法中并没有哪个是最好的,要按照集群的部署方式和自身的需求来选择。幸运的是你只需在接收节点上设置后端的传输方式,只要供体支持就行。
    逻辑状态快照
    后端用逻辑快照的方法只有一种——mysqldump
    逻辑状态转移方法有以下几个好处:
    1、当前活动节点可用,事实上,只有完全初始化的server可以接收逻辑的状态快照
    2、这种转移无需接收节点和供体有相同的配置,这点可以允许你更新存储引擎的某些项。例如使用这种方式时,可以把文件格式从Antelope迁移为Barracuda,压缩大小,或者把iblog*文件从一个分区挪到另一个分区
    逻辑状态转移方法有以下几个坏处:
    1、状态转移的速度和mysqldump一样慢
    2、状态转移需要接收端配置接收远程root连接
    3、接收节点必须有没被破坏的database
    用mysqldump的主要好处就是能够传输一个状态转移给在工作中的server。你可以单独起一个服务器,然后通过database client指令把它加入集群。也可以用它来迁移一个旧的database规格到新规格,适合数据量少的数据库。这种传输方式对每个节点的mysqldump版本要求一致。mysqldump的脚本只需跑在发送节点上,脚本从client端得到连接到新加节点的pipe。因为mysqldump通过database client交互,配置还需要多几步,具体参见http://galeracluster.com/documentation-webpages/mysqldump.html
    物理状态快照
    物理状态转移方法有以下几个优点:
    1、因为是物理的方式直接从磁盘上拷贝数据,因此不需要与database server有交互。
    2.这种传输不需要数据库在工作状态,因为供体节点会把新节点原来的数据覆盖掉。
    3、这种方法更快
    物理状态转移方法有以下几个缺点:
    1.这种传输方案要求节点和供体有相同的目录规划,相同的存储引擎配置等
    2、已经初始化存储引擎的server不能用。这意味着要应用一个状态快照走传输时,database server必须重启来适应这些改变
    rsync
    最快的后端同步方式是rsync.它再创书的过程中会阻断供体节点,但不需要database配置或root连接。当使用T级的数据库时,rsync被认为比xtrabackup快1.5-2倍。rsync还有rsync-wan修改功能,用作rsync增量传输算法。该项配置对网路占用很高,使用时要考虑到网络瓶颈。这种方法做常遇到的问题是供体和新节点之间rsync不同版本的不兼容性。rsync脚本在供体和新节点两端都跑,在新节点端,rsync以server模式启动,等待来自供体的连接;在供体端,rsync以client模式启动,发送数据目录的连接给新节点。
    wsrep_sst_method = rsync
    要了解更多rsync,参看http://rsync.samba.org/
    xtrabackup
    xtrabackup只在复制mysiam表时阻断供体很短时间,如果mysiam表很小的话,bloking的时间也很短。但复制大数据时会影响供体的性能,所用时间比rsync要长。更多xtrabackup的配置参见http://www.percona.com/doc/percona-xtradb-cluster/5.6/manual/xtrabackup_sst.html
    [mysqld]
    wsrep_sst_auth = <wsrep_sst_user>:<password>
    wsrep_sst_method = xtrabackup
    datadir = /path/to/datadir[client]
    socket = /path/to/socket
  • 相关阅读:
    linux常用命令
    mysql 开发基础系列20 事务控制和锁定语句(上)
    sql server 性能调优之 资源等待 CXPACKET
    mysql 开发基础系列19 触发器
    mysql 开发基础系列18 存储过程和函数(下)
    mysql 开发基础系列17 存储过程和函数(上)
    sql server 性能调优之 资源等待PAGEIOLATCH
    mysql 开发基础系列16 视图
    mysql 开发基础系列15 索引的设计和使用
    sql server 性能调优之 当前用户请求分析 (1)
  • 原文地址:https://www.cnblogs.com/buptwangjing/p/5070280.html
Copyright © 2011-2022 走看看