精华内容
下载资源
问答
  • 这是一款查询数据库操作日志记录的工具,我个人觉得还是挺实用的!希望对各位老铁也有实质性的帮助!有好的东西也可以跟各位开发友人一块分享!
  • 数据库日志记录

    千次阅读 2019-08-14 17:29:23
    日志一般分成Undo与Redo:Undo一般用于事务的取消与回滚,记录的是数据被修改前的值,Redo一般用于恢复已确认但未写入数据库的数据,记录的是数据修改后的值,例如:数据库忽然断电重启,数据库启动时一般要做一致性...

    日志一般分成Undo与Redo:Undo一般用于事务的取消与回滚,记录的是数据被修改前的值,Redo一般用于恢复已确认但未写入数据库的数据,记录的是数据修改后的值,例如:数据库忽然断电重启,数据库启动时一般要做一致性检查,会把已写到Redo的数据但未写入数据库的数据重做一遍。
    MySQL的binlog日志作用是用来记录mysql内部增删改等对mysql数据库有更新的内容的记录(对数据库的改动),对数据库查询的语句如show,select开头的语句,不会被binlog日志记录。binlog日志只要用于数据库的增量恢复,以及主从复制。

    展开全文
  • 传送门开启Binlog日志使用Binlog日志恢复数据启动Binlog利用binlog日志重做数据库操作通过binlog日志恢复记录 开启Binlog日志 修改配置文件,并重启服务 vim /etc/my.cnf [mysqld] server_id=1 #指定server_id ...
  • 数据库 基于日志恢复技术Introduction 介绍 A log is the most widely used recording database modification technique. The log is a structure used for recording database modification. It is a sequence ...

    数据库 基于日志的恢复技术

    Introduction

    介绍

    A log is the most widely used recording database modification technique. The log is a structure used for recording database modification. It is a sequence of log record recording all the update activities in the database. We can use this log to recover from failure and to bring back the database to the consistent state. An update log record contains various fields:

    日志是最广泛使用的记录数据库修改技术。 日志是用于记录数据库修改的结构。 它是一系列日志记录,记录了数据库中的所有更新活动。 我们可以使用此日志从故障中恢复并使数据库恢复到一致状态。 更新日志记录包含多个字段:

    • Transaction identifier: It is the identifier which uniquely identifies the transaction.

      交易标识符:是唯一标识交易的标识符。

    • Data item identifier: It is the identifier which uniquely identifies the data to be used.

      数据项标识符:是唯一标识要使用的数据的标识符。

    • Old value: It is the value of the data item before the write operation.

      旧值:这是写操作之前数据项的值。

    • New value: It is the value of the data item after performing the write operation.

      新值:是执行写操作后数据项的值。

      There are many types of log record we denote the various types of log records:

      日志记录有很多类型,我们表示各种类型的日志记录:

      1. <Ti start> transaction Ti has started.
      2. <Ti, Xi, V1, V2> transaction Ti has performed a write on data item Xi, Xj has value v1 before the write and will have value V2 after the write operation.
      3. <Ti commit> transaction Ti has committed.
      4. <Ti abort> transaction Ti ha aborted.

    Whenever a transaction performs write operation database is modified only when log record for that write is created. And logs may or may not contain the record of reading of data item. It is so because reading the data item does not affect the consistency of the database and is nowhere helpful in recovery mechanism.

    每当事务执行写操作时,仅在创建该写的日志记录时才修改数据库。 并且日志可能包含或可能不包含读取数据项的记录。 之所以如此,是因为读取数据项不会影响数据库的一致性,并且对恢复机制无济于事。

    In the recovery method, we use two operations:

    恢复方法中 ,我们使用两个操作:

    1. Undo(Ti): Restores the values of all data item updated by transaction Ti to the old values.

      撤消(Ti):将事务Ti更新的所有数据项的值恢复为旧值。

    2. Redo(Ti): Sets the value of all data item updated by transaction Ti to the new values. We need to undo a transaction T only when log contains the record <T start> only when log contains the record <start> and <T commit> both.

      重做(Ti):将事务Ti更新的所有数据项的值设置为新值。 仅当日志包含记录<T start>时,才需要撤消事务T;仅当日志包含记录<start>和<T commit>时,才需要撤消事务T。

    交易修改技术 (Transaction modification technique)

    There are mainly two techniques to ensure the transaction atomicity despite failure are as follow:

    确保存在故障时事务原子性的技术主要有以下两种:

    1) Immediate database modification

    1)立即修改数据库

    The immediate update technique allows database modification to output the database while the transaction is still in the active state. Data modification written by an active transaction is called uncommitted modification.

    立即更新技术允许在事务仍处于活动状态时修改数据库以输出数据库。 由活动事务写入的数据修改称为未提交的修改。

    When a system crashes or a transaction fails, the old value of the data item should be used for bringing the database into the consistent state. This can be done by undoing operation. Before a transaction, Ti starts its execution the record <Ti start> is written to the log. During its execution and write(X) operation by Ti is preceded by the writing of the appropriate new update record to the log. When Ti partially commits, the record <Ti commit> is written to the log.

    当系统崩溃或事务失败时,应使用数据项的旧值使数据库进入一致状态。 这可以通过撤消操作来完成。 在事务之前,Ti开始执行,将记录<Ti start>写入日志。 在执行期间,Ti的write(X)操作之前是将适当的新更新记录写入日志。 当Ti部分提交时,记录<Ti commit>被写入日志。

    Example

        <To start>
        <To A, 1000, 950>
        <To B, 2000, 2050>
        <To commit>
        <T1 start>
        <T1 C, 700, 600>
        <Ti commit>
    
    

    We consider an example of banking system taken earlier for transaction To and T1 such that To is followed by T1. If the system crash occurs just after the log record and during recovery we do redo (To) and undo (T1) as we have both < To start > and <To commit> in the log record. But we do not have <T1 commit> with <T1 start> in log record. Undo(T1) should be done first then redo (To) should be done.

    我们考虑一个较早的交易To和T1所采用的银行系统的示例,以便To之后是T1。 如果系统崩溃是在日志记录之后和恢复期间发生的,我们将重做(To)和撤消(T1),因为我们在日志记录中同时具有<开始>和<提交>。 但是我们在日志记录中没有<T1 commit>和<T1 start>。 首先应执行Undo(T1),然后应完成重做(To)。

    2) Deferred modification technique

    2)延期修改技术

    Deferred database modification technique ensures transaction atomicity by recording all database modification in the log. In this technique, all the write statements of the transaction are applied to the database only when the transaction is partially committed. A transaction is said to be partially committed once the final action of the transaction has been executed.

    延迟数据库修改技术通过在日志中记录所有数据库修改来确保事务的原子性。 在这种技术中,仅当事务被部分提交时,事务的所有写语句才应用于数据库。 一旦执行了交易的最终操作,就说该交易是部分提交的。

    When a transaction partially commits, then the information on the log associated with the transaction is used in executing the deferred writes. If the system crashes before the transaction completes its execution or if the transaction abort then the information on the log is ignored. Using the log the system can handle that result in the loss of information on volatile storage. The recovery scheme uses the procedure.

    当事务部分提交时,与事务相关联的日志上的信息将用于执行延迟的写入。 如果系统在事务完成执行之前崩溃,或者事务中止,则日志中的信息将被忽略。 使用该日志,系统可以处理导致丢失易失性存储信息的情况。 恢复方案使用该过程。

    Redo(Ti) sets the value of all data item updated by transaction Ti to the new values. The set of data item updated by Ti and their respective new values can be found in the log. The redo transaction must be idempotent. That an executing it several times must be equivalent to executing it once.

    重做(Ti)将事务Ti更新的所有数据项的值设置为新值。 在日志中可以找到由Ti更新的数据项集及其各自的新值。 重做事务必须是幂等的。 多次执行必须等同于执行一次。

    After a failure, the recovery subsystem consults the log to determine which transaction need to to be redone. Transaction Ti is redone if and only if the log record contains both <Ti start> and <Ti commit> statements.

    发生故障后,恢复子系统将查阅日志以确定需要重做的事务。 仅当日志记录同时包含<Ti start><Ti commit>语句时,才重做事务Ti。

    Example

    (A)             (B)
    <To start>     <To start>
    <To A, 950>    <To A , 950>
    <To B, 205>    <To B, 2050>
                    <To commit>
                    <T1 start>
                    <T1 C, 600>
    
    

    If a system fails just after the log record for the step write(B) of transaction To. The during recovery no redo operation will be done as we have only <To start> in log record but not <To commit>.

    如果系统仅在事务To的步骤write(B)的日志记录之后发生故障。 恢复期间不会执行重做操作,因为日志记录中只有<To start>,而没有<To commit>。

    If a system crash occurs just after the log record write C. the during recovery only redo (To) is done as we have only <To start> and <To commit> in log disk. At the same time we have <T1 start> in log disk but not <T1 commit> so redo (T1) will not be done.

    如果在日志记录写入C之后立即发生系统崩溃,则仅在恢复过程中完成重做(To),因为日志磁盘中只有<To start>和<To commit>。 同时,在日志磁盘中有<T1 start>,但没有<T1 commit>,因此重做(T1)将不会完成。

            (C)   
        <To start>
        <To A , 950>
        <To B, 2050>
        <To commit>
        <T1 start>
        <T1 C, 600>
        <T1 commit>
    
    

    If a system crash occurs just after the log record <T1 commit> the during the recovery we will perform both redo (T0) and redo (TI) as we have both <To start> <To commit> and <T1 start>, <T1 commit> in log disk.

    如果在日志记录<T1 commit>之后立即发生系统崩溃,则在恢复期间我们将同时执行重做(T0)和重做(TI),因为我们同时具有<To start> <To commit>和<T1 start>,< T1 commit>在日志磁盘中。

    翻译自: https://www.includehelp.com/dbms/log-based-recovery.aspx

    数据库 基于日志的恢复技术

    展开全文
  • mysql数据库通过日志恢复数据

    万次阅读 多人点赞 2018-11-12 08:49:12
    大家应该知道mysql通过备份恢复文件的方法,其实用日志其实也可以恢复数据,方法如下 1.找到my.ini文件 (方法:先到mysql安装目录找my.ini文件如果此安装目录没有找到该文件,则此文件一般在C盘下的ProgramData...

    大家应该知道mysql通过备份恢复文件的方法,其实用日志其实也可以恢复数据,方法如下

    1.找到my.ini文件
    (方法:先到mysql安装目录找my.ini文件如果此安装目录没有找到该文件,则此文件一般在C盘下的ProgramData文件夹中,此文件夹为隐藏文件夹需要直接查找 C:\ProgramData\MySQL\MySQL Server 5.7\)然后打开my.ini文件
    (在此文档里找到[mysqld]标签,并且在下面加上log-bin=binary-log这句话
    如[mysqld]
    log-bin=binary-log
    (说明:log-bin操作符命令为开启日志文件,因为mysql默认的是关闭日志,然后binary-log为产生日志文件的文件名,此文件在C:\ProgramData\MySQL\MySQL Server 5.7\Data下面可以看到 binary-log.000001文件这就是产生的日志二进制文件)
    在这里插入图片描述binary-log.000001文件这就是产生的日志二进制文件

    2.日志文件已经开启下面进行实验,
    建立一个新表product,在里面添加记录,这时在navicat里查看日志它会显示建表和添加数据的记录,时间
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    注意要记住建表时间和添加记录后的时间
    打开命令提示符,用cd找到mysql安装目录后,
    输入mysqlbinlog “C:\ProgramData\MySQL\MySQL Server 5.7\Data\binary-log.000001” --start-datetime=“2018-11-05 18:00:04.531” --stop-datetime=“2018-11-05 18:01:10.125” |mysql -u root -p
    就可以恢复删除的数据了

    注意:当你误删一条数据,利用二进制日志恢复的时候你需要寻找的是 创建数据的那个节点(时间),而并非你删除数据的那个节点(时间)
    当你回滚数据,回滚到删数据之前的数据库状态(只执行了stop-position 或者stop-datetime),那么在stop-position之后所有的数据库操作都将丢失所以你需要
    start-position stop-position 回滚单条被删数据
    (start-datetime为开始恢复的时间,stop-datetime为结束恢复的时间)

    展开全文
  • Log Explorer主要用于对MSSQLServer的事物...l 将日志记录导出到文件或者数据库表 l 实时监控数据库事物 l 计算并统计负荷 l 通过有选择性的取消或者重做事物来恢复数据 l 恢复被截断或者删除表中的数据 l 运行SQL脚本
  • 如何查看mysql数据库操作记录日志

    千次阅读 2021-01-19 08:38:55
    1、首先确认你日志是否启用了mysql>show variables like 'log_bin'。2、如果启用了,即ON,那日志文件就在mysql的安装目录的data目录下。3、怎样知道当前的日志mysql> show master status。4、看二进制日志...

    1、首先确认你日志是否启用了mysql>show variables like 'log_bin'。

    2、如果启用了,即ON,那日志文件就在mysql的安装目录的data目录下。

    3、怎样知道当前的日志mysql> show master status。

    4、看二进制日志文件用mysqlbinlog,shell>mysqlbinlog mail-bin.000001或者shell>mysqlbinlog mail-bin.000001 | tail,Windows 下用类似的。

    MySQL的日志操作:

    1、首先,登陆mysql后,执行sql语句:show variables like 'log_bin'。

    9a0cff55a1cbb98f2a54e9efdece8373.png

    2、#错误日志log-errol开启方式:在my.ini的[mysqld]选项下:添加代码:log-error=E:\log-error.txt。

    记录内容:主要是记录启动、运行或停止mysqld时出现的致命性问题,都是系统级的错误记录。

    64fed4a3a4b96a9532557a59de25d28b.png

    3、#查询日志:log,开启方式:在my.ini的[mysqld]选项下:添加代码:log=E:/mysql_log.txt。

    f35106bb771981523797d9ab9d476d33.png

    4、#二进制日志:log-bin,开启方式:在my.ini的[mysqld]选项下:添加代码:log-bin=E:/mysql_log_bin,记录内容:主要是记录所有的更改数据的语句,可使用mysqlbinlog命令恢复数据。

    2f6eaaa4845f08777ca54ac0bd0ccf0e.png

    展开全文
  • binglog文件是服务器的二进制日志记录着该数据库的所有增删改的操作日志,接下来通过本文给大家介绍linux上通过binlog文件恢复mysql数据库详细步骤,非常不错,需要的朋友参考下
  • 如果有此文件,当数据库发生意外时,可以通过此文件查看到用户在此文件记录的时间段内用户所做的操作,再和数据库备份配合使用,即可再现用户操作,使数据库恢复。 二进制日志文件的弊端 二进制日志文件开启后,...
  • 数据库恢复技术 数据转储 登记日志文件 登记日志文件的作用以及原则 恢复策略 事务故障的恢复 系统故障的恢复 介质故障的恢复 利用检查点技术的恢复策略 数据库镜像   事务(transaction)是一系列的数据库...
  • ApexSQL Log 2018是一款实用的sql数据库误操作恢复工具,之前小编为大家提供过ApexSQL Log 2016版本的下载,这个版本增加了对sql2008,sql2012以及2018版本的支持,支持对数据进行审计,查看操作日志,以及查看完整...
  • 数据库恢复

    万次阅读 2018-09-12 08:15:34
    2、如何利用这些冗余数据实施数据库恢复。 建立冗余数据最常用的技术是数据转储和登记日志文件。 1、数据转储 数据转储是数据库恢复中常用的基本技术。数据转储就是数据库管理员定期将整个数据库复制存储介质...
  • 这一些列的问题需要数据库恢复机制解决。 而恢复机制需要借助日志系统才能展开。日志记录了系统中发生的各个事务。基本的思路就是,把事务提交至数据库的同时,也在日志文件中记录一下。那么应该先提交事务,还
  • mysql数据库操作记录日志,以及开启mysql日志 **1、首先确认你日志是否启用了 mysql>show variables like 'log_bin'。 2、如果启用了,即ON,那日志文件就在mysql的安装目录的data目录下。 3、怎样知道当前的...
  • 数据库日志整理

    千次阅读 2018-07-20 08:51:33
    数据库日志整理 Database : log, redolog, undolog, commandlog 幂等性 数据库日志文件中的操作记录应该具有幂等...它记录了InnoDB存储引擎的事务日志,用于数据库故障的恢复,以保证数据的完整性。 在事务C...
  • 关系数据库——数据库恢复

    千次阅读 2019-12-02 14:04:14
    如何利用这些冗余数据实施数据库恢复 数据转储 数据转储定义: 转储是指DBA将整个数据库复制到其他存储介质上保存起来的过程,备用的数据称为后备副本或后援副本 如何使用 数据库遭到破坏后可以将后备副本...
  • 如何查看mysql数据库操作记录日志

    万次阅读 2019-07-16 10:45:08
    1、首先确认你日志是否启用了mysql>show variables like 'log_bin'。 2、如果启用了,即ON,那日志文件就在mysql的安装目录的data目录下。 3、怎样知道当前的日志mysql> show master status。 4、看二进制...
  • 为什么要进行数据库恢复? 为了保障事务的原子性和持久性,确保数据不丢失、不破坏。常用数据转储和日志文件进行数据恢复 故障的种类有哪些? 1、事物内部故障。 分为预期故障和非预期故障,一般重点谈论非预期故障...
  • 数据库恢复技术-数据库习题

    千次阅读 2021-11-29 22:28:53
    数据库备份也受数据库恢复模式的影响 D. 数据库备份的策略应该综合考虑各方面的因素,并不是备份做得越多越全就越好 正确答案: A 任何时候都要做好备份,有备无患,以便发生异常能恢复数据,避免造成数据丢失 当...
  • 而如果没有事务日志记录,DB2UDB中的一些据库恢复方法就不会存在。如果您还没有完全理解这些概念,也不必担忧。我将解释事务是什么以及事务日志记录背后的机制。然后,我将展示在系统崩溃或程序故障之后,如何使用...
  • 数据库:数据库恢复技术

    千次阅读 2020-11-22 17:08:52
    1,数据库恢复概述 故障是不可避免的,它包括计算机硬件故障、软件的错误、操作员的失误和恶意的破坏。 故障的产生将会使运行事务非正常中断,影响数据库中数据的正确性;另外会破坏数据库,造成全部或部分丢失...
  • 达梦数据库中的各个日志文件

    千次阅读 2021-01-30 21:24:37
    重做日志文件重做日志(即REDO日志)指在DM数据库中添加、删除、修改对象,或者改变数据,DM都会按照特定的格式,将这些操作执行的结果写入到当前的重做日志文件中。重做日志文件以log为扩展名。每个DM数据库实例必须...
  • MYSQL数据库日志

    千次阅读 2020-08-29 11:11:20
    目录 1.日志介绍 2. 日志作用 3. 日志分类 Mysql数据库日志 4 .日志讲解 ...一、innodb引擎中的redo/undo log是什么 ...5. 日志原理 ...延迟的数据库修改redo ...数据库都具有事务日志,用于记录所有事务以及每个事务对数据
  • 数据库题目之数据库恢复技术

    千次阅读 2019-01-10 15:24:08
    一、选择题 1、 是DBMS的基本单位,它是用户定义的一组逻辑一致的程序序列。 A.程序 B.命令 C.事务 D....A....事务一旦提交,对数据库的改变是永久的 ...C....事务必须是使数据库从一个一致性状...
  • 文章提出了一个基于日志服务器的内存数据库恢复系统,日志服务器能有效地减少内存数据库记录日志和检查点的开销;给出了系统的整体结构、日志记录过程和恢复算法;并对一些关键技术,如脏页缓冲、检查点等进行了详细...
  • 数据库恢复技术

    2020-09-07 10:34:45
    第一部分 事务的ACID特性: 原子性(不可分割) 持续性(一旦提交,数据库永久改变) 隔离性(互不影响) ...数据库恢复的基础是利用转储的冗余数据。这些转储的冗余数据包括日志文件、数据库后备副本 第二部分
  • SQL2000数据库附加失败提示:crosoft SQL-DMO(ODBC SQLState:HY000) :错误 3456:未能恢复日志记录(428653:5176:89) ,事务ID(1:18686340),位于页(1:1064280),数据库'Database'(7)。页:LSN = (191356:21101:...
  • 数据库作业20第十章数据库恢复技术 课后习题数据库作业20:第十章:数据库恢复技术 课后习题4、考虑下图所示的日志记录:(1)如果系统故障发生在14之后,说明哪些事物需要重做,哪些事物需要回滚。T1、T3提交,T2回滚...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 185,460
精华内容 74,184
热门标签
关键字:

数据库恢复日志记录