一、前提准备
二、通用数据迁移流程(以MySQL为例)
使用mysqldump工具导出源数据库的结构与数据,生成可移植的SQL文件。命令示例:
mysqldump -u [源数据库用户名] -p[源数据库密码] --databases [源数据库名] > /path/to/source_backup.sql
注:-p与密码之间无空格;若需导出所有数据库,可将--databases [数据库名]替换为--all-databases。
通过scp(安全拷贝)或rsync工具将备份文件从源服务器复制到目标服务器。命令示例:
scp /path/to/source_backup.sql [目标服务器用户名]@[目标服务器IP]:/path/to/target_destination/
注:传输前需确保目标服务器已创建目标目录,且有写入权限。
登录目标服务器,使用mysql命令将备份文件导入至目标数据库。命令示例:
mysql -u [目标数据库用户名] -p[目标数据库密码] [目标数据库名] < /path/to/target_destination/source_backup.sql
注:若目标数据库不存在,需提前通过CREATE DATABASE [目标数据库名];创建。
登录目标数据库,通过以下命令检查数据完整性:
SHOW DATABASES;USE [目标数据库名];DESCRIBE [表名];SELECT COUNT(*) FROM [表名];三、可选优化方案
若源数据库体积较大(如超过100GB),可使用Percona XtraBackup工具进行物理备份,提升迁移速度。步骤如下:
sudo yum install percona-xtrabackup-latest;xtrabackup --backup --target-dir=/path/to/backup --user=[用户名] --password=[密码];xtrabackup --prepare --target-dir=/path/to/backup;datadir(默认/var/lib/mysql),并重启MySQL服务:systemctl restart mysqld。通过编写脚本(如Python)结合cron定时任务,实现源数据库与目标数据库的定期同步。示例脚本逻辑:
mysqldump导出增量数据;mysql命令导入目标数据库;sync.log)。cron定时任务的命令示例:0 2 * * * /usr/bin/python3 /path/to/sync_script.py(每天凌晨2点执行)。四、注意事项
SELECT(导出)、INSERT(导入)等必要权限;utf8mb4),避免乱码问题;scp -C(压缩传输)或rsync -avz(增量同步),减少网络中断风险;