Oracle의 아카이브 로그 백업

Oracle의 아카이브 로그 백업

저는 SQL Server DBA이며 최근 Oracle 환경에 대한 책임을 맡았습니다. (11g)

이제 SQL Server에서 트랜잭션 로그를 시간에 맞춰 백업한 다음 이를 다른 서버로 마이그레이션합니다. Oracle에서도 이 작업을 수행하고 싶습니다.

Oracle의 리두 로그는 전환되기 전에 크기 기반으로 나타나며 서버에서 로그를 보관할 수 있습니다.

누군가 이를 달성하는 방법에 대한 몇 가지 팁/모범 사례를 제공할 수 있습니까?

또한 리두 로그 크기 조정 및 하루 동안의 사용 패턴 변화를 처리하는 방법에 대한 조언을 주시면 감사하겠습니다.

이것이 Redhat 5 Enterprise 서버에 있다는 것을 잊어버렸습니다.

답변1

첫 번째 제안은 자신이 하고 있는 일을 실제로 알지 않는 한 수동으로 조작하지 않는 것입니다.

수행하려는 작업은 rman백업 수행(다시 실행 로그 백업 포함)을 위한 Oracle 도구인 에서 읽어 보는 것입니다. 조치를 취하기 전에 Oracle 백업의 다양한 측면이 어떻게 작동하는지 완전히 이해할 수 있도록 이 내용을 철저하게 조사할 것을 적극 권장합니다.

이제 일반적으로 Oracle redo/archive 로그는 백업을 수행한 후까지 기록된 위치에 유지되어야 합니다. 백업은 일반적으로 데이터베이스 백업과 함께 필요한 아카이브 로그를 포함하도록 설정됩니다.

리두 로그의 크기는 데이터베이스 변경 트랜잭션의 양에 따라 직접적으로 결정됩니다. 변경 사항이 많을수록 로그 볼륨도 커집니다. 이는 애플리케이션 및 사용량에 따라 매우 개별적이므로 이에 대한 통계(트랜잭션 볼륨, 트랜잭션 로그 크기, 데이터베이스 크기 등 모두 타임스탬프와 함께) 기록을 시작하는 것이 좋습니다. 몇 주 분량의 데이터가 확보되면 활동과 로그의 상관관계를 파악하고 이를 유효한 추정치로 추출할 수 있습니다.

편집: 원래 질문을 부분적으로 오해한 것 같습니다. 백업을 실행할 때 기본적으로 다시 실행 로그를 지금 바로 검사하여 백업 시작을 실행할 때까지 백업과 완전히 일관성을 유지할 수 있는 방법을 요구하고 있다고 생각합니다.

그리고 RMAN은 실제로 당신을 위해 그 모든 더러운 일을 처리할 것입니다. 일부 RMAN 문서에서:

데이터베이스가 열려 있으면 가장 최근 로그가 포함된 보관된 다시 실행 로그를 백업할 때(즉, BACKUP ... ARCHIVELOG 명령이 UNTIL 또는 SEQUENCE 옵션 없이 실행됨) 백업을 시작하기 전에 RMAN이 전환됩니다. 현재 온라인 리두 로그 그룹, 아직 아카이브되지 않은 모든 온라인 리두 로그(명령이 실행되었을 때 현재였던 리두 로그 그룹 포함). 이렇게 하면 명령을 시작하기 전에 생성된 모든 다시 실행이 백업에 포함됩니다.

좀 더 자세한 내용을 제공하는 또 다른 내용은 다음과 같습니다.

BACKUP ... PLUS ARCHIVELOG 절을 사용하여 보관된 다시 실행 로그를 다른 파일의 백업에 추가할 수 있습니다. BACKUP ... PLUS ARCHIVELOG를 추가하면 RMAN이 다음을 수행합니다.

  1. ALTER SYSTEM ARCHIVE LOG CURRENT 명령을 실행합니다.
  2. BACKUP ARCHIVELOG ALL을 실행합니다. 백업 최적화가 활성화된 경우 RMAN은 지정된 장치에 이미 백업한 로그를 건너뜁니다.
  3. BACKUP 명령에 지정된 나머지 파일을 백업합니다.
  4. ALTER SYSTEM ARCHIVE LOG CURRENT 명령을 실행합니다.
  5. 백업 중에 생성된 나머지 아카이브 로그를 백업합니다.

이는 명령 중에 수행된 데이터 파일 백업이 일관된 상태로 복구될 수 있음을 보장합니다.

rman 문서에서 더 자세한 정보를 제공할 수 있습니다. 나는 (온라인 Oracle Rman 문서)에서 가져온 URL을 제공할 것이지만 URL은 북마크했을 때 이미 변경되었으므로 그 URL이 계속 남아 있다고 믿지 않습니다. 하지만 RMAN 문서에 대한 인터넷 검색을 통해 찾을 수 있습니다.

편집: 한 가지 더 추가하고 싶었습니다. . . 크기 조정에 대해 언급하셨습니다. Oracle 11g는 압축된 다시 실행 로그를 지원합니다. 나는 그것들을 직접 사용하지 않았지만 그것이 그것을 지원한다는 것을 알고 있습니다. 또한 Oracle 10g 및 11g는 압축 백업을 지원합니다. 아직 압축 백업을 수행하지 않는 경우당신은해야한다. 크기가 크게 줄어들었고, 무엇보다도 압축 백업을 활성화하여 백업 실행 성능이 크게 향상되었습니다.

답변2

Oracle의 리두 로그는 전환되기 전에 크기 기반으로 나타나며 서버에서 로그를 보관할 수 있습니다.

Oracle 9i 이상에서는 archive_lag_target 매개변수를 살펴보십시오.

답변3

그것은 절충안입니다. 큰 로그 파일이 더 효율적이라고 들었지만 A) 파일 손실이 클수록 데이터 손실도 커지고 B) 대역폭이 형편 없기 때문에 사용하지 않습니다.

이로 인해 몇 시간 동안 파일을 스풀링한 다음 다양한 대기 시스템에서 업데이트를 전송하고 실행하게 됩니다. 우리는 실제로 여전히 Oracle8i를 사용하고 있으며 데이터베이스는 DBA가 아닌 사람이 오래 전에 설계했기 때문에 여전히 새 데이터 파일과 제어 파일을 수동으로 생성해야 합니다. /한숨을 쉬다

답변4

이 질문을 한 지 꽤 됐는데 최근에 답을 찾았습니다. Oracle 10G R2부터는 지정된 시간보다 더 이상 로그 전환이 발생하지 않도록 하는 매개변수가 있습니다.

시스템을 변경하면 archive_lag_target=900;

이렇게 하면 사용된 로그 양에 관계없이 15분마다 전환이 발생합니다.

관련 정보