天天看点

记一次SQL server 2005 到SQL server 2008 数据库迁移

    最近周末完成了一个从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

三、现场花絮

记一次SQL server 2005 到SQL server 2008 数据库迁移
记一次SQL server 2005 到SQL server 2008 数据库迁移