同步SQL Server 2000 数据库
为什么要同步SQL Server 2000 数据库,它都用在什么场合
- 数据实时备份同步,数据库服务器出问题时我们也有其正常工作时的备份
- 数据实时备份同步,一台服务器负载不起时,可以用来做负载均衡
- 数据实时备份同步,数据库服务器可以无间断,无损失迁移
- 主服务器被***或当机时另一台服务同步机可以应急
- 。。。。。可以说好处非常多的。暂时写这么多
SQL Server 2000 数据库同步配置的原理
和分发并进行同步以确保其一致性的一组技术。
发给远程或移动用户。复制还能够使用户提高应用程序性能,根据数据的使用方式物理
分隔数据(例如,将联机事务处理 (OLTP) 和决策支持系统分开),或者跨越多个服务
器分布数据库处理。
SQL复制的基本元素包括
发布服务器是提供数据以便复制到其它服务器的服务器。发布服务器可以具有一个或多个
发布,每个发布代表一组逻辑相关的数据。除了指定其中哪些数据需要复制之外,发布服
务器还检测事务复制期间发生更改的数据并维护有关此站点上所有发布的信息。
分发服务器是作为分发数据库宿主并存储历史数据和/或事务以及元数据的服务器。分发
服务器的角色根据执行的复制类型而不同。有关更多信息,请参见复制类型。
远程分发服务器是独立于发布服务器并配置为复制的分发服务器的服务器。本地分发服务
器是既配置为复制的发布服务器又配置为复制的分发服务器的服务器。
订阅服务器是接收复制数据的服务器。订阅服务器订阅的是发布而不是发布中分离的项目;
并且订阅服务器只订阅其需要的发布,而不是发布服务器上所有可用的发布。根据复制的类
型和所选择的复制选项,订阅服务器还可以将数据更改传播回发布服务器或将数据重新发布
到其它订阅服务器。
发布是一个数据库中的一个或多个项目的集合。这种多个项目的分组使得指定逻辑相关的一
组数据和数据库对象以一起复制变得更容易。
项目是指定要复制的数据表、数据分区或数据库对象。项目可以是完整的表、某几列(使用垂
直筛选)、某几行(使用水平筛选)、存储过程或视图定义、存储过程的执行、视图、索引视图
或用户定义函数。
订阅是对数据或数据库对象的复本的请求。订阅定义将接收的发布和接收的时间、地点。订阅的
同步或数据分发可以由发布服务器(强制订阅)或订阅服务器(请求订阅)请求。发布可以支持
强制订阅和请求订阅的混合。
SQL复制的工作原理
SQL SERVER 主要采用出版物、订阅的方式来处理复制。源数据所在的服务器是出版服务
器,负责发表数据。出版服务器把要发表的数据的所有改变情况的拷贝复制到分发服务器
分发服务器包含有一个分发数据库,可接收数据的所有改变,并保存这些改变,再把这些
改变分发给订阅服务器
精品版SQL Server 2000 数据库同步配置
1、快照复制
2、事务复制
3、合并复制
下介绍实现复制的步骤。(以快照复制为例)
我的电脑
--控制面板
--管理工具
--计算机管理
--用户和组
--右键用户
--新建用户
--建立一个隶属于administrator组的登陆windows的用户
--右键这个新建的目录
--属性--共享
--选择"共享该文件夹"
--通过"权限"按纽来设置具体的用户权限,保证第一步中创建的用户具有对该文件夹的所有权限
--确定
--右键SQLSERVERAGENT
--属性--登陆--选择"此账户"
--输入或者选择第一步中创建的windows登录用户名
--"密码"中输入该用户的密码
--右键SQL实例--属性
--安全性--身份验证
--选择"SQL Server 和 Windows"
--确定
企业管理器
--右键SQL Server组
--新建SQL Server注册...
--下一步--可用的服务器中,输入你要注册的远程服务器名 --添加
--下一步--连接使用,选择第二个"SQL Server身份验证"
--下一步--输入用户名和密码(一般是sa,密码最好设置一下非常复杂的)
--下一步--选择SQL Server组,也可以创建一个新组
--下一步--完成
(在连接端配置,比如,在订阅服务器上配置的话,服务器名称中输入的是发布服务器的IP)
开始--程序--Microsoft SQL Server--客户端网络实用工具
--别名--添加
--网络库选择"tcp/ip"--服务器别名输入SQL服务器名
--连接参数--服务器名称中输入SQL服务器ip地址
--如果你修改了SQL的端口,取消选择"动态决定端口",并输入对应的端口号
b. 从 [工具] 下拉菜单的 [复制] 子菜单中选择 [发布、订阅服务器和分发] 命令
c. 系统弹出一个对话框点 [下一步] 然后看着提示操作
--直到"指定快照文件夹"
--在"快照文件夹"中输入准备工作中创建的目录: \\<服务器名>\pub
一[下一步] 直操作到完成。
d. 当完成了出版服务器的设置以后系统会为该服务器的树形结构中添加一个复制监视器
同时也生成一个分发数据库(distribution)
a. 选中指定的服务器
b. 从 [工具] 菜单的 [复制] 子菜单中选择 [创建和管理发布] 命令。此时系统会弹出
一个对话框
c. 选择要创建发布的数据库,然后单击 [创建发布]
d. 在 [创建发布向导] 的提示对话框中单击 [下一步] 系统就会弹出一个对话框。对话
框上的内容是复制的三个类型。我们现在选第一个也就是默认的快照发布(其他两个
大家可以去看看帮助)
e. 单击 [下一步] 系统要求指定可以订阅该发布的数据库服务器类型,SQLSERVER允许在
不同的数据库如 ORACLE或ACCESS之间进行数据复制。但是在这里我们选择运行
"SQL SERVER 2000"的数据库服务器
f. 单击 [下一步] ,选择要发布的对象(如表,视图,存储过程,一般是表)
g. 然后 [下一步] 直到操作完成。当完成出版物的创建后创建出版物的数据库也就变成了
一个共享数据库。
a. 选中指定的订阅服务器
b. 从 [工具] 下拉菜单中选择 [复制] 子菜单的 [请求订阅]
c. 按照提示单击 [下一步] 操作直到系统会提示检查SQL SERVER代理服务的运行状态,执行
复制操作的前提条件是SQL SERVER代理服务必须已经启动。(选择一发布服务器,然后选择你要的一个发布,一次只能添加一下,然后新建一个同名的数据库,一路下一步就可以了,其它数据库也这样来。操作过程中可能会出现说服务器不支持匿名什么来着,需要在发布服务器上右击一个发布,订阅选项,允许匿名请求订阅选中就可以了。)
d. 单击 [完成] 完成订阅操作。
这里可以通过这种方法来快速看是否成功。
展开出版服务器下面的复制——发布内容——右键发布内容——属性——击活——状态然后点立即运行代理程序接着点代理程序属性击活调度
把调度设置为每一天发生,每一分钟,在0:00:00和23:59:59之间。
接下来就是判断复制是否成功了打
开C:\Program Files\Microsoft SQL Server\MSSQL\REPLDATA\unc\XIAOWANGZI_database_database下面
看是不是有一些以时间做为文件名的文件夹差不多一分中就产生一个。
要是你还不信的话就打开你的数据库看在订阅的服务器的指定订阅数据库下看是不是看到了你刚才所发布的表
从0开始一步一步配置SQL Server 2000 数据库同步,非常细
--》否,因为这个路径是没办法请求订阅的代理程序,咱们建一个文件夹D:\ReplData,在这个文件夹的属性里设置“共享此文件夹”,点击“权限”设置everyone为完全。--》确定后退出--》返回咱们刚才的“快照文件夹”,在里边 输入“\\SEOGIRL\ReplData”--》下一步--》下一步--》完成--》关闭
“SEOGIRL”上的 SQL Server 代理使用系统帐户,所以服务器之间的 SQL Server 复制将会失败。若要在服务器之间使用复制,请选择另一个服务器器作为“SEOGIRL”的分发服务器。
“SQL120”不是有效的 Windows NT 名称。请给出完整名称: <域\用户名>。
错误 15407: 'administrator' 不是有效的 Windows NT 名称。请给出完整名称: <域\用户名>。
另一个是 否,我将手工启动 SQL server 代理服务器
然后选那个呢?
我两个都试过了 然后出现快照文件夹
\\XXLJD\F$\Program Files\Microsoft SQL Server\MSSQL\ReplData
系统提示 不是有效的文件名或路径
接下去就弄不了 哪位大哥帮帮忙啊
另一个是 否,我将手工启动 SQL server 代理服务器
说明:这个选择是或者否都可以。是:则系统自己启动代理服务器
否:你自己手工的启动代理服务器
这就是区别。
2。
\\XXLJD\F$\Program Files\Microsoft SQL Server\MSSQL\ReplData
系统提示 不是有效的文件名或路径
这样修改:1。创建一个文件夹在ntfs分区上,如:D:\ReplData
2.共享这个文件夹 --右击文件夹-属性-共享
3。同时在相同的界面-有权限-设置为everyone-完全控制的权限
这样就可以了。
4.路径里输入\\计算机名\ReplData
配置SQL Server 2000 数据库同步时的 常见问题
******************************************************************************
我是如何设置的:
1。准备工作
设置一个公用目录并保证2台服务器有权限。
2。右键发布服务器——属性——复制——配置——创建分发服务器,并设定发布服务器和发布数据库,
然后给予订阅服务器权限。
3。依次展开:发布服务器——将要发布的数据库——右键发布内容——新建发布。
4。右键刚刚建立的发布——属性——状态——立即运行代理程序——代理程序属性中设置调度并启动。
4。右键刚刚建立的发布——属性——订阅——强制新建。
准备工作:
>>数据的同步中主要考虑的三部分,可以理解成三台主机。发布服务器,分发服务器和订阅服务器;可以从字面的意思理解,要实现的功能实际就是让订阅服务器通过分发服务器保持数据及时地和发布服务器上的数据一致。整个执行过程是这样一来的:
a.订阅服务器应该有个初始化,一般来说我们开始做这个同步任务的时候,发布服务器已经有了相当的数据量了,而我们的订阅服务器应该是新建的服务。即使发布中没有数据,也需要把他的数据库结构初始化到订阅服务器上。
b. 我采用的是事物复制,发布服务器的数据发生变化后,相当于触发了一个更新操作,而事物复制可以在设定的时间把数据更新的操作更新到订阅服务器中去。当然, 这个操作需要经过分发服务器。在我的测试中,我是把发布服务器和分发服务器设置为同一台主机,可以顺利实现数据在数分钟内同步。
>>如果说对Windows系统有所要求的话,就应该保证这三个服务器(发布,分发,订阅)在同个域中,以同一个域管理员帐号身份运行,操作如下:
a.进入相应的服务器,控制面板->服务->SQLSERVERAGENT,设置登录,三台服务器同样设置。
>>配置发布服务器和分发服务器:
a.选中对应服务器的注册名->工具->复制->配置发布、订阅和分发,直接按照默认设置向下执行,直到完成。关闭。
b. 再一次选中这个服务器服务器的注册名->工具->复制->配置发布、订阅和分发,可以看到这次界面和步骤a中的界面有所不同,我们只需 要配置一下 发布服务器,发布数据库,订阅服务器。(我的发布数据库采用的是事物性的)。点“确定”完成操作。<标记P>
> >创建发布,可以选中相应的注册,用工具->复制->创建和管理发布或者在该注册下面的 复制->发布内容 选中后,在右边空白处,右键,新建发布,来创建你的发布。我选择的是事物发布,按照默认设置,选择你要发布的表或其他对象,其他地方不需要修改,直到完成 操作。
>>修改发布属性:选择“状态”->立即运行代理程序;代理程序属性->设置你的调度,比如一分钟一次。(调度->编辑->更改;通知->写入windows应用程序事件日志),"确定"完成操作。
>>创建订阅:选择发布服务器对应的注册,复制->发布内容->在这个内容上右键,强制新订阅,->"下一步",选择订阅服务器(在标记P那一步选择的订阅服务器)->“下一步”->选择你有的数据库,或者新建一个数据库
->"下一步"-> 修改你需要的调度->按照默认设置,直到完成。
选中你发布的内容,设置属性,在“状态”中“立即运行代理程序”,这样的话,数据会马上同步过去的。
转载于:https://blog.51cto.com/dadekey/120310
相关文章:

