SqlServer双机热备技术实践笔记

SqlServer双机热备,大体上可以通过发布订阅,日志传送,数据库镜像来实现。

1,发布--订阅

是最早最简单的方案,但需要注意发布的时候,发布进程必须对快照目录有访问权限,这个问题可以从“查看快照代理状态”看到相关提示。

在查看代理日志的时候,有可能发现代理未运行,错误提示:进程无法在“WIN-XXX”上执行“sp_replcmds”。

此时应该执行下面的命令:

USE [发布的数据库]
EXEC sp_changedbowner 'sa';

这里要求在配置代理安全性的时候,日志读取器代理--安全设置--连接到发布服务器,使用 sa 账号登陆

2,日志传送

可以参考下面的资料:   SQL Server 双机热备1(based on log shipping)   http://blog.csdn.net/isoftk/article/details/1914175   采用日志传送的方式实现

3,数据库镜像

使用数据库镜像,可以做到数据库高可用,具体参考下面几篇文章:

1),windows_server2008+SQL_server2008双机热备实例   http://www.doc88.com/p-2052060058186.html   采用故障转移群集实现

2),数据库镜像概述   https://msdn.microsoft.com/zh-cn/library/ms189852(v=SQL.90).aspx   采用镜像实现备份

3),数据库镜像部署   http://www.doc88.com/p-690922020761.html   http://liulike.blog.51cto.com/1355103/339183

注意:如果不使用Windows域账号,在开始镜像的时候,绝大多数情况下都会出现 1418号错误,按照网上有关方法操作,也难以成功。

4,使用SqlServer 2012的 AlwaysOn 功能

AlwaysOn功能是最新的SQLSERVER高可用技术(HA),它实际上还是依赖于数据库镜像,详细请参考下面资料:   http://wenku.baidu.com/link?url=BX-Io-x-3n-SGmQELT14iTuJoW_6sv9VveGvUE4yu2cHvSdhmU8lGVTki2_F2xIGmO-Dt7QWYaWBS8sokscOEhDVkQienmhrLMEkzuAsQMK&qq-pf-to=pcqq.group

5,双机热备的数据访问

如果成功实现了双机热备,做到了HA,当主数据库服务器宕机后,有人会说,两个数据库,IP地址都不一样,怎么写连接代码呢?难道出现故障后要手动更改代码吗?

有2种方案:

1)用zookeeper监测,主机挂掉,自动会切换到备用机上。应用程序访问zookeeper提供的虚拟地址。

2)其实使用ADO.NET或者SQL Native Client能够自动连接到故障转移后的伙伴,连接字符串如下所示: ConnectionString="DataSource= A;Failover Partner=B;Initial Catalog=AdventureWorks;Integrated Security=true;" DataSource= A; 这样设置之后,客户端就可以自动切换数据库了

方案 2)请详细参考 http://www.cnblogs.com/lhws/p/3772110.html

 

转载于:https://www.cnblogs.com/bluedoctor/p/5197586.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/396799.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安徽大学计算机教学平台c语言作业,安徽大学计算机教学部练习题与答案1.pdf

一、计算机基础知识1.下列叙述中,不是电子计算机特点的是_D____。A.运算速度快 B.计算精度高 C.高度自动化 D.逻辑判断能力差2.现代电子计算机的本质工作原理是__D___。A.能进行算术运算 B.运算速度高 C.计算精度高 D.存储并自动执行程序3.微型计算机的型号主要是以…

grep 显示包含两个关键字_linux三剑客之-grep

一、grep简介1.介绍全局查找正则表达式并且打印结果行的命令。2.输入一个文件或者一个标准输入(stdin),或者是一个“-”连字符()。3.输出打印在屏幕上4.grep家族扩展命令egrep、fgrep二、 Grep命令的应用1.命令格式grep [选项] 模式 [文件…]例如:grep root /etc/pa…

Python装饰器的实现原理

Python中的装饰器是通过利用了函数特性的闭包实现的,所以在说装饰器之前,我们需要先了解函数特性,以及闭包是怎么利用了函数特性的。 1.函数特性 Python中的函数特性总的来说有四点: 1.函数作为变量传递 def add(x):return x 1a add 2.函数…

c语言注释说明被计算机编译系统忽略,C语言程序设计(陈艳 2019-2020-2)-中国大学mooc-题库零氪...

第1章 C语言概述第1讲 C语言概述随堂测验1、程序 #include void main() { printf("Hello, world!\n"); } 经过编译运行会在显示器上输出 Hello, world! 如果希望输出:Nice to meet you. 则应使用Nice to meet you.替换( )。A、voidB、mainC、p…

React文档(五)组件和props

组件可以让你将UI分割成独立的,可复用的模块,然后考虑将每个模块彼此隔离。从概念上理解,组件就像js中的函数。他们接受随意的输入(被称为props)然后返回React元素来描述屏幕上应该出现什么。 函数式和类式组件 定义一…

Windows 应用容器化

背景 在这个时间点,我们可能已经对 Linux 容器使用已经达到熟练掌握的程度,因为 Docker 与 Kubernetes 都是最早为 Linux 平台设计。当我们从容器这项技术中体会到种种收益,对于我们的 windows 的应用是否也能利用容器技术简化我们的开发运维…

