데이터 베이스 MySQL 튜토리얼 Oracle教程:实例故障恢复

Oracle教程:实例故障恢复

Jun 07, 2016 pm 05:03 PM
o 데이터 베이스

调整实例恢复的持续时间:1.设置一些初始化参数影响恢复需要的refo log记录和数据块的数量;(新参数)FAST_START_MTTR_TARGET:指

MTBF:Mean-Time-Between-Failures两次故障之间的平均无故障时间
MTTR:Mean-Time-To-Recover故障恢复平均时间

故障分类:
1.SQL表达式引起的故障
BUG,非法数据,超过权限,配额限制
2.用户进程故障
断开连接,会话注销,用户进程BUG,PMON自动处理此故障
3.用户故障
人为清空、删除表
4.网络故障
断网
5.实例故障
断电,SMON进程处理此故障
6.介质故障
磁盘损坏,RMAN热备和dataguard容灾

内存结构
database buffer cache:存储从datafile中读取的blocks。数据由server process从数据文件读入database buffer cache,数据由DBWn进程从database buffer cache写入datafile;

redo log buffer:存储对数据库的任何改变,由LGWR写到redo logs

Large pool:可选组件,备份等需要使用的大内存

shared pool:存储已经解析的SQL表达式和PL/SQL过程,数据字典信息

java pool:存储java code和JVM

后台进程
DBWn(Database writer):把database buffer cache的脏数据(即已修改的数据)写到datafile。

LGWR(Log writer):把redo log buffer数据写到redo log files

SMON(System monitor):自动实例恢复,恢复临时段的空间当不再使用时,合并零散空间。

PMON(Process monitor):清理连接进程;回滚进程操作和资源。

CKPT(checkpoint) :把当前redo log信息同步到datafile和control files的头上。

ARCn(Archiver):可选,把redo logs自动复制到其他地方。

用户进程
连接数据库的程序进程,如:sqlplus

服务进程
接收用户进程请求,处理请求。专有服务进程和共享服务进程

数据库文件
Datafile:数据的物理存储,至少一个。
Redo logs:存储数据改变,至少2组。
Control files:记录了数据库的状态,物理结构,RMAN预处理数据
Archive logs :联机重做日志文件的物理备份。

initialization parameter file:Pfile文件,存储实例启动所需参数
Server initialization parameter file:SPfile文件,存储实例启动所需持久的参数,二进制文件。
Password file:存储能启动、停止和恢复数据库的特权用户的信息;二进制文件。可使用工具ORAPWD.EXE手工创建密码文件

动态视图
v$sga
v$sgastat
v$instance
v$process
v$bgprocess
v$database
v$datafile

large pool:用于Oracle备份和还原操作,I/O server processes,共享服务者(shared server)进程的会话内存。
配置large pool可以阻止RMAN在其它部件分配内存,RMAN用large pool进行备份和还原当你设置DBWR_IO_SLAVES或者BACKUP_TAPE_IO_SLAVES参数去模拟异步I/O时。如果2个参数都没设置,ORACLE会从local process memory分配备份缓冲区,而不是从shared pool。

如果large_pool_size参数被设置了,oracle会尝试去large pool获取内存。如果这个值不够大,oracle也不会尝试去shared pool获取缓冲区。如果没配置,oracle会分配共享内存缓冲区从shared pool。
如果orcle不能得到充足的内存,它就会从local process memory得到I/O缓冲区。而且会写信息到alert.log中,指出同步I/O被用于备份。

database buffer cache:用于存储大多数最近使用的数据块的区域,使用最近最少使用算法(LRU)去决定覆盖某些以用来容纳新的block。

DBWn:写修改过的数据到数据文件,以确保可以从datafile读取新的block到database buffer cache。周期性的同步database buffer cache和datafile(即把database buffer cache写回到datafile)。繁重的工作可配置20个DWBn进程,DBW0-DBW9,DBWA-DBWJ。

redo log buffer:是一个有对数据库改变信息的环形缓冲区,这些信息存储在redo entries。
redo entries包含需要重建或重做的信息,如INSERT、UPDATE、DELETE、CREATE、ALTER、DROP操作。redo entries用于数据库恢复,如果需要的话。redo entries被server process从用户内存空间复制到redo log buffer。

LGWR:当redo log buffer三分之一满,当每3秒,当有1MB的redo信息,当在DBWn写修改过的数据到数据文件之前,当commit时,写redo log file。

checkpoint position:恢复开始的地方,联机重做日志文件里的一个点。
它是checkpoint queue的第一个entry的开始标志。
例如:checkpoint这一点之前的redo log数据已被写到数据文件里。

checkpoint queue:内存中的队列链表。
checkpoint queue里的每个entry包含数据块的标识和与之相关的redo entry的信息。这样的一个entry被称为RBA(redo byte address)。DBWn读取checkpoint queue的一个entry写入数据文件后删除这个entry。

checkpoint的类型
FULL checkpoint:全checkpoint,把所有的buffer都写入数据文件。当shutdown normal,immediate,transactional和alter system checkpoint时发生。

Incremental checkpoint:增量checkpoint,周期性写,闲置时写。

