Trang này được dịch bằng máy. Đọc bản gốc tiếng Anh. English

Thư viện IBSurgeon

HQbird 2024R2 Bản cập nhật 10 Chi tiết những gì mới

HQbird 2024R2 Bản cập nhật 10 có gì mới

Materialized Views (Tính năng mới trong 5.0)

HQbird hiện đã hỗ trợ đầy đủ Materialized Views - một loại đối tượng cơ sở dữ liệu mới kết hợp định nghĩa của một view với việc lưu trữ vật lý của một bảng thông thường.

Tổng quan

Materialized View (MV) được định nghĩa bằng một truy vấn SQL chuẩn, mà engine sử dụng để điền dữ liệu vào bảng MV bên dưới. Khác với các view thông thường, dữ liệu MV được lưu trữ trên đĩa và có thể được đánh chỉ mục. Các câu lệnh DML (INSERT, UPDATE, DELETE) không được phép thực hiện trực tiếp trên MV - dữ liệu phải được cập nhật bằng lệnh REFRESH mới.

Tạo và quản lý Materialized Views

  • CREATE [OR ALTER] MATERIALIZED VIEW - tạo hoặc thay thế một MV với tùy chọn tải dữ liệu ban đầu (WITH DATA / WITH NO DATA).
  • ALTER MATERIALIZED VIEW - sửa đổi định nghĩa MV; tự động xóa tất cả các chỉ mục hiện có.
  • RECREATE MATERIALIZED VIEW - xóa bất kỳ view hiện có nào (thông thường hoặc materialized) có cùng tên và tạo một MV mới.
  • DROP VIEW - được sử dụng để xóa một materialized view (không có lệnh DROP MATERIALIZED VIEW riêng biệt).
  • Có thể tạo bất kỳ loại chỉ mục nào trên MV. Ràng buộc (constraints) và trigger không được hỗ trợ.

Chuyển đổi giữa các loại View

  • ALTER MATERIALIZED VIEW ... TO NOT MATERIALIZED - chuyển đổi một MV thành view thông thường. Tất cả các chỉ mục và dữ liệu bị xóa.
  • ALTER VIEW ... TO MATERIALIZED - chuyển đổi một view thông thường thành materialized view. Các đối tượng phụ thuộc không bị ảnh hưởng.

Làm mới dữ liệu Materialized View

Câu lệnh REFRESH MATERIALIZED VIEW mới cập nhật nội dung MV. Đây là lệnh DDL - việc thực thi được hoãn lại cho đến khi giao dịch hiện tại được cam kết. Có bốn chế độ:

  • Tải lại toàn bộ (chế độ độc quyền) - REFRESH MATERIALIZED VIEW

    • Vô hiệu hóa các chỉ mục, xóa tất cả dữ liệu hiện có, tải lại từ truy vấn MV, kích hoạt lại các chỉ mục.
    • Tùy chọn nhanh nhất khi nhiều hàng đã thay đổi.
    • Yêu cầu khóa độc quyền trên bảng MV.
    • Khi lỗi tải dữ liệu: dữ liệu mới tải bị xóa, các chỉ mục được kích hoạt lại ở trạng thái trống.
    • Khi lỗi kích hoạt chỉ mục: chỉ mục bị ảnh hưởng được để ở trạng thái không hoạt động; dữ liệu và các chỉ mục khác không bị ảnh hưởng. Lỗi xây dựng chỉ mục được báo cáo dưới dạng cảnh báo.
  • Cập nhật đồng thời - REFRESH MATERIALIZED VIEW CONCURRENTLY

    • Không yêu cầu khóa độc quyền - các truy vấn đồng thời trên MV được phép trong quá trình làm mới.
    • Sử dụng thuật toán merge với hai con trỏ có thứ tự: một cho dữ liệu MV hiện tại, một cho kết quả truy vấn MV.
    • Chèn các hàng mới, cập nhật các hàng đã thay đổi, xóa các hàng đã bị loại bỏ - tất cả dưới sự kiểm soát giao dịch.
    • Yêu cầu một chỉ mục duy nhất trên MV.
    • Được ưu tiên khi cần truy cập đồng thời hoặc khi ít hàng thay đổi kể từ lần làm mới trước.
    • Lưu ý: nếu truy vấn MV chứa ORDER BY, thứ tự hàng có thể không được giữ nguyên sau khi làm mới đồng thời.
  • Xóa tất cả dữ liệu - REFRESH MATERIALIZED VIEW DROP DATA

    • Xóa tất cả dữ liệu MV và nội dung chỉ mục. Hữu ích để giải phóng dung lượng đĩa. Yêu cầu khóa độc quyền.
  • Làm mới theo tầng - thêm CASCADE vào bất kỳ dạng nào ở trên

    • Làm mới tất cả các MV mà MV đã cho phụ thuộc vào, theo đúng thứ tự phụ thuộc.
    • Mỗi MV chỉ được xử lý một lần.
    • CONCURRENTLY CASCADE yêu cầu tất cả các MV bị ảnh hưởng phải có chỉ mục duy nhất.
    • DROP DATA CASCADE xóa dữ liệu của tất cả các MV bị ảnh hưởng.
    • Tên các MV bị ảnh hưởng và thứ tự làm mới được báo cáo dưới dạng cảnh báo trong status-vector trước khi cam kết.

