一、各种SCN简介:如图,控制文件中有系统SCN号,针对每个数据文件还有文件SCN号、结束SCN号(如四个数据文件就有4个对应的文件SCN号、结束SCN号)数据文件头部
一、各种SCN简介:
如图,控制文件中有系统SCN号,针对每个数据文件还有文件SCN号、结束SCN号(如四个数据文件就有4个对应的文件SCN号、结束SCN号)
数据文件头部有开始SCN号。都是为了保证数据文件的一致性
正常情况下:系统SCN、文件SCN、文件头部的开始SCN应该一样,结束SCN为null
系统SCN:
SQL> select checkpoint_change# from v$database;
CHECKPOINT_CHANGE#
------------------
617242
文件SCN:
SQL> select name,checkpoint_change# from v$datafile;
NAME CHECKPOINT_CHANGE#
-------------------------------------------------- ------------------
/u01/app/oracle/oradata/jiagulun/system01.dbf 617242
/u01/app/oracle/oradata/jiagulun/undotbs01.dbf 617242
/u01/app/oracle/oradata/jiagulun/sysaux01.dbf 617242
/u01/app/oracle/oradata/jiagulun/users01.dbf 617242
/u01/app/oracle/oradata/jiagulun/example01.dbf 617242
/u01/app/oracle/oradata/jiagulun/data1_01_dbf 617242
结束SCN:
SQL> select name,last_change# from v$datafile;
NAME LAST_CHANGE#
-------------------------------------------------- ------------
/u01/app/oracle/oradata/jiagulun/system01.dbf
/u01/app/oracle/oradata/jiagulun/undotbs01.dbf
/u01/app/oracle/oradata/jiagulun/sysaux01.dbf
/u01/app/oracle/oradata/jiagulun/users01.dbf
/u01/app/oracle/oradata/jiagulun/example01.dbf
/u01/app/oracle/oradata/jiagulun/data1_01_dbf
数据文件头部开始SCN:
SQL> select name,checkpoint_change# from v$datafile_header;
NAME CHECKPOINT_CHANGE#
-------------------------------------------------- ------------------
/u01/app/oracle/oradata/jiagulun/system01.dbf 617242
/u01/app/oracle/oradata/jiagulun/undotbs01.dbf 617242
/u01/app/oracle/oradata/jiagulun/sysaux01.dbf 617242
/u01/app/oracle/oradata/jiagulun/users01.dbf 617242
/u01/app/oracle/oradata/jiagulun/example01.dbf 617242
/u01/app/oracle/oradata/jiagulun/data1_01_dbf 617242
每一条日志都有SCN,每个日志组文件的头部有两个SCN first SCN和next SCN
first SCN:即这个文件组中第一条日志的SCN,等于上一组的next SCN。
next SCN:即这个文件组中最后一条日志的SCN,等于下一组的first SCN。
二、SCN如何保证数据库文件一致性(如何确认需要恢复)?
正常关闭:将所有buffer cache脏块写到磁盘,同时更新系统SCN、文件SCN,,数据头部开始SCN,同时结束SCN写上与系统SCN、文件SCN、数据头部开始SCN都一样的时间点(关闭时间)
非正常关闭:结束SCN为null,未正常写上。开启数据库时检测到结束SCN为null,则需要实例恢复。
数据文件丢失:例如当1号DBF文件丢失了,从备份中拷贝一个备份的1号DBF文件过来,此时文件头部的SCN比较旧,与控制文件系统SCN号对比,oracle则发现需要做恢复。则用跑日志将其SCN跑到与控制文件中文件SCN一样。
控制文件丢失:控制文件和数据文件都换成旧的,此时光对比控制文件中的SCN号和数据文件头部的SCN号还不能确认需不需要恢复,oracle还要对比on disk rba scn,如果on disk rba scn比控制文件中的SCN号和数据文件头部的SCN号都新,则要实例恢复。
用SCN号确认使用哪些日志组来恢复实例:
目前系统SCN号为617242:
SQL> select checkpoint_change# from v$database;
CHECKPOINT_CHANGE#
------------------
617242
此时日志组1first SCN为617242,则需要日志组1恢复即可;
试着经过两次日志组切换:
SQL> alter system switch logfile;
System altered.
SQL> alter system switch logfile;
System altered.
此时系统当前最新的文件SCN仍然是617242
SQL> select checkpoint_change# from v$database;
CHECKPOINT_CHANGE#
------------------
617242
那么这时候数据库实例崩溃使用哪些日志组恢复呢?
此时617242在日志组1,按照序列号8-10,日志组3是最新日志,此时需要日志组1、2、3恢复。
日志中active代表组中存在日志对应的脏块还没有写到磁盘中。
执行
SQL> alter system flush buffer_cache;
System altered.
后,日志组active变为inactive:
而此时控制文件中的SCN也更新为:
SQL> select checkpoint_change# from v$database;
CHECKPOINT_CHANGE#
------------------
628825
此时如果数据库实例非正常关闭,则需要日志组3来恢复。
三、总结:
控制文件中系统SCN,文件SCN等于最旧的active日志文件组的first SCN,实例恢复需要active和current日志组。
控制文件中的系统SCN,文件SCN用于确认数据恢复的所需要的重做日志文件组。
确认文件组后根据控制文件中的LRBA地址去跑日志跑到on disk rba地址。
CKPT进程只是将LRBA地址写到控制文件中,而控制文件中的系统SCN,文件SCN和数据头部SCN的更新是当一个日志组由active变为inactive时更新的,结束SCN则是关闭数据库时候更新的。

