Bagikan melalui


Menambahkan buffer log persisten ke database

Berlaku untuk:SQL Server

Topik ini menjelaskan cara menambahkan dan menghapus buffer log persisten ke database di SQL Server 2016 (13.x) ke atas menggunakan Transact-SQL.

Izin-Izin

Memerlukan izin ALTER pada database.

Mengonfigurasi perangkat memori persisten (Linux)

Untuk mengonfigurasi perangkat memori persisten di Linux.

Mengonfigurasi perangkat memori persisten (Windows)

Untuk mengonfigurasi perangkat memori persisten di Windows.

Menambahkan buffer log persisten ke database

Volume atau titik pemasangan untuk file log baru harus diformat dengan DAX yang diaktifkan (NTFS) atau dipasang dengan opsi DAX (XFS/EXT4).

Gunakan sintaks berikut untuk menambahkan buffer log persisten ke database yang sudah ada. Sintaksnya berbeda tergantung pada versi SQL Server.

Menambahkan buffer log persisten di SQL Server 2017 (14.x) dan yang lebih baru

ALTER DATABASE [DB] SET PERSISTENT_LOG_BUFFER = ON (DIRECTORY_NAME = 'path-to-directory-on-a-DAX-volume');

Contohnya:

ALTER DATABASE WideWorldImporters SET PERSISTENT_LOG_BUFFER = ON (DIRECTORY_NAME = 'F:\SQLTLog');

Nama file log buffer persisten dihasilkan secara otomatis. Ukuran file selalu 20 megabyte.

Menambahkan buffer log persisten di SQL Server 2016 (13.x)

ALTER DATABASE [DB] ADD LOG FILE
(
NAME = [DAXlogLogicalName],
FILENAME = 'path-to-log-file-on-a-DAX-volume',
SIZE = 20 MB
);

Contohnya:

ALTER DATABASE WideWorldImporters ADD LOG FILE
(
NAME = wwi_log2, 
FILENAME = 'F:\SQLTLog\wwi_log2.pldf',
SIZE = 20 MB
);

File buffer log pada volume DAX akan berukuran 20 megabyte terlepas dari ukuran yang ditentukan dengan perintah ALTER DATABASE ADD LOG FILE.

Menghapus log buffer persisten dari sebuah database

Untuk menghapus buffer log persisten dengan aman, database harus ditempatkan dalam mode pengguna tunggal untuk mengosongkan buffer log persisten.

Saat Anda menghapus buffer log persisten, file buffer log pada disk akan dihapus.

Sintaksnya berbeda tergantung pada versi SQL Server.

Menghapus buffer log persisten di SQL Server 2017 (14.x) dan yang lebih baru

ALTER DATABASE [DB] SET PERSISTENT_LOG_BUFFER = OFF;

Contohnya:

ALTER DATABASE WideWorldImporters SET PERSISTENT_LOG_BUFFER = OFF;

Menghapus buffer log persisten di SQL Server 2016 (13.x)

ALTER DATABASE [DB] SET SINGLE_USER;
ALTER DATABASE [DB] REMOVE FILE [DAXlogLogicalName];
ALTER DATABASE [DB] SET MULTI_USER;

Contohnya:

ALTER DATABASE WideWorldImporters SET SINGLE_USER;
ALTER DATABASE WideWorldImporters REMOVE FILE wwi_log2;
ALTER DATABASE WideWorldImporters SET MULTI_USER;

Batasan

Transparent Data Encryption (TDE) tidak kompatibel dengan buffer log persisten.

Availability Groups hanya dapat menggunakan fitur ini pada replika sekunder karena persyaratan agen pembaca log untuk semantik penulisan log standar pada replika primer. Namun, sebuah file log kecil harus dibuat pada semua node (idealnya pada volume DAX atau titik pemasangan). Jika terjadi failover, jalur buffer log persisten harus ada, agar failover berhasil.

Perhatian

Jika jalur atau file buffer log persisten tidak ada selama peristiwa failover Grup Ketersediaan, atau startup database, database memasuki status RECOVERY PENDING hingga masalah diselesaikan.

Interoperabilitas dengan fitur PMEM lainnya

Ketika buffer log persisten dan Kumpulan Buffer Hibrid diaktifkan, bersama dengan bendera pelacakan startup 809, Kumpulan Buffer Hibrid akan beroperasi dalam mode yang dikenal sebagai Tulis Langsung.

Operasi pencadangan dan pemulihan

Kondisi pemulihan normal berlaku. Jika penyangga log persisten dipulihkan ke volume atau pengait DAX, penyangga log terus berfungsi. Jika log dipulihkan ke volume disk non-DAX, log dapat dihapus dengan aman menggunakan perintah ALTER DATABASE REMOVE FILE.

Langkah berikutnya