MySQL版本5.6及以上支持远程备份binlog. 简单记录下,有需要的时候可以用得上

docker-compose.yml

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
binlog-backup:
    image: mysql
    container_name: mysql-binlog-backup
    net: host
    restart: always
    volumes:
      - ./data:/data
    environments:
      - TZ=Asia/Shanghai
      - MYSQL_ROOT_PASSWORD=password
    command:
      mysqlbinlog --read-from-remote-server \
            --raw \
            --host=192.168.244.145 \
            --port=3306 \
            --user=repl \
            --password=repl \
            --stop-never  \
            --result-file=/data/
            mysql-bin.000001

参数解释:

  • raw

    二进制格式保存传输过来的binlog

  • stop-never

    除非主停或网络故障,不然一直传输

  • result-file

    指定传输到本地的目录或都前缀,如最最后少了/,将会变成前缀

  • mysql-bin.000001

    从该文件开始传输,这个要同服务端确认,肯定要存在