以下设置适用:
- docker中的3节点galera集群
- 应该运行 mariabackup 以从 galera 集群中获取数据的备份容器
- 网络很好。备份容器可以 ping galera
- mariadb/mariabackup 版本 10.3
- 备份容器仅安装了 mariabackup。
我使用的命令
mariabackup --backup --host=<service_name> --port=3306 --user=root --password=<pass> --target-dir=/backup
当尝试从备份容器中的 galera-cluster 备份时,我收到以下错误
00] 2019-09-15 23:38:34 Connecting to MySQL server host: mdb_mariadb, user: root, password: set, port: 3306, socket: /var/run/mysqld/mysqld.sock
[00] 2019-09-15 23:38:34 Using server version 10.3.18-MariaDB-1:10.3.18+maria~bionic-log
[00] 2019-09-15 23:38:34 Warning: option 'datadir' points to nonexistent directory '/var/lib/mysql/'
[00] 2019-09-15 23:38:34 Warning: MySQL variable 'datadir' points to nonexistent directory '/var/lib/mysql/'
[00] 2019-09-15 23:38:34 Warning: option 'datadir' has different values:
'/var/lib/mysql/' in defaults file
'/var/lib/mysql/' in SHOW VARIABLES
mariabackup based on MariaDB server 10.3.18-MariaDB debian-linux-gnu (x86_64)
[00] 2019-09-15 23:38:34 uses posix_fadvise().
mariabackup: Can't change dir to '/var/lib/mysql/' (Errcode: 2 "No such file or directory")
[00] 2019-09-15 23:38:34 my_setwd() failed , /var/lib/mysql/
我尝试了什么。
- 研究各种要点以寻找线索
- 研究服务器安装提供的 mariadb 脚本
- 尝试不同的选项组合,但总是相同的错误。
问题:
- 有没有人进行远程备份,可以告诉我你是如何成功的?
- 方法是否错误,是否有更好的方法可以每天进行一次热备份并在白天进行增量备份?
错误的方法 -
mariabackup
不是为远程工作而设计的。另见MDEV-15075。所以你需要
mariabackup
在集群中的一个节点上本地运行。为了防止备份减慢集群速度,您可以通过执行以下操作防止节点参与流控制并使其落后于其他节点:
备份完成后,您可以执行以下操作:
(参见MariaDB 知识库中的wsrep_desync 。)
显然,在运行备份时不要将任何数据库流量导向节点。