这是一篇针对新人的知识普及文章,老人慎入!

在快照发布和事务发布中,SQL Server需要使用快照来将数据库某一时间点的数据传递给订阅,快照使用BCP的机制。

首先我们需要查看和设置快照的生成目录,在发布的属性里可以看到:

订阅方式有两种:请求订阅和推送订阅,两种订阅方式在初始化订阅和同步数据的运作方式不一样。

推送相对简单,订阅作业运行在分发服务器上,在快照生成后,SQL Server会自动访问快照并将BCP命令传递到订阅数据库上,无须额外设置。

推送订阅的属性:

请求订阅的订阅作业运行在订阅服务器上,快照生成后,需要设置订阅属性“快照位置”来指明如何获取快照数据

请求订阅的属性:

快照的位置有三种选项:

1.默认位置

2.备用文件夹

3.FTP 文件夹

要生成快照,选中发布,点击“查看快照代理状态”,然后点击“启动”,等待快照生产

快照生成在分发服务器上,在快照的目录下可以找到快照(快照目录\unc\[InstanceName_[ReplicationDatabaseName]_[ReplicationName]])

--=========================================================

使用"默认位置"来初始化

默认位置指的是快照生成的位置,以下情况下可以使用

1>如果订阅服务器和分发服务服务器是同一台机器

2>快照目录是共享目录,运行代理服务的账户对该共享目录有访问权限

如果满足以上两个条件之一,不需要额外设置便可以完成订阅初始化。

--=========================================================

使用“备用文件夹”来初始化订阅

将生成的快照拷贝到订阅服务器上,拷贝时利用文件夹的名称来区别是那个发布生成的订阅,在使用次级文件夹下的名称来确定快照生成的时间

如果SQLVM6$SQL2_REPDB2_REPDB2_TB1\20140122182502代表

服务器:SQLVM6

实例:SQL2

数据库:REPDB2

发布:REPDB2_TB1

快照时间:2014-01-22 18:25:02

仅拷贝需要的快照,这样可以提高效率

将快照文件拷贝到订阅服务器文件夹下,需主要保留文件夹的层次,SQLVM6$SQL2_REPDB2_REPDB2_TB1\20140122182502 这两层的目录名不能改变,如我将文件拷贝至订阅服务器上的“E:\unc\SQLVM6$SQL2_REPDB2_REPDB2_TB1\20140122182502”目录下(unc目录不可少),在将订阅属性“快照文件夹”设置为"E:\"

注意:SQL SEVER在查找文件时会在快照文件夹的目录下加一层目录"unc",因此只需要设置到"unc"的上级目录就可以

如果快照目录设置错误的话,我们可以可以查看订阅作业的历史记录来获得提示,如我将目录设置为“E:\unc”后的提示错误:

按照提示修改目录结构便可

在目录设置完成后,重启订阅作业,便可以开始初始化。

--==========================================================================

使用“FTP 文件夹”来初始化订阅

该方式需要在分发服务器上设置FTP来使得订阅端可以访问,使用"FTP"来传递快照时,会在快照文件的默认文件夹下生成一个ftp的目录(与unc目录同级)。

配置顺序:

1>在分发服务器上搭建FTP,并将FTP的登录用户的根目录指向快照目录(ftp目录和unc目录的上一级)

2>配置发布属性

如我的FTP路径为:ftp://192.168.1.27:21022/

则配置如下图:

SQL SERVER 访问ftp://192.168.1.27:21022/ftp/SQLVM6$SQL2_REPDB2_REPDB2-TB1/20140122202357/下的BCP文件

--==========================================================================

总结:

1>使用"默认位置"来初始化,简单易用,无须额外配置,但是适用场景有限。

2>使用"备用文件夹"来初始化,略微复杂,但可操作行强,可以使用多种方式将快照复制到订阅服务器,缺点是以后每次初始化都需要拷贝。

3>使用"FTP 文件夹"来初始化,相对复杂,如果FTP 用户的根目录配置不当,就会失败,优点是配置成功后,以后每次重新无须再做修改。

4>由于快照使用BCP文件来存放某一点的数据,因此数据较大时,快照文件会特别大,使用FTP方式不能压缩快照文件,因此会耗时较长,推荐将快照压缩后传递到订阅服务器,再使用"备用文件夹"来初始化。

