Bagikan melalui


Memecahkan Masalah Konfigurasi Grup Ketersediaan AlwaysOn (SQL Server)

Topik ini menyediakan informasi untuk membantu Anda memecahkan masalah umum dengan mengonfigurasi instans server untuk Grup Ketersediaan AlwaysOn. Masalah konfigurasi umum termasuk Grup Ketersediaan AlwaysOn dinonaktifkan, akun salah dikonfigurasi, titik akhir pencerminan database tidak ada, titik akhir tidak dapat diakses (SQL Server Kesalahan 1418), akses jaringan tidak ada, dan perintah database gabungan gagal (SQL Server Kesalahan 35250).

Catatan

Pastikan Anda memenuhi prasyarat Grup Ketersediaan AlwaysOn. Untuk informasi selengkapnya, lihat Prasyarat, Pembatasan, dan Rekomendasi untuk Grup Ketersediaan AlwaysOn (SQL Server).

Dalam Topik ini:

Bagian Deskripsi
Grup Ketersediaan AlwaysOn Tidak Diaktifkan Jika instans SQL Server tidak diaktifkan untuk Grup Ketersediaan AlwaysOn, instans tidak mendukung pembuatan grup ketersediaan dan tidak dapat menghosting replika ketersediaan apa pun.
Akun Membahas persyaratan untuk mengonfigurasi akun dengan benar di mana SQL Server berjalan.
Titik Akhir Membahas cara mendiagnosis masalah dengan titik akhir pencerminan database dari instans server.
Nama sistem Meringkas alternatif untuk menentukan nama sistem instans server di URL titik akhir.
Akses jaringan Mendokumentasikan persyaratan bahwa setiap instans server yang menghosting replika ketersediaan harus dapat mengakses port masing-masing instans server lainnya melalui TCP.
Akses Titik Akhir (kesalahan SQL Server 1418) Berisi informasi tentang pesan kesalahan SQL Server ini.
Database Gabungan Gagal (kesalahan SQL Server 35250) Membahas kemungkinan penyebab dan resolusi kegagalan untuk menggabungkan database sekunder ke grup ketersediaan karena koneksi ke replika utama tidak aktif.
Perutean Baca-Saja Tidak Berfungsi Dengan Benar
Tugas Terkait Berisi daftar topik berorientasi tugas di SQL Server 2014 Books Online yang sangat relevan dengan pemecahan masalah konfigurasi grup ketersediaan.
Isi Terkait Berisi daftar sumber daya relevan yang berada di luar SQL Server Books Online.

Grup Ketersediaan AlwaysOn Tidak Diaktifkan

Fitur Grup Ketersediaan AlwaysOn harus diaktifkan pada setiap instans SQL Server 2014. Untuk informasi selengkapnya, lihat Mengaktifkan dan Menonaktifkan Grup Ketersediaan AlwaysOn (SQL Server).

Akun

Akun tempat SQL Server berjalan harus dikonfigurasi dengan benar.

  1. Apakah akun memiliki izin yang benar?

    1. Jika mitra berjalan sebagai akun pengguna domain yang sama, login pengguna yang benar ada secara otomatis di kedua database master . Ini menyederhanakan konfigurasi keamanan database dan direkomendasikan.

    2. Jika dua instans server berjalan sebagai akun yang berbeda, setiap akun login harus dibuat di master pada instans server jarak jauh, dan login tersebut harus diberikan izin CONNECT untuk terhubung ke titik akhir pencerminan database dari instans server tersebut. Untuk informasi selengkapnya, lihatMenyiapkan Akun Masuk untuk Pencerminan Database atau Grup Ketersediaan AlwaysOn (SQL Server).

  2. Jika SQL Server berjalan sebagai akun bawaan, seperti Sistem Lokal, Layanan Lokal, atau Layanan Jaringan, atau akun nondomain, Anda harus menggunakan sertifikat untuk autentikasi titik akhir. Jika akun layanan Anda menggunakan akun domain di domain yang sama, Anda dapat memilih untuk memberikan akses CONNECT untuk setiap akun layanan di semua lokasi replika atau Anda dapat menggunakan sertifikat. Untuk informasi selengkapnya, lihatMenggunakan Sertifikat untuk Titik Akhir Pencerminan Database (Transact-SQL).