【Leecode】两数相加
学习了链表结构,链表中元素的访问,对象指针的初始化与赋值,链表的创建(多个节点链接起来),进位计算的表达。 100ms /*** Definition for singly-linked list.* struct ListNode {* int val;* ListN…

推荐一个HTML的语法高亮解析器
http://code.google.com/p/syntaxhighlighter/wiki/Languages支持高亮的语法如下Language Aliases C cpp, c, c C# c#, c-sharp, csharp CSS css Delphi delphi, pascal Java java Java Script js, jscript, javascript PHP php Python py, python Ruby rb, ruby, rails, ror S…

angularJS中directive与controller之间的通信
当我们在angularJS中自定义了directive之后需要和controller进行通讯的时候,是怎么样进行通讯呢? 这里介绍3种angular自定义directive与controller通信的指令。 1.指令作用域中的"" 作用:把当前属性作为字符串传递实现指令与html页…

Eclipse启动失败:No java virtual machine was found after searching the follwing locations
Eclipse启动失败,错误信息如下如所示: 通过阅读错误信息,可以看到错误原因和 javaw.exe路径 有关; 打开eclipse.ini文件,也就是启动Eclipse的初始化文件: 在本地计算机中找到jdk安装路径下javaw.exe文件&a…

Cisco路由器安全配置必用10条命令
当谈到配置一台新的cisco路由器,多数配置依赖于路由器的类型以及它将服务的用途。然而,每位管理员都有其自己的“正确”配置每台路由器的命令列表。笔者将和你分享他自己配置路由器的十条命令列表。<?xml:namespace prefix o ns "urn:schemas…

Tensorflow学习教程------模型参数和网络结构保存且载入,输入一张手写数字图片判断是几...
首先是模型参数和网络结构的保存 #coding:utf-8 import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_datamnist input_data.read_data_sets(MNIST_data,one_hotTrue) #每个批次的大小 batch_size 100 n_batch mnist.train._num_examples // ba…

IntelliJ IDEA乱码问题解决方法
目录 1、设置文件编码 2、设置控制台编码 3、设置Tomcat Server编码 4、修改配置文件编码内容 1、设置文件编码 第1步:打开IDEA,依次点击File、Settings... 打开Setting窗口; 第2步:在Settings窗口中,依次点击Ed…

Windows 7的CMD中 Telnet 无法执行的解决办法
在Windows 7的CMD中,执行telnet 192.168.1.10 80 会提示没有这个命令的提示,这是因为Win7默认是没有安装Telnet的(在以往的WINDOWS系统中都是默认安装的)。解决办法:在Win7中,进入控制面板,然后…

Qt——模态、非模态
模态: 只能操作对话框非模态:要使用 QDialog *_d new QDialog();_d->setattribute(Qt::WA_DeleteOnClose);_d->show();转载于:https://www.cnblogs.com/yangxinrui/p/10515249.html

c# 取两个时间的间隔
c#可以取两个时间的年月日时分秒之间的间隔,不受跨年月的影响。声明一个 TimeSpan System.TimeSpan ts dtNightEnd.Subtract(dtAmStart); dtNightEnd是原始时间 减去 dtAmStart 这个时间 获得一个TimeSpan TimeSpan 自带了间隔属性 ts.Days.ToString(); ts.Hours.…

MySQL数据表命令
显示表的相关信息: show table status like "表名"; show table status like "表名" \G 格式化,以记录条目形式显示,更清晰 注意:\G后面不能加分号,不然会出现查询错误。因为\G在…

undefined reference to 'pthread_create'问题解决(转)
undefined reference to pthread_createundefined reference to pthread_join问题原因:pthread 库不是 Linux 系统默认的库,连接时需要使用静态库 libpthread.a,所以在使用pthread_create()创建线程,以及调用 pthread_atfork()函数…

C语言程序设计第一次作业
(一)实验总结 1.圆的面积和周长问题 (1)题目: 输入圆的半径,计算圆的周长和面积。 (2)流程图 (3)测试数据及运行结果 (4)实验分析 问题…

U盘中毒,无法删除System Volume Information文件夹
情景:U盘中毒,U盘内的文件夹名称变成.exe后缀,且多出一个名为System Volume Information的文件夹,对U盘进行格式化后,所有文件消失,当拔出U盘,再次插入电脑时,发现System Volume Inf…

用Javascript修正12个常见的浏览器问题
我们提倡尽可能使用CSS,而且我们常常能做到这一点。现代浏览器有很好的CSS支持-这无疑足够好让你使用CSS来控制布局和版面设计。但是有时候,某些网页元素在不同的浏览器会出现不同。 如果你不知道原因,不要过于担心,请研究CSS规则…

读书笔记之知识杂点
1.xx1,x1,x,哪个效率最高?为什么? xx1最低,因为它的执行过程如下: (1)读取右x的地址 (2)x1 (3)读取左x的地址 (4)将右值传给左边的x(编译器并不认为左右的x…

Codeforces.487C.Prefix Product Sequence(构造)
题目链接 \(Description\) 对于一个序列\(a_i\),定义其前缀积序列为\(a_1\ \mathbb{mod}\ n,\ (a_1a_2)\ \mathbb{mod}\ n,...,(a_1a_2...a_n)\ \mathbb{mod}\ n\)。 给定\(n\),求一个\(n\)的排列,使得该排列的前缀积序列是\([0,1,2,...,n-1]…

读取CSV文件内容,将其转换成JSON字符串输出
CsvToJsonUtil 工具类作用:读取CSV文件内容,将其转换成JSON字符串输出 转换工具类代码如下: package com.test.util;import java.io.*; import java.io.IOException;public class CsvToJsonUtil {/*** 根据文件路径读取CSV文件 返回String字…

component-scan和annotation-driven
<context:component-scan/>该xml配置作用是启动Spring的组件扫描功能,自动扫描base-package指定的包及其子文件下的java文件,如果扫描到有controller、Service、Repository、Component等注解的java类,就会将这些类注册为bean。指定的包…

“不亦乐乎”是“乐”还是“悦”?
看了六七年的《咬文嚼字》,在2009年的第一期第一次对其内容产生了巨大的质疑。这是《咬文嚼字》2009年第一期特稿:“《2008年十大语文差错》”,里面公布了《咬文嚼字》编辑部总结的2008年度十大语文差错: 一、“有朋自远方来&a…

mysql 数据操作 单表查询 where约束 between and or
WHERE约束 where字句中可以使用: 比较运算符:>< > < !between 80 and 100 值在80到100之间 >80 <100in(80,90,100) 值是80或90或100 满足这个条件就可以like egon%pattern可以是%或_,%表示任意多字符_表示一个字符…

查看计算机连接的WIFI密码
方法1:通过cmd命令获取 使用WinR组合键,打开命令提示符窗口,输入以下命令: netsh wlan show profiles WIFI名称 keyclear 或者 netsh wlan show profiles name"WIFI名称" keyclear 在输出的内容中,安全…

[VBScript] 自动删除2小时以前生成的文件
保存为deleteTempFiles.vbs,双击即可运行 dim folder, file, mFSO, subfolderSet mFSO CreateObject("Scripting.FileSystemObject") set foldermFSO.GetFolder("C:\Users\msautotestuser\AppData\Local\Temp") Delete files dim df For Each …

超市购物打印小票的简单程序 记录下来
做了2个版本的超市购物小票打印程序,做过记录一、C/S样图如下:其中 输入商品的编码 回车 将会调用该商品的信息,显示在下面的DataGridView中 ,DataGridView中数量是可以修改的,修改数量,下面的合计 将会自动计算 &…

Asp.net控件开发学习笔记(三)-控件开发基础
封装 在asp.net中,控件被分为两类.用户控件和自定义服务器控件。前者就是我们经常用来将一些可复用的内容封装成的.ascx文件。这里主要研究后者. 创建自定义服务器控件 创建自定义控件的第一步是选择以哪一个类作为基类来创建控件,Asp.net最常见的几个基…

Codeforces Round #447 (Div. 2) B. Ralph And His Magic Field 数学
题目链接 题意:给你三个数n,m,k;让你构造出一个nm的矩阵,矩阵元素只有两个值(1,-1),且满足每行每列的乘积为k,问你多少个矩阵。 解法:首先,如果n,m奇偶不同,且k-1时&…

剑指offer三十六之两个链表的第一个公共结点
一、题目 输入两个链表,找出它们的第一个公共结点。 二、思路 如果存在共同节点的话,那么从该节点,两个链表之后的元素都是相同的。也就是说两个链表从尾部往前到某个点,节点都是一样的。我们可以用两个栈分别来装这两条链表。一个…

Oracle数据库相关命令
从cmd窗口进入SQL命令行 sqlplus / as sysdba; 查询所有用户 (1)使用具有DBA权限的账号登录数据库。 (2)执行如下命令。 SQL> select username from dba_users; -- 或者使用如下语句 SQL> select * from all_users; 创…

实时传输协议(RTP)
RTP简介 RTP是一种提供端对端传输服务的实时传输协议,用来支持在单目标广播和多目标广播网络服务中传输实时数据,而实时数据的传输则由RTCP协议来监视和控制。 RTP定义在RFC 使用RTP协议的应用程序运行在RTP之上,而执行RTP的程序运行在UDP…

Windows LTSC、LTSB、Server 安装 Windows Store 应用商店
下载安装包 打开网址 https://store.rg-adguard.net/ 以 PackageFamilyName 方式搜索 Microsoft.WindowsStore_8wekyb3d8bbwe 根据系统选择对应的包,每一种都要下载 安装 在下载目录按住 shift 键,然后鼠标右键,打开 Powershell 执行安装命令…