Ah
Asumsikan bahwa Anda menggunakan SQL Server 2017 di Linux. Dalam skenario tertentu, SQL Server mungkin mengalami kehilangan data pada sistem yang menggunakan cache volatil. Kehilangan terjadi karena keadaan yang tidak terduga seperti kegagalan daya sebelum data singgahan ditulis ke media yang stabil. Untuk mencegah skenario tersebut, mekanisme Kosongkan flush diperkenalkan dalam pembaruan kumulatif 6 (CU6) untuk SQL Server 2017 di Linux. Jika subsistem penyimpanan Anda tidak dapat menjamin penulisan yang tahan lama di seluruh kehilangan daya, kami menyarankan agar Anda menerapkan CU6 untuk SQL Server 2017 di Linux. Pembaruan ini memungkinkan yang berikut ini:
-
Kosongkan paksa perilaku selama aktivitas penulisan database seperti pemeriksaan dan log transaksi menulis.
-
Pengaturan konfigurasiwritethrough = 1dan alternatewritethrough = 1Options secara default. Pengaturan default ini memperbolehkan SQL Server untuk memastikan bahwa penulisan dengan mudah dihapus untuk memblokir perangkat. Writethrough alternatif adalah opsi untuk mengoptimalkan permintaan Kosongkan ketahanan ke sistem file. Untuk informasi selengkapnya tentang dua pengaturan tersebut, lihat tabel berikut ini:
Nama |
Awalan |
Deskripsi |
writethrough |
,1 |
Nilai yang valid adalah 0 dan 1. 1 = menerjemahkan permintaan FILE_FLAG_WRITE_THROUGH ke O_DSYNC terbuka. 0 = mencegah penerjemahan permintaan FILE_FLAG_WRITE_THROUGH ke O_DSYNC terbuka. |
alternatewritethough |
,1 |
Nilai yang valid adalah 0 dan 1. 1 = mengaktifkan pembilasan yang dioptimalkan oleh ekstensi host untuk permintaan FILE_FLAG_WRITE_THROUGH. Menulis pada file Optimize untuk panggilan ke fdatasync untuk perangkat Blokir. 0 = menonaktifkan optimasi flush alternatif. File dibuka dengan menggunakan O_DSYNC dan sistem file yang mendasari melakukan penulisan yang diperlukan, kosongkan permintaan. Perhatikan pengaturan alternatewritethrough hanya berlaku ketika writethrough = 1. |
Informasi Selengkapnya
Untuk informasi selengkapnya, lihat praktik terbaik kinerja dan panduan konfigurasi untuk SQL Server 2017 di Linux untuk menangani beban kerja tulis frekuensi tinggi dan rekomendasi penempatan file database.
Instalasi SQL Serveryang berjalan pada sistem penyimpanan yang menulis jaminanO_DIRECT amanbisa mengaktifkan bendera pelacakan (TF) 3979 untuk menonaktifkan perilaku Kosongkan dan mengatur opsiALTERNATEWRITETHROUGH dan writethrough dalam MSSQL. conf ke nol. Ini mengembalikan SQL Server 2017 untukperilaku pra-CU6.
An Sistem penyimpanan dapat memastikan bahwa penulisan singgahan atau staging dianggap aman dan tahan lama dengan menjamin bahwa penulisan yang dikeluarkan untuk perangkat tersebut disimpan di media yang akan tetap ada di seluruh sistem mengalami crash, reset antarmuka dan kegagalan daya, dan media itu sendiri adalah perangkat keras yang berlebihan.
Berikut adalah detail selengkapnya tentang perilaku SQL Server untuk file I/O dengan perubahan ini:
-
File database (. MDF) dan log transaksi (. ldf) tidak menggunakan writethrough dan alternatewritethrough secara default di CU6 karena menggunakan perilaku dipaksa flush . TF 3979 menonaktifkan penggunaan perilaku Kosongkan untuk database dan file log transaksi dan akan menggunakan logika writethrough dan alternatewritethrough.
-
File lain yang dibuka menggunakan FILE_FLAG_WRITE_THROUGH di SQL Server, seperti snapshot database, Rekam Jepret internal untuk pemeriksaan konsistensi database (checkdb), file jejak Profiler, dan file pelacakan kejadian yang diperluas, akan menggunakan optimasi writethrough dan alternatewritethrough.
Pemecahan Masalah
Pembaruan ini disertakan dalam pembaruan kumulatif berikut ini untuk SQL Server:
Setiap pembaruan kumulatif baru untuk SQL Server berisi semua hotfix dan semua perbaikan keamanan yang disertakan dengan pembaruan kumulatif sebelumnya. Lihat pembaruan kumulatif terbaru untuk SQL Server:
Referensi
Pelajari tentang terminologiyang digunakan Microsoft untuk menjelaskan pembaruan perangkat lunak.