Titik akhir

Titik akhir harus dikonfigurasi dengan benar.

  1. Pastikan bahwa setiap instans SQL Server yang akan menghosting replika ketersediaan (setiap lokasi replika) memiliki titik akhir pencerminan database. Untuk menentukan apakah titik akhir pencerminan database ada pada instans server tertentu, gunakan tampilan katalog sys.database_mirroring_endpoints . Untuk informasi selengkapnya, lihat Membuat Titik Akhir Pencerminan Database untuk Autentikasi Windows (Transact-SQL) atau Izinkan Titik Akhir Pencerminan Database menggunakan Sertifikat untuk Koneksi Keluar (Transact-SQL).

  2. Periksa apakah nomor port sudah benar.

    Untuk mengidentifikasi port yang saat ini terkait dengan titik akhir pencerminan database instans server, gunakan pernyataan Transact-SQL berikut:

    SELECT type_desc, port FROM sys.tcp_endpoints;
    GO
    
  3. Untuk masalah penyiapan Grup Ketersediaan AlwaysOn yang sulit dijelaskan, kami sarankan Anda memeriksa setiap instans server untuk menentukan apakah itu mendengarkan pada port yang benar. Untuk informasi tentang memverifikasi ketersediaan port, lihat MSSQLSERVER_1418.

  4. Pastikan titik akhir dimulai (STATE=STARTED). Pada setiap instans server, gunakan pernyataan Transact-SQL berikut:

    SELECT state_desc FROM sys.database_mirroring_endpoints
    

    Untuk informasi selengkapnya tentang kolom state_desc , lihat sys.database_mirroring_endpoints (Transact-SQL).

    Untuk memulai titik akhir, gunakan pernyataan Transact-SQL berikut:

    ALTER ENDPOINT Endpoint_Mirroring 
    STATE = STARTED 
    AS TCP (LISTENER_PORT = <port_number>)
    FOR database_mirroring (ROLE = ALL);
    GO
    

    Untuk informasi selengkapnya, lihat MENGUBAH TITIK AKHIR (Transact-SQL).

  5. Pastikan bahwa login dari server lain memiliki izin CONNECT. Untuk menentukan siapa yang memiliki izin CONNECT untuk titik akhir, pada setiap instans server gunakan pernyataan Transact-SQL berikut:

    SELECT 'Metadata Check';
    SELECT EP.name, SP.STATE, 
       CONVERT(nvarchar(38), suser_name(SP.grantor_principal_id)) 
          AS GRANTOR, 
       SP.TYPE AS PERMISSION,
       CONVERT(nvarchar(46),suser_name(SP.grantee_principal_id)) 
          AS GRANTEE 
       FROM sys.server_permissions SP , sys.endpoints EP
       WHERE SP.major_id = EP.endpoint_id
       ORDER BY Permission,grantor, grantee; 
    GO
    
    

Nama Sistem

Untuk nama sistem instans server di URL titik akhir, Anda dapat menggunakan nama apa pun yang secara tidak ambigu mengidentifikasi sistem. Alamat server dapat berupa nama sistem (jika sistem berada di domain yang sama), nama domain yang sepenuhnya memenuhi syarat, atau alamat IP (sebaiknya, alamat IP statis). Menggunakan nama domain yang sepenuhnya memenuhi syarat dijamin berfungsi. Untuk informasi selengkapnya, lihat Menentukan URL Titik Akhir Saat Menambahkan atau Memodifikasi Replika Ketersediaan (SQL Server).

Akses Jaringan

Setiap instans server yang menghosting replika ketersediaan harus dapat mengakses port masing-masing instans server lainnya melalui TCP. Ini sangat penting jika instans server berada di domain yang berbeda yang tidak saling mempercayai (domain yang tidak tepercaya).

