问题
今天遇到一个问题,有人咨询他的源数据库是SQL Server 2008, 新的数据库是SQL Server2016,想通过订阅发布的方式把旧的数据库零宕机迁移到新版本上。但是没有做过这样不同版本的SQL Server之间的订阅发布。从概念上来说,不同版本的数据库对应不同的兼容级别。SQL 2008的兼容级别是100,而SQL 2016的兼容级别是130。高版本的数据库理论上可以选择低的兼容等级,可以做到不同版本之间的订阅发布。不过还是需要实践一下。
当前结论
本次配置失败。想看成功的见下一篇【不同版本SQL Server之间的订阅发布(二)】
环境的创建
1. 创建新的ResourceGroup
2. 创建VNet
3. 创建 Network security group
4. NSG关联到新创建的VNet
5. NSG增加 3389 和 1433 的 inbound 规则,因为只是测试订阅发布功能,所以不考虑安全的问题。允许公网直接访问虚拟机的远程桌面和数据库的端口
6. 创建 SQL 2008 VM
7. 创建 SQL 2016 VM
使用SQL2016作为分发服务器创建订阅发布
1. 在SQL 2008 上创建新的数据库
2. 创建一张表并添加测试数据
3. 使用 SQL 2016 作为分发服务器
4. 添加 SQL 2008 作为发布者,设置 link 密码
5. 在 SQL 2008 中执行创建发布向导,并选择 SQL 2016 服务器作为分发服务器
6. 连接失败