日志文件

Redis学习-持久化机制

半世苍凉 提交于 2019-12-29 21:25:02
Redis持久化的意义   在于故障恢复   比如你部署了一个redis,作为cache缓存,当然也可以保存一些较为重要的数据   如果没有持久化的话,redis遇到灾难性故障的时候(断电、宕机),就会丢失所有的数据   如果通过持久化将数据搞一份儿在磁盘上去,然后定期比如说同步和备份到一些云存储服务上去,那么就可以保证数据不丢失全部,还是可以恢复一部分数据回来的 通常Redis 将数据存储在内存中或虚拟内存中,它是通过以下两种方式实现对数据的持久化(如果我们想要redis仅仅作为纯内存的缓存来用,那么可以禁止RDB和AOF所有的持久化机制) 1、RDB 快照方式:(默认持久化方式)   这种方式就是将内存中数据以快照的方式写入到二进制文件中,默认的文件名为 dump.rdb。客户端也可以使用 save 或者 bgsave 命令通知 redis做一次快照持久化。save 操作是在 主线程中保存快照的,由于 redis 是用一个主线程来处理所有客户端的请求,这种方式会阻塞所有客户端请求。所以不推荐使用。另一点需要注意的是,每次快照持久化都是将内存数 据完整写入到磁盘一次,并不是增量的只同步增量数据。如果数据量大的话,写操作会比较多,必然会引起大量的磁盘 IO 操作,可能会严重影响性能。    注意:由于快照方式是在一定间隔时间做一次的,所以如果 redis 意外当机的话,就会

redis的两种持久化技术

ε祈祈猫儿з 提交于 2019-12-29 21:24:44
1、介绍:  RDB持久化机制,是对redis中的数据执行周期性的持久化;  AOF机制是对每条写入的命令作为日志,以append-only的模式写入到一个日志文件中,在redis重启的时候,将AOF日志中的数据重新加载到redis内存中去; 2、两种持久化方式的优缺点: RDB模式优点: RDB会生成多个数据文件,每个文件代表了某一时刻中redis中的数据,适合做冷备,可以将数据文件放到远程的安全存储上,如阿里云,以保证数据的安全; RDB对redis对外提供的读写服务影响小,可以让redis保持高性能,主要是因为redis主进程只需要fork一个子进程,让子进程执行磁盘的IO操作来进行持久化即可; 相比较AOF的持久化机制来说,基于RDB数据文件来重启或者回复redis进程,更加的快速,因为AOF做数据恢复的时候,要执行保存的所有的指令日志,而RDB恢复的时候,直接加载到内存中即可; RDB模式的缺点: 如果想在redis故障的时候,尽可能少的丢失数据,那么RDB没有AOF好,一般RDB快照文件都是隔5分钟或者更长的时间生成一次,在这段时间出现故障,会丢失5分钟或者更长时间的数据(最大的缺点); RDB每次在fork子进程来执行RDB快照数据文件的时候,如果数据文件特别大,可能会导致redis客户端提供的服务暂停数毫秒或者几秒,对redis的性能可能会有影响; AOF模式的优点

redis的两种持久化方案

若如初见. 提交于 2019-12-29 21:24:32
原文: redis的两种持久化方案 前言 人生在于折腾系列,网络,多线程等系列博客楼主还在继续折腾也不会放弃。这是全新的系列,缓存的知识其实并不仅仅在于简单的增删改查,我觉得有必要全面深入的学习一波。记录学习的过程与体悟。 RDB 什么是RDB 对redis中的数据执行周期性的持久化,通过配置文件中设置检查间隔时间与备份触发条件来对数据进行周期性的持久化 RDB持久化的优点 RDB会生成多个数据文件,每个数据文件都代表了某一个时刻中redis的数据,这种多个数据文件的方式,非常适合做冷备份。 RDB对redis对外提供的读写服务,影响非常小,可以让redis保持高性能,因为redis主进程只需要fork一个子进程,让子进程执行磁盘IO操作来进行RDB持久化即可 相对于AOF持久化机制来说,直接基于RDB数据文件来重启和恢复redis进程,更加快速 RDB持久化的缺点 如果想要在redis故障时,尽可能少的丢失数据,那么RDB没有AOF好。一般来说,RDB数据快照文件,都是每隔5分钟,或者更长时间生成一次,这个时候就得接受一旦redis进程宕机,那么会丢失最近5分钟的数据。这个问题,也是rdb最大的缺点,就是不适合做第一优先的恢复方案,如果你依赖RDB做第一优先恢复方案,会导致数据丢失的比较多 RDB每次在fork子进程来执行RDB快照数据文件生成的时候,如果数据文件特别大

