Menambahkan Bukti Pencerminan Database Menggunakan Autentikasi Windows (Transact-SQL)

Berlaku untuk:SQL Server

Untuk menyiapkan saksi untuk database, pemilik database menetapkan instans Mesin Database ke peran server saksi. Instans server saksi dapat berjalan pada komputer yang sama dengan instans server utama atau cermin, tetapi ini secara substansial mengurangi ketahanan failover otomatis.

Kami sangat menyarankan agar saksi berada di komputer terpisah. Server tertentu dapat berpartisipasi dalam beberapa sesi pencerminan database bersamaan dengan mitra yang sama atau berbeda. Server tertentu dapat menjadi mitra dalam beberapa sesi dan saksi di sesi lain.

Bukti ini ditujukan khusus untuk mode keselamatan tinggi dengan failover otomatis. Sebelum Anda menetapkan saksi, kami sangat menyarankan Anda memastikan bahwa properti SAFETY saat ini diatur ke PENUH.

Penting

Kami menyarankan agar Anda mengonfigurasi pencerminan database selama jam sibuk karena konfigurasi dapat memengaruhi performa.

Menetapkan saksi

  1. Pada instans server saksi, pastikan bahwa titik akhir ada untuk pencerminan database. Terlepas dari jumlah sesi pencerminan yang akan didukung, instans server hanya boleh memiliki satu titik akhir pencerminan database. Jika Anda ingin menggunakan instans server ini secara eksklusif sebagai saksi dalam sesi pencerminan database, tetapkan peran saksi ke titik akhir (ROLE**=**WITNESS). Jika Anda ingin menggunakan instans server ini sebagai mitra dalam satu atau beberapa sesi pencerminan database lainnya, tetapkan peran titik akhir sebagai SEMUA.

    Untuk menjalankan pernyataan SET WITNESS, sesi pencerminan database harus sudah dimulai (antara mitra), dan STATUS titik akhir saksi harus diatur ke DIMULAI.

    Untuk mempelajari apakah instans server saksi memiliki titik akhir pencerminan databasenya dan untuk mempelajari peran dan statusnya, pada instans tersebut, gunakan pernyataan Transact-SQL berikut:

    SELECT role_desc, state_desc FROM sys.database_mirroring_endpoints  
    

    Penting

    Jika titik akhir pencerminan database ada dan sudah digunakan, kami sarankan Anda menggunakan titik akhir tersebut untuk setiap sesi pada instans server. Menghilangkan titik akhir yang digunakan mengganggu koneksi sesi yang ada. Jika saksi telah ditetapkan untuk sesi, menghilangkan titik akhir pencerminan database dapat menyebabkan server utama sesi tersebut kehilangan kuorum; jika itu terjadi, database diambil secara offline dan penggunanya terputus. Untuk informasi selengkapnya, lihat Kuorum: Bagaimana Bukti Memengaruhi Ketersediaan Database (Pencerminan Database).

    Jika saksi tidak memiliki titik akhir, lihat Membuat Titik Akhir Pencerminan Database untuk Autentikasi Windows (Transact-SQL).

  2. Jika instans mitra berjalan di bawah akun pengguna domain yang berbeda, buat login untuk akun yang berbeda dalam database master setiap instans. Untuk informasi selengkapnya, lihat Mengizinkan Akses Jaringan ke Titik Akhir Pencerminan Database Menggunakan Autentikasi Windows (SQL Server).

  3. Koneksi ke server utama dan terbitkan pernyataan berikut:

    ALTER DATABASE <database_name> SET SERVER_NETWORK_ADDRESS WITNESS =<>

    di mana <database_name> adalah nama database yang akan dicerminkan (nama ini sama pada kedua mitra), dan< server_network_address> adalah alamat jaringan server instans server saksi.

    Sintaks untuk alamat jaringan server adalah sebagai berikut:

    TCP://<system-address>:port<>

    di mana <alamat> sistem adalah string yang secara tidak ambigu mengidentifikasi sistem komputer tujuan, dan< port> adalah nomor port yang digunakan oleh titik akhir pencerminan instans server mitra. Untuk informasi selengkapnya, lihat Menentukan Alamat Jaringan Server (Pencerminan Database).

    Misalnya, pada instans server utama, pernyataan ALTER DATABASE berikut menetapkan bukti. Nama databasenya adalah AdventureWorks, alamat sistemnya DBSERVER3-nama sistem saksi, dan port yang digunakan oleh titik akhir pencerminan database saksi adalah 7022:

    ALTER DATABASE AdventureWorks   
      SET WITNESS = 'TCP://DBSERVER3:7022'  
    

Contoh

Contoh berikut menetapkan bukti pencerminan data. Pada instans server saksi (instans default pada WITNESSHOST4):

  1. Buat titik akhir untuk instans server ini untuk peran WITNESS hanya menggunakan port 7022.

    CREATE ENDPOINT Endpoint_Mirroring  
        STATE=STARTED   
        AS TCP (LISTENER_PORT=7022)   
        FOR DATABASE_MIRRORING (ROLE=WITNESS)  
    GO  
    
  2. Buat login untuk akun pengguna domain instans mitra, jika berbeda; misalnya, asumsikan bahwa saksi berjalan sebagai SOMEDOMAIN\witnessuser, tetapi mitra berjalan sebagai MYDOMAIN\dbousername. Buat login untuk mitra, sebagai berikut:

    --Create a login for the partner server instances,  
    --which are both running as MYDOMAIN\dbousername:  
    USE master ;  
    GO  
    CREATE LOGIN [MYDOMAIN\dbousername] FROM WINDOWS ;  
    GO  
    --Grant connect permissions on endpoint to login account   
    --of partners  
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [MYDOMAIN\dbousername];  
    GO  
    
  3. Pada setiap instans server mitra, buat login untuk instans server bukti:

    --Create a login for the witness server instance,  
    --which is running as SOMEDOMAIN\witnessuser:  
    USE master ;  
    GO  
    CREATE LOGIN [SOMEDOMAIN\witnessuser] FROM WINDOWS ;  
    GO  
    --Grant connect permissions on endpoint to login account   
    --of partners  
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [SOMEDOMAIN\witnessuser];  
    GO  
    
  4. Pada server utama, atur saksi (yang ada di WITNESSHOST4):

    ALTER DATABASE AdventureWorks   
        SET WITNESS =   
        'TCP://WITNESSHOST4:7022'  
    GO  
    

Catatan

Alamat jaringan server menunjukkan instans server target dengan nomor port, yang memetakan ke titik akhir pencerminan instans.

Untuk contoh lengkap memperlihatkan penyiapan keamanan, menyiapkan database cermin, menyiapkan mitra, dan menambahkan bukti, lihat Menyiapkan Pencerminan Database (SQL Server).

Lihat Juga

MENGUBAH DATABASE (T-SQL)
Perbolehkan Akses Jaringan ke Titik Akhir Pencerminan Database Menggunakan Autentikasi Windows (SQL Server)
Membuat Titik Akhir Pencerminan Database untuk Autentikasi Windows (Transact-SQL)
Membuat Sesi Pencerminan Database Menggunakan Autentikasi Windows (Transact-SQL)
Menghapus Saksi dari Sesi Pencerminan Database (SQL Server)
Bukti Pencerminan Database