首页 > 数据库 >Sqlserver镜像高可用搭建

Sqlserver镜像高可用搭建

时间:2023-12-13 09:57:11浏览次数:47  
标签:USE -- Sqlserver Host master 服务器 GO 镜像 搭建

1.安装前准备

  • 系统相同
  • 数据库软件版本补丁相同
  • 数据库目录相同
  • 数据库恢复模式为完整
  • 主备可以ping通,可以相互通过SMSS登录对方

2.创建证书

2.1.主服务器和镜像服务器创建主密钥

USE master 
GO
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'Pa$$w0rd';
-- 删除主密钥
USE master;
GO
DROP MASTER KEY

2.2.主服务器和镜像服务器创建证书

-- 主服务器
USE master 
GO 
CREATE CERTIFICATE Host_A_Cert  
WITH Subject = 'Host_A Certificate', 
Expiry_Date = '2099-1-1'; -- 过期日期
-- 镜像服务器
USE master 
GO 
CREATE CERTIFICATE Host_B_Cert  
WITH Subject = 'Host_B Certificate', 
Expiry_Date = '2099-1-1'; -- 过期日期
-- 删除证书
USE master;
GO
DROP CERTIFICATE HOST_A_cert

2.3.主服务器和镜像服务器创建端点

-- 使用Host_A_Cert证书创建端点(主服务器)
USE master;
GO
IF NOT EXISTS ( SELECT  1 
				FROM    sys.database_mirroring_endpoints ) 
	BEGIN 
		CREATE ENDPOINT [DatabaseMirroring] STATE = STARTED AS TCP ( LISTENER_PORT = 5022, 
			LISTENER_IP = ALL ) FOR DATABASE_MIRRORING ( AUTHENTICATION = 
			CERTIFICATE Host_A_Cert, ENCRYPTION = REQUIRED Algorithm AES, ROLE = 
			ALL ); 
	END
-- 使用Host_B_Cert证书创建端点(镜像服务器)
USE master;
GO
IF NOT EXISTS ( SELECT  1 
				FROM    sys.database_mirroring_endpoints ) 
	BEGIN 
		CREATE ENDPOINT [DatabaseMirroring] STATE = STARTED AS TCP ( LISTENER_PORT = 5022, 
			LISTENER_IP = ALL ) FOR DATABASE_MIRRORING ( AUTHENTICATION = 
			CERTIFICATE Host_B_Cert, ENCRYPTION = REQUIRED Algorithm AES, ROLE = 
			ALL ); 
	END

2.4.主服务器和镜像服务器备份证书

-- 主服务器
USE master;
GO
BACKUP CERTIFICATE Host_A_Cert 
TO FILE = 'C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\Host_A_Cert.cer';
-- 镜像服务器
USE master;
GO
BACKUP CERTIFICATE Host_B_Cert 
TO FILE = 'C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\Host_B_Cert.cer';

2.5.主服务器和镜像服务器创建登录账号

-- 主服务器,创建给镜像服务器登录的登录账号
USE master;
GO
CREATE LOGIN Host_B_Login WITH PASSWORD = 'Pa$$w0rd';
-- 镜像服务器
USE master;
GO
CREATE LOGIN Host_A_Login WITH PASSWORD = 'Pa$$w0rd';

2.6.主服务器和镜像服务器创建用户

-- 主服务器创建
USE master;
GO
CREATE USER Host_B_User For Login Host_B_Login;
-- 镜像服务器创建
USE master;
GO
CREATE USER Host_A_User For Login Host_A_Login;

2.7.证书授权用户

首先将2.4创建的证书相互传送一份

-- 主服务器创建
USE master;
GO
CREATE CERTIFICATE Host_B_Cert 
AUTHORIZATION Host_B_User 
FROM FILE = 'C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\Host_B_Cert.cer';
-- 镜像服务器创建
USE master;
GO
CREATE CERTIFICATE Host_A_Cert 
AUTHORIZATION Host_A_User 
FROM FILE = 'C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\Host_A_Cert.cer';

2.8.授权访问端点

-- 主服务器
USE master;
GO
GRANT CONNECT ON ENDPOINT::[DatabaseMirroring] TO [Host_B_Login];
-- 镜像服务器
USE master;
GO
GRANT CONNECT ON ENDPOINT::[DatabaseMirroring] TO [Host_A_Login];

3.备份还原数据库

备份

还原,恢复状态要选择RESTORE WITH NORECOVERY

4.启动镜像

这次是镜像服务器然后是主服务器,100是主服务器的地址,

-- 镜像服务器
USE [master]
GO
ALTER DATABASE test 
    SET PARTNER = 'TCP://192.168.2.100:5022';
-- 主服务器
USE [master]
GO
ALTER DATABASE test 
    SET PARTNER = 'TCP://192.168.2.200:5022';
-- 删除镜像
USE [master]
GO
alter database test set partner off;

5.管理SQL

5.1.修改镜像运行模式

-- 高性能模式,事务不需要在主和镜像数据库提交才返回
USE [master]
GO
ALTER DATABASE [test] SET SAFETY OFF;
-- 高安全模式,事务需要在主和镜像数据库提交才返回
USE [master]
GO
ALTER DATABASE [test] SET SAFETY FULL;

