什么是MySQL binlog

什么是MySQL binlog,第1张

二进制日志(binlog)是 MySQL 日志结构中重要的部分;记录了数据的更改 *** 作,用于数据恢复、数据复制以及审计。然而在众多实际场景中经常发生高并发引起 binlog 暴涨的问题将挂载点空间占满以及主从网络带宽成为瓶颈时主从延时过大。8020 版本推出 binlog 压缩功能,有效缓解甚至解决此类问题。

特性描述MySQL 从 8020 开始集成 ZSTD 算法,开启压缩功能后;以事务为单位进行压缩写入二进制日志文件,降低原文件占用的磁盘空间。压缩后的事务以压缩状态有效负载在复制流中发送到从库(MGR 架构中为组 member)或客户端(例如 mysqlbinlog)。

2直接拷贝数据库文件mdf和日志文件ldf的方式。 下面我们来讲解一下在只有mdf文件时,应当如何进行恢复:◆1我们使用默认方式建立一个供恢复使用的数据库(如test)。可以在SQL Server Enterprise Manager里面建立。 ◆2停掉数据库服务器。 ◆3将刚才生成的数据库的日志文件test_logldf删除,用要恢复的数据库mdf文件覆盖刚才生成的数据库数据文件test_datamdf。 ◆4启动数据库服务器。此时会看到数据库test的状态为“置疑”。这时候不能对此数据库进行任何 *** 作。 ◆5设置数据库允许直接 *** 作系统表。此 *** 作可以在SQL Server Enterprise Manager里面选择数据库服务器,按右键,选择“属性”,在“服务器设置”页面中将“允许对系统目录直接修改”一项选中。 ◆6设置test为紧急修复模式 update sysdatabases set status=-32768 where dbid=DB_ID('test')此时可以在SQL Server Enterprise Manager里面看到该数据库处于“只读置疑脱机紧急模式”可以看到数据库里面的表。 ◆7下面执行真正的恢复 *** 作,重建数据库日志文件 dbcc rebuild_log('test','C:Program FilesMicrosoft SQL ServerMSSQLDatatest_logldf')执行过程中,如果遇到下列提示信息:服务器: 消息 5030,级别 16,状态 1,行 1未能排它地锁定数据库以执行该 *** 作。 DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。说明您的其他程序正在使用该数据库,如果刚才您在F步骤中使用SQL Server Enterprise Manager打开了test库的系统表,那么退出SQL Server Enterprise Manager就可以了。正确执行完成的提示应该类似于:警告: 数据库 'test' 的日志已重建。已失去事务的一致性。应运行 DBCC CHECKDB 以验证物理一致性。将必须重置数据库选项,并且可能需要删除多余的日志文件。 DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。此时打开在SQL Server Enterprise Manager里面会看到数据库的状态为“只供DBO使用”。 至此,我们就可以访问数据库里面的用户表了。

首先确认数据库恢复模型是否为 simple, 如果不是,那么需要先备份日志(或者临时将数据库恢复模型改为 simple),日志空间才能回收再使用

回放日志文件未用空间(释放给磁盘),可以使用 dbcc shrinkfile(日志文件逻辑名, emptyfile)

希望对你有帮助!Oracle数据库的日志有:Redologfile----重做日志Archivelogfile----归档日志Tracefile----跟踪日志backupground_dump_dest----后台进程跟踪core_dump_dest----Oracle内核日志User_dump_dest----用户跟踪(服务器进程)简称日志一般指的是联机重做日志文件(Redlog)。主要功能是恢复异常关闭的数据库和保证数据的完整性、一致性。还有可恢复近期丢失的数据(这要看重做日志文件的容量)。重做文件的原理是:把DML(Insert、Update、Delete)语句所处理的前后记录都写入重做日志文件中。当数据库的数据出故障时利用重做日志文件中的数据重新运行一次之前做过的业务,以此来恢复数据库中除了故障的数据。重做日志文件至少要有两组,一般是三组。写满第一组写第二组,写满第二组写第三组,写满第三组返回覆盖写第一组,以此类推。

在Oracle数据库中,有一种日志文件叫做重做日志文件,他就是大家俗称的:redolog。在redolog中又分为两种:在线重做日志与归档日志。

ONLINE Redo log

在线重做日志(online redo log )主要用于:Oracle数据库所在服务器突然掉电、突然重启或者执行shutdown abort等命令使得在服务器重新启动之后,Oracle数据库没有办法正常的启动实例。此时,在线重做日志就派上了用场,Oracle会使用在线重做日志,把数据库恢复到服务器掉电前的那一个时刻,从而使得数据库能正常的启动起来 。

在Oracle数据库中,默认情况下,至少会有两个重做日志组,而且每个组里面至少包含了一个重做日志文件。日志组不会自动增加,在一个写满之后,会自动去写下一个。在下一个被写满之后会又从第一个开始写起。

Archive redo log

归档日志(archive log)主要用于硬件级别的错误:磁盘的坏道导致无法读写、写入的失败、磁盘受损导致数据库数据丢失。这就要使用归档日志文件,通过归档日志文件,把数据库恢复到归档日志所在的时间点上然后再通过在线重做日志文件把数据库恢复到当前的时间点上。

对于归档日志文件,可以理解为在线重做日志文件的备份。即当一个重做日志文件被填满了之后,归档日志文件就会把其备份保留一份。(因为上面说了,在线重做日志文件会自动的覆盖)所以,归档日志文件就是旧的在线日志文件的备份。

以上就是关于什么是MySQL binlog全部的内容,包括:什么是MySQL binlog、SQL Server数据库LOG丢失后应当如何恢复、如何清理sqlserver 2008 数据库log等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9864896.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存