|
2006年11月17日
今天用SqlServer做了一个数据库同步,在此纪录以下,大家分享 操作系统:windows 2003 数据库: MS Sqlserver 2000
(以下内容摘自网络,其中红色部分是我添加的内容) MSSQL数据同步利用数据库复制技术实现数据同步更新 复制的概念 复制是将一组数据从一个数据源拷贝到多个数据源的技术,是将一份数据发布到多个存储站点上的有效方式。使用复制技术,用户可以将一份数据发布到多台服务器上,从而使不同的服务器用户都可以在权限的许可的范围内共享这份数据。复制技术可以确保分布在不同地点的数据自动同步更新,从而保证数据的一致性。 SQL复制的基本元素包括 出版服务器、订阅服务器、分发服务器、出版物、文章 SQL复制的工作原理 SQL SERVER 主要采用出版物、订阅的方式来处理复制。源数据所在的服务器是出版服务器,负责发表数据。出版服务器把要发表的数据的所有改变情况的拷贝复制到分发服务器,分发服务器包含有一个分发数据库,可接收数据的所有改变,并保存这些改变,再把这些改变分发给订阅服务器 SQL SERVER复制技术类型 SQL SERVER提供了三种复制技术,分别是: 1、快照复制(呆会我们就使用这个) 2、事务复制 3、合并复制 只要把上面这些概念弄清楚了那么对复制也就有了一定的理解。
接下来我们就一步一步来实现复制的步骤。 第一先来配置出版服务器 (1)选中指定[服务器]节点 (2)从[工具]下拉菜单的[复制]子菜单中选择[发布、订阅服务器和分发]命令 (3)系统弹出一个对话框点[下一步]然后看着提示一直操作到完成。 (4)当完成了出版服务器的设置以后系统会为该服务器的树形结构中添加一个复制监视器。同时也生成一个分发数据库(distribution) 注: 1.不能用local来创建出版服务器,必须用机器名或IP地址注册SqlServer服务器 2.必须开启SqlServer Agent 3.出版和发布服务器可以用同一个 4.启动Agent的账号必须改为其他具有Administrator权限的账号,否则可能无法读取某些目录,默认是使用系统账号
第二创建出版物 (1)选中指定的服务器 (2)从[工具]菜单的[复制]子菜单中选择[创建和管理发布]命令。此时系统会弹出一个对话框 (3)选择要创建出版物的数据库,然后单击[创建发布] (4)在[创建发布向导]的提示对话框中单击[下一步]系统就会弹出一个对话框。对话框上的内容是复制的三个类型。我们现在选第一个也就是默认的快照发布(其他两个大家可以去看看帮助) (5)单击[下一步]系统要求指定可以订阅该发布的数据库服务器类型,SQLSERVER允许在不同的数据库如 ORACLE或ACCESS之间进行数据复制。但是在这里我们选择运行"SQL SERVER 2000"的数据库服务器 (6)单击[下一步]系统就弹出一个定义文章的对话框也就是选择要出版的表 (7)然后[下一步]直到操作完成。当完成出版物的创建后创建出版物的数据库也就变成了一个共享数据库。
第三设计订阅 (1)选中指定的订阅服务器 (2)从[工具]下拉菜单中选择[复制]子菜单的[请求订阅] (3)按照单击[下一步]操作直到系统会提示检查SQL SERVER代理服务的运行状态,执行复制操作的前提条件是SQL SERVER代理服务必须已经启动。 (4)单击[完成]。完成订阅操作。 完成上面的步骤其实复制也就是成功了。但是如何来知道复制是否成功了呢?这里可以通过这种方法来快速看是否成功。展开出版服务器下面的复制——发布内容——右键发布内容——属性——击活——状态然后点立即运行代理程序接着点代理程序属性击活调度把调度设置为每一天发生,每一分钟,在0:00:00和23:59:59之间。接下来就是判断复制是否成功了打开C:\Program Files\Microsoft SQL Server\MSSQL\REPLDATA\unc\XIAOWANGZI_database_database下面看是不是有一些以时间做为文件名的文件夹差不多一分中就产生一个。要是你还不信的话就打开你的数据库看在订阅的服务器的指定订阅数据库下看是不是看到了你刚才所发布的表— 注: 1.我在订阅的时候,发现在要订阅的服务器的企业管理器上无法显示出发布服务器的订阅列表,但是在发布服务器上注册订阅服务器后可以正常看到订阅列表,所以,如果可以的话,所有操作在发布服务器上进行可能比较方便。 2.由于默认的快照发布方式使用共享目录的方式进行数据同步,而我这里的两台服务器位于internet网上,所以我选择了使用Ftp模式发布快照。
具体操作如下: 发布服务器端: A.选择 复制监视器--发布服务器--(服务器名)--已发布的数据库名 右健菜单 选择"属性" B.选择"快照位置"选项框,钩选"在下列位置中生成快照",选择"订阅服务器可以使用ftp",设置Ftp服务器访问属性,建议将ftp根目录设置为快照位置 C.选择"状态"选项框,点击"立即执行代理程序",以让设置马上生效,然后试一下浏览快照,如果一切设置正确,应该能看到快照内容,如果快照为空,说明没有需要同步的内容 订阅服务器端: A.选中要订阅的数据库,选择"请求订阅", B.选中右边列表里的订阅项目,右健设置属性 C.在快照文件位置选项框设置使用Ftp协议下载快照 在安全性选项框输入Sqlserver身份验证密码
遇见的问题: distributor_admin未在该服务器上定义为远程登录 解决: 因为distributor_admin未在该服务器上定义为远程登录配置发布和分发向导,最后完成时报错:配置分发服务器:未能连接到服务器,因为distributor_admin未在该服务器上定义为远程登录/我知道,我刚解决了,你肯定在装完SQL SERVER以后,改了计算机名,虽然sql server 还可以用,但一用复制时,SQL SERVER读取了旧的计算机实例名,不信,你试试select @@SERVERNAME显示出来的,肯定不是你现在的计算机名. 用sp_dropserver <(用select @@SERVERNAME显示出来的旧名)> go sp_addserver <你现在的计算机名>, LOCAL go 重启sql server服务
遇见的问题: Ftp无法检索文件"" 解决: 经过检查,因为发布和订阅服务器上设置了防火墙,而Sqlserver使用Ftp模式发布时默认采用port模式,意味着订阅服务器端必须开放端口,所以找到订阅服务器客户端所在进程为distrib.exe,将distrib.exe加入window防火墙的例外列表中,问题解决
遇见的问题: " 在 BCP 数据文件中遇到的意外的 EOF","字符串数据,右截位"错误 解决: 这是目前遇到的最郁闷的问题,网上四处查找,也没有发现特别好的方法。网上找到一个方法,就是将字段全改为n开头的,如varchar-->nvarchar, text-->ntext,似乎能解决点问题。 网上还有一个方法,发布时采用“异类数据源”,我没有试过,不知道可行不可行。
2006年9月23日
skype Rss提醒的机器人,搜索并添加anothr.com为好友,就可以加其为好友,这样,当登陆skype后,和机器人聊一下天,就可以享受Rss的更新提醒了,感觉挺温馨的。
2006年2月22日
关注CodeSmith很久了,最近终于下定决心开始使用这个工具。我用的是CodeSmith3.1版本。 说起来CodeSmith还真是个好东西,大大的方便了代码的编写。我也试着为当前的工程写了几个模版,还真他妈的好使。可是美中不足的是,每次我用中文打进去的文字,保存之后再打开就变成了??了,郁闷的很啊。于是上网找了找,看来抱怨这个问题的还挺多,不过没有找到什么好的解决方法。 还是自己动手,丰衣足食吧。于是花了点时间,重新编译了一下codeSmithStudio.exe,终于把问题解决了。 好东西不敢私藏,拿出来给大家分享。 希望大家能喜欢。
下载中文补丁包 包含(codeSmithStudio.exe 和CodeSmith30.lic)
2006年1月5日
最近研究了一下 Asp.net Forums.很早就听说了这个论坛,想来盛名之下,应该不错.其号称Asp.net论坛中的极品,自然有其强大之处. 但是,经过一段时间的摸索,算是略略的掌握了一些门道.却总觉得有些差强人意,有些话如骨鲠在喉,不吐不快啊. 稍稍的总结了一下,主要有以下几点阻碍了该论坛在国内的普及.
- 没有一个好的名字,一个好的论坛名字对论坛的发展会起到推动的作用,但是Asp.net Forums,这样的名字是很难说代表了什么的.这个名字有两个缺点.其一,Asp.net 只是说明了论坛开发语言的性质,而无法作为论坛的表示,所有用Asp.net开发的论坛都可以叫这个名字,以至于在搜索引擎中搜索时会出现大量无关的信息;其二,国人的论坛一般叫BBS而不叫Forums,很多人只知道bbs是论坛,而不知道forums是什么东西.
- 缺乏对Access的支持,当然这个可以通过扩充sql模块来实现,但如果对论坛不熟悉的话,这种工作无疑是十分困难的.诚然,论坛对sqlserver的支持非常好,但是要具备这种条件,对一些个人网站的站长来说几乎就是不可能的,而这些人真是论坛推广和发展的主力.所以,赶紧推出支持Access的版本,是很有必要的.
- 论坛功能欠强,由于这个论坛是标准的舶来品,而东西方用户之间的差异是十分明显的.国内流行的一些如威望,贡献值,虚拟形象等都是论坛必不可少的元素,这些真是Asp.net Forums论坛所缺乏的.
- 界面定制不直观,该论坛界面定制使用.ascx文件,这种文件其实就是标准的文本文件,但是应该很多(做界面的)人没见过这种格式,很自然的对其敬而远之,如果能把它改为.htm文件,就感觉亲切多了,当然也许那样的话,安全性就会稍稍的下降了.界面定制还有个问题,就是因为每个界面都有一个相应的.cs文件与之对应,而作者为了方便往往并不对界面上的元素的存在性进行判断,以至于经常出现界面上删除了一两个自以为无关紧要的控件后就出现对象为null的错误.我觉得,这样的设计,无疑是藕合关系太严重了.
- 糟糕的多语言支持,多语言支持是本论坛的一大亮点,但是正是为了这种配置的方便,使界面文件中看不到必要的描述性的文字,而代至于ResourceManager.GetString(),这样当我们想打开文件进行修改的时候,根本就无从下手,还得来回的看,到底那个是那个.我觉得,其实程序中用到的文字性的描述,应该用资源文件来定义,但是界面上的文字,就不用这样了,反正界面也是可以自己修改的嘛,而且反而简单.
- 代码冗余繁复,经过一段时间的学习和梳理,我发现其实现在论坛中的很多代码是没有用的,也许是修改的人太多的缘故,代码就像一件补了又补的衣服,很难让人有赏心悦目的感觉.
- 缺少插件机制,一个论坛的好坏,在很大程度上也需要具有良好的可扩充性,而方便高效的插件机制,在国内来说无疑是不可或缺的,可惜的是Asp.net Fourms的设计者过多的追求系统的效率而忽略了这方面的要求.
- 缺少免费空间的支持,现在支持asp.net的免费空间太少了,不过,这也不能算是论坛的错了.
不过,不管怎么说Asp.net Forums论坛还是一个很不错的论坛,只不过该如何将这个洋和尚改造成土和尚,还需要我们大家的努力.
2005年12月25日
昨天是平安夜,今天就是圣诞了. 我没有地方好去,总觉得自己是个很闷的人,总喜欢一个人玩电脑. 年纪也不小了,总还像个小孩子似的,什么是都喜欢弄个明白,也总是不会照顾自己,甚至让父母操心. 对于父母,我总觉得是对不起的,这么多年,总习惯一个人在外面闯荡,很少有照顾到他们的时候. 母亲结石开刀的时候,我在山东. 外婆去世的时候,我在深圳. 而现在,我到了杭州,却也是一年难得回去几次. 我不知道,我是否是在逃避些什么,或许是生活的无奈总让我无法担的起父母的期望 懦弱的我,总无法改变自己的命运. 圣诞是个快乐的日子, 可是我又能到什么地方去呢? 今天是个好日子,许个愿吧!
让上帝保佑我, 娶个好老婆, 赚好多钱, 买幢房子, 开着车子把父母接过来住!
哈里路亚.........
2005年11月29日
天开始冷了,又一年就快要过去了,这过去的一年,又是一事无成. 开始对什么都不再敏感了,心里面空虚的感觉却越来越重了. 哎,不知道自己在说些什么? 行到水穷处,做看云起时,人生几度春秋!
2005年9月28日
2005年7月13日
2005年6月12日
摘要: .XML Web services 行为使客户端脚本能够调用由 Microsoft .NET XML Web services 或其他支持简单对象访问协议 (SOAP) 的 Web 服务器公开的远程方法。
目的:提供一种简单的方法使用和利用 SOAP,而不需具有 SOAP 实现的专业知识。
阅读全文
2005年6月9日
今天打开hotmail,发现了微软的提示,因为你是重要用户,你的邮箱从2m提升到250m,最大附件由1m提升到10m,一阵狂喜。 点击继续,进入邮箱,左看右看,怎么看也只有25m,晕啊,Microsoft也不厚道哪!
|