利用日志传送来实现数据库的可用性

简介:



这不是一个新技术,SQL SERVER2000时就已经有了,2005中没有什么太大的改进,,还是由三项操作组成:

1.   在主服务器中备份事务日志
2.   然后将备份的事务日志文件复制到辅助服务器中
3.   在辅助服务器中还原日志备份
 
大家看到了这个过程还是很简单的,也就是在实现的应用中,对你所正在使用听数据库进行一个事务日志备份。备份成功后,复制到辅助服务器,这个过程不应该是管理员手动执行,而应该是通过调度来实现。然后再做一个调度,在辅助服务器上进行还原。但日志传送到此就结束了,它并不会因为主要服务器故障而实现自动转移,这是实现不了的,这个转移工作已经要由手动来实现。这点和复制是一样的。如果是通过应用程序来连接的话,还要改源代码来实现转移。这和群集和镜像是不一样的。
 
日志传送所使用的角色:
主服务器和数据库  (生产用服务器及所使用到的数据库)
辅助服务器和数据库  (用于存放备份的服务器及相应数据库)
监视服务器     用于监视主要服务器和辅助服务器的通讯,以及主服务器的运行状态,
               应该是一个专门的服务器,那如果机器不够可以和辅助服务器在一起。
               可以监视主服务器是否做了备份,这个备份是否复制,辅助服务器什么候还原等等,那么这个地方,监视到出现问题怎么办,可以给管理员发邮件以通知管理员。这要结合作业来实现。
 
 
主服务器和辅助服务器的关系:可以不是一:一的关系,可以多个主要服务器对应一个辅助服务器,用于存放多个主要服务器上的备份,以节约硬件资源
 
这三个角色如何进行工作的,全部是通过SQL Server AGET来实现的,所以一定要确保在所有角色上都要运行代理服务,分别执行以下作业:
主要服务器: 备份作业
辅助服务器: 复制作业,还原作业
监视服务器:警报作业
但这一系列的作业,不需要我们一一创建,只要我们配置好日志传送之后,系统会自动创建。当然前提是数据库恢复模型应该是完全或是大容量日志
 
下面我们就来看一下具体的实施步骤:
1.   确定主服务器,辅助服务器和监视服务器
2.   为事务日志备份创建文件共享,是好是一个文件服务器(我们就在主要服务器上)
3.   制定主数据库的备份计划
4.   可以为主服务器配置一个或是多个辅助服务器,注意:辅助服务器上数据库不能写,但是可以查询,
5.   配置一个监视服务器,有两种方法,可以使用存储过程,也可以使用SSMS
 
有了上面的理论介绍,下面就可以动手了:
我们的目的很明确就是
配置日志传送
监视日志传送
实现手动的转移到辅助服务器
清除日志传送
 
步骤1:创建共享文件夹用于存放相关文件
         我们在SERVER1上创建两个共享文件夹, server2上创建一个共享文件夹,如上图所示:
其中  primarydata\logs 用于存放主服务器备份文件的。主服务器代理用户必须是域用户。
      Secondarydata\logs 系统会将 PRIMARY\logs中的日志复制到此供辅助服务器使用。
      Databaseback   用于存放生产数据库的副本
 
步骤2 备份主服务器上的数据库,注意一个数据库只能有一个日志传送
         我们以 dufei 数据库为例:辅助服务器上不能有同名数据库。
        backup database dufei to disk='c:\databasebackup\dufei.bak'
这个文件夹是主服务器上的一个共享文件夹
我们为了测试方便,我们在此创建一个表,并插入一条记录:
 
USE DUFEI
GO
CREATE TABLE YG
(
ID CHAR(4),
UNAME VARCHAR(10),
SEX CHAR(2)
)
INSERT INTO YG VALUES ('0001','岳雷','')
GO
BACKUP LOG DUFEI TO DISK='C:\DATABASEBACKUP\DUFEI.BAK'
GO
步骤3  开始在主服务器上配置日志传送
下面是添加辅助服务器:
我们这里选择第二种初始化辅助数据库的方法:
但这个时候确定键是不能用的,是因为我们的操作还没有结束。我们还要复制日志文件到SECONDARYDATA\logs文件夹下。
下面的操作就是指定还原事务日志的模式:
有两种模式,这两种模式差别是很大的。
 
到此时三步就已经完成了。  备份----复制----还原。
 
最后我们再来指定监视服务器。
到这里为止,日志传送就配置结束了:点击确定
测试:到SERVER2上可以看到DUFEI数据库已经创建成功了,并且岳雷这条记录也出现在辅助数据库中。
并且在SERVER2的共享文件夹中可以看到相应的日志文件也复制过来了。
 
