日志文件

10-【MongoDB入门教程】 Journaling日志机制

让人想犯罪 __ 提交于 2019-12-01 14:46:01
Journaling日志机制 运行MongoDB如果开启了journaling日志功能,MongoDB先在内存保存写操作,并记录journaling日志到磁盘,然后才会把数据改变刷入到磁盘上的数据文件。为了保证journal日志文件的一致性,写日志是一个原子操作。本文将讨论MongoDB中journaling日志的实现机制。 Journal日志文件 如果开启了journal日志功能,MongoDB会在数据目录下创建一个 journal 文件夹,用来存放预写重放日志。同时这个目录也会有一个 last-sequence-number 文件。如果MongoDB安全关闭的话,会自动删除此目录下的所有文件,如果是崩溃导致的关闭,不会删除日志文件。在MongoDB进程重启的过程中,journal日志文件用于自动修复数据到一个一致性的状态。 journal日志文件是一种往文件尾不停追加内容的文件,它命名以 j._ 开头,后面接一个数字(从0开始)作为序列号。如果文件超过1G大小,MongoDB会新建一个journal文件 j._1 。只要MongoDB把特定日志中的所有写操作刷入到磁盘数据文件,将会删除此日志文件。因为数据已经持久化,不再需要用它来重放恢复数据了。journal日志文件一般情况下只会生成两三个,除非你每秒有大量的写操作发生。 如果你需要的话,你可以使用 storage

(转)MySQL日志系统

☆樱花仙子☆ 提交于 2019-12-01 13:09:39
原文: https://www.cnblogs.com/roverliang/p/6414457.html MySQL 日志系统 做过大型系统的都知道,日志的作用不用小觑,往往到了项目中后期,对项目进行优化升级都是依据日志做出升级优化的决策的。那么学习MySQL,日志部分当然不能错过。我们面试中实际应用的所谈到的优化都是要从日志中得出来的。系统的学习mysql的日志,有助于我们准确的定位问题,提高自己的工作水平。此外,后面的一系列日志会重点从DBA的运维方面进行着手,系统的去理解MySQL各方面的配置,做到知己知彼,让MySQL成为自己得心应手的数据仓库。 一、MySQL的日志类型 默认情况下,所有的MySQL日志以文件的方式存放在数据库根目录下: [root@roverliang data]# pwd /usr/local/webserver/extend_lib/mysql/data [root@roverliang data]# ls auto.cnf ibdata1 ib_logfile0 ib_logfile1 mysql mytest performance_schema roverliang roverliang.err roverliang.pid test MySQL的日志类型有以下几种: 1. 错误日志(error),MySQL服务实例启动

C#的分布式消息队列介绍

懵懂的女人 提交于 2019-12-01 09:58:41
EQueue架构 EQueue是一个分布式的、轻量级、高性能、具有一定可靠性,纯C#编写的消息队列,支持消费者集群消费模式。 主要包括三个部分:producer, broker, consumer。producer就是消息发送者;broker就是消息队列服务器,负责接收producer发送过来的消息,以及持久化消息;consumer就是消息消费者,consumer从broker采用拉模式到broker拉取消息进行消费,具体采用的是long polling(长轮训)的方式。这种方式的最大好处是可以让broker非常简单,不需要主动去推消息给consumer,而是只要负责持久化消息即可,这样就减轻了broker server的负担。同时,consumer由于是自己主动去拉取消息,所以消费速度可以自己控制,不会出现broker给consumer消息推的太快导致consumer来不及消费而挂掉的情况。在消息实时性方面,由于是长轮训的方式,所以消息消费的实时性也可以保证,实时性和推模型基本相当。 EQueue是面向topic的架构,和传统的MSMQ这种面向queue的方式不同。使用EQueue,我们不需要关心queue。producer发送消息时,指定的是消息的topic,而不需要指定具体发送到哪个queue。同样,consumer发送消息也是一样,订阅的是topic

Redis数据库配置

