Mengonfigurasi Extended Events untuk grup ketersediaan

Berlaku untuk:SQL Server

SQL Server mendefinisikan Extended Events yang khusus untuk grup ketersediaan. Pantau Extended Events ini dalam sesi untuk membantu analisis akar penyebab saat Anda melakukan pemecahan masalah pada grup ketersediaan. Gunakan kueri berikut untuk melihat Extended Events untuk grup ketersediaan:

SELECT *
FROM sys.dm_xe_objects
WHERE name LIKE '%hadr%';

Sesi alwayson_health

Sesi alwayson_health Extended Events dibuat secara otomatis saat Anda membuat grup ketersediaan, dan sesi ini menangkap sebagian peristiwa yang terkait dengan grup ketersediaan. Sesi ini telah dikonfigurasi sebelumnya sebagai alat yang berguna dan nyaman untuk membantu Anda memulai dengan cepat saat memecahkan masalah grup ketersediaan. Wizard Pembuatan Grup Ketersediaan secara otomatis memulai sesi pada setiap replika ketersediaan peserta yang dikonfigurasi di wizard ini.

Penting

Jika Anda tidak membuat grup ketersediaan dengan menggunakan Wizard Grup Ketersediaan Baru, sesi alwayson_health mungkin tidak dimulai secara otomatis. Jika sesi tidak dimulai, data event tidak dapat diambil saat terjadi masalah tak terduga. Anda harus memulai sesi secara manual dan mengonfigurasi sesi untuk memulai secara otomatis dengan mengonfigurasi properti sesi.

Untuk melihat definisi alwayson_health sesi:

  1. Di Object Explorer, perluas Manajemen, Acara Ekstensi, lalu Sesi.

  2. Klik kanan Alwayson_health, arahkan ke Script Session sebagai, arahkan ke CREATE To, lalu pilih New Editor Kueri Window.

Kejadian yang Diperluas untuk debugging

Selain Extended Events yang dibahas oleh sesi Alwayson_health, SQL Server mendefinisikan serangkaian event debug yang luas untuk availability groups. Untuk menggunakan Extended Events tambahan ini dalam satu sesi, ikuti langkah-langkah berikut:

  1. Di Object Explorer, perluas Manajemen, Acara Ekstensi, lalu Sesi.

  2. Klik kanan Sesi dan pilih Sesi Baru. Atau, klik kanan Alwayson_health dan pilih Properti.

  3. Di panel Pilih halaman , pilih Peristiwa.

  4. Di pustaka peristiwa, di kolom Kategori, pilih alwayson dan hapus centang pada semua kategori lainnya.

  5. Di kolom Saluran, pilih Debug. Pustaka peristiwa sekarang menampilkan semua peristiwa yang terkait dengan grup ketersediaan yang belum dipilih.

  6. Sorot sebuah event di perpustakaan event, lalu pilih > tombol untuk memilihnya untuk sesi tersebut.

  7. Setelah selesai dengan sesi, pilih OK untuk menutupnya. Pastikan sesi dimulai agar dapat merekam kejadian yang Anda pilih.

availability_replica_state_change

Peristiwa ini terjadi ketika status replika ketersediaan berubah. Membuat grup ketersediaan atau bergabung dengan replika ketersediaan dapat memicu peristiwa ini. Ini berguna untuk mendiagnosis kegagalan failover otomatis dan juga dapat membantu melacak langkah-langkah failover.

Informasi peristiwa

Kolom Deskripsi
Nama availability_replica_state_change
Kategori selalu aktif
Saluran Operasional

Bidang acara

Nama type_name Deskripsi
availability_group_id guid ID dari Grup Ketersediaan.
availability_group_name unicode_string Nama Grup Ketersediaan.
availability_replica_id guid ID dari replika ketersediaan.
previous_state availability_replica_state Peran replika sebelum perubahan.

Nilai yang mungkin adalah:

Primary_Normal

Sekunder_Normal

Menyelesaikan_Failover_Tertunda

Menyelesaikan_Normal

Utama_Tertunda

Not_Available
current_state availability_replica_state Peran replika setelah perubahan.

Nilai yang mungkin adalah:

Primer_Normal

Sekunder_Normal

Menyelesaikan Failover yang Tertunda

Menyelesaikan_Normal

Utama_Tertunda

Not_Available

Definisi sesi dalam alwayson_health