与复制的目的是一样的,结果也相同,都不能实现自动的转移,但事务复制要求参与的表必须要有主键,而日志传送不需要。
 
日志文件应该是两分钟复制一次,但我们也没有必要每次都打开文件夹来查看,我们可以利用监视功能来监视服务器的运行状况。并定义一个警报来对你的日志传送进行监控,如果发生了故障,则通过操作员。但默认情况下,警报肯定是用不了的,我们要设置一下,如:
我们在监视服务器上:会发生自动多出两个警报
如果希望这两个警报能正常工作,我们要设置一下,过程如下:
1.   定义操作员:
2.   配置警报:
此时,再启用网卡,则一切又OK了!
1.   查看日志传送状况Z
在监视服务器上:
 
可以测试一下,我们在主服务器上创建一个表,或是更新一条记录,会很快的反映到辅助服务器。
最近我们来看一下如何手动的实现故障转移
1.   我们手动停止主要服务器上的SQL SERVER服务,删除相应的DUFEI数据库所对应的MDF文件  再次启动服务器,会发现DUFEI数据库已经不能用了。
2.   在辅助服务器上,禁用代理,运行命令
此时,辅助服务器上的DUFEI数据库就不再是只读了。!
但要注意的是:监视服务器上的代理作业也应该禁用,不然会不停的发出警报。
 
好,我们的实验就到此结束了!
 
最后可以清除日志传送:
关于日志传送就介绍到此! 





 本文转自 dufei 51CTO博客,原文链接:http://blog.51cto.com/dufei/88720,如需转载请自行联系原作者

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
3天前
|
Oracle 关系型数据库 数据库
实时计算 Flink版产品使用合集之采集Oracle数据库时,归档日志大小暴增的原因是什么
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStreamAPI、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
3天前
|
SQL Oracle 关系型数据库
实时计算 Flink版产品使用合集之从Oracle数据库同步数据时,checkpoint恢复后无法捕获到任务暂停期间的变更日志,如何处理
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStreamAPI、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
4天前
|
Oracle 关系型数据库 数据库
实时计算 Flink版产品使用合集之Oracle归档日志一天就达到了15GB并导致数据库崩溃,是什么导致的
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
9天前
|
关系型数据库 MySQL 数据库
mysql数据库bin-log日志管理
mysql数据库bin-log日志管理
|
10天前
|
存储 关系型数据库 数据库
关系型数据库文件方式存储LOG FILE(日志文件)
【5月更文挑战第11天】关系型数据库文件方式存储LOG FILE(日志文件)
65 1
|
11天前
|
数据库
编程日记02:个人站优化数据库和日志
编程日记02:个人站优化数据库和日志
20 0
|
11天前
|
存储 监控 Apache
查询提速11倍、资源节省70%,阿里云数据库内核版 Apache Doris 在网易日志和时序场景的实践
网易的灵犀办公和云信利用 Apache Doris 改进了大规模日志和时序数据处理,取代了 Elasticsearch 和 InfluxDB。Doris 实现了更低的服务器资源消耗和更高的查询性能,相比 Elasticsearch,查询速度提升至少 11 倍,存储资源节省达 70%。Doris 的列式存储、高压缩比和倒排索引等功能,优化了日志和时序数据的存储与分析,降低了存储成本并提高了查询效率。在灵犀办公和云信的实际应用中,Doris 显示出显著的性能优势,成功应对了数据增长带来的挑战。
查询提速11倍、资源节省70%,阿里云数据库内核版 Apache Doris 在网易日志和时序场景的实践
|
10天前
|
运维 监控 安全
Java一分钟之-Log4j与日志记录的重要性
【5月更文挑战第16天】Log4j是Java常用的日志框架,用于灵活地记录程序状态和调试问题。通过设置日志级别和过滤器,可避免日志输出混乱。为防止日志文件过大,可配置滚动策略。关注日志安全性,如Log4j 2.x的CVE-2021-44228漏洞,及时更新至安全版本。合理使用日志能提升故障排查和系统监控效率。
70 0
|
11天前
|
C++
JNI Log 日志输出
JNI Log 日志输出
55 1
|
11天前
|
存储 运维 大数据
聊聊日志硬扫描,阿里 Log Scan 的设计与实践
泛日志(Log/Trace/Metric)是大数据的重要组成,伴随着每一年业务峰值的新脉冲,日志数据量在快速增长。同时,业务数字化运营、软件可观测性等浪潮又在对日志的存储、计算提出更高的要求。
256 6

热门文章

最新文章