이 페이지는 기계 번역되었습니다. 영어 원본을 읽어보세요. English

IBSurgeon 라이브러리

HQbird 2024R2 업데이트 10 상세 변경 사항

HQbird 2024R2 업데이트 10의 새로운 기능

구체화된 뷰 (5.0의 새로운 기능)

HQbird는 이제 구체화된 뷰(Materialized Views)에 대한 완전한 지원을 포함합니다. 이는 일반 테이블의 물리적 저장소와 뷰의 정의를 결합한 새로운 데이터베이스 객체 유형입니다.

개요

구체화된 뷰(MV)는 표준 SQL 쿼리를 사용하여 정의되며, 엔진은 이 쿼리를 사용하여 기본 MV 테이블에 데이터 행을 채웁니다. 일반 뷰와 달리 MV 데이터는 디스크에 저장되고 인덱싱될 수 있습니다. DML 문(INSERT, UPDATE, DELETE)은 MV에 직접 허용되지 않습니다 - 데이터는 새로운 REFRESH 명령을 사용하여 업데이트해야 합니다.

구체화된 뷰 생성 및 관리

  • CREATE [OR ALTER] MATERIALIZED VIEW - 선택적 초기 데이터 로드(WITH DATA / WITH NO DATA)와 함께 MV를 생성하거나 교체합니다.
  • ALTER MATERIALIZED VIEW - MV 정의를 수정합니다. 기존 인덱스를 자동으로 모두 삭제합니다.
  • RECREATE MATERIALIZED VIEW - 동일한 이름의 기존 뷰(일반 또는 구체화된)를 삭제하고 새 MV를 생성합니다.
  • DROP VIEW - 구체화된 뷰를 삭제하는 데 사용됩니다(별도의 DROP MATERIALIZED VIEW 명령은 없음).
  • 모든 종류의 인덱스를 MV에 생성할 수 있습니다. 제약 조건과 트리거는 지원되지 않습니다.

뷰 유형 간 변환

  • ALTER MATERIALIZED VIEW ... TO NOT MATERIALIZED - MV를 일반 뷰로 변환합니다. 모든 인덱스와 데이터가 삭제됩니다.
  • ALTER VIEW ... TO MATERIALIZED - 일반 뷰를 구체화된 뷰로 변환합니다. 종속 객체는 영향을 받지 않습니다.

구체화된 뷰 데이터 새로 고침

새로운 REFRESH MATERIALIZED VIEW 문은 MV 콘텐츠를 업데이트합니다. 이는 DDL 명령입니다 - 실행은 현재 트랜잭션이 커밋될 때까지 지연됩니다. 네 가지 모드를 사용할 수 있습니다:

  • 전체 다시 로드(독점 모드) - REFRESH MATERIALIZED VIEW

    • 인덱스를 비활성화하고, 기존 데이터를 모두 삭제하고, MV 쿼리에서 다시 로드하고, 인덱스를 다시 활성화합니다.
    • 많은 행이 변경된 경우 가장 빠른 옵션입니다.
    • MV 테이블에 대한 독점 잠금이 필요합니다.
    • 데이터 로드 오류 시: 새로 로드된 데이터가 삭제되고, 인덱스는 빈 상태로 다시 활성화됩니다.
    • 인덱스 활성화 오류 시: 영향을 받은 인덱스는 비활성 상태로 남습니다. 데이터와 다른 인덱스는 영향을 받지 않습니다. 인덱스 빌드 오류는 경고로 보고됩니다.
  • 동시 업데이트 - REFRESH MATERIALIZED VIEW CONCURRENTLY

    • 독점 잠금이 필요 없음 - 새로 고침 중에도 MV에 대한 동시 쿼리가 허용됩니다.
    • 두 개의 정렬된 커서(현재 MV 데이터용, MV 쿼리 결과용)를 사용하는 병합 알고리즘을 사용합니다.
    • 새 행을 삽입하고, 변경된 행을 업데이트하고, 제거된 행을 삭제합니다 - 모두 트랜잭션 제어 하에 수행됩니다.
    • MV에 고유 인덱스가 필요합니다.
    • 동시 액세스가 필요하거나 마지막 새로 고침 이후 변경된 행이 적은 경우 선호됩니다.
    • 참고: MV 쿼리에 ORDER BY가 포함된 경우 동시 새로 고침 후 행 순서가 유지되지 않을 수 있습니다.
  • 모든 데이터 삭제 - REFRESH MATERIALIZED VIEW DROP DATA

    • 모든 MV 데이터와 인덱스 콘텐츠를 삭제합니다. 디스크 공간을 확보하는 데 유용합니다. 독점 잠금이 필요합니다.
  • 계단식 새로 고침 - 위의 모든 형식에 CASCADE를 추가합니다

    • 지정된 MV가 의존하는 모든 MV를 올바른 종속성 순서로 새로 고칩니다.
    • 각 MV는 한 번만 처리됩니다.
    • CONCURRENTLY CASCADE는 영향을 받는 모든 MV에 고유 인덱스가 있어야 합니다.
    • DROP DATA CASCADE는 영향을 받는 모든 MV의 데이터를 삭제합니다.
    • 영향을 받는 MV 이름과 새로 고침 순서는 커밋 전에 상태 벡터에서 경고로 보고됩니다.

백업 및 복원 (gbak)

  • 백업: MV 데이터는 일반 뷰와 마찬가지로 백업 파일에 저장되지 않습니다 - 특별한 처리가 필요 없습니다.
  • 복원: 모든 MV는 복원 프로세스가 끝날 때 올바른 종속성 순서로 자동으로 새로 고쳐집니다.
  • 새로운 gbak 스위치 -NO_MATVIEWS(-NO_M으로 축약 가능) - 복원 중 MV 새로 고침을 건너뜁니다.
  • 해당 Services API 옵션: isc_spb_res_no_matviews.
  • 중요: MV가 포함된 백업은 MV를 지원하지 않는 Firebird 버전에서는 복원할 수 없습니다. 이전 버전으로 마이그레이션할 때 백업 전에 ALTER MATERIALIZED VIEW ... TO NOT MATERIALIZED를 사용하십시오.

