Aracılığıyla paylaş


Veritabanına kalıcı günlük arabelleği ekleyin

Şunlar için geçerlidir: SQL Server

Bu konu başlığında Transact-SQL kullanarak SQL Server 2016 (13.x) ve üzeri bir veritabanında kalıcı günlük arabelleği ekleme ve kaldırma işlemleri açıklanmaktadır.

Permissions

ALTER Veritabanında izin gerektirir.

Kalıcı bellek cihazını yapılandırma (Linux)

Linux'ta kalıcı bir bellek cihazı yapılandırmak için.

Kalıcı bellek cihazını yapılandırma (Windows)

Windows'ta kalıcı bir bellek cihazı yapılandırmak için.

Veritabanına kalıcı bir günlük arabelleği ekleyin

Yeni günlük dosyasının birimi veya bağlama noktası, DAX etkinleştirilmiş (NTFS) ile biçimlendirilmeli veya DAX seçeneğiyle (XFS/EXT4) bağlanmalıdır.

Var olan veritabanına kalıcı log tamponu eklemek için aşağıdaki söz dizimini kullanın. Söz dizimi, SQL Server sürümüne bağlı olarak farklılık gösterir.

SQL Server 2017 (14.x) ve sonraki sürümlerde kalıcı günlük arabelleği ekleme

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

Örneğin:

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

Kalıcı log dosyası tamponunun adı otomatik olarak oluşturulur. Dosyanın boyutu her zaman 20 megabayttır.

SQL Server 2016'da (13.x) kalıcı log arabelleğinin eklenmesi

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

Örneğin:

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

DAX birimindeki günlük arabellek dosyası, ALTER DATABASE ADD LOG FILE komutu ile belirtilen boyuttan bağımsız olarak 20 megabayt olarak ayarlanacaktır.

Veritabanından kalıcı log tamponunu kaldırma

Kalıcı bir günlük arabelleğinin güvenli bir şekilde kaldırılması için, veritabanının kalıcı günlük arabelleğinin boşaltılması için tek kullanıcı moduna yerleştirilmesi gerekir.

Kalıcı bir günlük arabelleğini kaldırdığınızda, disk üzerindeki günlük arabellek dosyası silinir.

Söz dizimi, SQL Server sürümüne bağlı olarak farklılık gösterir.

SQL Server 2017 (14.x) ve sonraki sürümlerde kalıcı günlük arabelleği kaldırma

ALTER DATABASE [DB] SET PERSISTENT_LOG_BUFFER = OFF;

Örneğin:

ALTER DATABASE WideWorldImporters SET PERSISTENT_LOG_BUFFER = OFF;

SQL Server 2016'da (13.x) kalıcı günlük arabelleği kaldırma

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

Örneğin:

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

Sınırlamalar

Saydam Veri Şifrelemesi (TDE), kalıcı günlük arabelleği ile uyumlu değildir.

Kullanılabilirlik Grupları bu özelliği, günlük okuyucu aracısının birincil kopyada standart günlük yazma semantiği gereksinimi nedeniyle yalnızca ikincil çoğaltmalarda kullanabilir. Ancak, tüm düğümlerde (ideal olarak DAX birimlerinde veya bağlamalarında) küçük bir günlük dosyası oluşturulmalıdır. Yük devretme durumunda, yük devretmenin başarılı olabilmesi için kalıcı günlük arabelleği yolunun mevcut olması gerekir.

Dikkat

Kullanılabilirlik Grubu yük devretme olayı veya veritabanı başlatma sırasında kalıcı günlük arabelleği yolu veya dosyası yoksa, veritabanı sorun çözülene kadar bir RECOVERY PENDING durumuna girer.

Diğer PMEM özellikleriyle birlikte çalışabilirlik

Başlangıç izleme bayrağı 809 ile birlikte hem kalıcı günlük arabelleği hem de Karma Arabellek Havuzu etkinleştirildiğinde, Karma Arabellek Havuzu Doğrudan Yazma modu olarak bilinen modda çalışır.

Yedekleme ve geri yükleme işlemleri

Normal kurtarma şartları uygulanır. Kalıcı günlük arabelleği bir DAX birimine veya bağlamasına geri yüklenirse çalışmaya devam eder. Günlük DAX olmayan bir disk birimine geri yüklendiğinde, ALTER DATABASE REMOVE FILE komutu kullanılarak güvenle kaldırılabilir.

Sonraki Adımlar