如何将MySQL Dump备份文件推送到VCenter数据存储?
如何将VMware vCenter虚拟机内的MariaDB备份到vCenter数据存储
核心前提
mysqldump本身不支持直接写入vCenter数据存储,必须先把vCenter的数据存储挂载到你的虚拟机本地文件系统,再将备份文件输出到挂载路径。scp/rsync失败和MariaDB版本无关,问题出在数据存储的访问方式或权限上。
步骤1:挂载vCenter数据存储到虚拟机
vCenter数据存储通常通过NFS、iSCSI或VMware共享文件夹的方式挂载到虚拟机,以下是两种主流系统的操作方式:
Linux虚拟机
- 在vCenter控制台中,确保目标数据存储已开启NFS共享,并授权你的虚拟机访问
- 在虚拟机内创建挂载目录:
sudo mkdir -p /mnt/vcenter_datastore - 临时挂载NFS数据存储(替换为你的vCenter存储地址和路径):
sudo mount -t nfs vcenter_server_ip:/vmfs/volumes/datastore_name /mnt/vcenter_datastore - 配置开机自动挂载(编辑
/etc/fstab),添加一行:vcenter_server_ip:/vmfs/volumes/datastore_name /mnt/vcenter_datastore nfs defaults 0 0
Windows虚拟机
- 在vCenter控制台中开启数据存储的SMB共享或VMware共享文件夹
- 打开「此电脑」,右键选择「映射网络驱动器」
- 在「文件夹」栏输入数据存储的共享路径(例如
\\vcenter_server_ip\datastore_name),分配一个盘符(如Z:),勾选「登录时重新连接」
步骤2:执行MariaDB备份到挂载路径
挂载完成后,直接修改mysqldump命令的输出路径为数据存储的挂载点即可:
Linux环境
# 基础全库备份 mysqldump -u 用户名 -p --all-databases > /mnt/vcenter_datastore/backup_$(date +%Y%m%d).sql # 带压缩的备份(节省存储) mysqldump -u 用户名 -p --all-databases | gzip > /mnt/vcenter_datastore/backup_$(date +%Y%m%d).sql.gz # InnoDB库建议加--single-transaction避免锁表 mysqldump -u 用户名 -p --all-databases --single-transaction > /mnt/vcenter_datastore/backup_$(date +%Y%m%d).sql
注意:执行命令后会提示输入数据库密码,直接输入即可(不要把密码写在命令行里,避免泄露)
Windows环境
:: 基础全库备份 mysqldump -u 用户名 -p --all-databases > Z:\backup_%date:~0,4%%date:~5,2%%date:~8,2%.sql :: 带压缩的备份(需要提前安装gzip或使用PowerShell) mysqldump -u 用户名 -p --all-databases | gzip > Z:\backup_%date:~0,4%%date:~5,2%%date:~8,2%.sql.gz
常见问题排查
- 挂载后无法写入:检查vCenter数据存储的权限设置,确保虚拟机有读写权限;Linux下检查挂载目录的权限(
ls -ld /mnt/vcenter_datastore),确保运行mysqldump的用户(如root或mysql)有写入权限 - mysqldump命令报错:确认MariaDB服务正常运行,数据库用户名/密码正确,用户有
SELECT和LOCK TABLES权限(全库备份需要)
内容的提问来源于stack exchange,提问作者Kaybien
相关产品推荐
相关产品推荐

