诗诗
2018-03-15
来源 :网络
阅读 1732
评论 0
摘要: 本篇Windows运维将讲解迁移SQL Server到Linux,看完这篇文章会让你对迁移SQL Server到Linux有更加清晰的理解和运用。
本篇Windows运维将讲解迁移SQL Server到Linux,看完这篇文章会让你对迁移SQL Server到Linux有更加清晰的理解和运用。
1. 环境
Windows: Microsoft SQL Server 2008 R2 (SP3) - 10.50.6000.34 (X64)
Linux: CentOS 7.4,SQL Server 2017 (RC2) - 14.0.900.75 (X64)
2. 在Windows下创建备份
在Windows下使用SSMS完整备份数据库
BACKUP DATABASE db1 TO DISK = 'D:\sql_bak\db1\db1.bak'WITH
COMPRESSION, INIT, SKIP, NAME = 'full_backup',STATS = 1GO
code-1: 备份数据库
3. 复制备份文件到Liunx
把备份文件复制到Linux,如放到/tmp/下。可以用FTP,或rz等工具。
4. 在Linux下还原数据库
使用终端(如Xshell)连接到Linux。默认数据文件目录在/var/opt/mssql/data/下,如果要指定数据目录的话,可创建自定义目录并赋予相应权限。
mkdir -p /data/mssql_datachown -R mssql:mssql /data/mssql_data
code-2: 创建目录并修改权限
使用sqlcmd连接到数据库
sqlcmd -S localhost -U sa
code-3: 连接到数据库
RESTORE DATABASE db1 FROM DISK = '/tmp/db1.bak'WITH
MOVE 'db1' TO '/data/mssql_data/db1.mdf',
MOVE 'db1_log' TO '/data/mssql_data/db1_log.ldf',
STATS = 1, REPLACE, RECOVERYGO
code-4: 还原数据库
注意:不能复制并粘贴整个多行命令一次,只能复制每个行后按 enter 键。最后以GO结束,回车后执行。
当然,也可以把上面的还原数据库的命令写到一个文件,再使用sqlcmd执行脚本方式来还原数据库。
sqlcmd -S localhost -U sa -i '/data/mssql_data/restore_db.txt'
code-5: 执行脚本文件还原数据库
5. 查询验证
在Linux下的sqlcmd查询:

Figure-1: sqlcmd下的查询

Figure-2: SSMS下db1数据库的属性(Files)
在Windows的SSMS连接到Linux下的数据库,发现数据库文件的路径不是Linux的正斜杠,而是Windows的反斜杠;Compatibility level也无法修改。

Figure-2: SSMS下db1数据库的属性(Options)

Figure-2: SSMS下的查询
希望这篇文章可以帮助到你。总之,同学们,你想要的职坐标IT频道都能找到!
喜欢 | 0
不喜欢 | 0
您输入的评论内容中包含违禁敏感词
我知道了

请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号