windows版本sqlserver2016导数据到linux版本sqlserver2017
2022年1月13日11:18:23
因为测试服务器是linux,没有多的资源额外装一台windows,现在在跑的数据库是
导出数据库:windows sqlserver2016
导出数据库:linux sqlserver2017
官方安装文档:https://learn.microsoft.com/zh-cn/sql/linux/sql-server-linux-setup?view=sql-server-ver16
配置文件官方文档:https://learn.microsoft.com/zh-cn/sql/linux/sql-server-linux-configure-mssql-conf?view=sql-server-ver16
linux安装sqlserver 2017
一、设置镜像 curl https://packages.microsoft.com/config/rhel/7/mssql-server-2017.repo > /etc/yum.repos.d/mssql-server.repo 二、进行安装 yum install -y mssql-server 三、运行安装程序 sudo /opt/mssql/bin/mssql-conf setup 四、查看 rpm -qa | grep mssql 五、设置为开机自启 systemctl enable mssql-server
/opt/mssql/bin/mssql-conf setup
选择2,developer 开发免费版本
然后选择yes
输入sa的密码
等待安装成功,默认启动,最后设置开机启动
注意:
https://packages.microsoft.com/config/rhel/7/目前只有 2017和2019,官方其他版本需要自己去找
insiders-fast.repo 26-Feb-2020 02:36 229 insiders-slow.repo 10-Mar-2020 18:05 211 mssql-server-2017-gdr.repo 26-Feb-2020 02:36 244 mssql-server-2017.repo 26-Feb-2020 02:36 232 mssql-server-2019-gdr.repo 26-Feb-2020 02:37 243 mssql-server-2019.repo 26-Feb-2020 02:37 231 mssql-server-preview.repo 26-Feb-2020 02:37 240 packages-microsoft-prod.rpm 14-Mar-2017 17:55 4484 prod.repo 26-Feb-2020 02:37 193
开启sql server agent
sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true sudo systemctl restart mssql-server
导出数据,推荐两种方式:
1,导出sql文件
- 打开 SQL Server Management Studio 。
- 展开 " SQL Server 代理",然后展开 " 作业"。
- 右键单击要为其创建备份脚本的作业,然后选择 " 编写作业脚本为"。
- 选择 " 创建到 或 删除",然后选择 " 新建查询编辑器窗口"、" 文件" 或 " 剪贴板 ",为脚本选择一个目标。 通常,目标是扩展名为 .sql 的文件。
- 为你要编写脚本的每个作业重复步骤 3 以后的过程。 请参考与 BizTalk Server 相关的作业列表,以确定你需要为哪些作业编写脚本。
- 至少应在配置备份后备份 BizTalk Server (BizTalkMgmtDb) 作业。
2,导出二进制bak or log文件
在需要备份的数据库上点右键,选择任务->备份,弹出备份数据库窗口。
注意,选择你需要备份的位置和名称,如果是linux你需要设置为mssql用户的权限
点击确定即可,如果需要设置定期备份可以设置 备份选项
- 在对象资源管理器中,右键单击服务器并选择 “属性” 。
- 单击 “数据库设置” 节点。
- 在“备份和还原” 下,“压缩备份” 显示了 backup compression default 选项的当前设置。 该设置确定压缩备份的服务器级默认设置,如下所示:
- 如果未选中 “压缩备份” 框,在默认情况下将不压缩新备份。
- 如果 “压缩备份” 框已选中,则默认情况下将压缩新备份。
- 如果你是 sysadmin 或 serveradmin 固定服务器角色的成员,还可以通过单击“压缩备份” 框来更改默认设置。
压缩的文件和不压缩的文件 ,压缩比例大概1:3 1:4左右,还是很不错,特别是长期备份,数据库备份文件越来越大的时候
为什么要备份成.bak文件?
因为还原的时候默认支持这几个后缀,当然可以改成选择所有文件,但是建议.bak,这样其他人知道这个做什么用的
导入到linux的sqlserver
注意文件权限
id mssql
chown -R mssql:mssql db-20220222/
2,
/opt/mssql/bin/mssql-conf set filelocation.defaultdatadir /data/mssql_data
/opt/mssql/bin/mssql-conf set filelocation.defaultlogdir /data/mssql_data
/opt/mssql/bin/mssql-conf set filelocation.defaultbackupdir /data/mssql_data
systemctl restart mssql-server
配置文件内容
[sqlagent] enabled = true [EULA] accepteula = Y [filelocation] defaultdatadir = /data/mssql_data defaultlogdir = /data/mssql_data defaultbackupdir = /data/mssql_data
重启服务
新的数据库就会 /data/mssql_data
旧数据库删除即可
QQ二群 166427999
博客文件如果不能下载请进群下载
如果公司项目有技术瓶颈问题,请联系↓↓
如果需要定制系统开发服务,请联系↓↓
技术服务QQ: 903464207