CREATE EVENT SESSION [alwayson_health] ON SERVER
ADD EVENT availability_replica_state_change
ADD TARGET package0.event_file (
    SET filename = N'alwayson_health.xel',
    max_file_size = (5),
    max_rollover_files = (4),
    metadatafile = N'alwayson_health.xem'
)
WITH (
    MAX_MEMORY = 4096 KB,
    EVENT_RETENTION_MODE = ALLOW_SINGLE_EVENT_LOSS,
    MAX_DISPATCH_LATENCY = 30 SECONDS,
    MAX_EVENT_SIZE = 0 KB,
    MEMORY_PARTITION_MODE = NONE,
    TRACK_CAUSALITY = OFF,
    STARTUP_STATE = ON
)
GO

masa sewa grup ketersediaan telah berakhir

Kejadian ini terjadi ketika cluster dan availability group mengalami masalah konektivitas dan masa lease berakhir. Ini menunjukkan bahwa konektivitas antara grup ketersediaan dan klaster WSFC yang mendasarinya terputus. Jika masalah konektivitas terjadi pada replika utama, kejadian tersebut dapat menyebabkan failover otomatis atau membuat grup ketersediaan menjadi tidak aktif.

Informasi peristiwa

Kolom Deskripsi
Nama availability_group_lease_expired
Kategori selalu aktif
Saluran Operasional

Bidang acara

Nama type_name Deskripsi
availability_group_id guid ID grup ketersediaan.
availability_group_name unicode_string Nama grup ketersediaan.

Definisi sesi dalam alwayson_health

CREATE EVENT SESSION [alwayson_health] ON SERVER
ADD EVENT availability_group_lease_expired
ADD TARGET package0.event_file (
    SET filename = N'alwayson_health.xel',
    max_file_size = (5),
    max_rollover_files = (4),
    metadatafile = N'alwayson_health.xem'
)
WITH (
    MAX_MEMORY = 4096 KB,
    EVENT_RETENTION_MODE = ALLOW_SINGLE_EVENT_LOSS,
    MAX_DISPATCH_LATENCY = 30 SECONDS,
    MAX_EVENT_SIZE = 0 KB,
    MEMORY_PARTITION_MODE = NONE,
    TRACK_CAUSALITY = OFF,
    STARTUP_STATE = ON
)
GO

validasi failover otomatis replika ketersediaan

Kejadian ini terjadi ketika failover otomatis memverifikasi kesiapan replika ketersediaan sebagai replika utama. Ini menunjukkan apakah replika ketersediaan target siap untuk menjadi replika utama yang baru. Misalnya, validasi failover mengembalikan false ketika tidak semua database disinkronkan atau digabungkan. Hal ini menciptakan titik kegagalan saat failover. Administrator basis data sangat tertarik pada informasi ini untuk failover otomatis karena failover otomatis adalah operasi tanpa pengawasan. Administrator database dapat meninjau peristiwa untuk melihat mengapa failover otomatis gagal.

Informasi peristiwa

Nama Deskripsi
Nama availability_replica_automatic_failover_validation
Kategori selalu aktif
Saluran Analitik

Bidang acara

Nama type_name Deskripsi
availability_group_id guid ID grup ketersediaan.
availability_group_name unicode_string Nama grup ketersediaan.
availability_replica_id guid ID dari replika ketersediaan.
forced_quorum validation_result_type Jika nilainya TRUE, failover otomatis dinyatakan tidak valid pada replika ketersediaan ini.

BENAR

FALSE
joined_and_synchronized validation_result_type Jika nilainya FALSE, failover otomatis dinyatakan tidak valid pada replika ketersediaan ini.

BENAR

SALAH
previous_primary_or_automatic_failover_target validation_result_type Jika nilainya adalah FALSE, failover otomatis menjadi tidak valid pada replika ketersediaan ini.

BENAR

FALSE

Definisi sesi dalam alwayson_health

CREATE EVENT SESSION [alwayson_health] ON SERVER
ADD EVENT availability_replica_automatic_failover_validation (
    WHERE (
        [forced_quorum] = (TRUE)
        OR [joined_and_synchronized] = (FALSE)
        OR [previous_primary_or_automatic_failover_target] = (TRUE)
    )
)
ADD TARGET package0.event_file (
    SET filename = N'alwayson_health.xel',
    max_file_size = (5),
    max_rollover_files = (4),
    metadatafile = N'alwayson_health.xem'
)
WITH (
    MAX_MEMORY = 4096 KB,
    EVENT_RETENTION_MODE = ALLOW_SINGLE_EVENT_LOSS,
    MAX_DISPATCH_LATENCY = 30 SECONDS,
    MAX_EVENT_SIZE = 0 KB,
    MEMORY_PARTITION_MODE = NONE,
    TRACK_CAUSALITY = OFF,
    STARTUP_STATE = ON
)
GO

