备份:
docker run --rm --name percona-xtrabackup --volumes-from zentao-mysql --network container:zentao-mysql -v /appdata/zentao/full_db_backup:/backup --user root percona/percona-xtrabackup:8.0.27 xtrabackup --backup --datadir=/var/lib/mysql --target-dir=/backup --host=127.0.0.1 --port=3306 --user=root --password='7da6b87c0ff9'
--network container:zentao-mysql: 让备份容器共享 MySQL 容器的网络命名空间,这样 127.0.0.1 就指向了 MySQL 容器。
--host=127.0.0.1: 强制 XtraBackup 使用 TCP 而非 Socket 连接。
--user & --password: 必须提供数据库账号密码。
恢复:
1、先把备份文件准备好(apply log)
docker run --rm -v /appdata/zentao/full_db_backup:/backup percona/percona-xtrabackup:8.0.27 xtrabackup --prepare --target-dir=/backup
2、恢复前准备,先停mysql
docker stop zentao-mysql
3、先把数据库目录(映射到宿主机的)重命名备份一下 (mv)
4、开始恢复(覆盖数据)
docker run --rm --volumes-from zentao-mysql \
-v /appdata/zentao/full_db_backup:/backup \
percona/percona-xtrabackup:8.0.27 \
xtrabackup --copy-back --datadir=/var/lib/mysql --target-dir=/backup
5、恢复权限并启动
docker start zentao-mysql
Categories:
docker与kubernetes, 数据库运维