MsSqlServer 复制分发概述
Replication方案可以分为Snapshot Replication, Transactional Replication, Peer-2-Peer Replication, Merge Replication。
Snapshot Replication:一般用于对于数据库的一次性的完全复制。
Transactional Replication:用于主数据库向从数据库的单向复制。
具有可更新订阅的事务性发布: 发布服务器与订阅服务器可以独立修改,会定时合并
Merge Replication:可以把多个数据库中的数据进行合并后,复制到目标数据库。
注:发布服务器上需要建立一个windows账号,用来对分布产生的文件进行读取与写入,同时为了利用此账号访问发布数据库,所以需要在
SqlServer上创建此账号,具体是选择浏览,选择windows账号。同时为了使sql
server服务可以读写分布产生的文件,要将agent服务设置为此系统账号。
而订阅服务器上也要建立一windows账号,是为了增大agent服务的权限,及对订阅数据的写操作。
一、准备工作:
1.在分发与发发数据库上建立一个 WINDOWS 用户,设置为管理员权限,并设置密码,作为发布快照文件的有效访问用户。
2.在SQL SERVER下实现发布服务器和订阅服务器的通信正常(即可以互访)。打开1433端口,在防火墙中设特例
3.在发布服务器上建立一个共享目录,作为发布快照文件的存放目录。例如:在D盘根目录下建文件夹名为SqlCopy
4.设置SQL 代理(发布服务器和订阅服务器均设置) 打开服务(控制面板—管理工具—服务) —右击SQLSERVER AGENT—属性—登录—选择“此帐户“ —输入或选择第一步中创建的WINDOWS 用户 —“密码“中输入该用户密码
5.设置SQL SERVER 身份验证,解决连接时的权限问题(发布、订阅服务器均设置)
步骤为:对象资源管理器—-右击SQL实例—–属性—-安全性—-服务器身份验证——选“SQL Server和WINDOWS“,然后点确定
6.开启SQL Server 2005的网络协议TCP/IP和管道命名协议并重启网络服务。
7.在SQL Server中创建步骤1中对应的系统用户登陆名,作为发布数据库的拥有者(设置为dbo_owner和public)。
二、开始:
在分发服务器上建共享文件夹
1,分发服务器上,右击复制,建立分发,注意在指定快照路径时需是网络路径,如:\\192.168.16.204\sqlCopy
204为分发服务器。 若出现运行复制分发时 “由于出现操作系统错误 3,进程无法读…”
则要查看分发服务器属性中的快照与订阅服务器的快照是否指向了网络连接。
2,发布服务器上,右击复制-本地发布,建立发布
2,订阅服务器上,右击复制-本地订阅,建立发布,分发代理安全性中
在以下Windows账号下运行,此账号指订阅服务器的账号,或者选择代理
连接到分发服务器: 选择使用以下SQL Server登陆名 分发服务器所要发布的数据库拥有者的账号
发布服务器配置(在发布服务器上配置发布和订阅)
1. 选择 复制 节点
2. 右键本地发布 —-下一步———系统弹出对话框看提示—-直到“指定快照文件夹“
—-在“快照文件夹“中输入准备工作中创建的目录(指向步骤3所建的共享文件夹)——选择发布数据库——-选择发布类型——-选择订阅服务器类型——-选择要发布的对象——设置快照代理——-填写发布名称。
3. 右键本地订阅——–选择发布服务器——-选择订阅方式(如果是在服务器方订阅的话选择推送订阅反之选择请求订阅)——-填加订阅服务器——–选择代理计划(一般选择连续运行)———其余选择默认项。
注:1)
原先数据库的Release一般会分为三部分:1.表结构的变化(包括加/删表,加/删列);2.配置数据的装载(如添加新功能的配置数据);3.刷函数与存储过程脚本。
对于本项目中的Replication数据库,在Release过程中需注意以下几点:1.若新加的表需要进行Replication,除了在主数据库创
建表之外,还需配置此表进行Replicate,并进行初始化。2.若要删除某处于Replication的表,需先取消此表的Replication,
再在主、从库中drop此表。3.若需要加/删Replication表的列(此列不能为主键列)时,可以直接在主数据库上执行脚本,变化会自动
Replicate到从数据库。4.配置数据的装载也只需要在主数据库完成。5.函数与存储过程需要在主、从库上都进行刷新。
2)增加列、删除列不能直接在manage studio上面操作,否则出现无法对 表’frmUser’ 执行 删除,因为它正用于复制。 (.Net
SqlClient Data Provider,此时要用sql语句。sql server的说明是:对表进行架构更改时必须使用
Transact-SQL ,在 SQL Server Management Studio 中进行架构更改时,Management Studio
将尝试删除并重新创建表。因为无法删除已发布的对象,所以架构更改失败。
版权声明:本文为博主原创文章,未经博主允许不得转载。
MsSqlServer 复制分发概述的更多相关文章
- 基于iSCSI的SQL Server 2012群集测试(五)--镜像,作业,复制分发测试
7.1.镜像测试 群集可以正常镜像到非群集环境,本次测试采用,无见证服务器的sql server验证的镜像连接,不同的是群集环境的镜像IP是采用SQL Server虚拟IP进行通信连接. 群集服务器: ...
- MongoDB实战指南(六):MongoDB复制集之复制集概述
1. 复制集概述 数据库总是会遇到各种失败的场景,如网络连接断开.断电等,尽管journaling日志功能也提供了数据恢复的功能,但journaling通常是针对单个节点来说的,只能保证单节点数据的一 ...
- MSSQL复制分发对异构数据库之间大容量数据分发造成异常
由于历史遗留的问题,现有的架构中存在采用MSSQL的复制分发功能,从Oracle发布数据到MSSQL. 关于这项发布的实现原理,官方表述如下: Oracle 事务发布是通过使用 SQL Server ...
- SQL Server 事务复制分发到订阅同步慢
原文:SQL Server 事务复制分发到订阅同步慢 最近发现有一个发布经常出现问题,每几天就出错不同步,提示要求初始化.重新调整同步后,复制还是很慢!每天白天未分发的命令就达五六百万条!要解决慢的问 ...
- SQL SERVER2005 的三种复制类型概述
一.事务复制 事务性复制通常从发布数据库对象和数据的快照开始.创建了初始快照后,接着在发布服务器上所做的数据更改和架构修改通常在修改发生时(几乎实时)便传递给订阅服务器.数据更改将按照其在发布服务器上 ...
- LMAX Disruptor—多生产者多消费者中,消息复制分发的高性能实现
解决的问题 当我们有多个消息的生产者线程,一个消费者线程时,他们之间如何进行高并发.线程安全的协调? 很简单,用一个队列. 当我们有多个消息的生产者线程,多个消费者线程,并且每一条消息需要被所有的消费 ...
- mongoDB研究笔记:复制集概述
自我学习,仅供参考: 数据库总是会遇到各种失败的场景,如网络连接断开.断电等,尽管journaling日志功能也提供了数据恢复的功能,但journaling通常是针对单个节点来说的,只能保证单节点数据 ...
- mysql之 MySQL 主从基于 GTID 复制原理概述
一. 什么是GTID ( Global transaction identifiers ):MySQL-5.6.2开始支持,MySQL-5.6.10后完善,GTID 分成两部分,一部分是服务的UUid ...
- mysql 半同步复制~ 整体概述与改进
一 简介:今天来聊聊增强半同步复制这一强悍的特性 二 原理解析 1 AFTER_COMMIT(5.6默认值) master将每个事务写入binlog ,传递到slave 刷新到磁盘(relay log ...
随机推荐
- C语言之共用体
最近在复习C语言,特再次记录: 有时需要将几种不同类型的变量存放到同一段内存单元中.如一个int.float.char放在同一个地址开始的内存单元中.,也就是使用覆盖技术,几个变量相互覆盖,称之为共用 ...
- sublime开发php必备工具集合(mac)
sublime开发php必备工具集合(Mac) 相关链接:http://benmatselby.github.io/sublime-phpcs/ 目标: 直接在sublime中运行php代码 按PSR ...
- xpcall 安全调用
-- xpall (调用函数f, 错误函数fe[, 参数]) function fun(a,b) -- 这里的参数没什么实际作用,就是展示下用法 return a / bend -- xpc ...
- ajax data数据里面传一个json到后台的写法
$.ajax({ url:url+"/crm/contact", type:'PUT', ...
- ubuntu 上安装mysql
打开"终端窗口",输入"sudo apt-get install mysql-server mysql-client"-->回车-->输入" ...
- JQUERY添加、删除元素、eq()方法;
一.jQuery - 添加元素 1.append() - 在被选元素内部的结尾插入指定内容 2.prepend() - 在被选元素内部的开头插入指定内容 3.after() - 在被选元素之后插入内容 ...
- JavaSE坦克网络版
02.1.建立Server(保持这个TankServer一直运行) package server; public class TankServer { public static void main( ...
- 怎么实时查看mysql当前连接数
如何实时查看mysql当前连接数? 如何实时查看mysql当前连接数? .查看当前所有连接的详细资料: ./mysqladmin -uadmin -p -h10. processlist .只查看当前 ...
- validate
<?php $rules = [ "ip" => function ($var) {return ip2long($var);}, "email" ...
- sublime test 3 使用及常用插件
1.家里不能安装问题 公司可以安装,但回到家里安装不上 package control,看了是网络方面原因,具体就没去了解... 所有建议: 安装后在sublime text目录下 新建 Date目录 ...