首页 > 代码库 > 记一次SQL server 2005 到SQL server 2008 数据库迁移

记一次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 数据库迁移