centos下sqlserver迁移步骤
导读:1. 准备工作 确认环境兼容性:确保源SQL Server与目标CentOS上的SQL Server版本一致(如均为SQL Server 2022),避免因版本差异导致还原失败。 检查网络连通性:源服务器与目标CentOS服务器之间需能正...
1. 准备工作
- 确认环境兼容性:确保源SQL Server与目标CentOS上的SQL Server版本一致(如均为SQL Server 2022),避免因版本差异导致还原失败。
- 检查网络连通性:源服务器与目标CentOS服务器之间需能正常通信(如通过ping命令验证),确保备份文件传输不受阻碍。
- 安装必要工具:在目标CentOS上安装SQL Server客户端工具(如
sqlcmd
),用于后续命令行操作;若未安装,可通过以下命令添加仓库并安装:curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/msprod.repo yum install -y mssql-tools unixODBC-devel echo 'export PATH="$PATH:/opt/mssql-tools/bin"' > > ~/.bash_profile source ~/.bash_profile
2. 备份源数据库
- 使用SSMS图形界面:登录源SQL Server实例,展开“数据库”节点,右键点击目标数据库→“任务”→“备份”。选择“完整”备份类型(推荐),设置备份目标路径(如本地磁盘
D:\backups\source_db.bak
),点击“确定”执行备份。 - 使用命令行工具(可选):通过
sqlcmd
执行T-SQL命令备份,例如:BACKUP DATABASE [source_db] TO DISK = 'D:\backups\source_db.bak' WITH INIT, STATS = 10;
3. 传输备份文件至目标服务器
使用scp
(安全拷贝)或rsync
工具将备份文件从源服务器复制到目标CentOS服务器。例如,通过scp
命令:
scp username@source_server:/path/to/source_db.bak /tmp/
输入目标服务器密码后,等待文件传输完成。
4. 在目标服务器上还原数据库
- 使用SSMS图形界面:登录目标CentOS上的SQL Server实例,右键点击“数据库”→“还原数据库”。选择“设备”→“浏览”,定位到传输的备份文件(如
/tmp/source_db.bak
),点击“确定”。切换至“选项”页,勾选“覆盖现有数据库”(若目标存在同名数据库),确认文件路径(如将数据文件移至/var/opt/mssql/data/source_db.mdf
、日志文件移至/var/opt/mssql/data/source_db_log.ldf
),最后点击“确定”开始还原。 - 使用命令行工具(可选):通过
sqlcmd
执行还原命令,例如:
其中,RESTORE DATABASE [source_db] FROM DISK = '/tmp/source_db.bak' WITH MOVE 'source_db' TO '/var/opt/mssql/data/source_db.mdf', MOVE 'source_db_log' TO '/var/opt/mssql/data/source_db_log.ldf', REPLACE, RECOVERY;
MOVE
子句用于调整文件路径(需根据备份文件中的逻辑文件名修改),REPLACE
表示覆盖现有数据库,RECOVERY
表示恢复数据库至可用状态。
5. 验证数据完整性
- 检查数据库状态:通过SSMS或
sqlcmd
执行SELECT name, state_desc FROM sys.databases WHERE name = 'source_db';
,确认数据库状态为“ONLINE”。 - 抽样查询数据:选择目标数据库中的关键表(如
SELECT TOP 10 * FROM dbo.table_name;
),对比源数据库中的记录数和内容,确保数据无遗漏或错误。
6. 清理与优化
- 删除临时文件:迁移完成后,删除源服务器上的备份文件(如
D:\backups\source_db.bak
)和目标服务器上的临时文件(如/tmp/source_db.bak
),释放存储空间。 - 优化目标数据库:根据目标服务器性能调整数据库配置(如内存分配、并行度),例如通过
sqlcmd
执行ALTER DATABASE [source_db] SET AUTO_CREATE_STATISTICS ON;
启用自动统计信息更新。
注意事项
- 文件路径调整:还原时需确保目标服务器上有足够的磁盘空间,且文件路径(如数据文件、日志文件目录)存在且具备写入权限(默认路径为
/var/opt/mssql/data/
)。 - 防火墙设置:若需远程连接目标SQL Server,需开放1433端口(SQL Server默认端口),可通过以下命令配置:
sudo firewall-cmd --zone=public --add-port=1433/tcp --permanent sudo firewall-cmd --reload
- 版本兼容性:若源数据库使用了目标SQL Server不支持的功能(如旧版本的特定语法),需提前修改脚本或升级源数据库。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos下sqlserver迁移步骤
本文地址: https://pptw.com/jishu/729975.html