T-SQL 镜像测试
- --======================================================
- ----镜像计划建立 2016-05-10 17:05:16.463 hubiyun
- ----======================================================
- --配置
- --1.主体服务器一台(包含主体数据库)、镜像服务器一台(包含镜像数据库)、见证服务器一台(可选,监控,故障自动转移)
- --2.主体数据库:提供客户端应用程序的连接,查询,更新,执行相关事务等,主体数据库要求使用完全恢复模式。
- --3.镜像数据库:持续同步来自主体数据库的事务,镜像数据库不允许任何的连接存在,但可以对其创建数据库快照来作为只读数据库,实现用户的相关查询操作。
- --4.见证服务器:可选的配置,用于高可用性操作模式,通过见证服务器自动侦测故障,实现角色切换和故障转移。一个见证服务器可以为多组镜像提供服务。
- --5.角色的转换:主体数据库与镜像数据库互为伙伴,当见证服务器侦测到主体服务器故障时,在高可用性模式下,实现故障自动转移后,会自动将主体服务器切换为镜像服务器角色,即角色发生了互换。
- --6.确保主体服务器和镜像服务器使用相同的版本,见证服务器可以使用相对应的任意版本的SQL server。
- --7.主体服务器的主体数据库设置为 FULL恢复模式。
- --步骤以及常见问题
- --1.主机192.168.2.152 镜像192.168.2.153
- --2.用于实现镜像的数据库为Performance
- --3.服务器d:mirror为共享文件夹,其中涉及的文件都放在该文件夹中
- --常见1418ERROR—》 开启RemoteDacEnabled、修改hosts文件、修改计算机DNS、telnet测试、修改xpstar.dll、xplog70.dll权限
- --使用管理-SQL SERVER日志来诊断具体问题
- --https://msdn.microsoft.com/en-us/library/ms191140.aspx
- --http://blog.csdn.net/whatday/article/details/8350709
- --http://www.cnblogs.com/mrhgw/p/3514855.html
- exec sp_configure 'show advanced options', 1
- reconfigure
- exec sp_configure 'xp_cmdshell', 1
- reconfigure
- exec sp_configure 'Ad Hoc Distributed Queries',1
- reconfigure
- --exec sp_addlinkedserver 'srv_lnk', '', 'SQLOLEDB','192.168.2.153'
- --exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'sa','sa'
- --go
- --exec sp_dropserver 'srv_lnk','droplogins'
- --go
- --=================
- ----1.数据同步
- ----===============
- --数据库备份
- use master
- go
- backup database Performance to disk = N'D:\mirror\Performance.bak'
- with format, init, name = N'Performance-Full Database Backup', skip, norewind, nounload, stats = 10
- go
- backup log Performance to disk = N'D:\mirror\Performance.bak'
- with noformat, noinit, name = N'Performance-Transaction Log Backup', skip, norewind, nounload, stats = 10
- go
- exec master..xp_cmdshell 'net use \\192.168.2.153\mirror Aa123456 /user:domain\Administrator'
- exec Master..xp_cmdshell 'copy D:\mirror\Performance.bak \\192.168.2.153\mirror\Performance.bak'
- go
- --数据库恢复
- use master
- go
- restore database Performance from disk = N'D:\mirror\Performance.bak'
- with file = 1,
- norecovery, nounload, replace, stats = 10
- go
- restore log Performance from disk = N'D:\mirror\Performance.bak'
- with file = 2, norecovery, nounload, stats = 10
- go
- --=================
- ----2.证书交换
- ----===============
- --A服务器执行SQL
- use master
- go
- if exists (select 1 from sys.endpoints where name ='Endpoint_Mirroring')
- drop endpoint Endpoint_Mirroring
- if exists (select 1 from sys.certificates where name ='HOST_A_cert')
- drop certificate HOST_A_cert
- if exists (select 1 from sys.certificates where name ='HOST_B_cert')
- drop certificate HOST_B_cert
- if exists (select 1 from sys.databases where name ='master' and is_master_key_encrypted_by_server>0)
- drop master key
- if exists (select 1 from sysusers where name ='HOST_B_user')
- drop user HOST_B_user
- if exists (select 1 from syslogins where name ='HOST_B_login')
- drop login HOST_B_login
- create master key encryption by password = 'OmBzkbeUGmXgJoZqg0vsqp4'
- go
- create certificate HOST_A_cert
- with subject = 'HOST_A certificate',start_date='',expiry_date=''
- go
- create endpoint Endpoint_Mirroring
- state = started
- as tcp (
- listener_port=7024
- , listener_ip = ALL
- )
- for database_mirroring (
- authentication = certificate HOST_A_cert
- , encryption = required algorithm AES
- , role = ALL
- )
- go
- exec master.dbo.xp_cmdshell 'del D:\mirror\HOST_A_cert.cer'
- backup certificate host_a_cert to file = 'D:\mirror\HOST_A_cert.cer'
- go
- exec master..xp_cmdshell 'net use \\192.168.2.153\mirror Aa123456 /user:domain\Administrator'
- exec Master..xp_cmdshell 'copy D:\mirror\HOST_A_cert.cer \\192.168.2.153\mirror\HOST_A_cert.cer'
- go
- create login HOST_B_login with password = 'BBluOHCsEqd4'
- go
- create user HOST_B_user for login HOST_B_login
- go
- --B服务器执行SQL
- use master
- go
- if exists (select 1 from sys.endpoints where name ='Endpoint_Mirroring')
- drop endpoint Endpoint_Mirroring
- if exists (select 1 from sys.certificates where name ='HOST_B_cert')
- drop certificate HOST_B_cert
- if exists (select 1 from sys.certificates where name ='HOST_A_cert')
- drop certificate HOST_A_cert
- if exists (select 1 from sysusers where name ='HOST_A_user')
- drop user HOST_A_user
- if exists (select 1 from syslogins where name ='HOST_A_login')
- drop login HOST_A_login
- if exists (select 1 from sys.databases where name ='master' and is_master_key_encrypted_by_server>0)
- drop master key
- create master key encryption by password = 'Ny0d7X1X46QAqxfheSkdE9PQYFu9B'
- go
- create certificate HOST_B_cert
- with subject = 'HOST_B certificate for database mirroring',start_date='',expiry_date=''
- go
- create endpoint Endpoint_Mirroring
- state = started
- as tcp (
- listener_port=7024
- , listener_ip = ALL
- )
- for database_mirroring (
- authentication = certificate HOST_B_cert
- , encryption = required algorithm AES
- , role = ALL
- )
- go
- exec master.dbo.xp_cmdshell 'del D:\mirror\HOST_B_cert.cer'
- backup certificate HOST_B_cert to file = 'D:\mirror\HOST_B_cert.cer'
- go
- exec master..xp_cmdshell 'net use \\192.168.2.152\mirror Aa123456 /user:domain\Administrator'
- exec Master..xp_cmdshell 'copy D:\mirror\HOST_B_cert.cer \\192.168.2.152\mirror\HOST_B_cert.cer'
- go
- create login HOST_A_login with password = 'OTYNeiFau7DY'
- go
- create user HOST_A_user for login HOST_A_login
- go
- --A服务器执行SQL
- create certificate HOST_B_cert
- authorization HOST_B_user
- from file = 'D:\mirror\HOST_B_cert.cer'
- go
- grant connect on endpoint::Endpoint_Mirroring TO HOST_B_login
- go
- --B服务器执行SQL
- create certificate HOST_A_cert
- authorization HOST_A_user
- from file = 'D:\mirror\HOST_A_cert.cer'
- go
- grant connect on endpoinT::Endpoint_Mirroring TO HOST_A_login
- go
- --=================
- ----3.镜像操作
- ----===============
- --B服务器
- use master;
- go
- alter database Performance
- set partner = 'TCP://2008zjk152.bird.cn:7024'
- --set partner off
- go
- alter database Performance set partner resume
- alter database Performance set partner failover
- alter database Performance set partner force_service_allow_data_loss
- go
- --A服务器
- use master;
- go
- alter database Performance
- set partner = 'TCP://2008zjk153.bird.cn:7024'
- --set partner off
- go
- alter database Performance set partner resume
- alter database Performance set partner failover
- go
T-SQL 镜像测试的更多相关文章
- java web sql注入测试(3)---现象分析
那为什么出现以上问题呢?这是程序代码层控制不当导致的.如果web前端对输入数据控制严格,会对数据库进行操作的字符串,在客户端做敏感字符转义处理,或者在操作数据库的dao层,使用动态参数的sql,不使用 ...
- java web sql注入测试(1)---概念概述
在进行java web 测试时,经常会忽略的测试种类就是sql注入测试,这类缺陷造成的原因是开发技术在这方面欠缺的表现,虽然不常见,但一旦有这类缺陷,就很因此对运营的数据造成很多不必要的损失,所以,还 ...
- SQL注入测试平台 SQLol -1. 简介与安装
最近下载了SQLol测试了一下,感觉挺好玩的,做一下记录. SQLol是一个可配置得SQL注入测试平台,它包含了一系列的挑战任务,让你在挑战中测试和学习SQL注入语句,SQLol还是比较有创意的项目. ...
- SAP 查询分析器,查询报表自动生成,SQL查询测试实现说明(转)
在日常的SAP开发和应用中,经常需要通过查询SAP数据表来处理日常业务,比如:数据对账.报表SQL测试.SAP查询功能开发等.通过开发SAP查询分析器,SAP实施和开发人员,可以在较短的时间内查询到需 ...
- 《软件测试自动化之道》读书笔记 之 SQL 存储过程测试
<软件测试自动化之道>读书笔记 之 SQL 存储过程测试 2014-09-28 待测程序测试程序 创建测试用例以及测试结果存储 执行T-SQL脚本 使用BCP工具导入测试用例数据 ...
- FileMaker Server连接SQL Server测试
用FM测试了一把扫二维码.效果还不错,简单的设置几下就可以上线,使用Iphone扫二维码进行盘点以及更新照片功能.接下来测试下下ODBC连接. FMS连接SQL Server测试 1. 在FMS服务器 ...
- sql注入测试(3)---现象分析
那为什么出现以上问题呢?这是程序代码层控制不当导致的.如果web前端对输入数据控制严格,会对数据库进行操作的字符串,在客户端做敏感字符转义处理,或者在操作数据库的dao层,使用动态参数的sql,不使用 ...
- sql注入测试(1)---概念概述
在进行java web 测试时,经常会忽略的测试种类就是sql注入测试,这类缺陷造成的原因是开发技术在这方面欠缺的表现,虽然不常见,但一旦有这类缺陷,就很因此对运营的数据造成很多不必要的损失,所以,还 ...
- java web sql注入测试(2)---实例测试
以下篇幅,用一个简单的实例说明如何进行测试. 功能:根据用户NAME删除用户,采用的是SQL拼接的方式,核心代码部分如下: public static void deleteByName(String ...
随机推荐
- Markdown教程<2> mermaid图形绘制(1)
Markdown教程<2> mermaid图形绘制(1) 博客园中的markdown编辑器同时支持mermaid图表引擎与tex公式引擎,可以使用mermaid直接画出流程图,时序图,甘特 ...
- 跟我学SpringCloud | 第一篇:介绍
首先讲一下我为什么要写这一系列的文章,现在网上大量的springcloud相关的文章,使用的springboot和springcloud的版本都相对比较老,很多还是在使用springboot1.x的版 ...
- php对象在内存中创建于释放
<?php /** * 1.对象的创建占用内存, * 对象内存释放,析构方法就是在对象释放前运行最后的一步.可以自动释放和手动释放 * 手动释放:通过unset($p);来释放对象,在这个时候会 ...
- 安装mysql apache php smb
1 SMB LinuX下SMB的配置 使用Smb进行连接的命令: smbclient //192.168.128.1/Share 今天要在LINUX之间以及LINUX与WINDOWS之间互相传送文件, ...
- 曹工说Tomcat4:利用 Digester 手撸一个轻量的 Spring IOC容器
一.前言 一共8个类,撸一个IOC容器.当然,我们是很轻量级的,但能够满足基本需求.想想典型的 Spring 项目,是不是就是各种Service/DAO/Controller,大家互相注入,就组装成了 ...
- mongoshell 执行JavaScript文件获取数据库实例基本信息
由于MongoDB没有关系型数据中强大的数据字典.因此,如果需要汇总统计一些内部信息,包括数据量,基本元信息,集群架构,状态信息.则需要自己写脚本统计.为日后工作方便,本人在此将一些统计信息通过Jav ...
- scrapy实战9动态设置ip代理从数据库中随机获取一个可用的ip:
在目录下创建tools(python package) 在tools中创建crawl_xici_ip.py文件写入代码如下: #coding=utf-8 import requests from sc ...
- 零基础ASP.NET Core MVC插件式开发
零基础ASP.NET Core MVC插件式开发 一个项目随着业务模块的不断增加,系统会越来越庞大.如果参与开发的人员越多,管理起来也难度也很大.面对这样的情况,首先想到的是模块化插件式开发,根据业务 ...
- C++学习书籍推荐《C++编程思想第二版第一卷》下载
百度云及其他网盘下载地址:点我 编辑推荐 “经典原版书库”是响应教育部提出的使用原版国外教材的号召,为国内高校的计算机教学度身订造的.<C++编程思想>(英文版第2版)是书库中的一本,在广 ...
- TigerGraph入门
测试机器配置 1G内存,1个核,CentOS Linux release 7.4.1708 (Core)的云主机,一块50G HDD的云主机. 1. 安装 下载了目前最新的开发者版本,下载链接:htt ...