[C#]写系统日志和写日志文件

心不动则不痛 提交于 2019-12-29 04:53:43
事件日志: 使用EventLog 类,如: 下面的示例创建源 MySource(如果尚未存在),并在事件日志 MyNewLog 中写入一项。 using System; using System.Diagnostics; using System.Threading; class MySample{ public static void Main(){ // Create the source, if it does not already exist. if(!EventLog.SourceExists( "MySource ")){ EventLog.CreateEventSource( "MySource ", "MyNewLog "); Console.WriteLine( "CreatingEventSource "); } // Create an EventLog instance and assign its source. EventLog myLog = new EventLog(); myLog.Source = "MySource "; // Write an informational entry to the event log. myLog.WriteEntry( "Writing to event log. "); } } 文本文件:

SQLite学习笔记(七)&&事务处理

自作多情 提交于 2019-12-29 03:01:06
说到事务一定会提到ACID,所谓事务的原子性,一致性,隔离性和持久性。对于一个数据库而言,通常通过并发控制和故障恢复手段来保证事务在正常和异常情况下的ACID特性。sqlite也不例外,虽然简单,依然有自己的并发控制和故障恢复机制。 Sqlite学习笔记(五)&&SQLite封锁机制 已经讲了一些锁机制的原理,本文将会详细介绍一个事务从开始,到执行,最后到提交所经历的过程,其中会穿插讲一些sqlite中锁管理,缓存管理和日志管理的机制,同时会介绍在异常情况下(软硬件故障,比如程序异常crash,主机掉电等),sqlite如何将数据库恢复到事务之前的状态。本文大量参考了sqlite的官方文档,结合自己的理解,希望能把这个过程说清楚。 1.事务提交 1.1 开启一个事务 在向数据库文件写数据前,sqlite首先需要访问sqlite_master表获取元数据信息,用来对SQL语句进行语义分析,判断语句的合法性。从数据库读数据第一步,是对数据库文件上一个Shared Lock。Shared Lock允许多个事务同时读一个数据库文件,但是Shared Lock会阻止写事务向数据库文件写入数据。 1.2 读数据 获取Shared Lock后,我们可以从数据库文件中读取数据了。我们假设缓存中没有我们的page,因此需要通过读文件读取我们需要的page。这里说明下

SpringBoot------自定义Logback日志

僤鯓⒐⒋嵵緔 提交于 2019-12-29 00:43:50
帮助文档: https://docs.spring.io/spring-boot/docs/2.1.0.BUILD-SNAPSHOT/reference/htmlsingle/#boot-feature-logging log4j.properties转换logback.xml https://logback.qos.ch/translator/https://logback.qos.ch/manual/index.html 转换前代码: ### 设置### log4j.rootLogger = debug,stdout,D,E ### 输出信息到控制抬 ### log4j.appender.stdout = org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target = System.out log4j.appender.stdout.layout = org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n ### 输出DEBUG 级别以上的日志到=E://logs/error.log ### log4j

SpringBoot日志配置

≡放荡痞女 提交于 2019-12-29 00:42:51
Spring Boot 定制日志文件 简单的日志配置不能满足实际项目需求,那可以通过引用定制日志文件的形式达到目的。Spring Boot能根据类路径下的类库和配置文件自动配置对应的日志框架。 日志框架 配置文件 Logback logback-spring.xml, logback-spring.groovy, logback.xml, or logback.groovy Log4j2 log4j2-spring.xml or log4j2.xml JDK (Java Util Logging) logging.properties 按对应类库在 classpath 下创建对应支持的日志配置文件就行,或者通过配置 logging.config 指定。 既然默认是支持 Logback 的,那现在只要在资源根目录下创建一个 logback-spring.xml 文件即可。 xx-spring 这是 Spring Boot 推荐的命名方式,否则 Spring Boot 不能完全控制日志初始化,因为默认命名配置文件 logback.xml 加载较早不能获取到 application.properties 中的配置信息。 application.properties 配置: # 日志级别 logging.level.root=DEBUG # 输出到日志文件 logging.file=d:

logback如何配置springboot框架

梦想与她 提交于 2019-12-29 00:41:12
创建logback-spring.xm在src/main/resources下面(springboot推荐使用logback-spring.xml而不是logback.xml)文件。 logback-spring.xml文件例子: 以下是一个logback-spring.xml的例子,可以直接复制使用 <?xml version="1.0" encoding="UTF-8"?> <configuration scan="true"> <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径--> <property name="LOG_NAME" value="/home"></property> <!-- %m输出的信息,%p日志级别,%t线程名,%d日期,%c类的全名,,,, --> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <!--<pattern>%d %p (%file:%line\)- %m%n</pattern>--> <!--格式化输出:%d:表示日期 %thread:表示线程名 %-5level:级别从左显示5个字符宽度 %msg:日志消息 %n:是换行符--> <pattern>1-%d{yyyy-MM-dd HH:mm:ss}

GP服务器日志

假装没事ソ 提交于 2019-12-28 18:46:22
日志文件对于确定出错的原因可以提供更多的信息。Master和每个Segment Instance都有自己的日志文件,位于数据目录下的pg_log中。Master的日志文件包含着最多的信息,应该总是首先检查Master日志文件 一、概述 master的日志位于 <MASTER_DATA_DIRECTORY>/pg_log下,各segment的日志在其数据目录的pg_log下。如下图 日志包括 startup.log 数据库启动过程中的日志 gpdb<时间戳>.csv 1、GP启动后的一般日志 2、每天自动滚动 3、文件过大时自动滚动,默认是10MB 二、日志格式 三、GP服务器日志分级 级别 描述 PANIC 集群重置,所有会话中断 FATAL 当前会话中止,也包括登陆失败 ERROR 当前查询取消或异常结束,事务失败回滚 WARNING 可能有问题,但是不会影响查询和事务的继续执行 LOG 一般性管理信息,例如checkpoint INFO 用户信息,会显示在客户端 NOTICE 用户信息,会显示在客户端 DEBUG1-DEBUG5 开发人员调试 四、GP服务器日志配置 来源: CSDN 作者: MyySophia 链接: https://blog.csdn.net/MyySophia/article/details/103746775

SQL Server 2008数据备份与还原的原理是什么?

淺唱寂寞╮ 提交于 2019-12-28 10:02:55
为什么SqlServer有完整备份、差异备份和事务日志备份三种备份方式,以及为什么数据库又有简单模式、完整模式和大容量日志模式这三种恢复模式。本文内容适用于2005以上所有版本的SqlServer数据库。   单就操作过程而言,SqlServer中数据库 备份 和恢复过程是相当简单的,可以通过ManagementStudio的图形界面进行操作,也可以使用几句T-SQL语句完成。但要明白备份恢复的整个过程,定制符合系统需求数据库备份方案,却需要知晓数据库的实现原理。备份和 恢复 是数据库的核心功能。   可能许多同学对SQLServer的备份和还原有一些了解,也可能经常使用备份和还原功能,我相信除DBA之外我们大部分开发员队伍对备份和还原只使用最基础的功能,对它也只有一个大概的认识。   一、数据库原理   先简要讨论了SqlServer数据库的存储的物理和逻辑结构,这是备份恢复的理论基础。   1.为什么使用 数据库   为什么要使用数据库,而不是使用一个文件,然后自己写一些方法来保存数据,那是因为使用数据库我们就不用自己去实现下面这些算法上非常复杂的功能:   a.高效一致的结构化数据存取方法,进行复杂的任意条件组合嵌套的数据查询(关系数据库管理系统甚至为实现这一功能专门设计了一种语言:SQL)   b.保障数据操作的原子性和完整性   c.确保在服务器断电、网络中断、服务器崩溃