SQL Server数据库镜像搭建(无见证无域控)

1. 环境配置
服务器1:sqlmirror01
IP:192.168.10.176
服务器2:sqlmirror02
IP:192.168.10.177
操作系统:Windows 2012 R2
安装 .Net Framework 3.5/4.0
关闭服务器防火墙或设置白名单
数据库版本:SQL Server 2014
2. 创建主密钥(非必需)
use master
go
create master key encryption by password=‘zaq12WSX‘
go
3. 创建证书
sqlmirror01执行
use master
go
create certificate sqlmirror01_cert with subject=‘sqlmirror01 certificate‘,expiry_date=‘2099-1-1‘
go
sqlmirror02执行
use master
go
create certificate sqlmirror02_cert with subject=‘sqlmirror02 certificate‘,expiry_date=‘2099-1-1‘
go
4. 创建镜像端点
sqlmirror01执行
use master
go
create endpoint Endpoint_Mirroring
state=started
as tcp ( listener_port = 5022,listener_ip = all )
for database_mirroring ( authentication = certificate sqlmirror01_cert, encryption = required algorithm aes, role = all )
go
sqlmirror02执行
use master
go
create endpoint Endpoint_Mirroring
state=started
as tcp ( listener_port = 5022,listener_ip = all )
for database_mirroring ( authentication = certificate sqlmirror02_cert, encryption = required algorithm aes, role = all )
go
5. 备份证书
sqlmirror01执行
use master
go
backup certificate sqlmirror01_cert to file = ‘C:\Certificate_files\sqlmirror01_cert.cer‘
go
sqlmirror02执行
use master
go
backup certificate sqlmirror02_cert to file = ‘C:\Certificate_files\sqlmirror02_cert.cer‘
go
6. 拷贝证书
将sqlmirror01_cert.cer拷贝至sqlmirror02的C:\Certificate_files\
将sqlmirror02_cert.cer拷贝至sqlmirror01的C:\Certificate_files\
7. 创建登录名
sqlmirror01执行
use master
go
create login sqlmirror02_login with password=‘[email protected]‘
go
sqlmirror02执行
use master
go
create login sqlmirror01_login with password=‘[email protected]‘
go
8. 创建使用该登录名的用户
sqlmirror01执行
use master
go
create user sqlmirror02_user for login sqlmirror02_login
go
sqlmirror02执行
use master
go
create user sqlmirror01_user for login sqlmirror01_login
go
9. 证书与用户关联
sqlmirror01执行
use master
go
create certificate sqlmirror02_cert
authorization sqlmirror02_user
from file=‘c:\Certificate_files\sqlmirror02_cert.cer‘
go
sqlmirror02执行
use master
go
create certificate sqlmirror01_cert
authorization sqlmirror01_user
from file=‘c:\Certificate_files\sqlmirror01_cert.cer‘
go
10. 授予对远程镜像端点的登录名的 CONNECT 权限
sqlmirror01执行
use master
go
GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [sqlmirror02_login];
go
sqlmirror02执行
use master
go
GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [sqlmirror01_login];
go
11. 配置镜像伙伴
sqlmirror01执行
创建数据库
CREATE DATABASE [Mirror_test_1]
ON PRIMARY
( NAME = N‘Mirror_test_1‘, FILENAME = N‘C:\dbdata\Mirror_test_1.mdf‘ , SIZE = 3072KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )
LOG ON
( NAME = N‘Mirror_test_1_log‘, FILENAME = N‘C:\dbdata\Mirror_test_1_log.ldf‘ , SIZE = 1024KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)
GO
备份数据库
backup database Mirror_test_1 to disk=‘C:\backup\Mirror_test_1.bak‘ with compression,checksum
将备份拷贝至sqlmirror02
sqlmirror02执行
restore database Mirror_test_1 from disk=‘C:\backup\Mirror_test_1.bak‘ with norecovery
连接镜像
sqlmirror02执行
use master
go
ALTER DATABASE Mirror_test_1 SET PARTNER = ‘TCP://sqlmirror01:5022‘;
go
sqlmirror01执行
use master
go
ALTER DATABASE Mirror_test_1 SET PARTNER = ‘TCP://sqlmirror02:5022‘;
go


更改为高性能模式
镜像主体sqlmirror01执行
use master
go
ALTER DATABASE Mirror_test_1 SET PARTNER SAFETY OFF
go

原文地址:http://blog.51cto.com/aimax/2122535

时间: 2024-10-11 21:58:03

SQL Server数据库镜像搭建(无见证无域控)的相关文章

SQL Server数据库镜像基于可用性组故障转移

