温馨提示×

Ubuntu MariaDB数据迁移方法

小樊
46
2025-11-02 17:28:14
栏目: 云计算

Ubuntu环境下MariaDB数据迁移的常见方法

一、逻辑备份与恢复(适用于中小型数据库)

逻辑备份通过导出SQL语句实现数据迁移,灵活性高,适合大多数场景。

  1. 备份源数据库:在源Ubuntu服务器上,使用mysqldump工具导出数据。导出所有数据库的命令为:
    mysqldump -u root -p --all-databases > full_backup.sql-p与密码之间无空格,执行后会提示输入密码);若仅需导出特定数据库,将--all-databases替换为--databases 数据库名即可。
  2. 传输备份文件:通过scp命令将full_backup.sql传输至目标服务器(替换为目标服务器用户名、IP及路径):
    scp full_backup.sql user@target_server_ip:/path/to/destination
  3. 目标服务器准备:若目标服务器未安装MariaDB,需先执行以下命令安装:
    sudo apt update && sudo apt install mariadb-server mariadb-client
  4. 恢复数据:在目标服务器上,使用mysql命令导入备份文件:
    mysql -u root -p < /path/to/destination/full_backup.sql(输入密码后开始恢复)。
  5. 验证数据:登录目标服务器的MariaDB,检查数据库及表是否完整:
    mysql -u root -p
    SHOW DATABASES;          -- 查看所有数据库
    USE 目标数据库名;        -- 切换至目标数据库
    SHOW TABLES;             -- 查看所有表
    SELECT COUNT(*) FROM 表名; -- 检查表记录数
    

二、物理文件迁移(适用于大型数据库)

物理迁移通过直接复制数据文件实现,速度快,但需停机操作,适合大型数据库。

  1. 停止MariaDB服务:确保数据一致性,停止MariaDB服务:
    sudo systemctl stop mariadb
  2. 备份数据目录:MariaDB默认数据目录为/var/lib/mysql,使用rsync复制数据(保留权限):
    sudo rsync -av /var/lib/mysql /new/data/directory/new/data/directory为自定义新路径)。
  3. 修改配置文件:编辑MariaDB配置文件/etc/mysql/mariadb.conf.d/50-server.cnf,找到datadir行,修改为新路径:
    datadir = /new/data/directory;若有远程访问需求,将bind-address设置为0.0.0.0(允许所有IP连接)或目标服务器IP。
  4. 修改权限:确保新数据目录的所有者为mysql用户:
    sudo chown -R mysql:mysql /new/data/directory
  5. 启动服务并校验:启动MariaDB服务,运行mysql_upgrade检查表结构完整性:
    sudo systemctl start mariadb
    sudo mysql_upgrade -u root -p  -- 升级系统表结构
    
  6. 验证数据:同逻辑备份的验证步骤,确保数据无误。

三、使用xtrabackup工具(适用于超大型InnoDB数据库)

xtrabackup是开源的物理备份工具,支持增量备份,适合TB级数据库。

  1. 安装xtrabackup:在源/目标服务器上安装Percona XtraBackup:
    sudo apt update && sudo apt install percona-xtrabackup-24
  2. 源服务器备份:执行完整备份,指定备份目录:
    xtrabackup --backup --target-dir=/path/to/backup --user=root --password=your_password
  3. 传输备份文件:将备份目录压缩后传输至目标服务器:
    tar -czvf backup.tar.gz /path/to/backup
    scp backup.tar.gz user@target_server_ip:/path/to/destination
    
  4. 目标服务器恢复
    • 解压备份文件:tar -xzvf backup.tar.gz -C /
    • 准备备份:xtrabackup --prepare --target-dir=/path/to/backup(将备份文件转为可恢复状态);
    • 恢复数据:xtrabackup --copy-back --target-dir=/path/to/backup --datadir=/var/lib/mysql(将数据复制至MariaDB数据目录)。
  5. 后续步骤:修改权限(chown -R mysql:mysql /var/lib/mysql)、重启服务(systemctl start mariadb)、验证数据。

四、图形化工具迁移(适合新手或简单场景)

通过phpMyAdmin等图形化工具实现可视化迁移,操作简便。

  1. 源服务器导出:登录源服务器phpMyAdmin,选择目标数据库,点击顶部“导出”标签,选择“快速”导出方式(SQL格式),点击“执行”下载备份文件。
  2. 传输文件:使用scp或FTP将备份文件传输至目标服务器。
  3. 目标服务器导入:登录目标服务器phpMyAdmin,选择或创建目标数据库,点击顶部“导入”标签,上传备份文件,点击“执行”完成导入。
  4. 验证数据:同逻辑备份的验证步骤。

迁移注意事项

  • 版本兼容性:确保目标服务器MariaDB版本与源服务器兼容(建议版本号差异不超过1个大版本)。
  • 停机时间:物理迁移需停机,选择业务低峰期操作;逻辑迁移可在线进行,但对大型数据库耗时较长。
  • 数据一致性:迁移前停止写入操作(物理迁移),或使用--single-transaction参数(逻辑迁移,仅适用于InnoDB)。
  • 字符集检查:确保源与目标数据库字符集一致(如UTF-8),避免乱码。可通过SHOW VARIABLES LIKE 'character_set%';查看源数据库字符集,目标数据库创建时指定:CREATE DATABASE 新库名 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  • 备份验证:迁移前后均需验证备份文件的完整性(如尝试恢复至测试环境)。

0