python安装函数库pip网址_批量安装python库函数---pip

android Sqlite小记 1.android.database.sqlite.SQLiteException: near "": syntax error (code 1): 语法错误,如果你的报了这个错误 ... win8 VB6打开提示MSCOMCTL.ocx未注册 从xp上复制相应的文件到win8相应的位置,如果是不可以,win8中反注册此控件,再注…

关于OC中的block自己的一些理解(二)

一、block延伸:页面间反向传值 1)first页面的代码 - (void)viewDidLoad {[super viewDidLoad];[self setupBtn];self.view.backgroundColor [UIColor whiteColor];} - (void)setupBtn {UIButton * btn [[UIButton alloc]init];[btn addTarget:self act…

C语言多项式乘法模拟,急!!!!c语言:求n次多项式的加法和乘法

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼if(s->data.coef!0.0){s->data.expnp->data.expn;r->nexts;rs;}pp->next;qq->next;break;case 1:s->data.coefq->data.coef;s->data.expnq->data.expn;r->nexts;rs;qq->next;break;}//switch}…

opengl 安装_如何使得支持 OpenGL 的 Flatpak 应用和游戏在专有 Nvidia 图形驱动下工作 | Linux 中国...

一些支持 OpenGL 并打包为 Flatpak 的应用和游戏无法使用专有 Nvidia 驱动启动。本文将介绍如何在不安装开源驱动(Nouveau)的情况下启动这些 Flatpak 应用或游戏。-- Logix这有个例子。我在我的 Ubuntu 18.04 桌面上使用专有的 Nvidia 驱动程序 (nvidia-driver-390)&#xff0c…

laravel -admin 禁止某一行删除

$grid->actions(function (Grid\Displayers\Actions $actions) {if ($actions->getKey() 1) {$actions->disableDelete();} });转载于:https://www.cnblogs.com/vinzen/p/9675823.html

thinkphp-where-数组条件-普通查询

语法Db::table(表名)->where(条件)->select();示例$map[name] thinkphp; $map[status] 1;// 把查询条件传入查询方法 Db::table(think_user)->where($map)->select();对应原始sqlSELECT * FROM think_user WHERE namethinkphp AND status1转载于:https://blog.51…

RequireJS入门(一)

RequireJS由James Burke创建,他也是AMD规范的创始人。 RequireJS会让你以不同于往常的方式去写JavaScript。你将不再使用script标签在HTML中引入JS文件,以及不用通过script标签顺序去管理依赖关系。 当然也不会有阻塞(blocking)的…

Oracle数据库中游标的游标的使用

本人不喜欢说概念啥的,就直接说明使用方法吧 案例1: 1 DECALRE2 --声明游标3 CURSOR C_USER(C_ID NUMBER) IS4 SELECT NAME FROM USER WHERE TYPEID C_ID;5 V_NAME C_USER%rowtype; --定义游标变量6 BEGIN7 OPEN C_USER(变量值); …

eclipse占用内存过大_idea被评最好用java开发工具,为什么用eclipse的人更多?

从事java开发一般都需要使用到一些开发工具,记得以前刚接触java的时候还用过MyEclipse。idea被评为最好用java开发工具,为什么用eclipse的人更多?下面一起来了解下吧!IDEA毕竟不便宜啊,很多企业都买不起只能用Eclipse了&#xff…

Asp.net mvc 知多少(六)

本系列主要翻译自《ASP.NET MVC Interview Questions and Answers 》- By Shailendra Chauhan,想看英文原版的可访问http://www.dotnettricks.com/free-ebooks自行下载。该书主要分为两部分,ASP.NET MVC 5、ASP.NET WEB API2。本书最大的特点是以面试问答…

数据结构c语言版总结,数据结构:C语言常见算法总结

【1】求最大值与最小值.#includevoid main(){int num[5],max,min,i;printf(\"请输入5个数字:\")for(i0;i<5;i)scanf(\"%d\",&num)maxnum[0];minnum[0];for(i1;i<5;i){if(maxmaxnum;if(min>num)minnum;}printf(\"最大值为:%d\",max)…

selenium选错弹出层的下拉框

要先选中这个弹出层的form元素&#xff0c;再找下拉框 public void downSelectBox(){driver.get("https://www.imooc.com/user/setprofile");driver.findElement(By.className("pull-right")).click();try {Thread.sleep(2000);} catch (InterruptedExcept…

python面向过程是基于面向对象的_Python5.1-面向对象与面向过程

面向对象&#xff1a; 将数据与函数绑定在一起&#xff0c;进行封装&#xff0c; 这样能够更快速的开发程序&#xff0c;减少了重复 代码的重写过程。 优点&#xff1a; 易维护、易复用、易扩展&#xff0c;由于面向对象有封装、继承、多态性的特性&#xff0c;可以设 计出低耦…

C语言 1A gt $20,C语言输出 1到20 的阶乘之和

除了调用库&#xff0c;绝对找不到比这更精简的代码了.#include#includelong long getdata(long long n){long long sum 1;while(n){sum*n--;}return sum;}int main(){long long sum 0;long long nums 20;while(nums){sumgetdata(nums--);}printf("%lld",sum);}【…