当前位置:网站首页>Database recovery strategy
Database recovery strategy
2022-07-05 21:58:00 【Short section senior】
Recovery of transaction failure
Transaction failure : Transaction terminated before running to normal termination
Recovery method
The recovery subsystem uses log files to undo (UNDO) Changes made to the database by this transaction
The recovery of transaction failure is automatically completed by the system , Transparent to users , No user intervention is required
Recovery steps for transaction failure
(1) Reverse scan file log ( That is, scan log files from the last forward ), Find the update operation of the transaction .
(2) Reverse the update operation of the transaction . Is about to log “ Value before update ” Write to database .
The insert , “ Value before update ” It's empty , It is equivalent to deleting
Delete operation ,“ Updated value ” It's empty , It's equivalent to inserting
If it's a modification , It is equivalent to replacing the modified value with the pre modified value
(3) Continue reverse scanning log files , Find other update operations for this transaction , And do the same thing .
(4) Deal with it like this , Until you read the start tag of this transaction , Transaction recovery is complete .
Recovery of system failure
The reason of database inconsistency caused by system failure
The update to the database by the unfinished transaction may have been written to the database
The database update by committed transaction may be left in the buffer before it can be written to the database
Recovery method
1.Undo Unfinished transactions at the time of failure
2. Redo Completed transactions
The recovery of system failure is automatically completed when the system is restarted , No user intervention is required
Recovery steps for system failure
(1) Forward scanning log files ( Scan log files from scratch )
redo (REDO) queue : Transactions committed before the failure
These things already have BEGIN TRANSACTION Record , Also have COMMIT Record
revoke (UNDO) queue : Unfinished business at the time of failure
These things are just BEGIN TRANSACTION Record , There is no corresponding COMMIT Record
(2) To revoke (UNDO) Queue transactions to undo (UNDO) Handle
Reverse scan log files , Reverse the update operation of each undo transaction
Is about to log “ Value before update ” Write to database
(3) To redo (REDO) Queue transactions redo (REDO) Handle
Forward scanning log files , Re perform the registration operation for each redo transaction
Is about to log “ Updated value ” Write to database
Recovery of media failure
Recovery steps
(1) Mount the latest backup database copy ( The most recent crash of the replica occurred at the time of the dump ) , Restore the database to the consistency state of the last dump .
For a database copy of a static dump , The database is in a consistent state after loading
For a database copy of a dynamic dump , You must also load a copy of the log file at the time of the dump , Use the method of recovering system failure ( namely REDO+UNDO), To restore the database to a consistent state .
(2) Load a copy of the log file in question ( Copy of the log file at the end of the dump ) , Redo what has been done .
First scan the log file , Find out the ID of the transaction that was committed when the failure occurred , Put it in the redo queue .
Then forward scan the log file , Redo all transactions in the redo queue . Is about to log “ Updated value ” Write to database .
The recovery of media failure requires the intervention of database administrator
The work of Database Administrator
Reinstall the database copy of the latest dump and the copies of the related log files
Execute the recovery command provided by the system
The specific recovery operation is still completed by the database management system
Welcome to join me for wechat exchange and discussion ( Please note csdn Add )
边栏推荐
- 854. String BFS with similarity K
- MySQL disconnection reports an error MySQL ldb_ exceptions. OperationalError 4031, The client was disconnected by the server
- 让开发效率提升的跨端方案
- [Yugong series] go teaching course in July 2022 004 go code Notes
- HYSBZ 2243 染色 (树链拆分)
- Yolov5 training custom data set (pycharm ultra detailed version)
- oracle 控制文件的多路复用
- Li Kou ----- the maximum profit of operating Ferris wheel
- QML reported an error expected token ";", expected a qualified name ID
- MATLAB | App Designer·我用MATLAB制作了一款LATEX公式实时编辑器
猜你喜欢

Kingbasees v8r3 cluster maintenance case -- online addition of standby database management node

Getting started with microservices (resttemplate, Eureka, Nacos, feign, gateway)

MATLAB | App Designer·我用MATLAB制作了一款LATEX公式实时编辑器

Summarize the reasons for 2XX, 3xx, 4xx, 5xx status codes

Installation of VMware Workstation

Li Kou ----- the maximum profit of operating Ferris wheel

Shell script, awk uses if, for process control

Recursive query of multi-level menu data

Analysis and test of ModbusRTU communication protocol

多家呼吸机巨头产品近期被一级召回 呼吸机市场仍在增量竞争
随机推荐
The solution to the problem that Oracle hugepages are not used, causing the server to be too laggy
Net small and medium-sized enterprise project development framework series (one)
办公遇到的问题--
MySQL连接断开报错MySQLdb._exceptions.OperationalError 4031, The client was disconnected by the server
Ad637 notes d'utilisation
Huawei cloud modelarts text classification - takeout comments
POJ 3237 tree (tree chain splitting)
The American Championship is about to start. Are you ready?
QML reported an error expected token ";", expected a qualified name ID
Poj 3237 Tree (Tree Chain Split)
Sitge joined the opengauss open source community to jointly promote the ecological development of the database industry
AD637 usage notes
Codeforces 12D ball tree array simulation 3 sorting elements
Learning notes of statistical learning methods -- Chapter 1 Introduction to statistical learning methods
华为联机对战如何提升玩家匹配成功几率
one hundred and twenty-three thousand four hundred and fifty-six
Uni app Bluetooth communication
从零开始实现lmax-Disruptor队列(四)多线程生产者MultiProducerSequencer原理解析
怎么利用Tensorflow2进行猫狗分类识别
AD637使用笔记