当前位置: 首页 > news >正文

sqlserver镜像设置

本案例是双机热备,只设置主体服务器(主)和镜像服务器(从),不设置见证服务器

设置镜像前先检查是否启用了 主从服务器数据库的 TCP/IP协议 和 RemoteDAC

(1)打开SQL Server配置管理器,选择“SQL Server网络配置”-“MSSQLSERVER的协议”,在右侧启用TCP/IP协议,打开TCP/IP属性把IP地址设置为本地服务器地址。

(2)在SQL Server Management Studio中右键服务器连接选择Facets, 方面选择“外围应用配置器”,将属性“RemoteDACEnabled”的值改为“True”。

一、SQL Server基于数据库镜像的主从同步

主服务器:SQLSVR1, 192.168.10.2从服务器:SQLSVR2, 192.168.10.3

--如果已经执行过镜像,则需要删除已有的镜像端点、加密证书、登录用户。相关命令:
--关闭数据库镜像
alter database Test set partner off;
--删除端点
drop endpoint Mirroring;
--删除关联的证书和登录用户
drop certificate SQLSVR1_cert;
drop certificate SQLSVR2_cert;
drop login SQLSVR2_login;
drop user SQLSVR2_user;


--1、创建 master 数据库主密钥
USE master;
CREATE MASTER KEY ENCRYPTION 
BY PASSWORD = 'password';
GO


--2、对服务器实例创建一个用于其数据库镜像出站连接的加密证书
CREATE CERTIFICATE SQLSVR1_cert
WITH SUBJECT = 'SQLSVR1 certificate for database mirroring',
EXPIRY_DATE='2100-01-01'
GO


--3、 使用主服务器实例的证书 SQLSVR1_cert 为主服务器 SQLSVR1 创建端点( Mirroring为默认的镜像端点)
CREATE ENDPOINT Mirroring
STATE = STARTED AS TCP (
  LISTENER_PORT = 5022,
  LISTENER_IP = ALL
)
FOR DATABASE_MIRRORING (
  AUTHENTICATION = CERTIFICATE SQLSVR1_cert,
  ENCRYPTION = REQUIRED ALGORITHM AES,
  ROLE = ALL
);
GO

--如果已存在[镜像]导致创建端点失败
--查询列表

SELECT * FROM sys.endpoints;
SELECT * FROM sys.endpoints WHERE name = 'Mirroring';

--删除端点再重新创建
ALTER ENDPOINT [镜像] STATE = STOPPED;
GO

DROP ENDPOINT [镜像];
GO


--4、备份主体服务器 SQLSVR1 的加密证书
BACKUP CERTIFICATE SQLSVR1_cert TO FILE = 'C:\cert\SQLSVR1_cert.cer';
GO


--5、将从服务器的证书备份SQLSVR2.CER拷贝到主服务器的证书备份目录


--6、在主服务器实例的 master 数据库中为镜像服务器创建一个登录名并设置密码
USE master;
CREATE LOGIN SQLSVR2_login 
WITH PASSWORD = 'password';
GO


--7、为6中新创建的登录名创建一个用户
USE master;
CREATE USER SQLSVR2_user 
FOR LOGIN SQLSVR2_login;
GO


--8、将创建的用户与镜像服务器的证书相关联
USE master;
CREATE CERTIFICATE SQLSVR2_cert
AUTHORIZATION SQLSVR2_user
FROM FILE = 'C:\cert\SQLSVR2_cert.cer';
GO


--9、授予其7中登录用户名对数据库镜像端点的 CONNECT 权限( Mirroring为默认的镜像端点)
GRANT CONNECT ON ENDPOINT:: Mirroring TO SQLSVR2_login;
GO


--10、设置SQLSVR1中主库为完整恢复模式,并备份到从服务器SQLSVR2(这部分建议手动在SSMS操作)
USE master;

ALTER DATABASE db_name SET recovery full with no_wait;
BACKUP DATABASE db_name 
TO DISK = 'C:\backup\db_name-full.bak' 
WITH FORMAT,CHECKSUM
GO
BACKUP LOG db_name 
TO DISK = 'C:\backup\db_name-log.trn' 
WITH FORMAT,CHECKSUM
GO

注意:
【1】先关闭事务备份作业。
【2】注意:模式的区别
(1)简单模式:设置为完整模式后全备到SQLSVR2即可;
(2)大容量模式:设置为完整模式后,要利用之前的大容量模式下的全备;(即要把主备+事务备+设置好完整模式后的事务备);
(3)完整模式:
  如要利用以前的备份,则需要全备+全备之后的所有事务备;
  如果库小可以直接全备,再传输到SQLSVR2。


