zoukankan      html  css  js  c++  java
  • Replication--如何使用快照来初始化化请求订阅

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

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

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

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

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

    推送订阅的属性:

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

    请求订阅的属性:

    快照的位置有三种选项:

    1.默认位置

    2.备用文件夹

    3.FTP 文件夹

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

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

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

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

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

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

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

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

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

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

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

    如果SQLVM6$SQL2_REPDB2_REPDB2_TB120140122182502代表

    服务器:SQLVM6

    实例:SQL2

    数据库:REPDB2

    发布:REPDB2_TB1

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

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

    将快照文件拷贝到订阅服务器文件夹下,需主要保留文件夹的层次,SQLVM6$SQL2_REPDB2_REPDB2_TB120140122182502 这两层的目录名不能改变,如我将文件拷贝至订阅服务器上的“E:uncSQLVM6$SQL2_REPDB2_REPDB2_TB120140122182502”目录下(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方式不能压缩快照文件,因此会耗时较长,推荐将快照压缩后传递到订阅服务器,再使用"备用文件夹"来初始化。

  • 相关阅读:
    我的Ajax之旅(一):不能加载'AjaxControlToolkit'。。。拒绝访问
    网络编程(一):用C#下载网络文件的2种方法
    Locks
    Threads
    C语言中函数名和struct名可以重名!
    使用#include <pthread.h>
    APUE Chapter 7 (2)main函数的参数
    Creating a shared and static library with the gnu compiler [gcc][转]
    Signals
    APUE Chapter 7(3) – Memory layout of a C program
  • 原文地址:https://www.cnblogs.com/TeyGao/p/3530303.html
Copyright © 2011-2022 走看看