数据库复制:从SQL2000向SQL2005迁移数据库

2012-6-7 13:31:52 来源:网络转载 浏览:379
数据库复制就是从SQL Server 2000数据库向SQL Server 2005数据库复制数据从而实现数据库的升级迁移。
服务器环境如下:
GOCEAN-LEE\SQL2000:SQL Server 2000
GOCEAN-LEE\SQL2005:SQL Server 2005
Windows Server 2003 sp2
系统用户GOCEAN-LEE\Administrator,GOCEAN-LEE\SQLAgentUser,密码皆为password,同隶属于Administrators

配置过程如下:

1.设置SQL Server Agent服务启动账户(不执行这一步也可以,不过建议执行此步骤)

设置GOCEAN-LEE\SQL2000和GOCEAN-LEE\SQL2005两个SQL Server 实例的SQL Server Agent服务的启动账户设置为GOCEAN-LEE\SQLAgentUser,并将其高设置为自动启动。


(图1.设置SQL Server 2005 Agent服务的启动账户)


(图2.设置SQL Server 2000 Agent服务的启动账户)

2.建立数据库快照文件共享文件夹

  建立一个共享文件夹(如c:\shareCopy),以存放并共享耍要发布的数据库的快照文件,同时设置GOCEAN-LEE\SQLAgentUser账户对该文件夹有完全控制权限,如下图


(图3.设置共享文件夹属性)

3.确定发布服务器、分发服务器、订阅服务器

   发布服务器、分发服务器和订阅服务器是SQL SERVER 复制数据库时的三个服务器角色,三个的作用分别是:发布服务器将需要同步的服务器发布出来;订阅服务器把从发布服务器所发布的数据库更新到自己的数据库上;而分发服务器则起一个中转站的作用,将发布服务器发布的服务整理,各个订阅服务器直接从分发服务器上订阅发布服务器的更新。

    注意:不同用户采取的复制方法可能略有不同,必须保证分发服务器的SQL 版本高于或等于发布服务器的SQL版本,订阅服务器的SQL版本低于或等于分发服务器(这是在本工作场景中决定分发服务器的一个重要原因)

    终上所述,将GOCEAN-LEE\SQL2000作为发布服务器,GOCEAN-LEE\SQL2005作为分发服务器和订阅服务器

4 . 在SQL Server 2000中建立分发数据库

   连接上GOCEAN-LEE\SQL2000,建立数据库publishDB,并建立一个表productInfo,T-SQL代码如下:
  USE master
   GO
   CREATE DATABASE publishDB
   GO
   USE publishDB
   GO
   IF OBJECT_ID(‘productInfo’,’U’) IS NOT NULL
       DROP TABLE productInfo
   GO
   CREATE TABLE productInfo
   (
     productID uniqueidentifier ROWGUIDCOL NOT NULL,
     productName char(10) NULL,
     CONSTRAINT PK_productInfo PRIMARY KEY(productID)
   )
   GO
  连接上GOCEAN-LEE\SQL2005,建立数据库publishDB,不用建立数据表。
  将GOCEAN-LEE\SQLAgentUser添加到GOCEAN-LEE\SQL2000和GOCEAN-LEE\SQL2005登录用户,并将其设置为两个publishDB数据库的public角色和db_owner角色。如下图所示:


(图4.创建数据库及数据表)

5. 配置分发服务器

 SQL Server Management Studio连接到GOCEAN-LEE\SQL2005,右击“复制”节点执行如下操作:


(图5.选择”配置分发…”)


(图6. )


(图7.)


(图8.输入之前建立的共享文件夹)


(图9. 建立分发服务器时将自动创建默认数据库distribution,可以自定义以上信息)


(图10. 默认只有GOCEAN-LEE\SQL2005一个发布服务器,可以通过右下角的添加按钮添加GOCEAN-LEE\SQL2000为发布服务器,这一步相当重要,如果不执行这一步而直接在2000中执行发布操作将报错误信息,即会报如下图所示的错误




(图11. 建立与GOCEAN-LEE\SQL2000的连接)


(图12. 已经将GOCEAN-LEE\SQL2000和GOCEAN-LEE\SQL2005同时配置为分发服务器)


(图13. 要求输入请求订阅时的密码)


(图14. )


(图15. 分发服务器配置成功)

6. 在GOCEAN-LEE\SQL2000中发布数据库

连接上GOCEAN-LEE\SQL2000,步骤如下:


(图16. 选择“新建发布”)

(图17. 新建发布向导)

(图18. 添加GOCEAN-LEE\SQL2005作为分发服务器)

(图19. 已将GOCEAN-LEE\SQL2005添加分发服务器)

(图20. 输入建立分发服务器时设立的密码)

(图21. 选择要发布的数据库,不能发布系统数据库)

(图22. 选择合适的发布类型)

(图23. 选择数据库中需要发布的对象)

(图24)

(图25. 选择合适的生成数据库快照的时间调度)

(图26)

(图27. 输入发布数据库的名称)

(图28. 数据库发布成功)

(图29. 在”复制”à”本地发布”节下可以看到发布的数据库)

7. 在GOCEAN-LEE\SQL2005中订阅数据库

连接上GOCEAN-LEE\SQL2005,执行如下操作:


(图30. 选择“新建订阅”)

(图31. 新建订阅向导)

(图32. 添加GOCEAN-LEE\SQL2000作为发布服务器)

(图33. 已将GOCEAN-LEE\SQL2000添加为发布服务器)

(图34)

(图35. 选择或者新建数据库,作为订阅数据库)

(图36. 点击省略号设置代理安全性)

(图37. 设置代理安全性)

(图38. 已设置完分发代理安全性)

(图39. 设置同步计划)

(图40. 设置初始化订阅)

(图41)

(图42. 完成订阅向导)

(图43. 已成功建立数据库订阅,可以在”复制”à”本地订阅”节点下看到所订阅的数据库)

(图44. 已同步到GOCEAN-LEE\SQL2005数据库publishDB中的表dbo.productInfo及其数据)

至此,已经完成了从SQL Server 2000数据库向SQL Server 2005数据库复制数据的操作,可以通过向2000数据库中更新数据以查看是否已成功配置数据库复制,结果表明当更新GOCEAN-LEE\SQL2000中数据时,在短时间内则将更新的数据同步复制到GOCEAN-LEE\SQL2005中。

(0)
(0)