--11、(后做)设置镜像主从
ALTER DATABASE db_name 
SET partner = 'TCP://192.168.10.3:5022'

--如果已经执行过镜像,则需要删除已有的镜像端点、加密证书、登录用户。相关命令:
--关闭数据库镜像
alter database Test set partner off;
--删除端点
drop endpoint Mirroring;
--删除关联的证书和登录用户
drop certificate SQLSVR1_cert;
drop certificate SQLSVR2_cert;
drop login SQLSVR1_login;
drop user SQLSVR1_user;


--1、创建 master 数据库主密钥
USE master;
CREATE MASTER KEY ENCRYPTION 
BY PASSWORD = 'password';
GO


--2、对服务器实例创建一个用于其数据库镜像出站连接的加密证书
CREATE CERTIFICATE SQLSVR2_cert
WITH SUBJECT = 'SQLSVR2 certificate for database mirroring',
EXPIRY_DATE='2100-01-01'
GO


--3、 使用从服务器实例的证书 SQLSVR2_cert 为从服务器 SQLSVR2 创建端点( Mirroring为默认的镜像端点)
CREATE ENDPOINT Mirroring
STATE = STARTED AS TCP (
  LISTENER_PORT = 5022,
  LISTENER_IP = ALL
)
FOR DATABASE_MIRRORING (
  AUTHENTICATION = CERTIFICATE SQLSVR2_cert,
  ENCRYPTION = REQUIRED ALGORITHM AES,
  ROLE = ALL
);
GO

--如果已存在[镜像]导致创建端点失败
--查询列表
SELECT * FROM sys.endpoints;
SELECT * FROM sys.endpoints WHERE name = 'Mirroring';

--删除端点再重新创建
ALTER ENDPOINT [镜像] STATE = STOPPED;
GO

DROP ENDPOINT [镜像];
GO


--4、备份从服务器 SQLSVR2 的加密证书
BACKUP CERTIFICATE SQLSVR2_cert TO FILE = 'C:\cert\SQLSVR2_cert.cer';
GO


--5、将主服务器的证书备份SQLSVR1.CER拷贝到从服务器的证书备份目录


--6、在从服务器实例的 master 数据库中为主服务器创建一个登录名并设置密码
USE master;
CREATE LOGIN SQLSVR1_login 
WITH PASSWORD = 'password';
GO


--7、为6中新创建的登录名创建一个用户
USE master;
CREATE USER SQLSVR1_user 
FOR LOGIN SQLSVR1_login;
GO


--8、将创建的用户与主服务器的证书相关联
USE master;
CREATE CERTIFICATE SQLSVR1_cert
AUTHORIZATION SQLSVR1_user
FROM FILE = 'C:\cert\SQLSVR1_cert.cer';
GO


--9、授予其7中登录用户名对数据库镜像端点的 CONNECT 权限( Mirroring为默认的镜像端点)
GRANT CONNECT ON ENDPOINT:: Mirroring TO SQLSVR1_login;
GO


--10、还原SQLSVR1服务器上传过来的主数据库备份文件(这部分建议手动在SSMS操作)
USE master;
RESTORE DATABASE db_name 
FROM DISK = 'C:\backup\db_name-full.bak' 
WITH FILE = 1,
MOVE N'db_name' TO N'C:\DB\db_name.mdf', 
MOVE N'db_name_log' TO N'C:\DB\db_name_log.ldf',
NOUNLOAD, NORECOVERY, STATS = 10
GO
RESTORE DATABASE db_name 
FROM DISK = N'C:\backup\db_name-log.trn'
GO

注意:
(1)还原数据库:一定要和主库的数据库名一模一样。
(2)还原模式:一定要选择norecovery模式,否则失败。
(3)还原库文件的存放路径:尽量和主库的盘符及目录及名字一摸一样,否则不支持新增文件同步(若没用到新增文件同步暂时不用管)。
如果机器盘符目录不一致,那么需要在还原时用move选项来进行位置移动。


--11、(先做)设置镜像主从
ALTER DATABASE db_name 
SET partner = 'TCP://192.168.10.2:5022'


注意:
从库的版本必须和主库一致,如都是标准版,才能设置镜像。

注:以上命令全程都在系统数据库 master 创建的查询执行即可

二、SQL Server 数据库备份还原

1.备份数据库,备份两次。

(1)主服务器找到需要备份的数据库,右键 → 任务(Tasks) → 备份(Back up),备份类型选择 完整(Full),备份到磁盘 路径自定义 命名跟数据库一样,得到 .bak 备份文件。

