SQL Server 2008 R2双机热备之发布、订阅实现实时同步实践过程

一、复制的功能概述  

       SQL Server 复制功能实现了主从库的读写分离,从而将主库的压力分解掉,主库就主要负责数据的增删改等,而从库主要负责查询。另外有了主、从库,也给生产数据增加了一层安全性,即备份。万一主库出了什么问题,从库却还在。

       本文主要讲述的是通过:发布-订阅的方式实现数据库的主、从分离。因此需要配置一个发布服务器与一个订阅服务器。其中发布服务器负责将数据分布到相应的订阅服务器上,而订阅服务器,则负责接收数据,并将数据整合、更新到自己库上,从而保证其数据与主库一样。下面将自己配置发布与订阅的流程以及遇到的问题详细记录如下。

二、搭建前准备

2.1、硬件准备

发布服务器SKTSEV001: (PC1),数据库服务名: SKTSEV001

订阅服务器SKTNB033: (PC2),数据库服务名:SKTNB033

2.2、搭建前环境准备

准备工作1: 配置机器名和数据库服库名是否一致

先检查PC1,PC2中的机器名和数据库服务名是否一致,这个很重要!

1.检查SQL Server 的服务器名称

use master go select @@servername select serverproperty('servername')

如果查出来的两个名字不一样,那就需要把他们的名字改成一样的(如果是一样的直接跳过此步骤

    if serverproperty('servername') <> @@servername begin declare @server sysname set @server = @@servername exec sp_dropserver @server = @server set @server = cast(serverproperty('servername') as sysname) exec sp_addserver @server = @server , @local = 'LOCAL' End

准备工作2:打开PC1 与 PC2 的共享访问

PC1:右下角任务栏网络图标右击—点击“打开网络和internet设置”— “网络和共享中心”—“更改高级共享设置”—点选“启用网络发现”“启用文件和打印机共享”—点击“确定”

PC2: 右下角任务栏网络图标右击—点击“打开网络和共享中心”—点击“更改高级共享设置”—点选“启用网络发现”“启用文件和打印机共享”

<strong>SQL Server 2008 R2双机热备之发布、订阅实现实时同步实践过程</strong>

准备工作3:防火墙开1433端口

PC1:右下角任务栏网络图标右击—点击“打开网咯和internet设置”—点击“WINDOWS防火墙”—确保“域网络”“专用网络”“公用网络”防火墙都有启用—点击“高级设置”—点击左侧“入站规则”—点击右侧“新建规则”—点选“端口”—下一步—点选“TCP”,“特定本地端口”输入“1433”—下一步—点选“允许连接”—下一步—勾选所有网络环境—下一步—“名称”输入“1433”—完成—此时在入站规则名称下能够看到1433

继续操作—右击“1433”—点击“属性”—点击“协议和端口”标签—将“协议类型”修改为“任何”—点击“确认”(经测试若不开启所有协议,订阅主机会查找不到发布主机)

PC2:右下角任务栏网络图标右击—点击“打开网络和共享中心”—点击“windows防火墙”—确保防火墙有启用—点击“高级设置”—点击左侧“入站规则”—点击右侧“新建规则”—点选“端口”—下一步—点选“TCP”,“特定本地端口”输入“1433”—下一步—点选“允许连接”—下一步—勾选所有网络环境—下一步—“名称”输入“1433”—完成—此时在入站规则名称下能够看到1433

继续操作—右击“1433”—点击“属性”—点击“协议和端口”标签—将“协议类型”修改为“任何”—点击“确认”

<strong>SQL Server 2008 R2双机热备之发布、订阅实现实时同步实践过程</strong>
<strong>SQL Server 2008 R2双机热备之发布、订阅实现实时同步实践过程</strong>

准备工作4:配置SQL ServerTCP/IP(PC1、PC2)

PC1: 在程序列表中打开“SQL Server 2016配置管理器”—打开“SQL server网络配置”—点击“SQL2016的协议”—右击右侧“TCP/IP”—点击“属性”—点击“IP地址”—将所有TCP Port改为“1433”,在用IP地址的enable改为“是”

<strong>SQL Server 2008 R2双机热备之发布、订阅实现实时同步实践过程</strong>

PC2:开始—所有程序—microsoft SQL server 2008—配置工具—SQLserver配置管理器—打开“SQL server网络配置”—点击“SQL2016的协议”—右击右侧“TCP/IP”—点击“属性”—点击“IP地址”—将所有TCP 端口改为“1433”,在用IP地址的已启用改为“是”

准备工作5:Sql Server Browser 服务开启(PC1、PC2)

如果在SSMS工具中找不到局域网内的其他数据库服务器,可以开启这个功能

SQLserver配置管理器—打开“SQL server服务”—右侧右击“SQL ServerBrowser”—启动

<strong>SQL Server 2008 R2双机热备之发布、订阅实现实时同步实践过程</strong>

准备工作6:验证登陆用户(PC1、PC2)

两台主机都有cdgl此用户  且登陆密码相同

在程序列表打开“Microsoft SQL Server managerment studio+版本”—登陆本地数据—打开“安全性”—右击“登录名”—点击“新建登录名”—默认“windows身份验证”—点击“搜索”—输入“cdgl”查找(查找结果为主机名+cdgl)—点击“确定”—点击“确定”

<strong>SQL Server 2008 R2双机热备之发布、订阅实现实时同步实践过程</strong>

准备工作7:打开数据库远程访问(PC1、PC2)

在程序列表打开“Microsoft SQL Server managerment studio+版本”—登陆本地数据—

右击登陆数据库“数据库名”—点击“属性”—点击“连接”—勾选“允许远程连接到此服务器”—点击“确定”

<strong>SQL Server 2008 R2双机热备之发布、订阅实现实时同步实践过程</strong>

准备工作8:测试PC1、PC2能否互通(这里要用服务器名ping)

PC1:      ping         SKTNB033

                 telnet       SKTNB033      1433

PC2:      ping        SKTSEV001

                 telnet       SKTSEV001      1433

ping结果:

<strong>SQL Server 2008 R2双机热备之发布、订阅实现实时同步实践过程</strong>

这里一定要用服务器名去ping,如果服务器名ping不通后面就算订阅成功了数据也过不去,解决办法之一是配置host,找到 PC1服务器文件  c:windowssystem32driversetc下的hosts文件:(如果能ping的通则可忽略此步骤)

<strong>SQL Server 2008 R2双机热备之发布、订阅实现实时同步实践过程</strong>

在最后一行填上PC2服务器的ip 和主机名, 注意:ip和名字之间隔空格,这个ip可是是内网,也可以是公网

<strong>SQL Server 2008 R2双机热备之发布、订阅实现实时同步实践过程</strong>

 PC2配置同理:(如果服务器名能ping的通则可忽略此步骤)

在PC2服务器进行相同的操作主机上进行相同的添加host操作 ,将PC1服务器的ip 和主机名 添加到PC2服务器的hosts文件下面.

三、创建发布

使用sa账户登录PC1,打开复制-本地发布-点击“新建发布”

<strong>SQL Server 2008 R2双机热备之发布、订阅实现实时同步实践过程</strong>

点击下一步

<strong>SQL Server 2008 R2双机热备之发布、订阅实现实时同步实践过程</strong>

注意:.. ReplData这个文件夹是发布所在的文件夹,要保持访问权限,当在c盘时,有时可能会出现无法访问,我这里一般会给ReplData这个文件夹加上everyone权限

<strong>SQL Server 2008 R2双机热备之发布、订阅实现实时同步实践过程</strong>

 下一步:

<strong>SQL Server 2008 R2双机热备之发布、订阅实现实时同步实践过程</strong>

 选择后,点击下一步:

<strong>SQL Server 2008 R2双机热备之发布、订阅实现实时同步实践过程</strong>

 下一步,筛选一般不管,如果对数据同步频率要求比较高,则勾选“计划在以下时间运行快照代理”点击更改:

<strong>SQL Server 2008 R2双机热备之发布、订阅实现实时同步实践过程</strong>
<strong>SQL Server 2008 R2双机热备之发布、订阅实现实时同步实践过程</strong>

 下一步,点击安全设置:

<strong>SQL Server 2008 R2双机热备之发布、订阅实现实时同步实践过程</strong>

 点击“确定”—下一步—下一步—“发布名称”输入“DB Back”—点击“完成”—等待创建发布成功

<strong>SQL Server 2008 R2双机热备之发布、订阅实现实时同步实践过程</strong>

 四、本地订阅

 PC2(订阅主机)用sa账户登陆本地数据库—打开“复制”—右击“本地订阅”—点击“新建订阅”—打开“发布服务器”下拉列表—点击“查找sql server 发布服务器”

<strong>SQL Server 2008 R2双机热备之发布、订阅实现实时同步实践过程</strong>

下一步—点选“在发布服务器PC1上运行所有代理”—下一步—打开“订阅数据库下拉列表”—点击“新建数据库”

<strong>SQL Server 2008 R2双机热备之发布、订阅实现实时同步实践过程</strong>

“数据库名称”输入“DBAdmin”(PC2与PC1数据库名称相同)—点击“确定”—点击“完成”—点击“完成”—等待创建订阅

<strong>SQL Server 2008 R2双机热备之发布、订阅实现实时同步实践过程</strong>

 下一步,点击安全设置

<strong>SQL Server 2008 R2双机热备之发布、订阅实现实时同步实践过程</strong>

下一步,点击完成即可,等待创建完成:

文章来源:https://www.cnaaa.net,转载请注明出处:https://www.cnaaa.net/archives/7159

(0)
郭靖的头像郭靖
上一篇 2023年2月9日 下午2:21
下一篇 2023年2月13日 下午4:48

相关推荐

  • Oracle用户密码过期的处理方法

    受影响版本:Oracle11g以上版本。 导致密码消失的原因:Oracle 11g中默认的DEFAULT概要文件中口令有效期PASSWORD_LIFE_TIME默认值为180天。 当以客户端登陆Oracle提示ORA-28002,则基本可以确定登陆帐号已过有效期,使用具有DBA权限的帐号重置该帐号密码即可。 解决方法: 以下步骤以具有DBA权限用户操作 1.…

    2024年5月9日
    80200
  • MySQL性能优化,MySQL索引优化,order by优化,explain优化

    建表 优化一:全部用到索引 介绍 建立的复合索引包含了几个字段,查询的时候最好能全部用到,而且严格按照索引顺序,这样查询效率是最高的。(最理想情况,具体情况具体分析) SQL 案例 优化二:最左前缀法则 介绍 如果建立的是复合索引,索引的顺序要按照建立时的顺序,即从左到右,如:a->b->c(和 B+树的数据结构有关) 无效索引举例 SQL 案例…

    2023年8月28日
    1.2K00
  • windows server 2012上安装sql server 2008图文详解

    1.下载sql server 2008镜像文件 2.关闭防火墙 sql server 2008安装过程,检测安装进程会有报错,避免安装失败,这里先关闭防火墙 3.运行并安装程序 选择管理员身份运行 选择运行程序二不获取帮助 进入安装中心后选择 安装,再选择 全新安装 继续选择运行程序而不获取帮助 选择后如图,系统会自动检测系统,没警告说明可以定确定 输入密钥…

    2022年8月4日
    3.2K00
  • mysql innodb临时表btmp1文件太大

    某日生产环境(数据库实例)告警,磁盘使用率过高! 检查发现是由于mysql的data目录的ibtmp1文件太大,达到了30GB 一、ibtmp1文件是干嘛的? 就是用来存放临时表查询时的数据。 二、ibtmp1增长的原因是什么?主要与SQL有关,尤其是大量的分组聚合,排序,join查询SQL.通常如下情况会造成iptmp1上涨: 查询语句会先查询temp_t…

    2023年12月18日
    1.0K00
  • MYSQL分区

    一:概念 MySQL从5.1版本开始支持分区的功能。分区是指根据一定的规则,数据库把一个表分解成多个更小的、更容易管理的部分。就访问数据库的应用而言,逻辑上只有一个表或一个索引,但是实际上这个表可能由数10个物理分区对象组成,每个分区都是一个独立的对象,可以独自处理,可以作为表的一部分进行处理。分区对应用来说是完全透明的,不影响应用的业务逻辑。 二:分区优点…

    2024年6月3日
    93300

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

在线咨询: QQ交谈

邮件:712342017@qq.com

工作时间:周一至周五,8:30-17:30,节假日休息

关注微信