error_reported (nomor kesalahan ganda): Untuk masalah transportasi atau koneksi

Setiap kejadian yang difilter menunjukkan bahwa telah terjadi masalah konektivitas pada titik akhir transportasi atau pencerminan basis data yang menjadi dependensi grup ketersediaan.

Kolom Deskripsi
Nama error_reported

angka untuk disaring: 35201, 35204, 28036, 9693, 9692, 28034, 28080, 35206, 35217, 28091, 35207, 9642, 9666, 9691, 35202, 33309
Kategori kesalahan
Saluran Admin

Kode kesalahan untuk memfilter

Nomor Kesalahan Deskripsi
9642 Terjadi kesalahan dalam titik akhir koneksi transportasi Service Broker/Database Mirroring, Kesalahan: %i, Status: %i. (Peran titik akhir lokal: %S_MSG, alamat titik akhir jarak jauh: '%.*hs')
9666 Titik akhir %S_MSG dalam status dinonaktifkan atau dihentikan.
9691 Endpoint %S_MSG telah berhenti menerima koneksi.
9692 Titik akhir %S_MSG tidak dapat mendengarkan port %d karena sedang digunakan oleh proses lain.
9693 Titik akhir %S_MSG tidak dapat mendengarkan koneksi karena kesalahan berikut: '%.*ls'.
28034 Jabat tangan koneksi gagal. Login '%.*ls' tersebut tidak memiliki izin CONNECT pada titik akhir. Status %d.
28036 Jabat tangan koneksi gagal. Sertifikat yang digunakan oleh titik akhir ini tidak ditemukan: %S_MSG. Gunakan DBCC CHECKDB dalam database master untuk memverifikasi integritas metadata titik akhir. Status %d.
28080 Jabat tangan koneksi gagal. Endpoint %S_MSG tidak dikonfigurasi. Status %d.
28091 Memulai endpoint untuk %S_MSG tanpa autentikasi tidak didukung.
33309 Tidak dapat memulai titik akhir kluster karena konfigurasi titik akhir %S_MSG default belum dimuat.
35201 Waktu koneksi habis saat mencoba menjalin koneksi ke replika ketersediaan '%ls' dengan ID [%ls]. Entah ada masalah jaringan atau firewall, atau alamat endpoint yang diberikan untuk replika bukan endpoint pencerminan database dari instans server host.
35202 Koneksi untuk grup ketersediaan '%ls' dari replika ketersediaan '%ls' dengan id [%ls] ke '%ls' dengan id [%ls] telah berhasil dibuat. Ini hanya pesan informasi. Tidak diperlukan tindakan pengguna.
35204 Koneksi antara instans server '%ls' dengan id [%ls] dan '%ls' dengan id [%ls] telah dinonaktifkan karena titik akhir pencerminan database dinonaktifkan atau dihentikan. Mulai ulang titik akhir dengan menggunakan ALTER ENDPOINT pernyataan Transact-SQL dengan STATE = STARTED.
35206 Batas waktu koneksi telah terjadi pada koneksi yang dibuat sebelumnya ke replika ketersediaan '%ls' dengan id [%ls]. Entah terdapat masalah jaringan atau firewall, atau replika ketersediaan telah beralih ke peran resolving.
35207 Upaya koneksi pada id grup ketersediaan '%ls' dari id replika '%ls' ke id replika '%ls' gagal karena kesalahan %d, tingkat keparahan %d, status %d.

Catatan: Error ini mungkin tidak terlalu berguna bagi DBA. Periksa dan hapus nanti kalau begitu.
35217 Kumpulan utas untuk Grup Ketersediaan AlwaysOn tidak dapat memulai utas pekerja baru karena tidak ada cukup utas pekerja yang tersedia. Ini dapat menurunkan performa Grup Ketersediaan AlwaysOn. Gunakan opsi konfigurasi "utas pekerja maksimum" untuk meningkatkan jumlah utas yang diperbolehkan.

Berlaku untuk: SQL Server 2019 CU 15 dan versi yang lebih baru.

