만약 당신이 컴퓨터 전공이라면, 인터넷에서 연구를 할 것을 건의할 수 있습니다. 인터넷이 핫하고, 정보량이 많고, 유용합니다.
기타 (예: 데이터베이스) 참조 자료는 알고리즘과 데이터 구조보다 많다.
관련 패러다임:
데이터베이스 백업 및 복구.
이 문서에서는 Oracle 아키텍처, 원칙, 실습에서 Oracle 데이터베이스 백업 방법 및 전략에 대해 설명합니다. 수출입, RMAN, 운영 체제 백업 등이 포함됩니다.
다이제스트: Oracle 의 아키텍처부터 IMP/EXP, PMAN, OS 를 포함한 데이터베이스 ORACLE 의 백업 방법 및 전략에 대해 이론적으로 논의합니다.
키워드: Oracle, 백업, 복구, RMAN
키워드: 오라클; 백업; 복구; RMAN
요약
대형 소프트웨어 운영 시스템의 백업 전략에는 RAID 기술, 클러스터 기술 등 여러 가지가 있습니다. 이러한 시스템의 백업으로 데이터베이스 백업 문제가 해결되는 경우가 많습니다. 그러나 이러한 백업은 비용이 많이 듭니다. 또한 하드웨어 백업이 실제 요구 사항을 충족하지 못하는 경우도 있습니다. 사용자가 실수로 테이블을 삭제하고 복구하려는 경우 데이터베이스 백업이 중요해집니다.
소개: 일부 대형 소프트웨어의 운영 시스템에는 RAID 기술, 클러스터 기술 등과 같은 다양한 백업 전략이 있습니다. 대부분의 경우 이러한 시스템 백업 전략으로 데이터베이스 백업을 완료할 수 있습니다. 그러나 비용은 상당히 높다. 또한 하드웨어 백업은 실제 요구 사항과 크게 다를 수 있습니다. 테이블이 실수로 삭제되어 복구가 필요한 경우 데이터베이스 백업이 매우 중요해집니다.
Oracle 은 어떻게 작동합니까
Oracle 데이터베이스에는 두 가지 운영 모드가 있습니다. 하나는 데이터베이스 장애 발생 시 데이터베이스를 최대한 복구하여 커밋된 데이터가 손실되지 않도록 하는 ARCHIVELOG 입니다. 둘째, 아카이브 없음 모드 (NOARCHIVELOG) 는 데이터베이스를 가장 가까운 복구 지점 (콜드 또는 논리적 백업) 으로만 복구할 수 있습니다. 데이터베이스의 고가용성과 사용자가 감당할 수 있는 손실된 작업량에 따라 실시간 요구 사항이 높은 데이터베이스에 대한 아카이브가 필요합니다. 아카이브되지 않은 방법은 개발 및 디버깅된 데이터베이스에만 사용됩니다.
데이터베이스의 운영 모드를 변경하는 방법, 데이터베이스를 만들 때 데이터베이스 생성의 일부로 데이터베이스의 초기 아카이브 모드를 결정합니다. 일반적으로 NOARCHIVELOG 모드입니다. 데이터베이스를 만들 때 필요에 따라 아카이브 모드에서 실행해야 하는 데이터베이스가 ARCHIVELOG 모드로 변경됩니다. 작업은 다음과 같습니다.
1. 데이터베이스를 종료하고, 기존 데이터를 백업하고, 데이터베이스 작동 방식을 변경하며, 데이터베이스에 중요한 변경 사항이므로 발생 가능한 문제를 보호하기 위해 데이터베이스를 백업해야 합니다.
2. 초기 시도 매개변수를 수정하여 자동 보관을 사용으로 설정합니다.
초기화 파일 init[SID] 를 수정 (추가) 합니다. Ora 매개변수:
Log_archive_start=true # 자동 아카이브 시작.
Log _ archive _ format = arc% t% s.arc # 아카이브 형식
Log _ archive _ dest =/archdir/arch # 아카이브 경로
8i 에서는 대기 데이터베이스 서버와 같은 다른 서버에 아카이빙할 수 있는 최대 5 개의 아카이브 경로를 가질 수 있습니다.
3. 인스턴스를 Mount 상태로 시작합니다. 즉, 데이터베이스를 열지 않고 로드합니다.
$ & gtsvrmgrl
SVRMGRL & gt 연결 내부
SVRMGRL & gt 부트 설치
SVRMGRL & gt 변경 데이터베이스 아카이브 로그; //데이터베이스를 아카이브 모드로 실행합니다.
SVRMGRL & gt 데이터베이스 열기;
Oracle 의 백업 시나리오
백업 방식에 따라 논리적 백업, 콜드 백업 (오프라인 백업) 및 핫 백업 (온라인 백업) 으로 나눌 수 있습니다. 여기서 콜드 백업과 핫 백업을 총체적으로 물리적 백업이라고 할 수 있습니다. 백업 도구에 따라 EXP/IMP 백업, 운영체제 백업, RMAN 백업 및 VERITAS 와 같은 타사 툴 백업으로 나눌 수 있습니다. 다음은 Oracle 이 직접 제공하는 몇 가지 백업 툴과 작업입니다.
1. 수출/수입 백업 (논리적 백업)
EXP/IMP 는 논리적 백업의 범주에 속하며 데이터베이스의 데이터만 백업되고 데이터의 물리적 위치는 기록되지 않는 백업입니다. Export 는 자매 프로그램 imp(imp) 에서만 읽을 수 있는 데이터베이스의 이진 백업을 수행합니다. 구체적인 사용 방법은 다음과 같다. (EXP 와 IMP 의 매개변수가 거의 동일하기 때문에 EXP 만 예로 들 수 있습니다. ) 을 참조하십시오
EXP 의 명령 형식 및 매개 변수
형식: 키워드 = 값 또는 키워드 = (값 1, 값 2, ..., valuen)
인스턴스: expscott/tigergrants = ytables = (EMP, dept, mgr)
USERID 는 명령행에서 첫 번째 인수여야 합니다.
키워드 설명 (기본값) 키워드 설명 (기본값)
USERID 사용자 이름/비밀번호 전체 파일 내보내기 (n)
버퍼 데이터 버퍼 소유자 사용자 이름 목록의 크기입니다
파일 출력 파일 (EXPDAT). DMP) 테이블 이름 목록
COMPRESS 가져오기 recordlengthio 레코드의 길이 범위 (y).
내보내기 권한 부여 (Y) INCTYPE 증분 내보내기 유형
인덱스 내보내기 인덱스 (y) 레코드 추적 증분 내보내기 (y)
행 데이터 행 내보내기 (Y) PARFILE 매개 변수 파일 이름
제약 익스포트 제약 (y) 일관성 크로스탭 일관성
로그 파일 통계 분석 객체 (예상) 가 로그 화면에서 출력됩니다.
직접 경로 (n) 내보내기 트리거 트리거 트리거 (y)
피드백은 각 x 선의 진행 (0) 을 표시합니다. 덤프된 각 파일의 최대 크기는 파일 크기입니다.
선택한 익스포트 테이블 부분 집합의 절을 질의합니다.
참고: exp -help 명령을 통해 exp 사용을 확인할 수 있습니다. Imp -help 명령은 Imp 사용 방법을 확인합니다.
2. 운영 체제 백업 (콜드 백업 및 핫 백업)
운영 체제 백업에는 콜드 백업과 핫 백업의 두 가지 유형이 있습니다. 운영 체제 백업은 전체 데이터 파일을 복제하는 위의 논리적 백업과 근본적으로 다릅니다.
오프라인 백업
파일 레벨 백업이 시작되기 전에 데이터베이스를 완전히 종료해야 합니다. 닫기 작업은 일반, 즉시 및 트랜잭션 옵션이 있는 닫기를 사용하여 수행해야 합니다.
모든 데이터 파일, 모든 제어 파일, 모든 온라인 리두 로그 파일 및 INIT 를 포함하여 데이터베이스에 사용된 각 파일을 백업합니다. ORA 파일 (권장).
콜드 백업의 일반적인 단계는 다음과 같습니다.
1) 일반 백업을 위해 인스턴스를 종료합니다.
2) 전체 데이터베이스를 한 디렉토리에 백업합니다.
3) 데이터베이스를 시작합니다
즉:
SVRMGRL & gt 연결 내부
SVRMGRL & gt 즉시 종료
SVRMGRL & gt! Cp< 파일>& lt 백업 디렉토리 & gt
또는
SVRMGRL & gt! Tar CVF/db bak/full bk.tar/u01/Oracle/oradata/dbname
SVRMGRL & gt 시작
핫 백업
핫 백업은 데이터베이스가 열려 있을 때의 운영 체제 백업입니다. 핫 백업은 ARCHIVELOG 모드의 데이터베이스에서만 사용할 수 있습니다. 핫 백업은 온라인 로그를 백업할 필요가 없지만 인스턴스 복구 시 필요할 수 있는 아카이브 상태여야 합니다. 현재 온라인 로그는 잘 보호되거나 미러 상태여야 합니다. 현재 온라인 로그는 데이터베이스 파괴에 큰 영향을 미치며 데이터 손실 시에만 데이터베이스를 복구할 수 있습니다. 임시 테이블스페이스의 경우 임시 정보를 저장합니다. 핫 백업에서는 백업하지 않는 것도 고려해 볼 수 있습니다. 임시 파일이 실패할 경우 데이터 파일 및 테이블스페이스를 삭제하고 임시 테이블스페이스를 재구축할 수 있습니다.
핫 백업의 내용은 콜드 백업과 동일하며 일반적인 절차는 다음과 같습니다.
1) 백업된 테이블스페이스는 Alter Tablespace ... 를 사용하여 백업을 시작하고 테이블스페이스를 핫 백업 모드로 설정합니다.
2) 콜드 백업과 같은 운영 체제 명령을 사용하여 테이블스페이스를 구성하는 데이터 파일을 복제합니다.
3) alter 테이블스페이스 사용 ... 백업 명령을 종료하고 테이블스페이스를 핫 백업 모드에서 해제합니다.
4) 데이터베이스 변경 ... 제어 파일 백업 명령을 사용하여 제어 파일을 백업합니다.
즉:
SVRMGRL & gt 연결 내부;
SVRMGRL & gtalter tablespace 사용자가 백업을 시작합니다.
SVRMGRL & gt! Cp/u01/oradata/dbname/user01.ora/dbbak/user01
SVRMGRL & gt 테이블스페이스 클라이언트 백업 변경
SVRMGRL & gt 데이터베이스 백업 제어 파일을 & ltfielname & gt;; 로 변경합니다
또는
SVRMGRL & gt 데이터베이스 백업 제어 파일을 trace 로 변경
주: 핫 백업 시 사용자가 여전히 데이터베이스를 조작하고 있으므로 각 테이블스페이스를 가장 짧은 백업 상태로 유지하는 것이 좋습니다. 이를 위해서는 테이블스페이스를 백업해야 합니다. 테이블스페이스를 함께 백업 상태로 유지하는 동안 데이터 파일을 복제하지 마십시오.
3.RMAN
Rman (복구 관리자) 은 DBA 가 데이터베이스에 대한 백업 및 복구 작업을 쉽게 수행하고 DBA 에게 엔터프라이즈 데이터베이스 백업 및 복구 작업을 중앙 집중식으로 제어할 수 있도록 하는 Oracle 유틸리티입니다. RMAN 은 ORACLE8 이상에서만 사용할 수 있습니다. 테이블스페이스, 데이터 파일, 제어 파일 및 아카이브를 포함한 전체 데이터베이스 또는 데이터베이스 구성 요소를 백업할 수 있습니다. RMAN 은 필요에 따라 백업 및 복구에 액세스하고 수행할 수 있습니다.
RMAN 은 6 가지 서로 다른 유형의 백업을 지원하며 그 중 2 가지는 일반적으로 사용됩니다.
전체 데이터베이스 전체 백업 (모든 블록 포함)
증분 증분 증분 백업은 마지막 동일 레벨 또는 하위 레벨 백업 이후 변경된 데이터 블록만 백업하는 것입니다. 이를 위해서는 레벨 0 증분이 전체 데이터베이스 백업이 아닌 데이터베이스에서 이미 사용 중인 모든 데이터 블록을 포함하는 증분 기준으로 필요합니다. RMAN*** 은 레벨 7 증분을 지원할 수 있습니다.
백업, 복원 및 복구는 RMAN 의 세 가지 기본 명령이며 각각 데이터베이스 백업, 복원 및 복구에 사용됩니다. Restore 명령은 백업 세트 또는 이미지 복제본에서 데이터 파일, 제어 파일 또는 아카이브된 리두 로그를 복원하는 데 사용됩니다. Recovery 명령은 미디어 복구에 사용되어 리두 로그 파일을 적용합니다.
RMAN 의 백업 정보는 일반적으로 복구 카탈로그에 저장되며, 복구 카탈로그도 데이터베이스입니다. 단, 이 데이터베이스는 백업 정보를 저장하는 데 사용되며 복구 카탈로그는 여러 데이터베이스의 백업 정보를 저장할 수 있습니다. RMAN 은 복구 카탈로그 없이 실행할 수도 있습니다. 이 경우 백업 정보는 제어 파일에 저장됩니다. 이 상황은 제어 파일이 손상되면 데이터베이스 백업 정보가 모두 손실되고 복구가 실패하기 때문에 더욱 위험합니다. 또한 카탈로그를 복구하지 않으면 많은 RMAN 명령이 지원되지 않습니다. 따라서 중요한 데이터베이스에 대한 복구 카탈로그를 생성하는 것이 좋습니다.
복구 카탈로그 생성에는 일반적으로 다음 단계가 포함됩니다. (샘플 데이터베이스는 db 입니다.)
1) 디렉토리에 대해 별도의 테이블스페이스를 생성합니다.
SQL> 테이블스페이스 생성 tsrman datafile'/dbbak/RMAN/rsrman.dbf' 크기 50M
2) RMAN 사용자 생성
SQL> RMAN 기본 테이블스페이스 rsrman 임시 테이블스페이스 temp 로 식별되는 사용자 RMAN 생성
3) RMAN 권한 부여
SQL> 는 connect, resource, recovery_catalog_owner 를 RMAN 에 부여합니다.
4) RMAN 을 엽니다
$rman
5) 복구 카탈로그 데이터베이스 연결
RMAN & gt;; 디렉터리 연결 rman/rman@db
6) 복구 카탈로그 작성
RMAN & gt;; 디렉토리 테이블스페이스 tsrman 생성
데이터베이스를 백업하기 전에 복구 카탈로그에 등록해야 합니다. 이 절차는 다음과 같습니다 (대상 데이터베이스 연결 문자열이 db 100 이라고 가정).
1) 복구 카탈로그 데이터베이스에 연결합니다.
$rman rman/rman@db
2) RMAN 에 연결된 대상 데이터베이스 (백업할 데이터베이스).
RMAN & gt;; 접속 대상 sys/change _ on _ install @ db100
3) 데이터베이스 등록
RMAN & gt;; 데이터베이스를 등록합니다.
데이터베이스를 등록한 후 데이터베이스를 백업할 수 있습니다. 전체 데이터베이스 백업, 테이블스페이스 백업, 제어 파일 백업 및 아카이브 로그 백업이 있습니다. 작업은 다음과 같습니다.
1) 전체 데이터베이스 백업
요구 사항: ARCHIVELOG 모드, DB OPEN 에서 데이터베이스 백업을 완료합니다.
RMAN & gt;; 실행 중 {
할당 채널 c 1 유형 = 디스크 :
데이터베이스 백업
해제 채널 c1;
}
2) 테이블스페이스 백업
요구 사항: 아카이브 로그 모드
RMAN & gt;; 실행 중 {
할당 채널 c 1 유형 = 디스크 :
백업 테이블스페이스' ts _ users' filesperset3 형식' aatst _% t% S.% p';
해제 채널 c1;
}
3) 제어 파일 백업
RMAN & gt;; 실행 중 {
할당 채널 c 1 유형 = 디스크 :
현재 제어 파일 tag = weekly _ sat _ backup 백업
해제 채널 c1;
}
데이터베이스가 완전히 백업되면 제어 파일이 자동으로 포함됩니다. 테이블스페이스 또는 데이터 파일 백업에 제어 파일을 포함할 수도 있습니다.
RMAN & gt;; 실행 중 {
할당 채널 c 1 유형 = 디스크 :
테이블스페이스' ts_users' 백업
Filesperset 3 형식' aatst _% t% S.% p';
현재 제어 파일 포함
해제 채널 c1;
}
4) 아카이브 로그 백업
데이터 딕셔너리 테이블 v $ archived _ log 를 질의하여 백업할 로그 시퀀스 번호를 가져온 후 다음 명령을 실행합니다.
RMAN & gt;; 실행 중 {
할당 채널 c 1 유형 = 디스크 :
백업 아카이브 로그 낮은 로그 시퀀스 3 높은 로그 시퀀스 10 스레드1;
해제 채널 c1;
}
Oracle 의 백업 전략
올바른 백업 전략은 데이터베이스 서버의 24*7 고성능 운영뿐만 아니라 백업 및 복구의 속도와 신뢰성을 보장합니다. 백업 전략의 예로 RMAN 의 다중 레벨 증분 백업에 대해 살펴보겠습니다. 다중 레벨 백업은 일상적인 백업에 필요한 시간을 줄이는 동시에 시스템의 양호한 복구를 보장하는 데 사용됩니다. 복구 시간과 백업 시간 사이에는 절충점이 있습니다. 예를 들어, 데이터베이스를 전체 백업한 다음 백업 및 아카이빙만 하면 데이터베이스를 최신 상태로 복구할 수 있지만 복구 시간은 참을 수 없습니다. 다중 레벨 백업은 이러한 문제를 해결하기 위한 것으로, 일부 애플리케이션의 특성과 결합하여 다음과 같은 백업 전략을 채택할 수 있습니다.
한 달에 한 번 전체 데이터베이스 백업 (모든 데이터 및 읽기 전용 테이블스페이스 포함) :
일주일에 한 번 레벨 0 백업을 수행합니다 (읽기 전용 테이블스페이스 제외).
매주 수요일에 한 번 레벨 백업을 수행합니다.
하루에 두 번 백업한다.
복구 카탈로그에 대해 하루에 한 번 핫 백업을 수행합니다.
데이터베이스 변경 사항은 카탈로그 카탈로그를 재동기화하고 다시 백업 (예: 데이터 파일 추가) 하거나 다시 백업 (예: 테이블스페이스를 읽기 전용으로 변경) 해야 합니다.
각 백업 후 아카이브 로그를 백업하거나 정기적으로 아카이브 로그를 백업할 수 있습니다. 가능하면 테이프에 직접 백업할 수 있습니다.
Oracle 의 복구
다음 운영 프로토콜 복구 카탈로그는 db 1 18 에 저장되고 대상 데이터베이스는 db 100 입니다.
1. 데이터베이스 복구
1) SQL*PLUS 를 시작하고, 정확한 init.ora 파일을 사용하고, NOMOUNT 옵션을 사용하여 대상 데이터베이스 인스턴스를 시작합니다.
2) RMAN 을 시작하고 다음과 같이 복구 카탈로그에 연결합니다.
$rman 카탈로그 rman/rman@db 1 18
복구 관리자: 버전 9. 2. 0. 1.0- 프로덕션
판권 소유 (C)1995,2002, 오라클. 판권 소유
복구 카탈로그 데이터베이스에 연결
RMAN & gt;;
3) 대상 데이터베이스에 연결합니다
RMAN & gt;; 접속 대상 내부 /oracle@db 100
대상 데이터베이스에 연결: db (dbid =1142471523)
4) 대상 데이터베이스에 연결한 후 restore 명령을 실행하여 전체 데이터베이스 복구를 수행합니다.
RMAN & gt;; 실행 중 {
2> 할당 채널 c 1 디스크 유형 :
3> 복원 데이터베이스;
4> 해제 채널 c1;
}
2. 테이블스페이스 및 데이터 파일 복구
테이블스페이스 또는 데이터 파일 복구를 수행하려면 데이터베이스가 ARCHIVELOG 모드에서 실행되고 사용자가 매체 복구에 필요한 아카이브된 리두 로그 파일이 있어야 합니다. 테이블스페이스 복구를 시도하기 전에 테이블스페이스가 오프라인인지 확인해야 합니다. RMAN 의 명령은 다음과 같습니다.
실행 중 {
채널 c 1 디스크 할당
Sql "alter tablespace users _ data offline immediate";
실행 취소 테이블스페이스 users _ data
테이블스페이스 users _ data 복구
Sql "alter tablespace users _ data online";
}
위 스크립트는 다음을 수행합니다.
1) RMAN 할당 채널은 c 1 에서 복구 작업에 사용됩니다.
2) 테이블스페이스 users_data 를 오프라인으로 설정합니다.
3) RMAN 은 백업 세트에서 테이블스페이스에 속하는 데이터 파일을 복구합니다.
4) 매체 복구를 통해 필요한 아카이브 로그 파일을 제공하고 테이블스페이스 users_data 에 속하는 데이터 파일을 복구합니다.
5) RMAN 은 테이블스페이스를 온라인으로 설정합니다.
스크립트를 실행하는 동안 데이터 파일을 지정된 위치로 복원할 수 없는 경우 restore 명령을 실행하기 전에 set newname 명령을 사용합니다.
3. 파일 복구 제어
1) SQL*PLUS 를 시작하고, 정확한 init.ora 파일을 사용하고, NOMOUNT 옵션을 사용하여 대상 데이터베이스 인스턴스를 시작합니다.
2) RMAN 을 시작하고 다음과 같이 복구 카탈로그에 연결합니다.
$rman 카탈로그 rman/rman@ora8i.oracle
복구 관리자: 버전 9. 2. 0. 1.0- 프로덕션
판권 소유 (C)1995,2002, 오라클. 판권 소유
복구 카탈로그 데이터베이스에 연결
RMAN & gt;;
3) 대상 데이터베이스에 연결합니다
RMAN & gt;; 대상 internal/oracle@demo.oracle 에 접속합니다
대상 데이터베이스에 연결: db (dbid =1142471523)
4) 대상 데이터베이스에 연결한 후 restore 명령을 실행하여 제어 파일을 복구합니다.
RMAN & gt;; 실행 중 {
2> 할당 채널 c 1 디스크 유형 :
3> 복원 제어 파일;
4>}
요약
Oracle 데이터베이스의 보안을 보장하는 것은 시스템 보안의 중요한 부분이며 완벽한 데이터베이스 백업 및 복구 시나리오를 설계해야 합니다. Oracle 에서 제공하는 다양한 툴을 함께 사용하면 데이터베이스 백업 및 복구를 간편하게 수행할 수 있습니다. Oracle 데이터베이스의 실제 백업 및 복구에서는 많은 불합리한 복잡한 상황이 발생할 수 있습니다. 상황에 따라 데이터 복구 능력을 극대화하고 복구 시간을 최소화하는 원칙에 따라 데이터베이스를 복구해야 하기 때문에 많은 실천과 경험 축적이 필요합니다.
참고
[1] Oracle8i 백업 및 복구 설명서 Oracle 설명서
[2] Oracle8i 복구 관리자 사용 설명서 및 참조 Oracle 설명서
[3] Oracle9i: 초보자 가이드 (미국) 마이클 애비 마이클 코리얀 에브람슨 2002.3 기계공업출판사.
[4] Oracle8i 백업 및 복구 브로셔 (미국) 라마빌프리아난드 아데콜리 왕악연 등 200 1.9 기계공업출판사 번역.
참고용으로만 여러분 스스로 공부하세요.
너에게 도움이 되었으면 좋겠다.