CentOS上SQL Server数据库迁移步骤(基于常见场景整理)
一、迁移前准备
- 确认环境兼容性:确保源服务器与目标服务器的**操作系统版本(CentOS版本)、SQL Server版本(如2019、2022)、依赖库(如OpenSSL、glibc)**一致或兼容,避免因环境差异导致迁移失败。
- 备份源数据库:使用
mysqldump
(MySQL)或BACKUP DATABASE
(SQL Server)工具完整备份源数据库,包括结构、数据及权限。例如:
- MySQL:
mysqldump -u root -p --all-databases > full_backup.sql
- SQL Server:通过SSMS右键数据库→“任务”→“生成脚本”,选择“完整”恢复模式并保存脚本。
- 安装目标SQL Server实例:若目标服务器未安装SQL Server,需先下载适用于CentOS的安装包(如
.rpm
文件),通过rpm -ivh
命令安装,再运行mssql-conf setup
配置实例(设置SA密码、排序规则等)。
二、迁移SQL Server配置(可选)
若仅需迁移SSMS(SQL Server Management Studio)配置(而非数据库本身),可按以下步骤操作:
- 备份SSMS设置:SSMS配置文件默认存储在用户目录下的
.sqlpackage
文件夹(如/home/username/.sqlpackage
),复制该文件夹至安全位置。
- 恢复SSMS设置:将备份的
.sqlpackage
文件夹复制到目标服务器对应路径,启动SSMS即可加载原有配置(如查询窗口布局、工具选项)。
三、数据库迁移(核心步骤)
1. 使用SQL Server Management Studio(SSMS)迁移
- 生成脚本:在源服务器上,右键目标数据库→“任务”→“生成脚本”,选择“完整”恢复模式,勾选“编写数据脚本”(如需迁移数据),将脚本保存至本地。
- 执行脚本:登录目标服务器的SSMS,连接到新实例,右键“数据库”→“新建数据库”(名称与源数据库一致),打开保存的脚本并执行,完成数据库结构与数据迁移。
2. 使用SQL Server Integration Services(SSIS)迁移(适合大规模数据)
- 创建SSIS项目:打开SQL Server Data Tools(SSDT),新建“Integration Services项目”。
- 配置数据流任务:添加“数据流任务”,设置“OLE DB源”(连接源数据库)、“OLE DB目标”(连接目标数据库),映射表结构,配置批量插入选项(如“表锁定”“最大插入提交数”)。
- 运行SSIS包:执行SSIS包,监控数据迁移进度,完成后验证数据一致性。
四、迁移后验证
- 检查数据库完整性:登录目标服务器的SSMS,执行
USE database_name; SHOW TABLES; SELECT COUNT(*) FROM table_name;
(MySQL)或SELECT COUNT(*) FROM table_name;
(SQL Server),确认表数量及数据量与源数据库一致。
- 验证配置正确性:启动SSMS并连接目标实例,检查工具选项、查询窗口布局、自定义模板等配置是否与源服务器一致。
- 测试应用连接:使用原应用程序连接目标数据库,执行常规操作(如查询、插入),确保业务功能正常。
五、注意事项
- 数据一致性:迁移前停止源数据库的写入操作(或开启事务),避免迁移过程中数据变更导致不一致。
- 网络带宽:大数据量迁移时,建议在低峰时段进行,或使用
rsync
(物理备份)替代逻辑备份,减少传输时间。
- 权限设置:确保目标服务器上的SQL Server用户具有与源服务器相同的权限(如
db_owner
),避免权限丢失。
- 测试环境:优先在测试环境验证迁移步骤,确认无误后再迁移生产环境。