gznz12345 发表于 2015-7-2 08:30:41

从SQL Server 2000向SQL Server 2005迁移数据库(复制)

  数据库复制——
从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,并将其高设置为自动启动。
  http://images.iyunv.com/cnblogs_com/jason-lee/SQL%20Server%202000%20向SQL%20Server%202005复制数据库/1.jpg
(图1.设置SQL Server 2005 Agent服务的启动账户)

  http://images.iyunv.com/cnblogs_com/jason-lee/SQL
(图2.设置SQL Server 2000 Agent服务的启动账户)
  2.建立数据库快照文件共享文件夹
  建立一个共享文件夹(如c:\shareCopy),以存放并共享耍要发布的数据库的快照文件,同时设置GOCEAN-LEE\SQLAgentUser账户对该文件夹有完全控制权限,如下图

  http://images.iyunv.com/cnblogs_com/jason-lee/SQL
(图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角色。如下图所示:
  http://images.iyunv.com/cnblogs_com/jason-lee/SQL
(图4.创建数据库及数据表)
  5. 配置分发服务器
  SQL Server Management Studio连接到GOCEAN-LEE\SQL2005,右击“复制”节点执行如下操作:
  http://images.iyunv.com/cnblogs_com/jason-lee/SQL
(图5.选择”配置分发…”)
  http://images.iyunv.com/cnblogs_com/jason-lee/SQL
(图6. )
  http://images.iyunv.com/cnblogs_com/jason-lee/SQL
(图7.)
  http://images.iyunv.com/cnblogs_com/jason-lee/SQL
(图8.输入之前建立的共享文件夹)
  http://images.iyunv.com/cnblogs_com/jason-lee/SQL
(图9. 建立分发服务器时将自动创建默认数据库distribution,可以自定义以上信息)
  http://images.iyunv.com/cnblogs_com/jason-lee/SQL
(图10. 默认只有GOCEAN-LEE\SQL2005一个发布服务器,可以通过右下角的添加按钮添加GOCEAN-LEE\SQL2000为发布服务器,这一步相当重要,如果不执行这一步而直接在2000中执行发布操作将报错误信息,即会报如下图所示的错误http://images.iyunv.com/cnblogs_com/jason-lee/SQL)

http://images.iyunv.com/cnblogs_com/jason-lee/SQL
(图11. 建立与GOCEAN-LEE\SQL2000的连接)
  http://images.iyunv.com/cnblogs_com/jason-lee/SQL
(图12. 已经将GOCEAN-LEE\SQL2000和GOCEAN-LEE\SQL2005同时配置为分发服务器)
  http://images.iyunv.com/cnblogs_com/jason-lee/SQL
(图13. 要求输入请求订阅时的密码)
  http://images.iyunv.com/cnblogs_com/jason-lee/SQL
(图14. )
  http://images.iyunv.com/cnblogs_com/jason-lee/SQL
(图15. 分发服务器配置成功)
  6. 在GOCEAN-LEE\SQL2000中发布数据库
  连接上GOCEAN-LEE\SQL2000,步骤如下:
  http://images.iyunv.com/cnblogs_com/jason-lee/SQL
(图16. 选择“新建发布”)
http://images.iyunv.com/cnblogs_com/jason-lee/SQL
(图17. 新建发布向导)
http://images.iyunv.com/cnblogs_com/jason-lee/SQL
(图18. 添加GOCEAN-LEE\SQL2005作为分发服务器)
http://images.iyunv.com/cnblogs_com/jason-lee/SQL
(图19. 已将GOCEAN-LEE\SQL2005添加分发服务器)
http://images.iyunv.com/cnblogs_com/jason-lee/SQL
(图20. 输入建立分发服务器时设立的密码)
http://images.iyunv.com/cnblogs_com/jason-lee/SQL
(图21. 选择要发布的数据库,不能发布系统数据库)
http://images.iyunv.com/cnblogs_com/jason-lee/SQL
(图22. 选择合适的发布类型)
http://images.iyunv.com/cnblogs_com/jason-lee/SQL
(图23. 选择数据库中需要发布的对象)
http://images.iyunv.com/cnblogs_com/jason-lee/SQL
(图24)
http://images.iyunv.com/cnblogs_com/jason-lee/SQL
(图25. 选择合适的生成数据库快照的时间调度)
http://images.iyunv.com/cnblogs_com/jason-lee/SQL
(图26)
http://images.iyunv.com/cnblogs_com/jason-lee/SQL
(图27. 输入发布数据库的名称)
http://images.iyunv.com/cnblogs_com/jason-lee/SQL
(图28. 数据库发布成功)
http://images.iyunv.com/cnblogs_com/jason-lee/SQL
(图29. 在”复制”à”本地发布”节下可以看到发布的数据库)
  7. 在GOCEAN-LEE\SQL2005中订阅数据库
  连接上GOCEAN-LEE\SQL2005,执行如下操作:
  http://images.iyunv.com/cnblogs_com/jason-lee/SQL
(图30. 选择“新建订阅”)
http://images.iyunv.com/cnblogs_com/jason-lee/SQL
(图31. 新建订阅向导)
http://images.iyunv.com/cnblogs_com/jason-lee/SQL
(图32. 添加GOCEAN-LEE\SQL2000作为发布服务器)
http://images.iyunv.com/cnblogs_com/jason-lee/SQL
(图33. 已将GOCEAN-LEE\SQL2000添加为发布服务器)
http://images.iyunv.com/cnblogs_com/jason-lee/SQL
(图34)
http://images.iyunv.com/cnblogs_com/jason-lee/SQL
(图35. 选择或者新建数据库,作为订阅数据库)
http://images.iyunv.com/cnblogs_com/jason-lee/SQL
(图36. 点击省略号http://images.iyunv.com/cnblogs_com/jason-lee/SQL设置代理安全性)
http://images.iyunv.com/cnblogs_com/jason-lee/SQL
(图37. 设置代理安全性)
http://images.iyunv.com/cnblogs_com/jason-lee/SQL
(图38. 已设置完分发代理安全性)
http://images.iyunv.com/cnblogs_com/jason-lee/SQL
(图39. 设置同步计划)
http://images.iyunv.com/cnblogs_com/jason-lee/SQL
(图40. 设置初始化订阅)
http://images.iyunv.com/cnblogs_com/jason-lee/SQL
(图41)
http://images.iyunv.com/cnblogs_com/jason-lee/SQL
(图42. 完成订阅向导)
http://images.iyunv.com/cnblogs_com/jason-lee/SQL
(图43. 已成功建立数据库订阅,可以在”复制”à”本地订阅”节点下看到所订阅的数据库)
http://images.iyunv.com/cnblogs_com/jason-lee/SQL
(图44. 已同步到GOCEAN-LEE\SQL2005数据库publishDB中的表dbo.productInfo及其数据)
  至此,已经完成了从SQL Server 2000数据库向SQL Server 2005数据库复制数据的操作,可以通过向2000数据库中更新数据以查看是否已成功配置数据库复制,结果表明当更新GOCEAN-LEE\SQL2000中数据时,在短时间内则将更新的数据同步复制到GOCEAN-LEE\SQL2005中。
                           Jason Lee
                           2008.03.19于Gocean
页: [1]
查看完整版本: 从SQL Server 2000向SQL Server 2005迁移数据库(复制)