(2)重复同上操作,但备份类型选择 事务日志(Transaction log),得到 .trn 备份文件或者追加到上一步的.bak文件中。

2.还原数据库,也是分两次还原,将备份文件 .bak .trn 拷贝到从服务器主机

(1)在SSMS连接数据库,右键数据库,选择 还原数据库(还原文件和文件组)都可以 → 目标数据库命名一样Test → 选择 源设备(From device),然后找到添加 .bak 文件然后确定 →  (重要)选项 恢复状态 选择 不对数据库执行任何操作(RESTORE WITH NORECOVERY)→ 点击确定开始还原数据库。

(2)上一步成功后刷新即可看到Test数据库还原生成,继续重复同上操作,右键Test数据库,选择 任务 - 还原 - 事务日志,然后找到添加 .trn 文件 →  (重要,否则执行镜像报错)选项 恢复状态 选择 不对数据库执行任何操作(RESTORE WITH NORECOVERY)→ 点击确定开始还原。

三、启动镜像

执行以上表格第11步命令开启镜像,注意先在从库执行再去主库执行。

在主服务器 SSMS 上设置数据库镜像,可能会出现报错

1.服务器ip端口号5022不能一样

2.开始镜像系统提示“服务器网络地址"TCP://XXX:5022"无法访问或不存在。请检查网络地址名称,并检查本地和远程端点的端口是否正常运行。(Microsoft SQLServer,错误:1418)”的错误信息,请去到该主机查看防火墙配置中的入站规则,是否允许了 5022 端口。

四、检查镜像结果

1、检查数据库状态

 镜像成功后,主体数据库的状态会显示为“主体,已同步”,镜像数据库的状态会显示为“镜像,已同步/正在还原...”,如图所示:

2、监视镜像是否正常

转到主服务器库选择主体数据库,右键选择任务下的“启动数据库镜像监视器”,通过监视器,可以查看主体服务器和镜像服务器的镜像状态和见证服务器连接的信息,如图所示:

相关文章:

sqlserver镜像设置

本案例是双机热备,只设置主体服务器(主)和镜像服务器(从),不设置见证服务器 设置镜像前先检查是否启用了 主从服务器数据库的 TCP/IP协议 和 RemoteDAC (1)打开SQL Server配置管理器…...

Pandas04

Pandas01 Pandas02 Pandas03 文章目录 内容回顾1 数据的合并和变形1.1 df.append (了解)1.2 pd.concat1.3 merge 连接 类似于SQL的join1.4 join (了解) 2 变形2.1 转置2.2 透视表 3 MatPlotLib数据可视化3.1 MatPlotLib API 套路 &为什么要可视化3.2 单变量可视化3.3 双变量…...

农历节日倒计时:基于Python的公历与农历日期转换及节日查询小程序(升级版)

农历节日倒计时:基于Python的公历与农历日期转换及节日查询小程序升级版 调整的功能 上一个小程序只是能计算当年的农历节日的间隔时间,那么这次修改一下,任意年份的农历节日都可以,并且能输出农历节日对应的阳历日期&#xff0…...

c语言中void关键字的含义和用法

在 C 语言中&#xff0c;void 是一个特殊的关键字&#xff0c;主要有以下几个用途&#xff1a; 1. 表示函数没有返回值 当一个函数不需要返回任何值时&#xff0c;可以将其返回类型声明为 void。 #include <stdio.h>void printMessage() {printf("Hello, World!\…...

安卓音频之dumpsys audio

目录 概述 详述 dumpsys audio 1、音频服务生命周期的事件日志 2、音频焦点事件日志 3、音频流音量信息 4、音量组和设备的相关信息 5、铃声模式 6、音频路由 7、其他状态信息 8、播放活动监控信息 9、录音活动记录 10、AudioDeviceBroker 的记录 11、音效&#…...

玩客云v1.0 刷机时无法识别USB

v1.0刷机时公对公插头掉了&#xff0c;刷机失败&#xff0c;再次刷机&#xff0c;一直提示无法识别的USB设备&#xff0c;此时LED一直不亮&#xff0c;就像是刷成砖了一样&#xff0c;查了好多文章最后发现正面还有一个地方需要短接。 背面的短接点 【免费】玩客云刷机包s805-…...

影刀进阶指令 | Kimi (对标ChatGPT)

文章目录 影刀进阶指令 | Kimi &#xff08;对标ChatGPT&#xff09;一. 需求二. 流程三. 实现3.1 流程概览3.2 流程步骤讲解1\. 确定问题2\. 填写问题并发送3\. 检测答案是否出完 四. 运维 影刀进阶指令 | Kimi &#xff08;对标ChatGPT&#xff09; 简单讲讲RPA调用kimi实现…...