5.2.查看镜像同步状态

-- 查看镜像同步状态
USE [master]
GO
select * from sys.database_mirroring where database_id in (DB_ID('test'),DB_ID('monkey'));

5.3.手动切换主和镜像

-- 手动切换主和镜像,在主体服务器上执行,运行模式必须在SAFETY FULL模式下
USE [master]
GO
ALTER DATABASE test SET PARTNER FAILOVER;

5.4.主库突然宕机,拉起镜像

-- 强制拉起来镜像库
USE [master]
GO
alter database test set partner FORCE_SERVICE_ALLOW_DATA_LOSS;

-- 主库恢复后,重新恢复镜像(在当前主库)
USE [master]
GO
alter database test set partner resume;

-- 需要的话,参考5.3手动切换为原来的模样
USE [master]
GO
ALTER DATABASE test SET PARTNER FAILOVER;

参考:配置SQL Server镜像——非域环境

标签:USE,--,Sqlserver,Host,master,服务器,GO,镜像,搭建
From: https://www.cnblogs.com/monkey6/p/17898376.html

相关文章

  • iMX287A嵌入式Qt环境搭建
    原文:https://zhuanlan.zhihu.com/p/111021921?utm_id=01.嵌入式Qt简介Qt是一个跨平台的应用程序开发框架。使用Qt开发的应用程序,只需要编写一套代码,然后把这套代码放在不同平台的Qt环境去编译,就会生成可以运行在对应平台的应用程序。例如,我在Windows写了一个串口助手,这套代......
  • 使用CEF(七)详解macOS下基于CEF的多进程应用程序CMake项目搭建
    由于macOS下的应用程序结构导致了CEF这样的多进程架构程序在项目结构、运行架构上有很多细节需要关注,这一块的内容比起Windows要复杂的多,所以本文将会聚焦macOS下基于CEF的多进程应用架构的环境配置,并逐一说明了CMake的相关用法和CEF应用配置细节。前言在进行搭建之前,我们首先必......
  • k8s_kind-创建pod-拉取私有仓库镜像
    kind本地配置查看您创建的所有集群,您可以使用该kindgetclusters命令在kubernetes内使用私有镜像仓库之前,我们需要先有一个私有镜像仓库,并保证这个仓库是可用的检查私有镜像仓库是否可用kindcreatecluster--namedatapre##以将本机镜像导入到Kind集群中去......
  • Kafka集群搭建、注意事项及示例
    1.安装Zookeeper:Kafka依赖于Zookeeper来进行集群协调。确保安装了Zookeeper,并配置好。2.下载和解压Kafka:从官方网站下载Kafka,并解压到所需的目录。3.配置Kafka:修改Kafka的配置文件以适应集群环境。主要修改server.properties文件,设置broker.id、listeners、zookeeper.c......
  • centos7搭建kubernetes-v1.25.1集群(Containerd作为运行时)
    集群配置节点名称内存硬盘处理器内核总数ipmaster6GB40GB6192.168.67.166node16GB40GB6192.168.67.167node26GB40GB6192.168.67.168一、所有节点更改镜像源curl-o/etc/yum.repos.d/CentOS-Base.repo二、所有节点安装docker,注意:K8s在1.24以上......
  • 搭建自定义导航网站
    免费版地址https://www.iotheme.cn/store/webstack.html付费版购买地址https://www.iotheme.cn/store/onenav.htmlWebstack项目地址:https://github.com/HCLonely/hexo-theme-webstack其他主题推荐TwoNav主题:https://github.com/tznb1/TwoNav一、安装宝塔面板宝塔官网:https......
  • 镜像挂载+nginx实现局域网yum源
    应用说明在内网的linux主机搭建系统时,主机无法使用默认配置的官网yum源,且内网环境中不提供公共yum源,在这个情况下可自行搭建局域网yum源。部署方式:选择一台主机作为服务端,在这台主机上挂载系统iso镜像,并部署nginx将package进行发布,其他主机作为客户端配置局域网yum源iso镜像要......
  • SQLServer备份恢复的总结-同名恢复与异名恢复
    SQLServer备份恢复的总结前言GUI搞一把.命令行太多了也没人看自己还能省点心备份备份数据库建议一定要选择:备份选项中的压缩->压缩备份历史经验一个7.6G的数据库能够压缩到1.5G压缩比还是已非常可观的.同名恢复1.可以使用sa登录2.创建一个database,同名......
  • Samba共享服务搭建
    环境准备主机IPRocky_Linux(samba服务器)192.168.3.1/24windows11(客户端)192.168.3.25/24安装服务dnfisntallsamba-y修改配置创建共享目录登录用户useradd-M-s/sbin/nologinqclrecho123|passwd--stdinqclrmkdir/opt/qclrchown-Rqclr:qclrqclr/smbpasswd-aqclr......
  • CMS系统搭建教程
    1、环境说明centos7.92核2G,php7.2,mysql5.7.40,nginx1.22.1,宝塔8.0.42、创建站点创建站点得时候顺便创建数据库,记录数据库链接信息3、上传fastadmin框架上传fastadmin_1_3_3_20220121.zip到创建的站点,然后解压4、配置站点5、配置伪静态6、安装fastmin框架输入创建站......