SQL 数据库备份和恢复 镜像配置(证书方式)

最近公司在进行数据库容灾和备份上的工作,记录关于镜像配置的总结

步骤一:备份和恢复数据库
-- 以完整和事务日志备份主数据库
-- 从服务器上先后还原完整备份和事务日志备份,注意选择不对数据库执行任何操作(WITH NORECOVERY)

步骤二:主服务器A配置证书
-- 创建主密钥
CREATE master KEY ENCRYPTION BY password = ‘PASSWORDA‘ ;
GO
-- 创建证书
CREATE CERTIFICATE Cert_A WITH subject = ‘A证书‘ ;
GO
-- 创建端点
IF EXISTS( SELECT 1 FROM sys. endpoints WHERE name= ‘主镜像‘ )
  DROP endpoint [主镜像]
GO
CREATE endpoint [主镜像]
  AUTHORIZATION [sa]
  STATE= started
  AS TCP (listener_port = 5022 , listener_IP = ALL)
  FOR data_mirroring (ROLE = partner, authentication = CERTIFICATE Cert_A, ENCRYPTION=required algorithm RC4)
GO
-- 导出证书
BACKUP CERTIFICATE Cert_A TO FILE = ‘H:\MyCert\Cert_A.cer‘

步骤三:从服务器B配置证书
-- 创建主密钥
CREATE master KEY ENCRYPTION BY password = ‘PASSWORDB‘ ;
GO
-- 创建证书
CREATE CERTIFICATE Cert_B WITH subject = ‘B证书‘ ;
GO
-- 创建端点
IF EXISTS( SELECT 1 FROM sys. endpoints WHERE name= ‘从镜像‘ )
  DROP endpoint [从镜像]
GO
CREATE endpoint [从镜像]
  AUTHORIZATION [sa]
  STATE= started
  AS TCP (listener_port = 5022 , listener_IP = ALL)
  FOR data_mirroring (ROLE = partner, authentication = CERTIFICATE Cert_B, ENCRYPTION=required algorithm RC4)
GO
-- 导出证书
BACKUP CERTIFICATE Cert_CY08 TO FILE = ‘C:\Cert_B.cer‘

步骤四:交换证书

步骤五:主服务器A创建登陆用户
USE master ;
-- 创建登录名
CREATE LOGIN B_login WITH PASSWORD = ‘PASSWORDA‘;
GO
-- 创建用户
CREATE USER CY08_user FOR LOGIN B_login;
GO
-- 还原B 证书
CREATE CERTIFICATE Cert_B
  AUTHORIZATION B_user
  FROM FILE = ‘H:\MyCert\Cert_B.cer‘
GO
-- 授权端点给登陆名
GRANT CONNECT ON ENDPOINT::[ 主镜像] TO [B_login] ;

步骤六:从服务器A创建登陆用户
USE master ;
-- 创建登录名
CREATE LOGIN A_login WITH PASSWORD = ‘PASSWORDA‘;
GO
-- 创建用户
CREATE USER A_user FOR LOGIN A_login;
GO
-- 还原B证书
CREATE CERTIFICATE Cert_A
  AUTHORIZATION A_user
  FROM FILE = ‘C:\Cert_A.cer‘
GO
-- 授权端点给登陆名
GRANT CONNECT ON ENDPOINT::[从镜像] TO [A_login] ;

步骤七:开始镜像
-- 从数据库执行,连接镜像
USE master
GO
ALTER DATABASE CYEMS SET PARTNER = ‘TCP://192.168.0.A:5022‘;
GO

-- 主数据库执行
USE master
GO
ALTER DATABASE CYEMS SET PARTNER = ‘TCP://192.168.0.B:5022‘;
GO

相关脚本
-- 停止镜像,之后可重新连接;配置过程中发生问题可用
ALTER DATABASE CYEMS SET PARTNER OFF;
-- 高安全模式,OFF为异步模式
ALTER DATABASE CYEMS SET SAFETY FULL;
--切换主备;可用于数据库升级维护
ALTER DATABASE [DBName] SET PARTNER FAILOVER;
--当主库故障无法连接时,强制将镜像库设置为主库,允许数据丢失
ALTERDATABASE[DBName]SETPARTNERFORCE_SERVICE_ALLOW_DATA_LOSS;
--恢复镜像
ALTER DATABASE [DBName] SET PARTNER RESUME;
--设置数据库联机
ALTER DATABASE [DBName] SET ONLINE;

-- 在主备执行:创建数据库镜像监视器作业
use msdb ;
exec sys .sp_dbmmonitoraddmonitoring
--exec sys.sp_dbmmonitorhelpmonitoring
--exec sys.sp_dbmmonitorresults DBName,0,0
--exec sys.sp_dbmmonitorchangemonitoring
--exec sys.sp_dbmmonitordropmonitoring

这种镜像备份的方式用于多台服务器同时运行上,在数据库的还原和备份上实现了短时间内的及时备份,在数据库文件隔天备份或者月度周度备份上又将维度扩大了,中小型数据库中有较好的使用。

时间: 2024-11-24 19:17:06