前端项目 node_modules依赖报错解决记录

1.首先尝试解决思路 npm报错就切换yarn &#xff0c; yarn报错就先切换npm删除 node_modules 跟 package-lock.json文件重新下载依 2. 报错信息&#xff1a; Module build failed: Error: Missing binding D:\vue-element-admin\node_modules\node-sass\vendor\win32-x64-8…...

数据科学团队管理

定位&#xff1a; 有核心竞争力的工业算法部门与PM、RD等深度合作 业务方向&#xff1a;(不同产品线&#xff09; 工业预测性维护与数据挖掘视觉检测、OCR 工作内容 项目需求与交付内部框架(frameworks \packages)应用demo专利、竞赛、论文 日常管理 项目管理数据管理(原…...

一个简单的机器学习实战例程,使用Scikit-Learn库来完成一个常见的分类任务——**鸢尾花数据集(Iris Dataset)**的分类

机器学习实战通常是将理论与实践结合&#xff0c;通过实际的项目或案例&#xff0c;帮助你理解并应用各种机器学习算法。下面是一个简单的机器学习实战例程&#xff0c;使用Scikit-Learn库来完成一个常见的分类任务——**鸢尾花数据集&#xff08;Iris Dataset&#xff09;**的…...

攻防世界web第二题unseping

