我知道我可以使用 mysqldump 或 xtrabackup 将 InnoDB 从一个数据库移动到另一个数据库。
考虑到我可以接受服务器停机时间,有没有更好的方法来移动 InnoDB 数据库?
我尝试复制所有“ib_*”文件,但似乎不起作用。我是否遗漏了什么?
答案1
如果有人想知道,关闭 mysqld 之后复制整个 mysql 数据根目录(在我的情况下)/var/lib/mysql 可以完美地将数据迁移到另一个系统。
否则,如果您需要复制,集群解决方案比 DRBD 更合适且更快
答案2
您可以尝试使用 DRBD。它是一种块级复制技术,可以同步(如果是远距离复制,则异步)在两个或多个节点之间创建 raid-1 关系。
DRBD 不仅可用于新分配的存储,还可复制现有卷 - 只要您可以扩展该卷以在最后为少量元数据腾出空间,或者附加另一个卷以用作专用元数据存储。如果您只打算临时使用专用元数据,则更容易删除。
该过程通常涉及在存储表的每个节点上建立一个 DRBD 设备,关闭一侧的数据库,然后立即在另一侧启动它 - 使用相同的数据。