Replication--如何使用快照来初始化化请求订阅的更多相关文章

  1. Replication--使用备份初始化订阅--请求订阅

    1. 修改发布属性"许从备份文件初始化"置为TRUE 脚本修改:USE [DB01]GODECLARE @publication AS sysnameSET @publicatio ...

  2. 在Sql2000 sql2005 sql2008 下已能实现事务复制的强制订阅,但请求订阅始终不能实现总有下列错误提示

    硬件环境 : 一台服务器 安装了 sqlserver2008 数据库 局域网还有一台机器 安装了 sqlserver2000数据库 两台server 通信 共享均没有问题 同步过程中遇到的问题  : ...

  3. uploadify 自动访问url 初始化 自动请求

    摘要: uploadify 自动请求url, 初始化时自动请求url解决方法. 项目中使用了uploadify 上传图片,当访问到上传页面url,uploadify初始化时再一次访问该url 当我在配 ...

  4. 2.SpringMVC源码分析:DispatcherServlet的初始化与请求转发

    一.DispatcherServlet的初始化 在我们第一次学Servlet编程,学java web的时候,还没有那么多框架.我们开发一个简单的功能要做的事情很简单,就是继承HttpServlet,根 ...

  5. SpringMVC源码分析3:DispatcherServlet的初始化与请求转发

    在我们第一次学Servlet编程,学java web的时候,还没有那么多框架.我们开发一个简单的功能要做的事情很简单,就是继承HttpServlet,根据需要重写一下doGet,doPost方法,跳转 ...

  6. echart 圆滑初始化化

    圆滑:主题下载对应主题js引入后注入对应名称参数方可使用主题 初始化:tab点击的时候初始化图表涉及到tab切换到的需要延迟加载否则默认宽度为100px 1.创建macarons.js文件 2.页面添 ...

  7. oracle初始化化表空间用户权限

    oracle单实例安装完毕,需要初始化表空间.用户.等信息.不积跬步,何以至千里! 用sys账户登录oracle数据库,以此来完成所有操作! 01.创建临时表空间 create temporary t ...

  8. django-rest-framework-源码解析002-序列化/请求模块/响应模块/异常处理模块/渲染模块/十大接口

    简介 当我们使用django-rest-framework框架时, 项目必定是前后端分离的, 那么前后端进行数据交互时, 常见的数据类型就是xml和json(现在主流的是json), 这里就需要我们d ...

  9. SQL SERVER Transactional Replication中添加新表如何不初始化整个快照

    在SQL SERVER的复制(Replication)中,有可能出现由于业务需求变更,需要新增一张表或一些表到已有的复制(发布订阅)当中,这种需求应该是很正常,也很常见的.但是在已有的复制(发布订阅) ...

随机推荐

  1. 关于ROS的MANGLE和ip route-rules-lookup的关系和区别

    mangle打出来的mark routing的优先级和lookup打出来的优先级是一样的.(你可以这么理解,lookup根据目的地址打出来的标签,其实跟在ip firewall-mangle打出来的是 ...

  2. PHP-fpm启动时 出现 PHP Warning: PHP Startup: Invalid library (maybe not a PHP library) 'fileinfo.so' in Unknown on line 0

    出现该问题的原因之一是: 在编译PHP时启用了fileinfo扩展(内置),但同时在php.ini文件中添加了: extension=fileinfo.so 去掉或注释之后,重启php-fpm,警告消 ...

  3. 好记性不如烂笔头-linux学习笔记1

    好记性不如烂笔头-linux学习笔记1 linux的文件系统有ext2,ext3,ext4,目前主流是ext4 linux主要用于服务器级别的操作系统,安装时需要至少2个分区 一个是交换分区,swap ...

  4. selenium webdriver——XPath 定位

    baidu.html代码如下 ....<form id="form" class="fm" action="/s" name=&quo ...

  5. np归纳总结(全)第一天

    1.概述 1.np.array()  # 将列表转换为数组 import numpy as np array = [1, 2, 3, 4, 5] array = np.array(array) 2.. ...

  6. Excel VBA入门(八)单元格边框

    本文基于以下文件 http://pan.baidu.com/s/1nvJtsu9 (部分)内容预览: 1. 边框样式 Sub cell_format() Dim sht As Worksheet Di ...

  7. Python all() 函数

    Python all() 函数  Python 内置函数 描述 all() 函数用于判断给定的可迭代参数 iterable 中的所有元素是否都为 TRUE,如果是返回 True,否则返回 False. ...

  8. 使用ES(elasticsearch) 搜索引擎

    介绍  https://blog.csdn.net/andyzhaojianhui/article/details/75195296 创建语句 { "company":{ &quo ...

  9. 关于ueditor使用说明

    1.后台配置文件config.json中的各种prefix,相对的都是网站(发布后的)的根目录, 2.需要在iis下将net文件夹转换为应用程序 3.<div>    <h1> ...

  10. Rigidbody中 Angular Drag (角阻力):

    Rigidbody中 Angular Drag  (角阻力):同样指的是空气阻力,只不过是用来阻碍物体旋转的.如果设置成无限的话,物体会立即停止旋转.如果设置成0,物体在上升过程中,会发生侧翻旋转. ...