这是题目 <?php highlight_file(__FILE__);class ease{private $method;private $args;function __construct($method, $args) {$this->method $method;$this->args $args;}function __destruct(){if (in_array($this->method, array("ping"))) {cal…...

动手学深度学习-深度学习计算-3延后初始化

目录 实例化网络 小结 到目前为止&#xff0c;我们忽略了建立网络时需要做的以下这些事情&#xff1a; 我们定义了网络架构&#xff0c;但没有指定输入维度。 我们添加层时没有指定前一层的输出维度。 我们在初始化参数时&#xff0c;甚至没有足够的信息来确定模型应该包含…...

Linux | 零基础Ubuntu搭建JDK

目录 软件简介 在线文档 压缩包安装 下载地址 补:传输软件 传输等待 目录结构 解压安装 配置环境 更新环境 测试JDK结果 APT安装 软件简介 Java Development Kit (JDK) 是 Sun 公司&#xff08;已被 Oracle 收购&#xff09;针对 Java 开发员的软件开发工具包。自…...

Android `android.graphics` 包深度解析:架构与设计模式

Android android.graphics 包深度解析:架构与设计模式 目录 引言android.graphics 包概述核心类与架构 CanvasPaintBitmapColorPathShaderMatrix设计模式在 android.graphics 中的应用 工厂模式装饰者模式策略模式享元模式高级图形处理技术 硬件加速离屏渲染自定义 View 中的…...

WPF使用OpenCvSharp4

WPF使用OpenCvSharp4 创建项目安装OpenCvSharp4 创建项目 安装OpenCvSharp4 在解决方案资源管理器中&#xff0c;右键单击项目名称&#xff0c;选择“管理 NuGet 包”。搜索并安装以下包&#xff1a; OpenCvSharp4OpenCvSharp4.ExtensionsOpenCvSharp4.runtime.winSystem.Man…...

你不需要对其他成年人的情绪负责

在这个纷繁复杂的世界里&#xff0c;每个人都是独一无二的个体&#xff0c;背负着各自的故事、梦想与烦恼。在人际交往的广阔舞台上&#xff0c;我们时常会遇到这样的情境&#xff1a;朋友、同事、家人&#xff0c;甚至是陌生人&#xff0c;他们的情绪似乎总能不经意间影响到我…...

25秋招面试总结

秋招从八月底开始&#xff0c;陆陆续续面试了不少&#xff0c;现在也是已经尘埃落定&#xff0c;在这里做一些总结一些我个人的面试经历 腾讯 腾讯是我最早面试的一家&#xff0c;一开始捞我面试的是数字人民币&#xff0c;安全方向的岗位&#xff0c;属于腾讯金融科技这块。…...

高斯核函数(深入浅出)

目录 定义及数学形式主要特点应用示例小结 高斯核函数&#xff08;Gaussian Kernel&#xff09;&#xff0c;又称径向基核&#xff08;Radial Basis Function Kernel&#xff0c;RBF Kernel&#xff09;&#xff0c;是机器学习与模式识别中最常用的核函数之一。它通过在高维空间…...

支付宝百宝箱 工具,快速上手制作一个agent

作品&#xff1a;历史上的今天-作文素材积累 Datawhale 动手学AI Agent 关键词&#xff1a;AI助手开发、LangGPT框架 链接&#xff1a;百宝箱百宝箱平台是一款可以提供一站式 AI 原生应用的开发平台&#xff0c;您无需具有任何代码基础&#xff0c;只需通过自然语言即可三步完…...

六十:HTTP/2与gRPC框架

随着互联网技术的发展&#xff0c;应用程序之间的通信需求日益复杂和多样化。传统的HTTP/1.x协议虽然广泛应用&#xff0c;但在性能和功能方面已经难以满足现代应用的需求。为了解决这些问题&#xff0c;HTTP/2协议和基于其之上的gRPC框架应运而生。本文将介绍HTTP/2协议的特点…...

多模态2025:技术路线“神仙打架”,视频生成冲上云霄

文&#xff5c;魏琳华 编&#xff5c;王一粟 一场大会&#xff0c;聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中&#xff0c;汇集了学界、创业公司和大厂等三方的热门选手&#xff0c;关于多模态的集中讨论达到了前所未有的热度。其中&#xff0c;…...

Python爬虫(二):爬虫完整流程

爬虫完整流程详解&#xff08;7大核心步骤实战技巧&#xff09; 一、爬虫完整工作流程 以下是爬虫开发的完整流程&#xff0c;我将结合具体技术点和实战经验展开说明&#xff1a; 1. 目标分析与前期准备 网站技术分析&#xff1a; 使用浏览器开发者工具&#xff08;F12&…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)

宇树机器人多姿态起立控制强化学习框架论文解析 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架&#xff08;一&#xff09; 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战

“&#x1f916;手搓TuyaAI语音指令 &#x1f60d;秒变表情包大师&#xff0c;让萌系Otto机器人&#x1f525;玩出智能新花样&#xff01;开整&#xff01;” &#x1f916; Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制&#xff08;TuyaAI…...

在Mathematica中实现Newton-Raphson迭代的收敛时间算法(一般三次多项式)

考察一般的三次多项式&#xff0c;以r为参数&#xff1a; p[z_, r_] : z^3 (r - 1) z - r; roots[r_] : z /. Solve[p[z, r] 0, z]&#xff1b; 此多项式的根为&#xff1a; 尽管看起来这个多项式是特殊的&#xff0c;其实一般的三次多项式都是可以通过线性变换化为这个形式…...

搭建DNS域名解析服务器(正向解析资源文件)

正向解析资源文件 1&#xff09;准备工作 服务端及客户端都关闭安全软件 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 2&#xff09;服务端安装软件&#xff1a;bind 1.配置yum源 [rootlocalhost ~]# cat /etc/yum.repos.d/base.repo [Base…...

LRU 缓存机制详解与实现(Java版) + 力扣解决

&#x1f4cc; LRU 缓存机制详解与实现&#xff08;Java版&#xff09; 一、&#x1f4d6; 问题背景 在日常开发中&#xff0c;我们经常会使用 缓存&#xff08;Cache&#xff09; 来提升性能。但由于内存有限&#xff0c;缓存不可能无限增长&#xff0c;于是需要策略决定&am…...

作为测试我们应该关注redis哪些方面

1、功能测试 数据结构操作&#xff1a;验证字符串、列表、哈希、集合和有序的基本操作是否正确 持久化&#xff1a;测试aof和aof持久化机制&#xff0c;确保数据在开启后正确恢复。 事务&#xff1a;检查事务的原子性和回滚机制。 发布订阅&#xff1a;确保消息正确传递。 2、性…...

人工智能--安全大模型训练计划:基于Fine-tuning + LLM Agent

安全大模型训练计划&#xff1a;基于Fine-tuning LLM Agent 1. 构建高质量安全数据集 目标&#xff1a;为安全大模型创建高质量、去偏、符合伦理的训练数据集&#xff0c;涵盖安全相关任务&#xff08;如有害内容检测、隐私保护、道德推理等&#xff09;。 1.1 数据收集 描…...

苹果AI眼镜:从“工具”到“社交姿态”的范式革命——重新定义AI交互入口的未来机会

在2025年的AI硬件浪潮中,苹果AI眼镜(Apple Glasses)正在引发一场关于“人机交互形态”的深度思考。它并非简单地替代AirPods或Apple Watch,而是开辟了一个全新的、日常可接受的AI入口。其核心价值不在于功能的堆叠,而在于如何通过形态设计打破社交壁垒,成为用户“全天佩戴…...