centos

SQL Server在CentOS中的数据迁移步骤

小樊
41
2025-11-10 06:11:17
栏目: 云计算

1. 准备工作:安装SQL Server on CentOS
在目标CentOS服务器上安装SQL Server是迁移的基础。首先安装必要依赖包:sudo yum install -y libatomic;然后添加SQL Server官方YUM仓库(以2022版为例):sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/8/mssql-server-2022.repo;接着安装SQL Server:sudo yum install -y mssql-server;运行配置脚本设置SA密码及实例参数:sudo /opt/mssql/bin/mssql-conf setup;最后启动服务并设置开机自启:sudo systemctl start mssql-serversudo systemctl enable mssql-server。若需通过命令行工具操作,还需安装mssql-tools:添加工具仓库curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/msprod.repo,然后执行sudo yum install -y mssql-tools unixODBC-devel,并将工具路径加入环境变量(echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile,执行source ~/.bash_profile生效)。

2. 备份源数据库(Windows SQL Server)
使用SQL Server Management Studio(SSMS)连接源Windows SQL Server实例,右键待迁移数据库→选择“任务”→“备份”,在“目标”栏添加备份路径(如D:\SQLBackups\SourceDB.bak),设置备份类型为“完整”,点击“确定”生成.bak备份文件。

3. 迁移备份文件至CentOS
通过安全文件传输工具(如WinSCP、scp)将源服务器上的.bak备份文件复制到CentOS目标服务器。例如,使用scp命令:scp /path/to/SourceDB.bak centos_user@centos_ip:/var/opt/mssql/backup/(需确保目标目录存在且有写入权限)。

4. 还原数据库至CentOS SQL Server
在CentOS上使用sqlcmd工具执行还原命令。首先进入sqlcmd交互界面:/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P 'Your_SA_Password';然后执行还原语句(需替换逻辑文件名,可通过RESTORE FILELISTONLY FROM DISK = '/var/opt/mssql/backup/SourceDB.bak'查询):

RESTORE DATABASE TargetDB 
FROM DISK = '/var/opt/mssql/backup/SourceDB.bak' 
WITH 
MOVE 'SourceDB_Data' TO '/var/opt/mssql/data/TargetDB.mdf',  -- 替换为源数据库的逻辑数据文件名
MOVE 'SourceDB_Log' TO '/var/opt/mssql/data/TargetDB_log.ldf', -- 替换为源数据库的逻辑日志文件名
REPLACE, RECOVERY, STATS = 10;  -- REPLACE覆盖同名数据库,RECOVERY恢复数据库可用,STATS显示进度
GO

执行完成后,输入QUIT退出sqlcmd。

5. 验证数据完整性
还原完成后,通过SSMS或sqlcmd连接CentOS上的SQL Server实例,执行以下操作验证数据:

6. 配置网络与安全(可选但重要)
确保CentOS服务器防火墙允许SQL Server端口(默认1433)的入站流量:

sudo firewall-cmd --zone=public --add-port=1433/tcp --permanent
sudo firewall-cmd --reload

若需更高安全性,可配置SSL加密(参考Microsoft官方文档)、限制访问IP或使用VPN连接。

7. 迁移后续操作(可选)

0
看了该问题的人还看了