Sao lưu và phục hồi (gbak)

  • Sao lưu: Dữ liệu MV không được lưu trữ trong tệp sao lưu, giống như các view thông thường - không cần xử lý đặc biệt.
  • Phục hồi: Tất cả các MV được tự động làm mới khi kết thúc quá trình phục hồi, theo đúng thứ tự phụ thuộc.
  • Công tắc gbak mới -NO_MATVIEWS (có thể viết tắt thành -NO_M) - bỏ qua việc làm mới MV trong quá trình phục hồi.
  • Tùy chọn Services API tương ứng: isc_spb_res_no_matviews.
  • Quan trọng: một bản sao lưu chứa MV không thể được phục hồi trên phiên bản Firebird không hỗ trợ MV. Sử dụng ALTER MATERIALIZED VIEW ... TO NOT MATERIALIZED trước khi sao lưu khi di chuyển sang phiên bản cũ hơn.

Các hạn chế đã biết / Công việc dự kiến

  • Hỗ trợ sao chép (replication) - chưa được triển khai.
  • Trigger DDL - chưa được triển khai.
  • Kiểm tra quyền truy cập - chưa được triển khai.
  • Thông báo lỗi - đang được xem xét.

Sao lưu và phục hồi

  • Tác vụ sao lưu xác minh: thêm tính năng xóa xoay vòng trước khi nén; các hệ số tính toán dung lượng đĩa hiện có thể cấu hình được.
  • Tác vụ nBackup: sửa logic bỏ qua; thuật toán đổi tên nhật ký được thay đổi thành đổi tên nguyên tử (atomic rename) có thử lại để ngăn chặn việc đổi tên một phần.
  • Thư mục sao lưu và mẫu tên tệp cho các tác vụ BRZ hiện có thể cấu hình được:
    • backup-directory - cho phép chỉ định thư mục đích cho từng cơ sở dữ liệu và công việc.
    • backup-name - cho phép định nghĩa mẫu tên tệp, ví dụ: brr_{0,date,yyyyMMdd_HH-mm-ss}.fbk.
    • Bộ xác thực đầu vào được thêm vào: kiểm tra tính hợp lệ của tên thư mục và tạo thư mục nếu nó không tồn tại.

Sao lưu đám mây / Truyền tệp

  • Thêm hỗ trợ tải tệp lên qua giao thức Socket trong tác vụ cloudbackup (filetransfer).
  • Tùy chọn nén tệp theo từng phân đoạn có chọn lọc đã bị loại bỏ - nén tệp cho các tác vụ tương ứng hiện luôn được bật.