Akses Titik Akhir (kesalahan SQL Server 1418)

Pesan SQL Server ini menunjukkan bahwa alamat jaringan server yang ditentukan dalam URL titik akhir tidak dapat dijangkau atau tidak ada, dan disarankan agar Anda memverifikasi nama alamat jaringan dan mengeluarkan kembali perintah. Untuk informasi selengkapnya, lihat MSSQLSERVER_1418.

Database Gabungan Gagal (kesalahan SQL Server 35250)

Bagian ini membahas kemungkinan penyebab dan resolusi kegagalan untuk menggabungkan database sekunder ke grup ketersediaan karena koneksi ke replika utama tidak aktif.

Penyelesaian:

  1. Periksa pengaturan firewall untuk melihat apakah memungkinkan komunikasi port titik akhir antara instans server yang menghosting replika utama dan replika sekunder (port 5022 secara default).

  2. Periksa apakah akun layanan jaringan memiliki izin sambungkan ke titik akhir.

Perutean Read-Only Tidak Berfungsi Dengan Benar

Verifikasi pengaturan nilai konfigurasi berikut dan koreksi jika perlu.

Pada... Tindakan Komentar Tautan
Kotak Centang Replika utama saat ini Pastikan bahwa pendengar grup ketersediaan sedang online. Untuk memverifikasi apakah pendengar sedang online:

SELECT * FROM sys.dm_tcp_listener_states;

Untuk memulai ulang pendengar offline:

ALTER AVAILABILITY GROUP myAG RESTART LISTENER 'myAG_Listener';
sys.dm_tcp_listener_states (T-SQL)

UBAH GRUP KETERSEDIAAN (Transact-SQL)
Kotak Centang Replika utama saat ini Pastikan bahwa READ_ONLY_ROUTING_LIST hanya berisi instans server yang menghosting replika sekunder yang dapat dibaca. Untuk mengidentifikasi replika sekunder yang dapat dibaca: sys.availability_replicas (kolom secondary_role_allow_connections_desc )

Untuk melihat daftar perutean baca-saja: sys.availability_read_only_routing_lists

Untuk mengubah daftar perutean baca-saja: UBAH GRUP KETERSEDIAAN
sys.availability_replicas (T-SQL)

sys.availability_read_only_routing_lists (T-SQL)

UBAH GRUP KETERSEDIAAN (Transact-SQL)
Kotak Centang Setiap replika dalam read_only_routing_list Pastikan firewall Windows tidak memblokir port READ_ONLY_ROUTING_URL. - Mengonfigurasi Windows Firewall untuk Database Engine Access
Kotak Centang Setiap replika dalam read_only_routing_list Di Pengelola Konfigurasi SQL Server, verifikasi bahwa:

SQL Server konektivitas jarak jauh diaktifkan.

TCP/IP diaktifkan.

Alamat IP dikonfigurasi dengan benar.
- Menampilkan atau Mengubah Properti Server (SQL Server)

Mengonfigurasi Server untuk Mendengarkan pada Port TCP Tertentu (Pengelola Konfigurasi SQL Server)
Kotak Centang Setiap replika dalam read_only_routing_list Pastikan bahwa READ_ONLY_ROUTING_URL (TCP://system-address:port) berisi nama domain yang sepenuhnya memenuhi syarat (FQDN) dan nomor port yang benar. - Menghitung read_only_routing_url untuk AlwaysOn

sys.availability_replicas (Transact-SQL)

UBAH GRUP KETERSEDIAAN (Transact-SQL)
Kotak Centang Sistem klien Verifikasi bahwa driver klien mendukung perutean baca-saja. - Konektivitas Klien AlwaysOn (SQL Server)

Tugas Terkait

Konten terkait

Lihat juga

Keamanan Transportasi untuk Pencerminan Database dan Grup Ketersediaan AlwaysOn (SQL Server)Prasyarat Konfigurasi Jaringan Klien, Pembatasan, dan Rekomendasi untuk Grup Ketersediaan AlwaysOn (SQL Server)