ubuntu

如何使用Ubuntu MariaDB进行数据迁移

小樊
54
2025-10-16 14:12:10
栏目: 云计算

Ubuntu环境下MariaDB数据迁移指南

一、数据迁移的常见场景与工具选择

MariaDB数据迁移主要分为逻辑迁移(通过SQL文件传输)和物理迁移(直接复制数据文件)两类。逻辑迁移适用于跨版本、跨平台或需要保留完整数据库结构的场景;物理迁移适用于大规模数据、追求高速迁移的场景,但需确保源与目标环境一致(如MariaDB版本、文件系统、配置参数)。
常用工具:

二、逻辑迁移详细步骤(推荐)

逻辑迁移是最常用的方式,适用于大多数场景,步骤如下:

1. 备份源数据库

使用mysqldump导出源数据库数据,支持以下常见选项:

2. 传输备份文件到目标服务器

使用scp(安全复制)将备份文件传输到目标Ubuntu服务器,命令格式:
scp backup.sql [目标服务器用户名]@[目标服务器IP]:/目标路径(如scp mydb_backup.sql user@192.168.1.100:/home/user/backups)。
若使用压缩文件,传输后需解压:gunzip backup.sql.gz

3. 目标服务器准备

4. 恢复数据到目标服务器

使用mysql命令导入备份文件:

5. 验证数据完整性

登录目标MariaDB,执行以下命令检查数据:

-- 查看数据库列表
SHOW DATABASES;
-- 选择目标数据库
USE [数据库名];
-- 查看表列表
SHOW TABLES;
-- 查询表数据(如查看前10行)
SELECT * FROM [表名] LIMIT 10;

确保所有数据库、表及数据均正确导入。

三、物理迁移步骤(适用于大规模数据)

若需迁移整个MariaDB数据目录(如从旧服务器迁移到新服务器),可使用物理迁移,步骤如下:

1. 停止MariaDB服务

迁移前需停止服务,避免数据损坏:
sudo systemctl stop mariadb

2. 复制数据目录

源服务器数据默认存储在/var/lib/mysql,使用rsync同步到目标服务器:

# 在目标服务器执行(需替换源服务器IP和路径)
rsync -avz -e ssh [源服务器用户名]@[源服务器IP]:/var/lib/mysql /var/lib/mysql

-avz选项表示归档模式、显示进度、压缩传输。

3. 修改权限

确保目标数据目录的属主为mysql用户(MariaDB默认运行用户):
sudo chown -R mysql:mysql /var/lib/mysql

4. 修改配置文件

编辑MariaDB配置文件(通常为/etc/mysql/mariadb.conf.d/50-server.cnf),找到datadir行,修改为新的数据目录路径:

[mysqld]
datadir = /var/lib/mysql

保存并退出。

5. 启动服务并验证

# 启动MariaDB
sudo systemctl start mariadb
# 检查状态(确保为active状态)
sudo systemctl status mariadb
# 登录验证数据
mysql -u [用户名] -p -e "SHOW DATABASES;"

若状态正常且能查询到数据库,说明迁移成功。

四、迁移注意事项

  1. 版本兼容性:源与目标MariaDB版本需一致或兼容(如10.3→10.5),避免因版本差异导致数据错误;
  2. 权限与安全:备份文件传输需使用加密方式(如scprsync over SSH),目标服务器MariaDB用户需有足够权限(如ALL PRIVILEGES);
  3. 停机时间:物理迁移需停机,建议在业务低峰期操作;逻辑迁移可在线进行,但对大型数据库可能有性能影响;
  4. 测试验证:迁移后务必进行全面测试(如查询数据、执行业务操作),确保数据完整性与应用兼容性;
  5. 备份策略:迁移前备份源数据,迁移后备份目标数据,防止意外丢失。

五、常见问题解决

0
看了该问题的人还看了