Mariadb 如何在实例之间安全地移动数据库目录

Mariadb 如何在实例之间安全地移动数据库目录,mariadb,Mariadb,考虑以下情况:您有两个MariaDB实例(可能在不同的物理服务器上),每个实例都有不同的数据目录 第一个实例有DATA_DIR1,包含InnoDB数据库DB1和DB2的文件夹 第二个实例有数据_DIR2,包含InnoDB数据库DB3和DB4的文件夹 假设您想要将DB2从第一个实例移动到第二个实例 如何在实例之间安全地复制文件(即,不执行mysqldump,这对于非常大的数据库来说太慢)。或者,可以选择使用mariabackup部分备份,因为这不会像mysqldump那么慢 特别是,需要做些什么来

考虑以下情况:您有两个MariaDB实例(可能在不同的物理服务器上),每个实例都有不同的数据目录

第一个实例有DATA_DIR1,包含InnoDB数据库DB1和DB2的文件夹

第二个实例有数据_DIR2,包含InnoDB数据库DB3和DB4的文件夹

假设您想要将DB2从第一个实例移动到第二个实例

如何在实例之间安全地复制文件(即,不执行mysqldump,这对于非常大的数据库来说太慢)。或者,可以选择使用mariabackup部分备份,因为这不会像mysqldump那么慢

特别是,需要做些什么来正确地指示第一个实例它将不再看到DB2,并正确地指示第二个实例它现在应该识别已放置在DATA_DIR2中的DB2副本?

否文件不能复制,至少不能按原样复制


如果您的版本中有“可传输表空间”,请查看它。这将准备文件作为副本。

在第一个实例中,键入
showcreatedatabasedb2
。对于DB2中的每个表,键入
showcreatetable

使用这些命令的输出在第二个数据库实例中重新创建数据库和(空)表

在第二个实例中,对于DB2数据库中的每个表,键入
altertablediscard TABLESPACE

在第一个实例中,对于DB2中的每个表,键入
FLUSH TABLES,,。。。用于出口

将文件从第一个实例中的DB2目录复制到第二个实例中的DB2目录


在第一个实例中,键入
UNLOCK TABLES

在第二个实例中,对于数据库类型
altertableimporttablespace中的每个表

资料来源: