Oracle SecureFile 의 기능 1/4 페이지

3636 단어 OracleSecureFile
SecureFile 기능 은 Oacle 11g 에서 큰 대상(LOB)저장 형식 을 완전히 재 설계 하여 실현 하 는 것 입 니 다.원래 의 LOB 저장 형식 은 현재 BASIXFILE 이 라 고 불 리 며 기본 적 인 저장 방법 이지 만 SECURFILE 키 워드 는 새로운 저장 방법 을 열 었 습 니 다.암호 화,압축 을 이용 하여 공간 과 데 이 터 를 중복 제거 할 수 있 습 니 다.
초기 화 매개 변수
SecureFile 기능 은 파라미터 COMPATIBLE 설정 을 초기 화 할 때 11.0.0.0.0 이상 사용 할 수 있 습 니 다.
  DB_SECUREFILE 초기 화 매개 변수 제어 데이터베이스 가 LOB 저장 형식 에 대한 기본 동작 입 니 다.허용 하 는 값 은 다음 과 같 습 니 다.
◆ALWAYS-ASSM 표 공간 에 있 는 모든 LOB 대상 은 SecureFile LOB 형식 으로 만 들 고,비 ASSM 표 공간 에 있 는 모든 LOB 대상 은 Basic File LOB 형식 으로 만 듭 니 다(SecureFile 형식 으로 만 들 겠 다 고 명확 하 게 밝 히 지 않 는 한).지정 한 옵션 이 없 는 상태 에서 Basic File 저장 형식 옵션 은 무시 되 고,SecureFile 기본 저장 형식 옵션 은 사 용 됩 니 다.
◆FORCE-모든 LOB 대상 을 SecureFile LOB 형식 으로 만 듭 니 다.비 ASSM 표 공간 에서 LOB 를 만 들 면 오류 가 발생 합 니 다.지정 한 옵션 이 없 는 상태 에서 Basic File 저장 형식 옵션 이 무시 되 고 SecureFile 기본 저장 형식 옵션 이 사 용 됩 니 다.
◆PERMITTED-기본 설정,SECUREFILE 키 워드 를 사 용 했 을 때 SecureFile LOB 저장 형식 을 허용 합 니 다.기본 저장 방법 은 BASICFILE 입 니 다.
◆네 이 버-SecureFile LOB 대상 을 만 들 수 없습니다.
◆IGNORE-SecureFile LOB 를 만 드 는 것 을 방지 하고,SecureFile 저장 옵션 을 사용 할 때 모든 오 류 를 무시 합 니 다.
이 매개 변 수 는 동적 이기 때문에 ALTER SYSTEM 명령 설정 을 사용 할 수 있 습 니 다.
  SQL> ALTER SYSTEM SET db_securefile = 'FORCE';   System altered.   SQL> ALTER SYSTEM SET db_securefile = 'PERMITTED';   System altered.   SQL>
다음 예 는 DB 를 가정 합 니 다.SECUREFILE 초기 화 매개 변 수 를 기본 값 PERMITTED 로 설정 합 니 다.
SecureFile LOB 만 들 기
기초
SecureFile LOB 는 LOB 에 자 구 를 저장 한 후 SECUREFILE 키 워드 를 추가 하여 만 들 었 습 니 다.아래 코드 는 두 개의 표를 만 들 었 고 첫 번 째 는 원래 의 저장 형식 을 사 용 했 으 며 두 번 째 는 SecureFile 저장 형식 을 사 용 했 습 니 다.
  CREATE TABLE bf_tab (   id NUMBER,   clob_data CLOB   )   LOB(clob_data) STORE AS BASICFILE;   INSERT INTO bf_tab VALUES (1, 'My CLOB data');   COMMIT;   CREATE TABLE sf_tab (   id NUMBER,   clob_data CLOB   )   LOB(clob_data) STORE AS SECUREFILE;   INSERT INTO sf_tab VALUES (1, 'My CLOB data');   COMMIT;
LOB 중복 제거
SecureFile 의 DEDUPLICATE 옵션 은 표 나 파 티 션 의 한 LOB 에서 중복 데 이 터 를 제거 할 수 있 습 니 다.예상 한 바 와 같이 이 기술 과 재 작성 예방 으로 인해 시스템 비용 이 증가 합 니 다.KEEPDUPLICATE 옵션 은 중복 제 거 를 명확 하 게 막 고,다음 예 는 일반적인 SecureFile 과 중복 제거 SecureFile 의 공간 사용 현황 을 비교 한 것 이다.
  CREATE TABLE keep_duplicates_tab (   id NUMBER,   clob_data CLOB   )   LOB(clob_data) STORE AS SECUREFILE keepdup_lob(   KEEP_DUPLICATES   );   CREATE TABLE deduplicate_tab (   id NUMBER,   clob_data CLOB   )   LOB(clob_data) STORE AS SECUREFILE dedup_lob (   DEDUPLICATE   );   DECLARE   l_clob CLOB := RPAD('X', 10000, 'X');   BEGIN   FOR i IN 1 .. 1000 LOOP   INSERT INTO keep_duplicates_tab VALUES (i, l_clob);   END LOOP;   COMMIT;   FOR i IN 1 .. 1000 LOOP   INSERT INTO deduplicate_tab VALUES (i, l_clob);   END LOOP;   COMMIT;   END;   /   EXEC DBMS_STATS.gather_table_stats(USER, 'keep_duplicates_tab');   EXEC DBMS_STATS.gather_table_stats(USER, 'deduplicate_tab');   COLUMN segment_name FORMAT A30   SELECT segment_name, bytes   FROM user_segments   WHERE segment_name IN ('KEEPDUP_LOB', 'DEDUP_LOB');   SEGMENT_NAME BYTES   ------------------------------ ----------   DEDUP_LOB 262144   KEEPDUP_LOB 19267584   2 rows selected.   SQL>
중복 제거 세그먼트 가 매우 작 아야 합 니 다.공간 절약 은 LOB 세그먼트 내의 중복 정도 에 의존 합 니 다.중복 모드 는 ALTER TABLE 명령 으로 재 설정 할 수 있 습 니 다.
1 2 3 4 다음 페이지 전문 을 읽다

좋은 웹페이지 즐겨찾기