正在尝试对网络中的MySQL数据库进行完整备份。我已经传递了主机参数,但它仍然使用/var/lib/mysql/mysql.sock 上的本地mysql套接字在我的本地机器中备份数据库
当我尝试执行以下命令时
xtrabackup --backup --host='192.168.10.280' --databases="sampledb" --user=dbuser --password=dbpasswd --target-dir=/mnt/s3-restore/bkup
我得到以下输出
200415 19:42:00 version_check Connecting to MySQL server with DSN 'dbi:mysql:;mysql_read_default_group=xtrabackup;host=192.168.10.280;port=3306;mysql_socket=/var/lib/mysql/mysql.sock' as 'dbuser' (using password: YES)
200415 19:42:00 version_check Connected to MySQL server
200415 19:42:00 version_check Executing a version check against the server...
200415 19:42:00 version_check Done.
200415 19:42:00 Connecting to MySQL server host: 192.168.10.280, user: sampledb, password: set, port: 3306, socket: /var/lib/mysql/mysql.sock
Using server version 5.6.43-log
想知道在同一台机器上备份是强制性的吗。如果不是比什么参数我缺少。
对此进行了研究,发现Percona Xtrabackup需要访问主机数据库所在的"/var/lib/mysql"。这是从my.cnf中读取的,当您请求@datadir时,可以在实际的SQL cli中提取。
Xtrabackup需要访问MySQL的数据目录(以及MySQL实例(,因此它不能在另一台服务器上运行。但是,它可以由另一个具有SSH(或替代解决方案(的服务器触发。
例如:
ssh serverA "innobackupex --stream=xbstream /var/lib/mysql" > backup.xbstream