最近周末完成了一个从SQL server 2005升级到SQL server 2008的升级迁移,其实质是一个服务器迁移的过程。比较复杂的是这个服务器上的复制关系,自身既作为发布服务器,又作为订阅服务器,因此整个迁移同时需保证这些复制关系依旧可用。这个主服务器是供ERP使用,涉及到的模块也比较相对多,因此从迁移到验证整个过程还是比较长。记下本文以示庆贺。
一、主要的步骤
1、检查现有数据库的备份完整性(含发布及订阅数据库)及存在的复制关系
2、停止原服务器所有服务(含agent),复制所有需要迁移的数据文件到新服务器
3、导出原服务器上的发布对象
4、将数据库附加到新服务器
5、新建/配置分发服务器
6、新服务器发布文章(3份)
7、在新服务器上删除之前的订阅
8、在发布服务器TK456/KSERP上重新初始化指向新服务器的订阅
二、迁移过程中碰到的错误及解决办法
在新环境配置好了复制之后,收到如下错误提示:
Invalid column name ‘originator_id’. (Microsoft SQL Server, Error: 207)
Create replication fails on database which is migrated from SQL Server 2005 with error
-- Author : Leshami
-- Blog : http://blog.csdn.net/leshami
Error:
ADDITIONAL INFORMATION:
An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)
——————————
Invalid column name ‘originator_id’. (Microsoft SQL Server, Error: 207)
解决方案
Resolution:
1. Add originator_id column to syspublications table in publication db. Run below query in your publication DB.
ALTER TABLE dbo.syspublications ADD [originator_id] [int] NULL;
2. Add a column originator_id into the view dbo.syspublications inside distribution database
3. Add a originator_id column into IHpublications table in distribution database
三、现场花絮