알려진 제한 사항 / 계획된 작업

  • 복제 지원 - 아직 구현되지 않음.
  • DDL 트리거 - 아직 구현되지 않음.
  • 액세스 권한 확인 - 아직 구현되지 않음.
  • 오류 메시지 - 검토 중.

백업 및 복구

  • 검증 백업 작업: 압축 전 순환 삭제가 추가되었습니다. 디스크 공간 계산 계수를 이제 구성할 수 있습니다.
  • nBackup 작업: 건너뛰기 로직이 수정되었습니다. 저널 이름 변경 알고리즘이 부분적인 이름 변경을 방지하기 위해 재시도가 있는 원자적 이름 변경으로 변경되었습니다.
  • BRZ 작업의 백업 디렉토리 및 파일 이름 템플릿을 이제 구성할 수 있습니다:
    • backup-directory - 데이터베이스 및 작업별로 대상 디렉토리를 지정할 수 있습니다.
    • backup-name - 파일 이름 템플릿을 정의할 수 있습니다(예: brr_{0,date,yyyyMMdd_HH-mm-ss}.fbk).
    • 입력 검증기가 추가되었습니다: 디렉토리 이름의 유효성을 확인하고 디렉토리가 없으면 생성합니다.

클라우드 백업 / 파일 전송

  • cloudbackup(filetransfer) 작업에서 Socket 프로토콜을 통한 파일 업로드 지원이 추가되었습니다.
  • 세그먼트별 선택적 파일 압축 옵션이 제거되었습니다 - 해당 작업의 파일 압축은 이제 항상 활성화됩니다.

추적

  • 추적 구성에 connection_id 추가 필드가 추가되었습니다.
  • 추적 보고서 처리: 프로세스 이름별 대소문자 구분 없는 그룹화 및 필터링이 추가되었습니다.

VSS Writer

  • 추가 진단 로깅이 추가되었습니다 - 데이터베이스 크기, 날짜 및 시간, gstat -h 출력을 포함한 데이터베이스 상태 정보가 이제 기록됩니다.

웹 인터페이스

  • 현지화 개선: 웹 콘솔 전반에 걸쳐 번역이 수정되고 현지화 알고리즘이 조정되었습니다.
  • 웹 대화 상자에 레이블 텍스트가 있는 시각적 구분 요소가 추가되었습니다 - 양식 요소의 논리적 그룹화가 가능합니다.
  • 클라이언트 측 리소스(웹 페이지, JS, CSS)의 캐시 버스팅 전략이 변경되어 업데이트 후 브라우저가 오래된 파일을 사용하지 않도록 방지합니다.

구성

  • 서버 권한 부여 필드 이름이 업데이트되었습니다(sysdba/owner, serviceAPI).
  • 서버 측(Java) 언어/로케일 설정을 위한 예약 구성 매개변수가 추가되었습니다.
  • 파일 전송 작업의 새로운 기본 설정에 맞게 기본 구성 파일이 수정되었습니다:
    • 포트가 8721에서 8722로 변경되었습니다.
    • 기본 사용자가 admin2/admin3에서 socketuser로 변경되었습니다.
    • 비밀번호 강도 설정이 모든 구성에서 강력한 비밀번호로 통일되었습니다.
  • KA 라이선스 파일을 등록할 때 호스트 필드에 HTTP/HTTPS 프로토콜 접두사를 지정할 필요가 없어졌습니다.

버그 수정

  • 데이터베이스의 모든 작업이 일시적으로 비활성화된 경우 발생하는 잘못된 심각 경고가 수정되었습니다.
  • 구성된 SYSDBA 사용자에게 추적 세션 목록을 볼 권한이 없는 시스템에서 활성 추적 세션 목록을 검색할 때 발생하는 오류가 수정되었습니다.
  • UTF-8로 인코딩된 경로를 올바르게 처리하지 못하는 타사 복호화 구성 요소의 버그가 수정되었습니다. 참고: mon/trace 서비스가 업데이트되고 다시 빌드될 때까지 파일 또는 데이터베이스 경로의 UTF-8 문자는 여전히 mon/trace 출력에서 오류를 일으킬 수 있습니다.
  • 빈 값이 있는 키를 잘못 유지하던 복제 구성 처리기의 문제가 수정되었습니다.
  • Firebird 4 이상에서 journal_archive_command 처리가 수정되었습니다(firebird/firebird PR #8381의 업스트림 수정과 일치).
  • dg2fbcc.jar 구성 생성기 플러그인 및 해당 호출 코드의 오류가 수정되었습니다.

설치 프로그램 및 빌드

  • Windows 설치 프로그램이 수정된 스크립트와 로직으로 업데이트되었습니다.
  • 클라이언트 라이브러리 바이너리가 업데이트되었습니다.
  • OpenSSL이 최신 버전으로 업데이트되었습니다.
  • 제품별 빌드 변형을 위한 조건부 코드 분기가 추가되었습니다.
  • 설치 프로그램 빌드 프로세스에 파일 서명이 추가되었습니다.

서버 측 현지화 인프라

서버 측(Java) 텍스트 메시지에 대한 현지화 메커니즘이 구현되었습니다. 로케일 파일이 준비되었지만 아직 번역으로 채워지지 않았으며, 이 메커니즘은 아직 프로덕션에서 활성화되지 않았습니다. 이 인프라는 향후 서버 메시지 현지화를 위한 것입니다.