SQL Server数据库镜像基于可用性组故障转移 微软从SQL Server 2005开始引入数据库镜像,很快成为一个流行的故障转移解决方案.数据库镜像的一个大的问题是故障转移是基于数据库级别的,因此,如果某个数据库故障,镜像只会针对这个数据库切换,但是,其他数据库都仍然在主服务器上.缺点是越来越多的应用程序是基于多个数据库来构建,所以,如果某一个数据库故障转移而其他数据库仍然在主服务器上,那应用程序将无法工作.当这种情况发生的时候,我如何知晓?并执行该应用程序调用的所有数据库一起故障转移呢?

SQL Server数据库镜像的页面自动修复原理

SQL Server数据库镜像的页面自动修复原理 主库页面损坏 镜像库页面损坏 LSN用来保证事务的时序 LSN保存在数据页面头,主库的LDF文件,镜像库的LDF文件,那么在这三者就搭起了一条沟通的桥梁 大家通过对比LSN来得知大家的数据是否一致 在分布式数据库领域,也是需要保证事务时序的,也是通过LSN 有些数据库例如Oracle用的是SCN来保证各个分布数据库的时序,保证各个数据库的数据一致 其实无论是分布式领域还是非分布式领域都是一样,分布式领域也没有太多高大上的东西,都是一样要保证数据一

SQL Server数据库镜像关键性能计数器

SQL Server数据库镜像关键性能计数器 监视数据库镜像基本有以下5种方法: 1. 配置数据库镜像监视器.设置告警阈值. 2. 配置WMI EVENT ALERT,配置镜像状态修改后的动作或告警. 3. 使用系统监视器查看关键性能计数器. 4. 部署作业监控异常镜像状态,发送告警. 5. 使用sp_dbmmonitorresults获取镜像数据. 当然,使用扩展事件和SQL Server Profiler也能监控到数据库事件中的数据库镜像状态修改.这种工具主要用于跟踪,而非监控的常规手段.

SQL Server数据库镜像的FailOver自动连接

SQL Server配置数据库镜像后,可能有朋友们会比较有疑惑,你一下搞两个数据库出来,他们的ip地址都不一样,到时候数据库切换过去了,我的数据库的连接字符串可如何是好?难道还得在代码中去控制是连接哪个数据库吗? 其实这个问题是这样的,使用ADO.NET或者SQL Native Client能够自动连接到故障转移后的伙伴,连接字符串如下所示: ConnectionString="DataSource=A;FailoverPartner=B;Initial Catalog=AdventureWor

sql server 数据库的管理以及维护

   http://xiaorenwutest.blog.51cto.com                 数据库和表的管理 前言:上次主要介绍的是sql server数据库的搭建以及通过SSMS工具进行连接数据库,本次内容主要介绍数据库的表进行管理.在工作中DBA通常对数据库进行创建和删除以及修改表的内容,扩展和收缩.分离及附加. 表是存放数据.查找数据以及更新数据的基本数据构建,在对数据的操作都是在表的基础上进行的,以及如何维护表.   注:实际上表是逻辑的存在,事实上数据存放在硬盘上面.

监控SQL Server数据库异常镜像状态发告警邮件

监控SQL Server数据库异常镜像状态发告警邮件 在部署了数据库镜像之后,我们需要监控参与镜像的主数据库和镜像数据库的状态,如果状态异常,发送告警邮件.那么这个脚本需要在主和镜像服务器上都运行. 目录视图sys.database_mirroring对SQL Server实例上的每个数据库都包含一行(包括系统数据库和未配置镜像的数据库),当然也包含所有镜像数据库的状态信息.我们可以查询该目录视图,对于每个异常状态的镜像数据库触发告警邮件.笔者的环境配置的是异步镜像,依赖于手动故障转移. 前提条

配置SQL Server 2008 镜像

第一步检查基础环境 由于在非域环境内,所以需要做的检查相对来说多很多,下面按照演示环境,逐个测试下面的条件: Windows 账号. 网络是否能联通,并且端口可用. 主体服务器和镜像服务器的磁盘配置是否正确. SQL Server版本.补丁是否满足镜像要求. SQL Server数据库的恢复模式.兼容级别. SQL Server上是否有常规的备份作业,特别是日志备份. 主体服务器和镜像服务器的SQLServer能否互通. 主体服务器和镜像服务器中是否有共享文件夹. 检查磁盘配置是否正确,两台数据

50种方法优化SQL Server数据库查询(转载)

原文地址:http://www.cnblogs.com/zhycyq/articles/2636748.html 查询速度慢的原因很多,常见如下几种: 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了瓶颈效应. 3.没有创建计算列导致查询不优化. 4.内存不足 5.网络速度慢 6.查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) 7.锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷) 8.sp_lock,sp_who,活动的用

提高SQL Server数据库效率常用方法

1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了瓶颈效应. 3.没有创建计算列导致查询不优化. 4.内存不足 5.网络速度慢 6.查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) 7.锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷) 8.sp_lock,sp_who,活动的用户查看,原因是读写竞争资源. 9.返回了不必要的行和列 10.查询语句不好,没有优化 ●可以通过如下方法来优化查询 : 1.把数据.日志.索引放到不同的