有些话、适合烂在心里 提交于 2019-12-01 09:55:36
1.安装 sudo apt-get install redis-server 2.配置 sudo vim /etc/redis/redis.conf    修改配置 bind 指定ip port 指定端口 daemonize 是否以守护进程运行 dbfilename 数据持久化时的文件名 dir 上面的文件在哪保存 logfile 日志文件位置 database 数据库有多少个 slaveof 主从复制 来源: https://www.cnblogs.com/yangzixiong/p/11677127.html

logrotate

天涯浪子 提交于 2019-12-01 08:44:49
手动执行logrote 测试命令 logrotate -d debug 调试 -f force 强制执行, 跟想要执行的 日志轮询的 单独配置文件 配置文件 ,参数 create 和  copytruncate 的区别: 总的说 就是 create = mv + cerate , copytruncate = cp + echo > log file 详情如下: 1)create: 这也就是默认的方案,可以通过 create 命令配置文件的权限和属组设置;这个方案的思路是重命名原日志文件,创建新的日志文件。详细步骤如下: 重命名正在输出日志文件,因为重命名只修改目录以及文件的名称,而进程操作文件使用的是 inode,所以并不影响原程序继续输出日志。 创建新的日志文件,文件名和原日志文件一样,注意,此时只是文件名称一样,而 inode 编号不同,原程序输出的日志还是往原日志文件输出。 最后通过某些方式通知程序,重新打开日志文件;由于重新打开日志文件会用到文件路径而非 inode 编号,所以打开的是新的日志文件。 如上也就是 logrotate 的默认操作方式,也就是 mv+create 执行完之后,通知应用重新在新文件写入即可。mv+create 成本都比较低,几乎是原子操作,如果应用支持重新打开日志文件,如 syslog, nginx, mysql 等,那么这是最好的方式。 不过

Python logger模块

不羁岁月 提交于 2019-12-01 07:48:13
1 logging模块简介 logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级、日志保存路径、日志文件回滚等;相比print,具备如下优点: 可以通过设置不同的日志等级,在release版本中只输出重要信息,而不必显示大量的调试信息; print将所有信息都输出到标准输出中,严重影响开发者从标准输出中查看其它数据;logging则可以由开发者决定将信息输出到什么地方,以及怎么输出; 2 logging模块使用 2.1 基本使用 配置logging基本的设置,然后在控制台输出日志, import logging logging.basicConfig(level = logging.INFO,format = '%(asctime)s - %(name)s - %(levelname)s - %(message)s') logger = logging.getLogger(__name__) logger.info("Start print log") logger.debug("Do something") logger.warning("Something maybe fail.") logger.info("Finish") 运行时,控制台输出, 2016-10-09 19:11:19,434 - __main__ - INFO -

不一样的日志文件

*爱你&永不变心* 提交于 2019-12-01 07:06:30
今天去章丘司法警官学院,到的时候快中午了,今天的任务是将服务器的上日志全部导入到日志分析平台当中。 我想先cat一下服务器日志文件里面记录的是什么内容,结果CAT一下,就卡那了,没有任何反应,于是我赶紧用CTRL+ C取消,也没反应,吓我了一跳,千万别出什么意外!我呆呆得站在机柜旁边,手停留在键盘上一动不敢动,足足两分钟过去了,cat终于停下了,不知道为什么,怎么查看一下日志就卡成这样?于是我又查看了一下文本类型,发现里面就是文本文本,但是为什么看不了呢?我不敢再尝试,我在机房里面想了好一会儿,也没想出什么原因,我不敢再向下操作了!正好中午到了,我去学校的食堂里面买了饭票,吃的杂酱面,吃完饭想找纸擦擦嘴,发现墙上有学校准备的纸,我起身去拿,结果前面有个妹子正在拿,她一直在抽纸框里面的纸,拿了好多,我心想拿这么多纸干啥?太墨迹了,太慢了。突然灵感来了,会不会是日志文件太大了,结果导致从硬盘调用到内存里面时候用时太长,我赶紧回去,看了一下日志文件的大小,53G!靠,把日志文件导入到分析平台足足用了6个多小时,第一次见这么大的日志文件。 来源: https://www.cnblogs.com/yizhangheka/p/11666315.html

