温馨提示×

centos如何迁移sqlserver

小樊
52
2026-09-18 13:27:44
栏目: 云计算

在 CentOS 上“迁移 SQL Server”通常有以下几种场景,我先帮你理清,再给出对应的做法。


一、先明确:你要的是哪种“迁移”?

场景 1:把 Windows 上的 SQL Server 迁移到 CentOS 上的 SQL Server

  • 源:Windows SQL Server
  • 目标:CentOS 上安装的 SQL Server(Microsoft 官方支持)

✅ 这是最常见、最推荐的方式


场景 2:把 SQL Server 数据 迁移到 MySQL / PostgreSQL

  • 不再使用 SQL Server
  • CentOS 上跑其他数据库

场景 3:CentOS 之间迁移 SQL Server

  • 两台 CentOS
  • 重装或搬迁数据库

下面我按 最常见(场景 1) 详细说明。


二、CentOS 安装 SQL Server(目标端)

1️⃣ 系统要求

  • CentOS 7 / 8(推荐 7)
  • 内存 ≥ 2GB

2️⃣ 安装 SQL Server

# 添加 Microsoft 源
curl https://packages.microsoft.com/config/rhel/7/mssql-server-2019.repo -o /etc/yum.repos.d/mssql-server.repo

# 安装
yum install -y mssql-server

# 初始化
/opt/mssql/bin/mssql-conf setup

设置 sa 密码,选择版本(如 Developer / Express)

3️⃣ 安装命令行工具

curl https://packages.microsoft.com/config/rhel/7/prod.repo -o /etc/yum.repos.d/msprod.repo
yum install -y mssql-tools unixODBC-devel

三、从 Windows SQL Server 迁移数据

✅ 方法一:备份 / 还原(最推荐)

在 Windows 上

BACKUP DATABASE testdb
TO DISK = 'C:\backup\testdb.bak'

把 testdb.bak 传到 CentOS:

scp testdb.bak root@centos:/var/opt/mssql/backup/

在 CentOS 上还原

sqlcmd -S localhost -U sa
RESTORE DATABASE testdb
FROM DISK = '/var/opt/mssql/backup/testdb.bak'
WITH MOVE 'testdb' TO '/var/opt/mssql/data/testdb.mdf',
MOVE 'testdb_log' TO '/var/opt/mssql/data/testdb_log.ldf';

✅ 方法二:使用 SSMS + 导出数据

适合:

  • 表不多
  • 跨版本不兼容

步骤:

  1. Windows SSMS
  2. 右键数据库 → 任务 → 生成脚本
  3. 在 CentOS SQL Server 执行脚本

✅ 方法三:使用 sqlpackage / DACPAC

适合 DevOps、自动化

sqlpackage /Action:Export /SourceServerName:win-sql /SourceDatabaseName:testdb /TargetFile:test.dacpac
sqlpackage /Action:Import /TargetServerName:centos-sql /TargetDatabaseName:testdb /SourceFile:test.dacpac

四、迁移后注意事项

1️⃣ 用户和权限

  • 登录名需重建
  • 使用:
ALTER USER [user] WITH LOGIN = [login];

2️⃣ 排序规则

  • Windows / Linux 可能不同
  • 建议新建数据库时显式指定

3️⃣ Agent 作业

  • Linux 上 SQL Agent 支持有限
  • 可用 cron 替代

五、如果你其实是想“换成 MySQL”

可以告诉我:

  • 是否必须用 SQL Server
  • 数据量
  • 是否有存储过程 / 触发器

我可以给你 SQL Server → MySQL 迁移方案


六、总结一句话

CentOS 上迁移 SQL Server 最稳方式:Windows 备份 → CentOS 还原

如果你愿意,可以告诉我:

  • 源系统(Windows?CentOS?)
  • SQL Server 版本
  • 数据量大小

我可以直接给你一步一步命令级方案。

0 踩