Trace

  • Thêm connection_id như một trường bổ sung trong cấu hình trace.
  • Xử lý báo cáo trace: thêm tính năng nhóm và lọc không phân biệt chữ hoa chữ thường theo tên tiến trình.

VSS Writer

  • Thêm ghi nhật ký chẩn đoán bổ sung - thông tin trạng thái cơ sở dữ liệu hiện được ghi lại bao gồm kích thước cơ sở dữ liệu, ngày và giờ, và đầu ra gstat -h.

Giao diện Web

  • Cải thiện bản địa hóa: sửa các bản dịch và điều chỉnh các thuật toán bản địa hóa trên toàn bộ bảng điều khiển web.
  • Thêm phần tử phân cách trực quan có nhãn văn bản vào các hộp thoại web - cho phép nhóm logic các phần tử biểu mẫu.
  • Thay đổi chiến lược cache-busting cho các tài nguyên phía máy khách (trang web, JS, CSS) để ngăn trình duyệt sử dụng các tệp lỗi thời sau khi cập nhật.

Cấu hình

  • Cập nhật tên trường ủy quyền máy chủ (sysdba/owner, serviceAPI).
  • Thêm tham số cấu hình dự trữ cho cài đặt ngôn ngữ/ngôn ngữ địa phương phía máy chủ (Java).
  • Sửa các tệp cấu hình mặc định để khớp với cài đặt mặc định mới cho các tác vụ truyền tệp:
    • Cổng thay đổi từ 8721 thành 8722.
    • Người dùng mặc định thay đổi từ admin2/ admin3 thành socketuser.
    • Cài đặt độ mạnh mật khẩu được thống nhất thành mật khẩu mạnh trên tất cả các cấu hình.
  • Khi đăng ký tệp giấy phép KA, không còn yêu cầu chỉ định tiền tố giao thức HTTP/HTTPS trong trường máy chủ.

Sửa lỗi

  • Sửa cảnh báo nghiêm trọng sai được kích hoạt khi một cơ sở dữ liệu có tất cả các tác vụ bị tạm thời vô hiệu hóa.
  • Sửa lỗi khi truy xuất danh sách các phiên trace đang hoạt động cho các hệ thống mà người dùng SYSDBA được cấu hình không có quyền liệt kê các phiên trace.
  • Sửa lỗi trong thành phần giải mã của bên thứ ba không xử lý đúng các đường dẫn được mã hóa UTF-8. Lưu ý: cho đến khi dịch vụ mon/trace được cập nhật và xây dựng lại, các ký tự UTF-8 trong đường dẫn tệp hoặc cơ sở dữ liệu vẫn có thể gây ra lỗi trong đầu ra mon/trace.
  • Sửa sự cố trong trình xử lý cấu hình sao chép (replication) giữ lại không đúng các khóa có giá trị trống.
  • Sửa xử lý journal_archive_command cho Firebird 4 trở lên (khớp với bản sửa lỗi ngược dòng trong firebird/firebird PR #8381).
  • Sửa lỗi trong plugin trình tạo cấu hình dg2fbcc.jar và mã gọi của nó.

Trình cài đặt và xây dựng

  • Trình cài đặt Windows được cập nhật với các tập lệnh và logic đã được sửa đổi.
  • Cập nhật các tệp thư viện máy khách.
  • OpenSSL được cập nhật lên phiên bản mới hơn.
  • Thêm các nhánh mã có điều kiện cho các biến thể xây dựng dành riêng cho sản phẩm.
  • Thêm ký tệp vào quy trình xây dựng trình cài đặt.

Cơ sở hạ tầng bản địa hóa phía máy chủ

Cơ chế bản địa hóa cho các thông báo văn bản phía máy chủ (Java) đã được triển khai. Các tệp ngôn ngữ địa phương đã được chuẩn bị nhưng chưa được điền các bản dịch, và cơ chế này chưa được kích hoạt trong môi trường sản xuất. Cơ sở hạ tầng này nhằm mục đích bản địa hóa các thông báo máy chủ trong tương lai.