>  기사  >  데이터 베이스  >  Oracle이 수정 기록을 기록하는 방법

Oracle이 수정 기록을 기록하는 방법

PHPz
PHPz원래의
2023-04-04 10:40:512636검색

지속적인 비즈니스 발전과 데이터의 지속적인 증가로 인해 데이터 수정 기록에 대한 조회 및 관리가 점점 더 중요해지고 있습니다. Oracle 데이터베이스는 수정 기록을 편리하고 빠르게 기록하는 기능을 제공합니다. 이 문서에서는 Oracle이 수정 레코드를 기록하는 방법과 이러한 레코드를 쿼리하고 관리하는 방법을 소개합니다.

수정 기록 기록

오라클 데이터베이스는 수정 기록을 기록하는 두 가지 방법인 플래시백 기술과 감사 기술을 제공합니다.

Flashback 기술

Flashback 기술은 데이터베이스 개체의 상태를 빠르게 롤백하기 위해 Oracle 데이터베이스에서 제공하는 기술입니다. 테이블 또는 전체 데이터베이스의 상태를 롤백하는 데 사용할 수 있습니다. 레코드 수정 레코드는 Flashback 기술의 하위 집합이며 Oracle은 Flashback Data Archive라는 특수 기능을 제공합니다.

Flashback Data Archive 생성

Flashback Data Archive를 사용하여 수정 기록을 기록하기 전에 Flashback Data Archive를 생성해야 합니다. Flashback Data Archive는 다음 SQL 문을 통해 생성할 수 있습니다.

CREATE FLASHBACK ARCHIVE fda1
TABLESPACE example
QUOTA 100M
RETENTION 1 YEAR
NO DROP;

위 명령문은 fda1이라는 이름의 Flashback Data Archive를 생성하고, 예제 테이블스페이스를 사용하며, 100M 공간을 할당하고, 데이터 보존 기간은 1년이며, 즉시 재활용할 수 없습니다.

Flashback Data Archive 활성화

Flashback Data Archive를 생성한 후 테이블 또는 테이블의 특정 열에 대해 Flashback Data Archive를 활성화해야 합니다. EMPLOYEE 테이블의 급여 열에 대해 Flashback Data Archive를 활성화한다고 가정하면 다음 SQL 문을 사용할 수 있습니다.

ALTER TABLE employee
ADD PERIOD FOR salary
FLASHBACK ARCHIVE fda1;

위 문은 EMPLOYEE 테이블의 급여 열에 대한 Flashback Data Archive를 추가합니다. EMPLOYEE 테이블에 대한 모든 업데이트는 이제 Flashback Data Archive에 기록됩니다.

감사 기술

감사는 수정 기록을 기록하기 위해 Oracle 데이터베이스에서 제공하는 또 다른 도구입니다. 데이터베이스 서버에서 사용자가 수행한 트랜잭션을 추적하고 기록할 수 있습니다. 감사 기술은 관리자가 데이터베이스 개체에 액세스하는 사용자를 추적하고 식별하는 데 도움이 되기 때문에 기본적으로 Oracle 데이터베이스의 엔터프라이즈 환경에서 필수입니다.

감사 매개변수 설정

감사 기술을 사용하여 수정 기록을 기록하기 전에 감사 매개변수를 설정해야 합니다. 다음 SQL 문을 사용하여 감사를 활성화할 수 있습니다.

ALTER SYSTEM SET audit_trail=DB, EXTENDED SCOPE=SPFILE;

Oracle 데이터베이스의 감사 추적을 DB로 설정하여 데이터베이스 감사 추적 기능을 활성화합니다. SCOPE=SPFILE 매개변수는 설정이 SPFILE에 기록됨을 나타냅니다.

감사 활성화

감사 추적을 활성화하려면 데이터베이스를 구성해야 합니다. 다음 SQL 문을 사용하여 sys 사용자에 대해 감사를 활성화할 수 있습니다.

AUDIT UPDATE ANY TABLE BY ACCESS;

위 명령을 사용하면 sys 사용자가 수정한 모든 테이블에 대한 액세스를 감사할 수 있습니다.

기록 수정 기록 조회 및 관리

수정 기록이 기록되면 해당 기록을 조회하고 관리할 수 있습니다. Oracle은 레코드 수정 레코드를 쿼리하고 관리하는 다양한 방법을 제공합니다.

Querying Flashback Data Archive

Flashback Data Archive의 기록 데이터를 쿼리하려면 다음 SQL 문을 사용할 수 있습니다.

SELECT *
FROM table_name
AS OF TIMESTAMP TO_TIMESTAMP('YYYY-MM-DD HH24:MI:SS.FF');

타임스탬프는 Flashback Data Archive 서버에서 발생한 모든 시간이 될 수 있습니다. 위의 예에서 사용된 날짜 및 시간 형식은 YYYY-MM-DD HH24:MI:SS.FF입니다.

감사 로그 쿼리

감사 로그를 쿼리하려면 다음 SQL 문을 사용할 수 있습니다.

SELECT *
FROM dba_audit_trail

이 명령은 쿼리된 데이터베이스의 모든 감사 이벤트를 표시합니다.

기록 수정 기록 관리

데이터 수정 기록 로그 파일이 지정된 크기에 도달하면 Oracle은 자동으로 새 로그 파일을 추가합니다. 최근에 데이터 테이블에 추가된 데이터에 대한 변경 기록을 로그 파일에서 확인할 수 있습니다. 이러한 변경 기록 로그 파일을 관리하려면

ALTER FLASHBACK ARCHIVE [archive_name] PURGE ALL

명령을 사용하여 선택한 Flashback Data Archive 로그 파일을 삭제하세요. 위 명령을 사용한 후 선택한 Flashback Data Archive 로그 파일은 영구적으로 삭제되며 복구할 수 없습니다.

요약

오라클은 수정 기록을 기록하는 일련의 방법을 제공합니다. 플래시백 기술은 테이블이나 전체 데이터베이스의 변경 사항을 기록할 수 있습니다. 감사는 데이터베이스 서버에서 수행된 모든 트랜잭션을 기록할 수 있습니다. 수정 기록이 존재하면 다양한 방법을 사용하여 이를 쿼리하고 관리할 수 있습니다. 위의 방법은 관리자가 수정자의 작업을 추적하고 수정 기록을 정기적으로 확인하여 데이터베이스의 데이터 무결성을 유지하는 데 도움이 될 수 있습니다.

위 내용은 Oracle이 수정 기록을 기록하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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