我在 VPS 提供商处托管了一个 60GBInnoDB file-per-table MySQL
的数据库。我想生成文件的转储。运行mysqldump
会导致连接到此数据库的网站速度极慢,导致转储期间反复超时。VPS 提供商提供自发磁盘克隆服务。
有没有办法从离线克隆而不是在线实时数据库转储数据库?在此期间,我将使后者成为只读的,以避免任何不一致。
更新:
- 克隆只是数据库磁盘的复制。
- 我有root权限。
答案1
启动另一个运行 MySQL 的 VPS,并将datadir
其他设置指向克隆的磁盘my.cnf
答案2
我认为您应该为此使用 percona xtrabackup。就备份时间而言,它不是那么快,但它不会妨碍您的数据库正常运行。
我们在生产中使用了这个解决方案,效果非常好。
http://www.percona.com/software/percona-xtrabackup
我不确定在 mysql 运行时从克隆磁盘进行转储是否是个好主意。如果您想这样做,那么您应该运行 FLUSH TABLES WITH READ LOCK;或者直接关闭 mysql 服务器。