partial checkpoint:部分checkpoint,,写表空间的脏数据。当alter tablespace begin backup和alter tablespace xxx offline normal。

CKPT:在检查点发生时通知DBWn进程去写datafile后,更新datafiles和control files的头去指出最近的checkpoint。每隔3秒,CKPT记录检查点队列里面的第一个entry的RBA信息到控制文件中。只有在日志切换的时候,CKPT才会更新数据文件的头,为了提高性能不会马上更新所有的头,而是“懒写”。日志切换时不会把所有的脏数据写到磁盘。

control file:二进制文件,它描述了数据库的结构,当数据库处于mount或open状态的时候它必须能被数据库服务器来写。它的名字取决于操作系统。没有这个文件数据库不能被mount。推荐配置最少2个控制文件放在不同的磁盘以减少控制文件丢失带来的影响。控制文件损坏一个数据库就不能工作。控制文件包含数据库名字、数据库创建的时间戳,恢复所需的同步信息、数据文件和联机重做日志文件的名字和位置、数据库的归档模式、当前log sequence number、RMAN的备份元信息。

archived log file:用作media recovery。当被设置为归档模式时,LGWR进程会等联机重做日志文件被归档后才继续工作。

ARCn:可选进程。当被启动时,它会把redo log files拷贝到指定的存储区域。这个进程对7*24数据库的备份恢复有很大的意见。当日志切换时,ARCn进程被触发,把最近没归档的redo log组的一个成员拷贝到指定位置。

数据库同步:
1.所有数据文件(除了离线与只读的)必须被同步后数据库才能被open。
2.同步是基于当前checkpoint number。
3.发现不同步,数据库使用redo log files改变的记录同步数据文件
4.redo log files自动被数据库服务器请求。

实例恢复:
1.判断数据文件是否同步;
2.利用redo log前滚:写redo log files最近一个checkpoint之后的数据(包括undo数据)到数据文件;
3.数据文件现在包含提交的和未提交的改变,数据库可以被open;
4.利用undo log回滚未提交的改变:删除datafile中未提交的数据;
5.至此所有数据都提交。
不像media recovery,crash recovery和instance recovery是自动的。crash recovery是所有实例都恢复,instance recovery是单实例恢复。

调整实例恢复的持续时间:
1.设置一些初始化参数影响恢复需要的refo log记录和数据块的数量;
(新参数)
FAST_START_MTTR_TARGET:指定恢复时间最大值,单位为秒。
(2个老参数)
LOG_CHECKPOINT_TIMEOUT:2次检查点发生间隔的时间。
LOG_CHECKPOINT_INTERVAL:增量检查点与最近写到redo log的块之间的redo log file块的数目。
2.控制redo log file的大小和refo log块的大小来影响checkpoint发生的频率;
3.用SQL表达式手动强制检查点发生
4.并行恢复

实例恢复视图v$instance_recovery;
实例恢复优化
1.前滚:采用并行块恢复策略,recovery_parallelism可以设置并行进程数。
2.回滚:采用急需和并发2种恢复策略,fast_start_parallel_rollback可以设置并行程度,false为不使用并行,low:回滚进程数为CPU数的2倍,high:回滚进程数为CPU数的4倍。
回滚对应的2个视图:v$fast_start_servers:并发进程的信息;v$fast_start_transactions:需要回滚的transaction信息。

linux

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

iOS 18에는 손실되거나 손상된 사진을 검색할 수 있는 새로운 '복구된' 앨범 기능이 추가되었습니다. iOS 18에는 손실되거나 손상된 사진을 검색할 수 있는 새로운 '복구된' 앨범 기능이 추가되었습니다. Jul 18, 2024 am 05:48 AM

Apple의 최신 iOS18, iPadOS18 및 macOS Sequoia 시스템 릴리스에는 사진 애플리케이션에 중요한 기능이 추가되었습니다. 이 기능은 사용자가 다양한 이유로 손실되거나 손상된 사진과 비디오를 쉽게 복구할 수 있도록 설계되었습니다. 새로운 기능에는 사진 앱의 도구 섹션에 '복구됨'이라는 앨범이 도입되었습니다. 이 앨범은 사용자가 기기에 사진 라이브러리에 포함되지 않은 사진이나 비디오를 가지고 있을 때 자동으로 나타납니다. "복구된" 앨범의 출현은 데이터베이스 손상으로 인해 손실된 사진과 비디오, 사진 라이브러리에 올바르게 저장되지 않은 카메라 응용 프로그램 또는 사진 라이브러리를 관리하는 타사 응용 프로그램에 대한 솔루션을 제공합니다. 사용자는 몇 가지 간단한 단계만 거치면 됩니다.

PHP에서 MySQLi를 사용하여 데이터베이스 연결을 설정하는 방법에 대한 자세한 튜토리얼 PHP에서 MySQLi를 사용하여 데이터베이스 연결을 설정하는 방법에 대한 자세한 튜토리얼 Jun 04, 2024 pm 01:42 PM