Definisi sesi dalam alwayson_health

CREATE EVENT SESSION [alwayson_health] ON SERVER
ADD EVENT sqlserver.error_reported
    (
    WHERE (
        --Connectivity Error Messages
        [error_number] = (35201)
        OR [error_number] = (35202)
        OR [error_number] = (35204)
        OR [error_number] = (35206)
        OR [error_number] = (35207)
        OR [error_number] = (35217)
        OR [error_number] = (9642)
        --OR [error_number]=(9666)
        OR [error_number] = (9691)
        OR [error_number] = (9692)
        OR [error_number] = (9693)
        OR [error_number] = (28034)
        OR [error_number] = (28036)
        OR [error_number] = (28080)
        OR [error_number] = (28091)
        OR [error_number] = (33309)
    )
)
ADD TARGET package0.event_file (
    SET filename = N'alwayson_health.xel',
        max_file_size = (5),
        max_rollover_files = (4),
        metadatafile = N'alwayson_health.xem'
)
WITH
(
    MAX_MEMORY = 4096 KB,
    EVENT_RETENTION_MODE = ALLOW_SINGLE_EVENT_LOSS,
    MAX_DISPATCH_LATENCY = 30 SECONDS,
    MAX_EVENT_SIZE = 0 KB,
    MEMORY_PARTITION_MODE = NONE,
    TRACK_CAUSALITY = OFF,
    STARTUP_STATE = ON
);
GO

menangguhkan/melanjutkan pergerakan data

Peristiwa ini terjadi ketika pergerakan replika basis data ditangguhkan atau dilanjutkan.

Informasi peristiwa

Kolom Deskripsi
Nama data_pemindahan_tunda_lanjutkan
Kategori Selalu aktif
Saluran Operasional

Bidang acara

Nama type_name Deskripsi
availability_group_id guid ID grup ketersediaan.
availability_group_name unicode_string Nama grup ketersediaan, jika tersedia.
availability_replica_id guid ID dari replika ketersediaan.
database_replica_id guid ID dari database ketersediaan.
database_replica_name unicode_string Nama database ketersediaan.
database_id uint32 ID basis data ketersediaan.
suspend_status suspend_status_type Nilai status penangguhan.

SUSPEND_NULL

DILANJUTKAN

DITANGGUHKAN

SUSPENDED_INVALID
suspend_source suspend_source_type Asal tindakan penangguhan atau melanjutkan.
suspend_reason unicode_string Alasan penangguhan yang dicatat di pengelola replika basis data.

Definisi sesi dalam alwayson_health

CREATE EVENT SESSION [alwayson_health] ON SERVER
ADD EVENT data_movement_suspend_resume (
    WHERE (
        [suspend_status] = (SUSPENDED)
        OR [suspend_status] = (SUSPENDED_INVALID)
        OR [suspend_status] = (SUSPEND_NULL)
    )
)
ADD TARGET package0.event_file (
    SET filename = N'alwayson_health.xel',
    max_file_size = (5),
    max_rollover_files = (4),
    metadatafile = N'alwayson_health.xem'
)
WITH (
    MAX_MEMORY = 4096 KB,
    EVENT_RETENTION_MODE = ALLOW_SINGLE_EVENT_LOSS,
    MAX_DISPATCH_LATENCY = 30 SECONDS,
    MAX_EVENT_SIZE = 0 KB,
    MEMORY_PARTITION_MODE = NONE,
    TRACK_CAUSALITY = OFF,
    STARTUP_STATE = ON
)
GO

alwayson_ddl_executed

Peristiwa ini terjadi ketika pernyataan availability group data definition language (DDL) mulai dijalankan, termasuk CREATE, ALTER, atau DROP. Peristiwa ini terutama menunjukkan adanya masalah dengan tindakan pengguna pada replika ketersediaan, atau menandai titik awal dari tindakan operasional. Tindakan ini diikuti oleh masalah saat runtime, seperti failover manual, failover paksa, pemindahan data yang ditangguhkan, atau pemindahan data yang dilanjutkan kembali.

Informasi peristiwa

Kolom Deskripsi
Nama alwayson_ddl_execution
Kategori selalu aktif
Saluran Analitik

Bidang acara

