zoukankan      html  css  js  c++  java
  • gravity使用教程04

    当前支持的 Input Plugin 有如下几种

    • mysql 以 MySQL 作为输入源,支持全量、增量、全量+增量模式
    • mongo 当前仅支持增量模式。以 MongoDB 的 Oplog 作为输入源。

    mysql 增量模式

    MySQL 环境的准备

    mysql 对源端 MySQL 的要求如下:

    • 开启 gtid 模式的 binlog
    • 创建 gravity 账户,并赋予 replication 相关权限,以及 _gravity 数据库的所有权限
    • MySQL 源端、目标端相应的表需要创建好

    MySQL 配置项如下所示

    [mysqld]
    server_id=4
    log_bin=mysql-bin
    enforce-gtid-consistency=ON
    gtid-mode=ON
    binlog_format=ROW
    

    gravity 账户权限如下所示

    CREATE USER _gravity IDENTIFIED BY 'xxx';
    GRANT SELECT, RELOAD, LOCK TABLES, REPLICATION SLAVE, REPLICATION CLIENT, CREATE, INSERT, UPDATE, DELETE ON *.* TO '_gravity'@'%';
    GRANT ALL PRIVILEGES ON _gravity.* TO '_gravity'@'%';
    

    mysql 增量配置文件

    [input]
    type = "mysql"
    mode = "stream"
    
    [input.config]
    # 是否忽略双向同步产生的内部数据,默认值为 false
    ignore-bidirectional-data = false
    
    #
    # 源端 MySQL 的连接配置
    # - 必填
    #
    [input.config.source]
    host = "127.0.0.1"
    username = "_gravity"
    password = ""
    port = 3306
    max-open = 20 # 可选,最大连接数
    max-idle = 20 # 可选,最大空闲连接数,建议与 max-open 相同
    
    #
    # 开始增量同步的起始位置。
    # - 默认为空,从当前 gtid 位点开始同步
    # - 可选
    #
    [input.config.start-position]
    binlog-gtid = "abcd:1-123,egbws:1-234"
    
    #
    # 源端 MySQL 心跳检测的特殊配置。若源端 MySQL 的心跳检测(写路径)与 [input.mysql.source]
    # 不一样的话,可以在此配置。
    # - 默认不配置此项。
    # - 可选
    #
    [input.config.source-probe-config]
    annotation = "/*some_annotataion*/"
    [input.config.source-probe-config.mysql]
    host = "127.0.0.1"
    username = "_gravity"
    password = ""
    port = 3306
    

    mysql 全量模式

    如果表没有主键,并且没有唯一索引,并且并且表的总行数大于 max-full-dump-countgravity会报错。

    你可以通过 ignore-tables 忽略这些表。

    [input]
    type = "mysql"
    mode = "batch"
    #
    # 源端 MySQL 的连接配置
    # - 必填
    #
    [input.config.source]
    host = "127.0.0.1"
    username = "_gravity"
    password = ""
    port = 3306
    
    #
    # 源端 MySQL 从库的配置
    # 如果有此配置,则扫描数据时优先从从库扫描
    # - 默认不配置此项
    #
    [input.config.source-slave]
    host = "127.0.0.1"
    username = "_gravity"
    password = ""
    port = 3306
    
    #
    # 需要扫描的表
    # - 必填
    [[input.config.table-configs]]
    schema = "test_1"
    table = "test_source_*"
    
    [[input.config.table-configs]]
    schema = "test_2"
    table = "test_source_*"
    # - 可选
    # 指定扫描的列名字。默认情况下,如果不指定的话,系统会自动探测唯一键作为扫描的列。
    # 请仔细核对这个配置,确保这个列上面有唯一索引。
    scan-column = "id"
    
    # ignore-tables 定义了扫描时忽略的表
    
    # 定义 ignore-tables 可以忽略这些错误
    [[input.config.ignore-tables]]
    schema = "test_1"
    table = "test_source_1"
    
    
    [input.config]
    # 总体扫描的并发线程数
    # - 默认为 10,表示最多允许 10 个表同时扫描
    # - 可选
    nr-scanner = 10
    
    # 单次扫描所去的行数
    # - 默认为 10000,表示一次拉取 10000 行
    # - 可选
    table-scan-batch = 10000
    
    # 全局限制,每秒所允许的 batch 数
    # - 默认为 1
    # - 可选
    #
    batch-per-second-limit = 1
    
    # 全局限制,没有找到单列主键、唯一索引时,最多多少行的表可用全表扫描方式读取,否则报错退出。
    # - 默认为 100,000
    # - 可选
    #
    max-full-dump-count = 10000
    
    
    
    

    对于上面的默认配置,最多允许 10 个并发线程扫描源库,每个线程一次拉取 10000 行;
    同时,系统全局每秒扫描 batch 数不超过 1 ,也就是不超过 10000 行每秒。

    mysql 全量+增量

    [input]
    type = "mysql"
    mode = "replication"
    
    

    其余设置分别于全量、增量相同。
    系统会先保存起始位点,再执行全量。若表未创建,会自动创建表结构。全量完成后自动从保存的位点开始增量。

    mongo 增量

    
    #
    # 源端 Mongo 连接配置
    # - 必填
    #
    [input]
    type = "mongo"
    mode = "stream"
    
    #
    # 源端 Mongo Oplog 的起始点,若不配置,则从当前最新的 Oplog 开始同步
    # - 默认为空
    # - 可选
    #
    [input.config]
    start-position = 123456
    
    [input.config.source]
    host = "127.0.0.1"
    port = 27017
    username = ""
    password = ""
    
    #
    # 源端 Mongo Oplog 并发相关配置
    # - 默认分别为 false, 50, 512, "750ms"
    # - 可选 (准备废弃)
    [input.config.gtm-config]
    use-buffer-duration = false
    buffer-size = 50
    channel-size = 512
    buffer-duration-ms = "750ms"
    
  • 相关阅读:
    JS图片不间断滚动代码(向上,向下,向左,向右)
    存储过程int型转字符型
    DataList编辑、更新、取消、删除、分页
    js设置焦点
    iFrame只要竖滚动条,不要横滚动条
    C#中通过值和引用传递参数
    关于C#值类型,引用类型,值传递,引用传递
    提醒自我
    c#读取html文件内容替换之后再写入
    sql中替换字符串
  • 原文地址:https://www.cnblogs.com/carry00/p/14095443.html
Copyright © 2011-2022 走看看