MySQLi를 사용하여 PHP에서 데이터베이스 연결을 설정하는 방법: MySQLi 확장 포함(require_once) 연결 함수 생성(functionconnect_to_db) 연결 함수 호출($conn=connect_to_db()) 쿼리 실행($result=$conn->query()) 닫기 연결( $conn->close())

PHP에서 데이터베이스 연결 오류를 처리하는 방법 PHP에서 데이터베이스 연결 오류를 처리하는 방법 Jun 05, 2024 pm 02:16 PM

PHP에서 데이터베이스 연결 오류를 처리하려면 다음 단계를 사용할 수 있습니다. mysqli_connect_errno()를 사용하여 오류 코드를 얻습니다. 오류 메시지를 얻으려면 mysqli_connect_error()를 사용하십시오. 이러한 오류 메시지를 캡처하고 기록하면 데이터베이스 연결 문제를 쉽게 식별하고 해결할 수 있어 애플리케이션이 원활하게 실행될 수 있습니다.

JSON 데이터를 Golang의 데이터베이스에 저장하는 방법은 무엇입니까? JSON 데이터를 Golang의 데이터베이스에 저장하는 방법은 무엇입니까? Jun 06, 2024 am 11:24 AM

JSON 데이터는 gjson 라이브러리 또는 json.Unmarshal 함수를 사용하여 MySQL 데이터베이스에 저장할 수 있습니다. gjson 라이브러리는 JSON 필드를 구문 분석하는 편리한 방법을 제공하며, json.Unmarshal 함수에는 JSON 데이터를 비정렬화하기 위한 대상 유형 포인터가 필요합니다. 두 방법 모두 SQL 문을 준비하고 삽입 작업을 수행하여 데이터를 데이터베이스에 유지해야 합니다.

MySQL : 쉽게 학습하기위한 간단한 개념 MySQL : 쉽게 학습하기위한 간단한 개념 Apr 10, 2025 am 09:29 AM

MySQL은 오픈 소스 관계형 데이터베이스 관리 시스템입니다. 1) 데이터베이스 및 테이블 작성 : CreateAbase 및 CreateTable 명령을 사용하십시오. 2) 기본 작업 : 삽입, 업데이트, 삭제 및 선택. 3) 고급 운영 : 가입, 하위 쿼리 및 거래 처리. 4) 디버깅 기술 : 확인, 데이터 유형 및 권한을 확인하십시오. 5) 최적화 제안 : 인덱스 사용, 선택을 피하고 거래를 사용하십시오.

PHP 데이터베이스 연결 함정: 일반적인 실수와 오해를 피하세요 PHP 데이터베이스 연결 함정: 일반적인 실수와 오해를 피하세요 Jun 05, 2024 pm 10:21 PM

PHP 데이터베이스 연결 오류를 방지하려면 연결 오류를 확인하고 변수 이름을 자격 증명과 일치시키는 모범 사례를 따르십시오. 자격 증명을 하드코딩하지 않으려면 보안 저장소나 환경 변수를 사용하세요. SQL 주입을 방지하기 위해 사용 후 연결을 닫고 준비된 문 또는 바인딩된 매개 변수를 사용합니다.

BTC Trading 앱을 설치하고 등록하는 방법은 무엇입니까? BTC Trading 앱을 설치하고 등록하는 방법은 무엇입니까? Feb 21, 2025 pm 07:09 PM

이 기사는 비트 코인 거래 응용 프로그램을 설치하고 등록하는 방법에 대한 자세한 소개를 제공합니다. 비트 코인 트레이딩 앱을 통해 사용자는 비트 코인과 같은 암호 화폐를 관리하고 거래 할 수 있습니다. 이 기사는 응용 프로그램 다운로드, 계정 작성, ID 검증 수행 및 첫 입금을 포함하여 설치 및 등록 프로세스를 단계별로 안내합니다. 이 기사의 목표는 초보자에게 명확하고 이해하기 쉬운 지침을 제공하여 비트 코인 거래 세계에 쉽게 들어가도록 도와줍니다.

상위 10 개 글로벌 디지털 통화 거래 앱 권장 (2025 통화 거래 소프트웨어 순위) 상위 10 개 글로벌 디지털 통화 거래 앱 권장 (2025 통화 거래 소프트웨어 순위) Mar 12, 2025 pm 05:48 PM

이 기사는 Binance, OKX, Huobi Global, Coinbase, Kraken, Gate.io, Kucoin, Bitfinex, Gemini 및 Bitstamp를 포함하여 세계 10 대 디지털 통화 거래 앱을 권장합니다. 이 플랫폼은 트랜잭션 쌍 수량, 트랜잭션 속도, 보안, 컴플라이언스, 사용자 경험 등의 측면에서 고유 한 특성을 가지고 있습니다. 예를 들어, Binance는 높은 트랜잭션 속도와 광범위한 서비스로 유명하지만 코인베이스는 초보자에게 더 적합합니다. 자신에게 적합한 플랫폼을 선택하려면 자신의 요구와 위험에 대한 포괄적 인 고려가 필요합니다. 디지털 자산 거래를 안전하고 효율적으로 수행하는 데 도움이되는 세계의 주류 디지털 통화 거래 플랫폼에 대해 알아보십시오.

See all articles