当前位置: 首页 > 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协议的特点…...

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…...

深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录

ASP.NET Core 是一个跨平台的开源框架&#xff0c;用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录&#xff0c;以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...

C++:std::is_convertible

C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...

iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版​分享

平时用 iPhone 的时候&#xff0c;难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵&#xff0c;或者买了二手 iPhone 却被原来的 iCloud 账号锁住&#xff0c;这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...

376. Wiggle Subsequence

376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...

什么是库存周转?如何用进销存系统提高库存周转率?

你可能听说过这样一句话&#xff1a; “利润不是赚出来的&#xff0c;是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业&#xff0c;很多企业看着销售不错&#xff0c;账上却没钱、利润也不见了&#xff0c;一翻库存才发现&#xff1a; 一堆卖不动的旧货…...

vue3 定时器-定义全局方法 vue+ts

1.创建ts文件 路径&#xff1a;src/utils/timer.ts 完整代码&#xff1a; import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...

使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度

文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...

Yolov8 目标检测蒸馏学习记录

yolov8系列模型蒸馏基本流程&#xff0c;代码下载&#xff1a;这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中&#xff0c;**知识蒸馏&#xff08;Knowledge Distillation&#xff09;**被广泛应用&#xff0c;作为提升模型…...

免费PDF转图片工具

免费PDF转图片工具 一款简单易用的PDF转图片工具&#xff0c;可以将PDF文件快速转换为高质量PNG图片。无需安装复杂的软件&#xff0c;也不需要在线上传文件&#xff0c;保护您的隐私。 工具截图 主要特点 &#x1f680; 快速转换&#xff1a;本地转换&#xff0c;无需等待上…...