Oracle体系结构和用户管理

南笙酒味 提交于 2019-12-01 02:14:51
通过博文 部署Oracle 12c企业版数据库 已经可以部署Oracle数据库了,本篇博文主要介绍Oracle的体系结构,包括存储结构、内存结构和进程结构进行初步了解。对进一步学习Oracle数据库有很大的帮助。 博文大纲: 一、Oracle体系结构 1.Oracle体系结构概述 2.Oracle服务器 3.Oracle存储结构 4.Oracle内存结构 5.Oracle进程结构 二、CDB与PDB的基本操作 三、用户管理 四、数据库权限管理 五、导入测试数据 一、Oracle体系结构 数据库的体系结构是指数据库的组成、工作过程、以及数据库中数据的组织与管理机制,要了解Oracle数据库的体系结构,必须理解Oracle系统的主要组件和重要概念。 1.Oracle体系结构概述 Oracle体系结构包含一系列组件,如图: 图中显示了Oracle体系结构中的主要组件,包括实例、用户进程、服务器进程、数据文件及其他文件,如参数文件、口令文件和归档日志文件等。 从图中可以看出,实例和数据库是Oracle数据库体系结构的核心组成部分,也是最重要的两个概念。 作为一个DBA管理者,维护实例和数据库本身的正常运行是最基本的技能。 (1)实例 Oracle实例是后台进程和内存结构的集合,必须启动实例才能访问数据库中的数据。Oracle实例启动时,将分配一个系统全局区(SGA

my.cnf参数说明

試著忘記壹切 提交于 2019-12-01 01:32:21
MySQL 5.7数据库参数优化 连接相关参数 max_connections: 允许客户端并发连接的最大数量,默认值是151,一般将该参数设置为500-2000 max_connect_errors: 如果客户端尝试连接的错误数量超过这个参数设置的值,则服务器不再接受新的客户端连接。可以通过清空主机的缓存来解除服务器的这种阻止新连接的状态,通过FLUSH HOSTS或mysqladmin flush-hosts命令来清空缓存。这个参数的默认值是100,一般将该参数设置为100000。 interactive_timeout: Mysql关闭交互连接前的等待时间,单位是秒,默认是8小时,建议不要将该参数设置超过24小时,即86400 wait_timeout: Mysql关闭非交互连接前的等待时间,单位是秒,默认是8小时,建议不要将该参数设置超过24小时,即86400 skip_name_resolve: 如果这个参数设为OFF,则MySQL服务在检查客户端连接的时候会解析主机名;如果这个参数设为ON,则MySQL服务只会使用IP,在这种情况下,授权表中的Host字段必须是IP地址或localhost。 这个参数默认是关闭的 back_log: MySQL服务器连接请求队列所能处理的最大连接请求数,如果队列放满了,后续的连接才会拒绝

(转)python logging模块

痴心易碎 提交于 2019-11-30 23:52:34
原文:http://www.cnblogs.com/dahu-daqing/p/7040764.html 1 logging模块简介 logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级、日志保存路径、日志文件回滚等;相比print,具备如下优点: 可以通过设置不同的日志等级,在release版本中只输出重要信息,而不必显示大量的调试信息; print将所有信息都输出到标准输出中,严重影响开发者从标准输出中查看其它数据;logging则可以由开发者决定将信息输出到什么地方,以及怎么输出; 2 logging模块使用 2.1 基本使用 配置logging基本的设置,然后在控制台输出日志, import logging logging.basicConfig(level = logging.INFO,format = '%(asctime)s - %(name)s - %(levelname)s - %(message)s') logger = logging.getLogger(__name__) logger.info("Start print log") logger.debug("Do something") logger.warning("Something maybe fail.") logger.info("Finish") 运行时