Nama type_name Deskripsi
availability_group_id guid ID grup ketersediaan.
availability_group_name unicode_string Nama grup ketersediaan.
ddl_action alwayson_ddl_action Menunjukkan jenis aksi DDL: CREATE, ALTER, atau DROP.
ddl_phase ddl_opcode Menunjukkan fase operasi DDL: BEGIN, , COMMITatau ROLLBACK.
Statement unicode_string Teks pernyataan yang dijalankan.

Definisi sesi dalam alwayson_health

CREATE EVENT SESSION [alwayson_health] ON SERVER
ADD EVENT alwayson_ddl_executed
ADD TARGET package0.event_file (
    SET filename = N'alwayson_health.xel',
    max_file_size = (5),
    max_rollover_files = (4),
    metadatafile = N'alwayson_health.xem'
)
WITH (
    MAX_MEMORY = 4096 KB,
    EVENT_RETENTION_MODE = ALLOW_SINGLE_EVENT_LOSS,
    MAX_DISPATCH_LATENCY = 30 SECONDS,
    MAX_EVENT_SIZE = 0 KB,
    MEMORY_PARTITION_MODE = NONE,
    TRACK_CAUSALITY = OFF,
    STARTUP_STATE = ON
)
GO

status_pengelola_replika_ketersediaan

Peristiwa ini terjadi ketika status manajer replika ketersediaan berubah. Ini menunjukkan detak jantung manajer replika ketersediaan. Ketika availability replica manager tidak berada dalam kondisi sehat, semua replika ketersediaan dalam instance SQL Server menjadi tidak tersedia.

Informasi peristiwa

Kolom Deskripsi
Nama availability_replica_manager_state_change
Kategori selalu aktif
Saluran Operasional

Bidang acara

Nama type_name Deskripsi
current_state manager_state Status manajer replika ketersediaan saat ini.

Online

Offline

Menunggu Komunikasi Klaster

Definisi sesi dalam alwayson_health

CREATE EVENT SESSION [alwayson_health] ON SERVER
ADD EVENT availability_replica_manager_state (
    WHERE ([current_state] = (OFFLINE))
)
ADD TARGET package0.event_file (
    SET filename = N'alwayson_health.xel',
    max_file_size = (5),
    max_rollover_files = (4),
    metadatafile = N'alwayson_health.xem'
)
WITH (
    MAX_MEMORY = 4096 KB,
    EVENT_RETENTION_MODE = ALLOW_SINGLE_EVENT_LOSS,
    MAX_DISPATCH_LATENCY = 30 SECONDS,
    MAX_EVENT_SIZE = 0 KB,
    MEMORY_PARTITION_MODE = NONE,
    TRACK_CAUSALITY = OFF,
    STARTUP_STATE = ON
)
GO

error_reported (1480): Perubahan peran replika basis data

Kejadian error_reported yang telah difilter ini muncul secara asinkron setelah perubahan peran replika ketersediaan. Ini menunjukkan database ketersediaan mana yang gagal mengubah peran yang diharapkan selama proses failover.

Informasi peristiwa

Kolom Deskripsi
Nama error_reported

Error Number 1480: The REPLICATION_TYPE_MSG database "DATABASE_NAME" is changing roles from "OLD_ROLE" to "NEW_ROLE" due to REASON_MSG
Kategori kesalahan
Saluran Admin

Definisi sesi dalam alwayson_health

CREATE EVENT SESSION [alwayson_health] ON SERVER
ADD EVENT sqlserver.error_reported (
    WHERE (
        --database replica role change message
        OR [error_number] = (1480)
        --database replica runtime error messages
        OR [error_number] = (823)
        OR [error_number] = (824)
        OR [error_number] = (829)
    )
)
ADD TARGET package0.event_file (
    SET filename = N'alwayson_health.xel',
    max_file_size = (5),
    max_rollover_files = (4),
    metadatafile = N'alwayson_health.xem'
)
WITH (
    MAX_MEMORY = 4096 KB,
    EVENT_RETENTION_MODE = ALLOW_SINGLE_EVENT_LOSS,
    MAX_DISPATCH_LATENCY = 30 SECONDS,
    MAX_EVENT_SIZE = 0 KB,
    MEMORY_PARTITION_MODE = NONE,
    TRACK_CAUSALITY = OFF,
    STARTUP_STATE = ON
)
GO

sqlserver.sp_server_diagnostics_component_result

Menangkap data diagnostik dan informasi kesehatan tentang SQL Server untuk mendeteksi potensi kegagalan. Prosedur berjalan dalam mode berulang dan mengirim hasil secara berkala. Sesi extended event ini tersedia mulai SQL Server 2019 CU15 (15.0.4198.2).

