day10_日志文件

日志完全性:

归档日志:

日志镜像:

日志文件:

(1)在线日志文件记录所有数据变化信息

利用日志文件快速写功能提升数据库写入性能(写100W行数据,写磁盘要10分钟,写日志只要1分钟,库认为日志写完了,数据就写完了。)

(2)为实例失败与介质失败提供恢复机制

日志建立的2种方式(库中什么时候产生日志):

1、按物理条件:只要块发生变化,就把块记录到日志中(记录内容多,还原速度快)

2、逻辑操作:操作动作,你做了哪些操作动作(记录的少,还原慢)

oracle是怎么记录的?监控块变化,记录块上的操作动作。

1个块8K,假设记录100行,一次插入,只记录一条,动作是按块记录的。

insert 100W行,改变了10W个块,产生10W条日志记录。

delete操作6M数据,产生日志量可能会大于6M,可能是块分布的不均匀。每个块的操作步骤都记录下来。

oracle这种,能保证还原速度,又能保证记录数据时,减少服务器压力,oracle做了个折中。

公司经常问你说,看你维护服务器的规模,就知道你的能力是什么样的,能给你多少钱了?

你说我们库10G数据,人家给不了你多少钱。oracle至少是维护百G的数据的,这都不是大库。

你说我们库500G、1000G的数据,这种才是主流库,再大点就是数据仓库。

人家还会问你,每天数据变化?或者数据增长量?

比如说库中有500G,每天数据变化量5G,每天增长1~2G,这就是主流库了。

你的数据变化越频繁, 意味你日志产生越多,你维护手段越多。

如果每天没啥访问,日志没啥变化,也就不用维护日志文件了。

你一个库10G数据,你什么调优方式、管理方式全都不用了,请你来就闲着。

它就知道你维护10G的库,用不了啥技术,也就给不了多少钱。

你说你维护100多T的数据,一听这得是数据仓库,这肯定能要上钱。

--------------------------------------------------------------------------------

来自为知笔记(Wiz)

时间: 2024-10-07 05:46:06

day10_日志文件的相关文章

SQL存储过程删除数据库日志文件的方法

--日志文件收缩至多少M DECLARE @DBLogSise AS INT SET @DBLogSise=0 --查询出数据库对应的日志文件名称 DECLARE @strDBName AS NVARCHAR(500) DECLARE @strLogName AS NVARCHAR(500) DECLARE @strSQL AS VARCHAR(1000) SELECT @strLogName=B.name, @strDBName=A.name FROM master.sys.databases

expdp导出遇到ORA-39064: 无法写入日志文件

. . 导出了 "USER_XXXX"."TAB_YYYY" 0 KB 0 行 ORA-39064: 无法写入日志文件 ORA-29285: 文件写入错误 经过搜索mos,有如下的文章给出了解决方案: Error ORA-39064 Might Be Encountered By DataPump Export (EXPDP) When NLS_LANG Is Different From Database Character Set (Doc ID 1321034

windows服务器清理系统垃圾日志文件

Windows服务器的系统盘如果是2003系统的话那么我们默认给10G的空间就够了,但是有时候我们不经意去查看系统盘的时候发现已经使用了9.9G,其实多是垃圾日志文件占用系统盘空间,使用如下批处理将这些文件删除. 在桌面新建一个文本文档,将如下代码复制进去: @echo off echo 正在清除系统垃圾文件,请稍等...... del /f /s /q %systemdrive%\*.tmp del /f /s /q %systemdrive%\*._mp del /f /s /q %syst

MySQL日志文件与分析

1.查询日志.慢查询日志.二进制日志对比 查询日志 general_log 会记录用户的所有操作,其中包含增删查改等 可以指定输出为表 慢查询日志 slow_log 只要超过定义时间的所有操作语句都记录 可以指定输出为表 二进制日志 log_bin 记录可能执行更改的所有操作 mysqlbinlog查看 2.日志的分析 2.1日志的存储 数据操作过程中,Mysqld是将接收到的语句按照接收的顺序(注意不是执行顺序)写到查询日志文件中.一条一条就类似这样: # Time: 070927 8:08:

用于监控日志文件的是否被修改的脚本

最近一段需要监控观察web服务器上的日志文件是否有写入,用来判断是否服务进程是否是正常,为此就简单写了一个脚本: #!/bin/bash #check_logfile_io.sh #Used to monitor logs I/O #writer jim #histor #2017.3.22 log_file_path=/usr/local/apache/log/access.log First_md5sum=$(/usr/bin/md5sum $log_file_path | awk '{pr

IIS 7 出现日志文件时间与服务器时间不符

最近在分析web日志,发现IIS7日志中时间与系统时间不一致,即本该上班时间才产生 的产并发访问日志,全部发生在凌晨至上班前. 本以为是系统时间设置错误,检查后一切正常.后查询资料,原来是这个原因: 日志的格式有IIS.NCSA.W3C三种: 1.IIS是固定的基于 ASCII 文本的格式,无法自定义记录的字段,字段由逗号分隔, 记录的时间为本地时间文件名前缀为u_in. 2.NCSA是美国国家超级计算技术应用中心 (NCSA) 公用日志文件格式,也是固定的基 于 ASCII 文本的格式,无法自

windows 日志文件查找符合条件的列并统计

因为要将windows每天登陆失败的次数统计, "wevtutil el  "           //列出日志名称 "wevtutil  gl  日志名称" //获取日志配置信息. 你可以使用短(如 ep /uni)或长(如enum-publishers /unicode)形式的命令和选项名称. 命令.选项和选项值不区分大小写. 变量均使用大写形式. wevtutil COMMAND [ARGUMENT [ARGUMENT] ...] [/OPTION:VALUE

log4net 既要按日期分割日志文件,又要按文件大小分割。

<appender name="DebugAppender" type="log4net.Appender.RollingFileAppender"> <file value="log\debug\"/> <appendToFile value="true" /> <rollingStyle value="Composite" /> <datePatte

(Unity)Unity自定义Debug日志文件,利用VS生成Dll文件并使用Dotfuscated进展混淆,避免被反编译

Unity自定义Debug日志文件,利用VS生成Dll文件并使用Dotfuscated进行混淆,避免被反编译. 1.打开VS,博主所用版本是Visual Studio 2013. 2.新建一个VC项目,选择类库,取名为JefferyChan,具体步骤如下图: 3.因为要调用Unity中的相关文件,所以这里要引入外部文件.首先在Unity的安装文件夹中找到UnityEngine.dll,我的路径是:D:\Program Files (x86)\Unity\Editor\Data\Managed 如