SQL 数据库备份和恢复 镜像配置(证书方式)的相关文章

[转]MS SQL数据库备份和恢复存储过程

使用了以下部分代码和启示实现了自己的需求,特此记下这段代码: if exists( select * from sysobjects  where name='pr_backup_db' and xtype='p' )begin drop proc pr_backup_dbendgo/*备份数据库*/create proc pr_backup_db@flag varchar(10) out,@backup_db_name varchar(128),@filename varchar(1000) 

用友金蝶SQL数据库误格式化恢复 SQL数据库修复 SQL数据库恢复 工具 方法

用友金蝶SQL数据库误格式化恢复 SQL数据库修复 SQL数据库恢复 硬盘误格式化.重分区.重装操作系统覆盖 SQL数据解决方法 [客户名称]:贵州铜仁市开天驾驶人培训中心 [软件名称]:用友T3普及版 [数据库版本]:MS SQL server 2000  [数据库大小]:1GB X 6  (3个账套 总共6个年度). [问题描述]:由于服务器中毒或卡顿,客户将服务器电脑送到 装机店 重做操作系统.未详细告知电脑用途,导致整个硬盘被维修店技术员 全盘格式化重新分区,并且重新做好了新的操作系统,

使用exp&imp工具进行数据库备份及恢复

使用exp&imp工具进行数据库备份及恢复1.exp/imp使用方法介绍exp/imp为一种数据库备份恢复工具,也可以作为不同数据库之间传递数据的工具,两个数据库所在的操作系统可以不同.exp可以将数据库数据导出为二进制文件,imp可以将导出的数据文件再导入到相同的数据库或不同的数据库.数据库导出有四种模式:full(全库导出).owner(用户导出).table(表导出).tablespace(表空间导出).full(全库导出):导出除ORDSYS.MDSYS.CTXSYS.ORDPLUGIN

案例:Oracle dul数据挖掘 没有数据库备份非常规恢复truncate删除的数据表

Oracle数据库在没有备份情况下在对表中的某数据表进行truncate删除后,通过oracle dul进行非常规恢复 1.准备oracle dul测试环境 SQL> select count(*) from t_xifenfei; COUNT(*) ---------- 67854 SQL> desc t_xifenfei Name Null? Type ----------------------------------------- -------- ------------------

Oracle基础 数据库备份和恢复

原文:Oracle基础 数据库备份和恢复 一.为什么需要数据备份 造成数据丢失的主要原因: 1.介质故障. 2.用户的错误操作. 3.服务器的彻底崩溃. 4.计算机病毒. 5.不可预料的因素. Oracle中故障类型分为以下4种. 1.语句故障: 执行SQL语句过程发生的逻辑故障可导致语句故障.如果用户编写的SQL语句无效,就会发生语句故障.Oracle可自我修复语句故障,撤销语句产生的而印象,并将控制权交给应用程序. 2.用户进程故障 当用户程序出错而无法访问Oracle数据库时,就会发生用户

c#、sql数据库备份还原

1.在项目中添加SQLDmo dll文件引用(SQLDMO(SQL Distributed Management Objects,SQL分布式管理对象)) 2在相应页面加using SQLDMO引用 3.下面是用C#语言书写的用于Microsoft SQL Server数据库备份和恢复的类:using System; namespace DbService { /// <summary> /// DbOper类,主要实现对Microsoft SQL Server数据库的备份和恢复 /// &l

Oracle数据库备份和恢复的基本命令

Oracle数据库备份与恢复基本命令 1. 获取帮助 $ exp help=y $ imp help=y 2.三种工作方式 (1)交互式方式 $ exp 然后按提示输入所需要的参数 (2)命令行方式 $ exp user/[email protected] file=/oracle/test.dmp full=y 命令行中输入所需的参数 (3)Oracle数据库备份与恢复中我们要走涉及到参数文件方式 $ exp parfile=username.par 在参数文件中输入所需的参数 参数文件 us

mysql,sqlsever,oracle,redis,mongo,postgres等数据库备份及恢复指令整理

下列仅整理给出各个数据库备份及恢复最简单的用法,更多详细的参数及配置请查阅相关资料 一.mysql: 参数说明: $user $password $targethost $port $charset $dbname $table $filename 用户名 密码 ip(本地为localhost) 端口 编码 数据库名 表名(仅表级备份需要) 文件名 备份:mysqldump --single-transaction -l -u $user -p'$password' -h $targethost

304444数据库备份和恢复

第13章  数据库备份与恢复 •    13.1 备份和恢复 •    13.2 完整数据库备份与恢复 •    13.3差异数据库备份与恢复 •    13.4 事务日志备份与恢复 •    13.5 一种备份案例 13.1.1 备份和恢复的概念 Ø 前面两章分别介绍了通过数据的完整性控制和安全性控制来保证数据的安全,但这种安全是相对的.不但数据库管理系统软件本身可能会出现问题,而且作为硬件支撑的计算机也有可能出现不可修复的故障,还有自然灾害等不可抗拒的客观因素,这些都有可能造成数据的损坏或丢