중화사전망 - 서예자전 - 처음 5 루프에서 10 까지, 나중에 0 루프에서 시퀀스를 만듭니다. 데이터의 제어 파일이 손상된 경우 오류를 어떻게 해결해야 합니까?
처음 5 루프에서 10 까지, 나중에 0 루프에서 시퀀스를 만듭니다. 데이터의 제어 파일이 손상된 경우 오류를 어떻게 해결해야 합니까?
1, Oracle 인스턴스-메모리 구조 및 백그라운드 프로세스 포함
2.Oracle 데이터베이스-물리적 운영 체제 파일의 모음입니다.
3, 메모리 구조의 구성 이해
백그라운드 프로세스의 역할을 이해하십시오.
5. 데이터베이스의 물리적 파일을 이해합니다.
다양한 논리적 구조를 설명하십시오.
하나. 갑골문의 예
1, Oracle 인스턴스
SGA (시스템 전역 영역) 및 백그라운드 프로세스를 데이터베이스 인스턴스라고 합니다.
2.Oracle 데이터베이스
데이터 파일, 제어 파일, 온라인 로그, 매개변수 파일 등 일련의 물리적 파일 모음입니다. ) 을 참조하십시오
3. SGA (시스템 전역 영역), 시스템의 전역 * * * 공유 영역.
시스템 전역 영역은 Oracle 데이터베이스의 큰 버퍼 풀로 간주되는 거대한 * * * 공유 메모리 영역입니다. 여기서 데이터는 Oracle 의 다양한 프로세스에서 사용할 수 있습니다. 다음 문을 통해 크기를 볼 수 있습니다.
SQL & gtselect * from v $ SGA
이름 값
--
고정 크기 398 16
가변 크기 2598 12784
데이터베이스 버퍼 1.049E+09
리두 버퍼 327680
자세한 내용은 V$sgastat 및 V$buffer_pool 을 참조하십시오.
주로 다음과 같은 부분으로 구성됩니다.
A.* * * 공유 풀
* * * 공유 풀은 SGA 에서 가장 중요한 메모리 세그먼트, 특히 성능 및 확장성입니다. 너무 작은 * * * 공유 풀은 성능을 억제하고 시스템 작동을 중지합니다. 너무 큰 * * * 공유 풀도 같은 효과를 냅니다. 이 * * * 공유 풀을 관리하기 위해 많은 CPU 를 사용합니다. * * * 공유 풀을 잘못 사용하면 재앙이 발생할 수 있습니다. * * * 공유 풀은 다음 두 부분으로 나눌 수 있습니다.
SQL 문 버퍼 (라이브러리 캐시)
사용자가 SQL 문을 제출하면 Oracle 은 컴파일과 유사한 SQL 문을 분석합니다. 비교적 시간이 오래 걸립니다. SQL 분석 후 Oracle 은 공유 풀의 라이브러리 캐시에 분석 결과를 저장합니다. 데이터베이스에서 이 SQL 을 두 번째로 실행하면 Oracle 은 자동으로 이 분석 프로세스를 생략하여 시스템 실행 시간을 줄입니다. 이것이 첫 번째 SQL 실행이 두 번째 SQL 보다 약간 느린 이유입니다.
다음은 parse 시대의 한 예입니다.
Sql> select count (*) from sc pass;
개수 (*)
--
243
소요 시간: 00:00:00.08
Share_pool 과 Data buffer 모두에 데이터 버퍼가 없을 때 걸리는 시간입니다.
SQL> 변경 시스템 새로 고침 공유 풀;
시스템이 바뀌었다.
Share_pool 을 비우고 데이터 버퍼를 유지합니다.
SQL> scpass 에서 count (*);
개수 (*)
--
243
소요 시간: 00:00:00.02
SQL> scpass 에서 count (*);
개수 (*)
--
243
시간 소모: 00:00:00.00
두 SQL 문의 시간차를 보면 이 SQL 의 구문 분석 시간이 약 00:00:00.02 임을 알 수 있습니다.
* * * 공유 풀에 저장된 SQL 문의 경우 V$Sqltext 및 v$Sqlarea 에서 조회할 수 있습니다. 프로그래머에게는 명령문 재사용률을 최대한 높이고 명령문 분석 시간을 줄여야 한다. 잘못 설계된 응용 프로그램은 전체 데이터베이스의 공유 풀을 손상시킬 수 있습니다. SQL 문의 재사용률을 높이려면 먼저 좋은 습관을 길러야 하고, 가능한 바인드 변수를 사용해야 한다.
데이터 사전 캐시 (데이터 사전 캐시)
분명히 데이터 딕셔너리 버퍼는 Oracle 에서 내부적으로 사용할 수 있도록 Oracle 이 데이터 딕셔너리를 위해 특별히 준비한 버퍼 풀입니다. 할 말이 없다.
B, 블록 버퍼 캐시 (데이터베이스 버퍼 캐시)
이러한 버퍼는 모든 데이터 파일에서 사용된 일부 데이터 블록에 해당합니다. 그래서 그들은 메모리에서 실행할 수 있습니다. 이 수준에는 시스템 파일, 사용자 데이터 파일, 임시 데이터 파일 및 롤백 세그먼트 파일이 없습니다. 즉, 모든 파일의 데이터 블록을 버퍼링할 수 있습니다. 데이터베이스에 대한 모든 수정은 이 버퍼에서 이루어지며 수정된 데이터는 DBWR 프로세스에 의해 디스크에 기록됩니다.
이 버퍼의 블록은 기본적으로 두 개의 다른 목록에서 관리됩니다. 하나는 데이터베이스 블록이 필요한 블록의 "더티 목록" 입니다.
Writer(DBWR) 는 쓰기를 하고, 다른 하나는 더티 블록의 자유 목록입니다. 일반적으로 가장 최근에 가장 적게 사용된 LRU 알고리즘을 사용하여 관리됩니다. 블록 버퍼 캐시는 다음 세 부분 (기본 풀, 예약된 풀, 재활용 풀) 으로 세분화될 수 있습니다. 초기화 매개변수 (Init.ora) 를 수동으로 설정하지 않은 경우 Oracle 은 기본적으로 기본 풀로 설정됩니다. 운영 체제 주소 지정 기능 제한으로 인해 특수 설정 없이 최대 블록 버퍼 캐시는 32 비트 시스템에서 1.7G, 64 비트 시스템에서는 10G 에 도달할 수 있습니다.
C. 리두 로그 버퍼.
데이터베이스에 대한 모든 변경 사항을 순차적으로 기록한 다음 LGWR 프로세스가 디스크에 기록하는 리두 로그 파일의 버퍼입니다. 이러한 수정 사항은 (Insert, Update, Delete) 또는 DDL 문 (Create, Alter, Drop 등) 과 같은 DML 문일 수 있습니다. ). 리두 로그 버퍼는 메모리에서 하드 디스크로의 작업보다 메모리에서 메모리로 작업이 훨씬 빠르기 때문에 데이터베이스 작업 속도를 높일 수 있지만 데이터베이스 일관성 및 복구 가능성을 고려하여 데이터가 리두 로그 버퍼에 오래 머물지 않기 때문에 존재합니다. 따라서 리두 로그 버퍼는 일반적으로 매우 작으며 3M 보다 큰 리두 로그 버퍼는 큰 실질적인 의미가 없습니다.
D.Java 프로그램 버퍼 (Java 풀)
Java 프로그램 영역, Oracle 8I 이후 Oracle 은 커널에 Java 에 대한 지원을 추가했습니다. 이 프로그램 버퍼는 자바 프로그램을 위해 예약되어 있습니다. Java 프로그램을 사용하지 않는 경우 버퍼의 기본 크기를 변경할 필요가 없습니다.
E. 대형 수영장
큰 풀의 이름은 크기 때문이 아니라 큰 메모리 블록을 할당하고 8.0 에 도입된 * * * 공유 풀보다 더 큰 메모리를 처리하는 데 사용되기 때문입니다.
다음 객체는 큰 풀을 사용합니다.
MTS- SGA 의 큰 풀에 UGA 를 할당합니다.
명령문의 병렬 실행-프로세스 간에 메시지 버퍼를 할당하여 병렬 쿼리 서버를 조정할 수 있습니다.
백업-RMAN 디스크 I/O 캐시에 사용됩니다.
4. 백그라운드 프로세스
백그라운드 프로세스는 데이터베이스의 읽기, 쓰기, 복구 및 모니터링을 관리하는 Oracle 프로그램입니다. 서버 프로세스는 주로 사용자 프로세스와 연락하고 통신하며 사용자 프로세스와 데이터를 교환합니다. 유닉스 시스템에서 Oracle 데몬은 운영 체제 프로세스를 기준으로 합니다. 즉, Oracle 데몬이 운영 체제 프로세스를 시작합니다. Windows 컴퓨터에서 Oracle 백그라운드 프로세스가 운영 체제 스레드와 관련된 작업 관리자를 열면 하나의 Oracle.EXE 프로세스만 볼 수 있지만 다른 도구를 사용하면 해당 프로세스에 포함된 스레드를 볼 수 있습니다.
Unix 에서는 다음과 같은 방법으로 백그라운드 프로세스를 볼 수 있습니다.
Ps? Ef | grep ora_
# PS -ef | grep ora_ | grep XCLUAT
Oracle 2943110 sep02 2: 02 ora _ dbwr _ sid
Oracle 2944410 sep02 0: 03 ora _ ckpt _ sid
Oracle 2944810 sep02 2: 42 ora _ smon _ sid
Oracle 2944210 sep02 3: 25 ora _ lgwr _ sid
Oracle 2942710 sep02 0: 01ora _ pmon _ sid
첫째, 오라클 시스템에는 다음과 같은 다섯 가지 기본 프로세스가 있습니다
데이터 파일 쓰기 프로세스
LGWR (로그 파일 쓰기 프로세스)
SMON (시스템 모니터링 프로세스)
PMON (사용자 프로세스 모니터링 프로세스)
CKPT (체크포인트 프로세스, 동기화 데이터 파일, 로그 파일, 제어 파일)
B, DBWR
수정된 데이터 버퍼의 데이터를 해당 데이터 파일에 씁니다.
시스템에서 빈 버퍼를 유지합니다.
다음은 실수하기 쉬운 몇 가지 개념입니다.
업데이트를 커밋하면 DBWR 은 디스크에 데이터를 쓰고 사용자에게 반환합니다.
DBWR 은 CKPT 데몬을 트리거합니다.
DBWR 은 LGWR 프로세스를 트리거하지 않습니다.
위의 개념은 모두 틀렸다.
DBWR 은 버퍼의 데이터를 디스크에 대량 기록하는 매우 기본적인 작업자입니다. 그것은 어떤 프런트 엔드 사용자의 프로세스와도 아무런 관련이 없고, 그들의 통제를 받지 않는다. DBWR 이 LGWR 및 CKPT 프로세스를 유발하는지 여부는 다음 섹션에서 설명합니다.
DBWR 의 주요 작동 조건은 다음과 같습니다
DBWR 시간 초과
시스템에 데이터를 저장할 빈 버퍼가 별로 없습니다.
CKPT 프로세스는 DBWR 등을 트리거합니다.
LGWR
리두 로그 버퍼의 데이터를 리두 로그 파일에 씁니다. LGWR 은 포그라운드 사용자 프로세스와 통신해야 하는 프로세스입니다. 데이터가 수정되면 리두 로그가 생성되어 리두 로그 버퍼에 기록됩니다. 이 리두 로그는 다음과 유사한 구조로 간주할 수 있습니다.
SCN=00000000 1000
블록 ID
개체 ID=080 1
데이터 케이블 =02
수정 데이터 =00 1 1
커밋 시 LGWR 은 수정된 데이터의 리두 로그 버퍼에 있는 데이터를 로그 데이터 파일에 기록한 다음 포그라운드 프로세스가 성공적으로 제출되었음을 사용자에게 알려야 합니다. 따라서 LGWR 은 시스템 데이터 무결성을 유지하는 작업을 수행합니다.
LGWR 작업의 주요 조건은 다음과 같습니다
사용자 제출
1/3 리두 로그 버퍼가 디스크에 기록되지 않았습니다.
1M 보다 큰 리두 로그 버퍼가 디스크에 기록되지 않았습니다.
시간초과
DBWR 이 쓸 데이터의 SCN 수가 LGWR 레코드 수보다 많고 DBWR 이 LGWR 쓰기를 트리거합니다.
스몬
이 작업은 주로 다음을 포함한다
임시 공간 정리
시스템이 시작되면 시스템 인스턴스 복구가 완료됩니다.
내집합 자유공간
사용할 수 없는 파일에서 트랜잭션 작업 복구
OPS 에서 장애가 발생한 노드의 인스턴스 복구
OBJ$ 테이블 지우기
롤백 세그먼트 축소
롤백 세그먼트를 오프라인으로 설정합니다
PMON
주로 유효하지 않은 사용자 프로세스를 지우고 사용자 프로세스에서 사용하는 리소스를 확보하는 데 사용됩니다. 예를 들어 PMON 은 제출되지 않은 작업을 롤백하고 잠금을 해제하고 실패한 프로세스에 할당된 SGA 리소스를 해제합니다.
CKPT
DBWR/LGWR 의 작동 방식 때문에 데이터 파일, 로그 파일 및 제어 파일을 동기화하면 데이터 파일, 로그 파일 및 제어 파일 간에 차이가 발생할 수 있으므로 CKPT 프로세스를 동기화해야 합니다. CKPT 는 데이터 파일/제어 파일의 헤더 정보를 업데이트합니다.
CKPT 작업의 주요 조건은 다음과 같습니다
로그 전환 시.
데이터베이스가 즉시, 트랜잭션, 일반 옵션을 사용하여 데이터베이스를 종료하는 경우.
초기 대화 상자 파일 로그 체크포인트 간격, 로그 체크포인트 시간 초과 및 빠른 시작 입출력 목표에 설정된 값을 기준으로 합니다.
사용자 트리거
다음 프로세스를 시작하려면 수동 구성이 필요합니다.
G, 아치
데이터베이스가 아카이브 모드에서 실행되면 Oracle 은 ARCH 프로세스를 시작합니다. 리두 로그 파일이 가득 차면 로그 파일이 전환되고 이전 리두 로그 파일은 ARCH 프로세스에 의해 하나 이상의 특정 디렉토리/원격 시스템에 복사됩니다. 이러한 복제된 리두 로그 파일을 아카이브 로그 파일이라고 합니다.
H, RECO
분산된 사물의 고장을 해결할 책임이 있다. 네트워크 문제로 인해 어떤 일이 일시 중지된 경우 Oracle 은 여러 원격 데이터베이스에 접속할 수 있습니다. RECO 프로세스는 원격 서버와의 통신을 시도합니다. 장애가 제거되면 RECO 프로세스는 모든 보류 중인 세션을 자동으로 해결합니다.
첫째, 서비스 프로세스 서버 프로세스
서비스 프로세스 분류
전용 서버 프로세스 (전용 서버 프로세스)
서비스 프로세스는 사용자 프로세스에 해당합니다.
* * * 서비스 프로세스 (멀티 스레드 서버 프로세스) 를 즐기십시오.
하나의 서비스 프로세스는 여러 사용자 프로세스에 해당하며, 차례로 사용자 프로세스에 서비스를 제공합니다.
PGA & ampUGA
PGA = 프로세스 글로벌 영역
UGA = 사용자 글로벌 영역
그는 사용자의 변수, 권한, 스택, 정렬 공간 등의 사용자 정보를 저장했다. 전용 서버 프로세스의 경우 UGA 는 PGA 에 할당됩니다. 멀티 스레드 프로세스의 경우 UGA 가 대형 풀에 할당됩니다.
사용자 프로세스
클라이언트에서 사용자의 SQL 문은 서비스 프로세스로 전달됩니다.
5. 데이터베이스 전체의 개념인 SCN (system change number) 을 관통합니다.
시스템 변경 번호, 시스템 내에서 유지 관리되는 일련 번호입니다. 시스템을 업데이트해야 하는 경우 자동으로 추가되며, 이는 시스템의 데이터 일관성 및 순차 복구를 유지하는 중요한 플래그입니다.
A. 질의문은 SCN 을 늘리지 않습니다. 업데이트가 동시에 발생하더라도 데이터베이스의 해당 SCN 은 다릅니다. 이를 통해 데이터 복구 순서가 보장됩니다.
B. 데이터 일관성 유지
둘째, Oracle 데이터베이스
Oracle 데이터베이스의 구성-물리적 운영 체제 파일의 모음입니다. 주로 다음을 포함합니다.
1. 제어 파일 (제어 파일의 위치는 매개변수 파일 init.ora 에 기록됩니다.).
제어 파일에는 다음과 같은 주요 정보가 포함됩니다
데이터베이스 이름, 체크포인트 정보 및 데이터베이스 생성 시점의 타임스탬프입니다.
모든 데이터 파일, 온라인 로그 파일 및 아카이브 로그 파일 정보.
백업 정보 등
이러한 정보를 통해 Oracle 은 어떤 파일이 데이터 파일인지, 어떤 파일이 현재 리두 로그 파일인지 알 수 있습니다. 이러한 조건은 시스템 시작 및 실행의 기본 조건이므로 Oracle 실행의 기초입니다. 제어 없이는 파일 시스템을 시작할 수 없습니다. 제어 파일은 매우 중요합니다. 일반적으로 여러 미러는 제어 파일을 보호하는 데 사용되고 RAID 는 제어 파일을 보호하는 데 사용됩니다. 제어 파일이 손실되면 데이터베이스 복구가 복잡해질 수 있습니다.
제어 파일 정보는 V $ 제어 파일에서 얻을 수 있습니다.
2. 데이터 파일 (데이터 파일의 상세 정보는 제어 파일에 기록됩니다)
다음과 같은 방법으로 데이터 파일을 볼 수 있습니다.
SQL> v $ 데이터 파일에서 이름을 선택합니다.
이름
--
/u05/DBF/prod/system _ 01.DBF
/u06/DBF/prod/temp _ 01.DBF
/u04/DBF/prod/users _ 01.DBF
/u09/DBF/prod/RBS _ 01.DBF
/u06/DBF/prod/applsys _ indx _ 01.DBF
/u05/DBF/prod/applsys _ data _ 01.DBF
위에서 알 수 있듯이 데이터 파일은 대략 다음과 같은 범주로 나눌 수 있습니다.
첫째, 시스템 데이터 파일 (system_0 1.dbf)
일반적으로 사용자의 데이터는 시스템 테이블과 데이터 사전에 저장되지 않지만 프로시저, 함수 및 패키지와 같은 사용자 스크립트는 데이터 사전에 저장됩니다.
명사 설명: 데이터 딕셔너리는 데이터베이스 버전, 데이터 파일 정보, 테이블 및 인덱스, 시스템 작동 상태 등의 시스템 관련 정보 및 사용자 스크립트 정보를 포함하는 시스템 정보를 저장하는 시스템 테이블 또는 뷰입니다. 데이터베이스 관리자는 데이터 딕셔너리를 질의하여 Oracle 의 실행 상태를 알 수 있습니다.
둘. 롤백 세그먼트 파일 (rbs_0 1.dbf)
데이터베이스가 데이터를 수정하는 경우 이미지가 수정되기 전에 데이터를 임시로 저장하는 데 사용되는 롤백 세그먼트를 사용해야 합니다. 롤백 세그먼트는 일반적으로 테이블스페이스 단편화를 방지하기 위해 별도의 테이블스페이스 (롤백 테이블스페이스) 에 배치됩니다. 이 테이블스페이스에 포함된 데이터 파일은 롤백 데이터 파일입니다.
셋. 임시 데이터 파일 (temp_0 1.dbf)
주로 사용자 정렬과 같은 임시 데이터를 저장합니다. 롤백 세그먼트와 마찬가지로 임시 세그먼트도 테이블스페이스를 조각화하기 쉬우며 영구 테이블스페이스에서 임시 세그먼트를 열 수 없습니다. 따라서 주로 메모리에서 수행할 수 없는 정렬 작업에 사용되는 임시 데이터 파일을 포함하는 임시 테이블스페이스가 있어야 합니다. 사용자에게 임시 테이블스페이스를 지정해야 합니다.
넷. 사용자 데이터 파일 (/applsys _ data _ 0 1.dbf, applsys _ indx _ 0 1.dbf)
사용자 데이터를 저장하기 위해 여기에는 두 가지 일반적인 사용자 데이터, 일반 데이터 및 인덱스 데이터가 있습니다. 일반적으로, 조건이 허락한다면, 우리는 그것들을 다른 디스크에 두는 것을 고려해 볼 수 있다.
3. 리두 로그 파일 (온라인 리두 로그)
데이터베이스에서 수행하는 모든 작업은 리두 로그 파일에 기록됩니다. 리두 로그를 이해하기 전에 리두 로그의 두 가지 개념, 리두 로그 그룹 및 리두 로그 그룹 멤버를 이해해야 합니다. 한 데이터베이스에 두 개 이상의 로그 그룹 파일이 있어야 하며 한 그룹은 다른 그룹보다 먼저 써야 합니다. 즉, 순차적으로 써야 합니다. 각 로그 그룹에는 하나 이상의 로그 구성원이 있으며, 하나의 로그 그룹에 있는 많은 로그 구성원은 미러와 관련이 있습니다. 이는 로그 파일 손상, 특히 현재 온라인 로그의 손상이 데이터베이스에 큰 영향을 미치기 때문에 로그 파일 보호에 도움이 됩니다.
온라인 로그 그룹의 교환 프로세스를 스위치라고 합니다. 최적화가 좋지 않은 데이터베이스에서 로그 전환으로 인해 일시적으로 "일시 중지" 될 수 있다는 점에 유의해야 합니다. 일시 중지에는 크게 두 가지 상황이 있습니다.
아카이빙의 경우 아카이빙해야 할 로그가 너무 늦게 보관되어 온라인 로그를 다시 사용해야 합니다.
체크포인트 이벤트가 완료되지 않았습니다 (로그 전환으로 인해 체크포인트가 발생함). 온라인 로그를 다시 사용해야 합니다.
이 문제를 해결하는 일반적인 방법은 다음과 같습니다.
I. 로그 그룹 추가
둘. 로그 파일 멤버의 크기를 늘립니다
V$log 를 통해 로그 그룹을 볼 수 있으며 v$logfile 을 통해 특정 멤버 파일을 볼 수 있습니다.
4. 로그 파일을 보관합니다
Oracle 은 아카이브 모드와 비아카이브 모드의 두 가지 모드로 실행할 수 있습니다. 아카이브 모드를 사용하지 않으면 물론 아카이브 로그가 없지만 시스템은 유용한 시스템이 아닙니다. 특히 운영 시스템의 경우 데이터 손실이 발생할 수 있습니다. 그러나 아카이브 모드에서 사용자의 모든 수정 사항을 저장하기 위해 리두 로그 파일이 전환 및 덮어쓴 후 일련의 연속 파일, 즉 아카이브 로그 파일로 저장됩니다.
어떤 사람들은 아카이브 로그 파일이 많은 하드 디스크 공간을 차지한다고 말할 수 있습니다. 사실 구체적으로 생각해 보세요. 데이터 보호 또는 데이터 손실을 위해 약간의 디스크 공간을 낭비하고 싶으십니까? 분명히, 우리는 데이터의 보안을 보장해야 한다. 실제로 아카이브가 항상 디스크 공간을 차지하는 것은 아닙니다. 테이프에 백업하거나 마지막 전체 백업 전에 모든 로그 파일을 삭제할 수 있습니다.
5. 초기화 매개변수 파일
버전에 따라 initSID.ora 또는 init.ora 파일의 위치가 다를 수 있습니다. 8i 에서는 일반적으로 $Oracle_HOME/admin//Pfile 아래에 있습니다. 초기화 파일은 메모리, 제어 파일, 프로세스 수 등 데이터베이스의 많은 시작 매개변수를 기록합니다. 데이터베이스가 시작될 때 로드됩니다 (Nomount 시 로드됨). 초기화 파일은 많은 중요한 매개변수를 기록하며 데이터베이스 성능에 큰 영향을 미칩니다. 만약 네가 그것을 이해하지 못한다면, 쉽게 다시 쓰지 마라, 그렇지 않으면 데이터베이스의 성능이 저하될 수 있다.
6. 기타 문서
하나. 암호 파일
Oracle SYSDBA 권한을 가진 사용자를 인증합니다.
둘. 로그 파일
경고 로그 파일 (alert.log 또는 alrt.ora)
데이터베이스 시작, 종료 및 몇 가지 중요한 오류 메시지를 기록합니다. 데이터베이스 관리자는 이 파일을 자주 점검하고 발생한 문제에 즉시 대응해야 합니다. 다음 SQL 을 통해 v $ parameterwhere name = "background _ dump _ dest" 에서 경로 선택 값을 찾을 수 있습니다.
백그라운드 또는 사용자 추적 파일
시스템 프로세스나 사용자 프로세스 오류 이전에 기록된 정보는 일반적으로 읽을 수 없지만 Oracle 의 TKPROF 도구를 통해 읽을 수 있는 형식으로 변환할 수 있습니다. 시스템 프로세스에서 경고 로그 파일과 동일한 경로를 생성하는 추적 파일의 경우 사용자 추적 파일의 경로가 동일하면 다음 SQL 을 통해 v $ parameter 에서 해당 경로 선택 값 where name = "user _ dump _ dest" 를 찾을 수 있습니다.
셋째, 오라클의 논리적 구조
1, 테이블스페이스
테이블스페이스는 데이터베이스의 기본 논리적 구조이며 일련의 데이터 파일 모음입니다. 테이블스페이스에는 여러 데이터 파일이 포함될 수 있지만 데이터 파일은 하나의 테이블스페이스에만 속할 수 있습니다.
2. 세그먼트
세그먼트는 데이터베이스의 한 객체가 차지하는 공간입니다. 세그먼트와 데이터베이스 객체는 일대일 대응이지만 세그먼트는 데이터베이스 저장 영역의 관점에서 볼 수 있습니다. 세그먼트는 하나의 테이블스페이스에만 속할 수 있습니다. 물론 한 테이블스페이스에 여러 개의 세그먼트가 있을 수 있습니다.
테이블스페이스와 데이터 파일은 물리적 저장 영역에서 일대다 관계이고, 테이블스페이스와 세그먼트는 논리적 저장 영역에서 일대다 관계이며, 세그먼트는 데이터 파일과 직접적인 관계가 없습니다. 한 세그먼트가 여러 데이터 파일에 속할 수 있으며 확장할 데이터 파일을 지정할 수 있습니다.
시장 세분화는 기본적으로 다음 네 가지 유형으로 나눌 수 있습니다.
하나의 데이터 세그먼트.
인덱스 세그먼트 (인덱스 세그먼트)
롤백 세그먼트 (롤백 세그먼트)
임시 세그먼트 (임시 세그먼트)
3. 정도
Extent 의 번역에 대한 많은 해석이 있다. 어떤 번역은 extensions 로, 어떤 번역은 panels 로, 나는 여기서 보통 intervals 로 번역한다. 한 세그먼트에 여러 개의 간격이 있을 수 있습니다. 간격은 한 번에 데이터를 위해 예약된 큰 저장 공간입니다. 이 간격이 다 떨어질 때까지 데이터베이스는 세그먼트의 최대 범위나 사용할 수 있는 디스크 공간이 없을 때까지 새 예약된 스토리지 공간, 즉 새 간격을 계속 요청합니다. Oracle8i 이상 버전에서는 이론상 한 세그먼트에 무제한 간격이 있을 수 있지만 여러 간격이 Oracle 성능에 영향을 줄 수 있습니다. Oracle 은 Oracle 관리 및 헤드 이동을 줄이기 위해 가능한 한 짧은 시간 간격으로 데이터를 배포할 것을 권장합니다.
4.Oracle 블록
Oracle 의 가장 기본적인 저장 단위는 운영 체제 데이터 블록의 정수 배입니다. Oracle 작업은 블록 기반이며 한 간격에 여러 블록을 포함할 수 있습니다 (간격 크기가 블록 크기의 정수 배수가 아닌 경우 Oracle 은 실제로 블록 크기의 정수 배로 확장됩니다).
5. 기본 테이블스페이스 소개
A. 시스템 테이블스페이스
주로 데이터 사전과 내부 시스템 테이블 기본 테이블을 저장합니다.
데이터 딕셔너리에 대한 SQL 보기
사전에서 선택 *
내부 시스템 테이블에 대한 SQL 보기
Select * from v $ fixed _ view _ definition
DBA 는 시스템의 시스템 테이블에 있는 데이터 사전에 대해 깊은 이해를 가져야 하며, 시스템의 상태와 데이터베이스의 상태를 즉시 이해할 수 있는 기본적인 SQL 문을 준비해야 합니다. 이러한 기본 SQL 에는 다음이 포함됩니다
시스템의 나머지 공간
시스템의 SGA 입니다
대기 상태 시스템
사용자 권한
현재 사용자 잠금
버퍼 사용량 등.
DBA 가 되는 길에서는 OEM/Quest 와 같은 우수한 데이터베이스 관리 도구에 지나치게 의존하지 않는 것이 좋습니다. 이는 데이터 사전을 이해하는 데 도움이 되지 않으며 SQL 문은 거의 모든 데이터베이스 관리 작업을 수행할 수 있기 때문입니다.
이 테이블스페이스의 두드러진 특징 중 하나는 많이 읽고 적게 쓰는 것이다.
B. 임시 테이블스페이스.
이름에서 알 수 있듯이 임시 테이블스페이스는 정렬 작업을 위한 임시 공간과 같은 임시 데이터를 저장하는 데 사용되며 다음 시스템 시작 시 모든 공간이 해제됩니다.
C. 롤백 세그먼트 테이블스페이스
첫째, 시스템에서 롤백 세그먼트의 역할
데이터베이스가 업데이트, 삽입 또는 삭제되면 새 데이터는 원본 데이터 파일로 업데이트되고 이전 데이터 (이미지 이전) 는 롤백 세그먼트에 배치됩니다. 데이터를 롤백해야 하는 경우 롤백 세그먼트에서 데이터 파일로 복사할 수 있습니다. 데이터 롤백을 완료합니다. 시스템이 복구되면 롤백 세그먼트는 커밋되지 않은 데이터를 앞뒤로 스크롤하여 시스템 일관성을 해결할 수 있습니다.
어쨌든 롤백 세그먼트는 많은 양의 쓰기 작업이며 일반적으로 읽기가 거의 없으므로 디스크 입출력 경합을 줄이기 위해 별도의 디스크 또는 RAID 와 같은 별도의 디바이스에 롤백 세그먼트를 배치하는 것이 좋습니다.
둘. 롤백 세그먼트 작동 방식
롤백 테이블스페이스는 여러 롤백 세그먼트로 나눌 수 있습니다.
롤백 세그먼트는 여러 세션에 대한 데이터를 저장할 수 있습니다.
롤백 세그먼트는 순환 데이터 모델입니다.
롤백 세그먼트가 1 구획 2 구획 3 구획 4 구획 1 순서로 사용되는 4 개의 구획으로 구성되어 있다고 가정합니다. 즉, 간격을 재활용할 수 있습니다. 간격 4 가 간격 1 에 도달하면 간격 1 의 세션이 종료되지 않고 간격 4 가 다 떨어지면 간격 1 을 사용할 수 없습니다. 이 시점에서 시스템은 다른 세션에 대한 서비스를 계속하려면 간격 5 를 할당해야 합니다.
Update 문의 완료를 분석합니다.
① 사용자는 업데이트 문을 제출합니다.
② 서버 프로세스는 메모리 버퍼를 확인합니다.
데이터 블록에 버퍼가 없으면 디스크에서 읽습니다.
I. 사용 가능한 메모리 공간이 없는 경우 DBWR 은 디스크에 기록되지 않은 더티 (dirty) 버퍼에 쓰기 위해 시작됩니다.
둘. 사용 가능한 공간이 있으면 읽어 보십시오.
③ 버퍼의 데이터를 업데이트하십시오.
I. 롤백 세그먼트 항목을 요청하고 이전 데이터를 롤백 세그먼트에 씁니다.
둘. 데이터 잠금 및 업데이트
셋. 또한 수정 사항을 리두 로그 버퍼에 기록합니다.
또 역장군에는 공동구매 제품이 있어 싸고 보장이 있다.