一、准备工作
安装SQL Server实例
在CentOS目标服务器上安装SQL Server(若未安装),步骤如下:
sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/8/mssql-server-2022.reposudo yum install -y mssql-serversudo /opt/mssql/bin/mssql-conf setupsudo systemctl start mssql-server、sudo systemctl enable mssql-serversudo firewall-cmd --zone=public --add-port=1433/tcp --permanent、sudo firewall-cmd --reload安装mssql-tools工具包
用于执行命令行数据库操作(如还原),步骤如下:
curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/msprod.reposudo yum install -y mssql-tools unixODBC-develecho 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile,执行source ~/.bash_profile使配置生效二、数据库迁移步骤
源服务器备份数据库
使用SQL Server Management Studio(SSMS)或T-SQL命令备份源数据库:
.bak文件。BACKUP DATABASE [SourceDB] TO DISK = 'NUL' WITH INIT, NAME = 'Full Backup';(需替换为实际路径)复制备份文件至目标服务器
通过SCP、SFTP或网络共享将.bak文件传输至目标CentOS服务器的SQL Server数据目录(默认/var/opt/mssql/data/)
目标服务器还原数据库
使用SSMS或T-SQL命令还原数据库,需指定逻辑文件的新路径(避免与现有文件冲突):
SourceDB_Data→NewDB_Data、SourceDB_Log→NewDB_Log)和物理路径(如/var/opt/mssql/data/NewDB.mdf、/var/opt/mssql/data/NewDB_log.ldf)。RESTORE DATABASE [NewDB]
FROM DISK = '/var/opt/mssql/data/SourceDB.bak'
WITH MOVE 'SourceDB_Data' TO '/var/opt/mssql/data/NewDB.mdf',
MOVE 'SourceDB_Log' TO '/var/opt/mssql/data/NewDB_log.ldf',
STATS = 1, REPLACE, RECOVERY;
(REPLACE表示覆盖同名数据库,RECOVERY表示恢复数据库为可用状态)生成数据库脚本
使用SSMS生成源数据库的结构脚本(表、视图、存储过程等):
.sql文件执行脚本至目标数据库
在目标服务器上创建新数据库,使用SSMS或sqlcmd工具执行脚本:
sqlcmd -S localhost -U sa -P 'YourPassword' -i /path/to/script.sql创建SSIS项目
使用SQL Server Data Tools(SSDT)创建Integration Services(SSIS)项目,添加“数据流任务”
配置数据源与目标
SourceServer、sa账号、SourceDB)。TargetServer(CentOS IP)、sa账号、TargetDB)映射表与数据
在“数据流任务”中添加“OLE DB源”(连接源数据库表)、“OLE DB目标”(连接目标数据库表),拖动箭头连接两者,映射字段(确保字段类型兼容)
执行SSIS包
保存并运行SSIS包,完成数据从源到目标的批量迁移
三、迁移后验证
检查数据库状态
登录目标服务器,执行SELECT name, state_desc FROM sys.databases WHERE name = 'NewDB';,确认数据库状态为ONLINE
验证数据一致性
抽取源数据库与目标数据库的关键表(如SELECT COUNT(*) FROM TableName),对比行数是否一致;或使用DIFF工具对比表数据
测试应用连接
使用应用程序或客户端工具(如SSMS、Navicat)连接目标服务器的SQL Server实例,执行常规操作(如查询、插入),确认功能正常
四、注意事项
/var/opt/mssql/data/)需对mssql用户(SQL Server运行账号)有读写权限(chown -R mssql:mssql /var/opt/mssql/data/NewDB*)。