Informasi peristiwa

Nama Deskripsi
Nama sp_server_diagnostics_component_result
Kategori Server
Saluran Debug

Bidang acara

Nama type_name Deskripsi
component uint8 Nama komponen.
state uint8 Menunjukkan status kesehatan komponen.
data xml Bidang XML yang berisi informasi tambahan tentang komponen.

Definisi sesi dalam alwayson_health

CREATE EVENT SESSION [alwayson_health] ON SERVER
ADD EVENT sqlserver.sp_server_diagnostics_component_result (
    SET collect_data = (1)
    WHERE ([state] = (3))
)
ADD TARGET package0.event_file (
    SET filename = N'alwayson_health.xel',
        max_file_size = (5),
        max_rollover_files = (4),
        metadatafile = N'alwayson_health.xem'
)
WITH
(
    MAX_MEMORY = 4096 KB,
    EVENT_RETENTION_MODE = ALLOW_SINGLE_EVENT_LOSS,
    MAX_DISPATCH_LATENCY = 30 SECONDS,
    MAX_EVENT_SIZE = 0 KB,
    MEMORY_PARTITION_MODE = NONE,
    TRACK_CAUSALITY = OFF,
    STARTUP_STATE = ON
);
GO

ucs.ucs_connection_setup

Membuang log konektivitas atau jaringan antara replika utama dan sekunder. Sesi Extended Events ini tersedia mulai SQL Server 2019 CU15 (15.0.4198.2).

Informasi peristiwa

Nama Deskripsi
Nama ucs_connection_setup
Kategori Transportasi
Saluran Debug

Bidang acara

Nama type_name Deskripsi
setup_event int32 Peristiwa penyiapan koneksi
obj_address pointer Alamat endpoint koneksi
endpoint_type int32 Jenis titik akhir
stream_status int32 Status aliran koneksi
error_number uint32 Kode kesalahan koneksi
connection_id guid ID Koneksi
error_message unicode_string Pesan kesalahan koneksi
address unicode_string Alamat target koneksi
circuit_id unicode_string ID sirkuit koneksi

Definisi sesi dalam alwayson_health

CREATE EVENT SESSION [alwayson_health] ON SERVER
ADD EVENT ucs.ucs_connection_setup
ADD TARGET package0.event_file (
    SET filename = N'alwayson_health.xel',
        max_file_size = (5),
        max_rollover_files = (4),
        metadatafile = N'alwayson_health.xem'
)
WITH
(
    MAX_MEMORY = 4096 KB,
    EVENT_RETENTION_MODE = ALLOW_SINGLE_EVENT_LOSS,
    MAX_DISPATCH_LATENCY = 30 SECONDS,
    MAX_EVENT_SIZE = 0 KB,
    MEMORY_PARTITION_MODE = NONE,
    TRACK_CAUSALITY = OFF,
    STARTUP_STATE = ON
);
GO

sqlserver.hadr_trace_message

Mengalihkan output dari beberapa perintah DBCC dan informasi log HADR ke sesi Extended Events (mirip dengan trace flag 3605). Sesi Extended Events ini tersedia mulai SQL Server 2019 CU15 (15.0.4198.2).

Informasi peristiwa

Nama Deskripsi
Nama hadr_trace_message
Kategori Selalu aktif
Saluran Debug

Bidang acara

Nama type_name Deskripsi
hadr_message unicode_string Mengalihkan output dari beberapa perintah DBCC dan informasi log HADR ke sesi extended event (mirip dengan trace flag 3605).

Definisi sesi dalam alwayson_health

CREATE EVENT SESSION [alwayson_health] ON SERVER
ADD EVENT sqlserver.hadr_trace_message
ADD TARGET package0.event_file (
    SET filename = N'alwayson_health.xel',
        max_file_size = (5),
        max_rollover_files = (4),
        metadatafile = N'alwayson_health.xem'
)
WITH
(
    MAX_MEMORY = 4096 KB,
    EVENT_RETENTION_MODE = ALLOW_SINGLE_EVENT_LOSS,
    MAX_DISPATCH_LATENCY = 30 SECONDS,
    MAX_EVENT_SIZE = 0 KB,
    MEMORY_PARTITION_MODE = NONE,
    TRACK_CAUSALITY = OFF,
    STARTUP_STATE = ON
);
GO