windows7用户在启动时遇到了系统注册表文件遗失或损坏的现象,像这种情况要怎么解决呢?你先强制重启电脑,以后按F8键,在打开的页面中选择安全模式进到,之后在菜单栏找到命令提示符开启,输入SFC/SCANNOW指令并回车实行,这时候系统就会自动对电脑缺失或已损坏的安装文件进行修复。windows7系统注册表文件遗失或损坏怎么办1、最先开机自检之后,立刻按住F8键,应用方向键挑选安全模式,敲打回车即可。2、以后点击开始按钮,挑选命令提示符,以管理员的身份运作。3、最后在弹出的提示符中输入SFC/

ThinkPHP6数据备份与恢复:保障数据的安全性随着互联网的快速发展,数据已成为一项极其重要的资产。因此,数据的安全性备受关注。在Web应用开发中,数据备份与恢复是确保数据安全的重要一环。在本文中,我们将介绍如何使用ThinkPHP6框架进行数据备份与恢复,以保障数据的安全性。一、数据备份数据备份是指将数据库中的数据以某种方式进行复制或存储。这样即使在数据

Laravel是一个流行的PHPWeb应用程序框架,提供了许多快速而又简单的方式来构建高效、安全和可扩展的Web应用程序。在开发Laravel应用程序时,我们经常需要考虑数据恢复的问题,即如何在数据丢失或损坏的情况下恢复数据并保证应用程序的正常运行。在本文中,我们将介绍如何使用Laravel中间件来实现数据恢复功能,并提供具体的代码示例。一、什么是Lara

如何快速恢复MySQL数据库遭遇的故障和错误?MySQL是一种广泛使用的开源关系型数据库管理系统,许多应用程序和网站都依赖于它来存储和管理数据。然而,数据库故障和错误是不可避免的,这可能导致数据丢失或应用程序无法正常运行。在遭遇MySQL数据库故障或错误时,快速而有效地恢复数据库非常重要。本文将介绍一些快速恢复MySQL数据库的方法。确定故障和错误的类型在开

标题:如何应对Linux系统中的文件损坏和丢失问题引言:在使用Linux系统的过程中,文件损坏和丢失是一个不容忽视的问题。由于各种原因,我们可能会面临文件丢失、文件损坏或无法访问文件的情况。然而,幸运的是,Linux系统提供了一些实用工具和技术,帮助我们有效地应对文件损坏和丢失问题。本文将介绍一些常见的解决方法和技巧。一、备份数据备份是最重要的应对文件损坏和

华为电脑数据恢复的方法:1、从回收站恢复;2、使用数据恢复软件;3、从备份中恢复;4、使用华为云服务。详细介绍:1、从回收站恢复,如果华为电脑的数据被删除后,这些数据并没有被新的文件覆盖,那么可以从回收站中恢复这些数据;2、使用数据恢复软件,如果回收站中没有需要恢复的数据,或者数据被覆盖了,可以使用数据恢复软件来恢复华为电脑中的数据;3、从备份中恢复,如果华为电脑等等。

PHP表单处理:表单数据备份与恢复引言在网站开发过程中,表单是非常常见的交互方式,用户通过填写表单将数据提交给服务器端处理。然而,有时候用户可能会因为网络问题、浏览器崩溃或其他意外情况导致表单数据丢失,这会给用户的使用体验带来困扰。因此,为了提升用户体验,我们可以通过PHP实现表单数据的自动备份与恢复功能,以确保用户填写的数据不会丢失。表单数据备份当用户在表
![Windows媒体创建工具删除了我的文件 [恢复指南]](https://img.php.cn/upload/article/000/887/227/168239259339851.png)
WindowsPC上的媒体创建工具是一个实用工具,允许用户将其计算机升级到最新的Windows版本。此外,它还有助于创建Windows安装USB驱动器光盘,可用于执行全新安装或修复有问题的WindowsPC。但是,用户抱怨Windows媒体创建工具在运行时删除了其PC上的文件。此外,我们还有一个详细的指南来修复0x80072f8f-0x20000升级操作系统时出现的媒体创建工具错误。为什么Windows媒体创建工具删除了我的文件?Windows媒体创建工具删除PC上的文件发生在下载软件开始下载时


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Dreamweaver Mac version
Visual web development tools

MantisBT
Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

Notepad++7.3.1
Easy-to-use and free code editor

SAP NetWeaver Server Adapter for Eclipse
Integrate Eclipse with SAP NetWeaver application server.

SublimeText3 Mac version
God-level code editing software (SublimeText3)
