Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Menyebarkan Grup Ketersediaan SQL Server AlwaysOn di Linux

Pada artikel sebelumnya, saya menjelaskan bagaimana kita bisa menginstal Ubuntu 18.04 dan SQL Server 2019 di mesin virtual. Sekarang, sebelum kita melangkah lebih jauh, mari kita lihat konfigurasinya.

Kami membuat tiga mesin virtual, dan detailnya adalah sebagai berikut:

Nama Inang Alamat IP Peran
LinuxSQL01 192.168.0.140 Replika Utama
LinuxSQL02 192.168.0.141 Replika Sekunder Sinkron
LinuxSQL03 192.168.0.142 Replika Sekunder Asinkron

Perbarui file host.

Dalam konfigurasi, kami tidak menggunakan server domain. Oleh karena itu, untuk menyelesaikan nama host, kita harus menambahkan entri di file host.

File host terletak di /etc direktori. Jalankan perintah di bawah ini untuk mengedit file:

[email protected]:/# vim /etc/hosts

Di file host, masukkan nama host dan alamat IP semua mesin virtual:

Simpan file host.

Lakukan langkah yang sama pada semua mesin virtual.

Aktifkan grup ketersediaan SQL Server AlwaysOn

Sebelum menggunakan AlwaysOn, kita harus mengaktifkan fitur ketersediaan tinggi di SQL Server.

Di Windows Server 2016, opsi ini dapat diaktifkan dari manajer konfigurasi SQL Server, tetapi di platform Linux, kita harus melakukannya dengan perintah bash.

Hubungkan ke LinuxSQL01 menggunakan Putty, dan jalankan perintah berikut:

[email protected]:~# sudo /opt/mssql/bin/mssql-conf set hadr.hadrenabled  1

Mulai ulang layanan SQL Server:

[email protected]:~# service mssql-server restart

Lakukan langkah-langkah di atas pada semua mesin virtual.

Buat sertifikat untuk otentikasi

Tidak seperti AlwaysOn di server Windows, penyebaran Linux tidak memerlukan pengontrol domain. Untuk otentikasi dan komunikasi antara replika primer dan sekunder, ia menggunakan sertifikat.

Skrip berikut membuat sertifikat dan kunci master. Kemudian sertifikat tersebut dicadangkan dan diamankan dengan kata sandi.

Hubungkan ke LinuxSQL01 dan jalankan skrip berikut:

CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'abcd!1234';
CREATE CERTIFICATE AG_Auth_Cert WITH SUBJECT = 'dbm';
BACKUP CERTIFICATE AG_Auth_Cert
   TO FILE = '/var/opt/mssql/data/ AG_Auth_Cert_backup.cer'
   WITH PRIVATE KEY (
           FILE = '/var/opt/mssql/data/ AG_Auth_Cert_backup.pvk',
           ENCRYPTION BY PASSWORD = 'abcd!1234'
       );

Setelah kami membuat sertifikat dan kunci master, kami menyalinnya ke replika sekunder (LinuxSQL02 dan LinuxSQL03) dengan menjalankan perintah di bawah ini.

Pastikan kunci master dan lokasi sertifikat sama di semua replika dan memiliki izin baca-tulis.

/*Copy certificate and the key to LinuxSQL02*/

scp /var/opt/mssql/data/AG_Auth_Cert_backup.cer [email protected]:/var/opt/mssql/data/
scp /var/opt/mssql/data/AG_Auth_Cert_backup.pvk   [email protected]:/var/opt/mssql/data/

/*Copy certificate and the key to LinuxSQL03*/

scp /var/opt/mssql/data/AG_Auth_Cert_backup.cer   [email protected]:/var/opt/mssql/data/
scp /var/opt/mssql/data/AG_Auth_Cert_backup.pvk   [email protected]:/var/opt/mssql/data/

Jalankan perintah berikut pada node sekunder untuk memberikan izin baca-tulis pada sertifikat dan kunci pribadi:

/*Grant read-write permission on certificate and key to [email protected]*/

[email protected]:~# chmod 777 /var/opt/mssql/data/AG_Auth_Cert_backup.pvk
[email protected]:~# chmod 777 /var/opt/mssql/data/AG_Auth_Cert_backup.cer

/*Grant read-write permission on certificate and key to [email protected]*/

[email protected]:~# chmod 777 /var/opt/mssql/data/AG_Auth_Cert_backup.pvk
[email protected]:~# chmod 777 /var/opt/mssql/data/AG_Auth_Cert_backup.cer

Setelah izin diberikan, kami membuat sertifikat dan kunci master menggunakan cadangan sertifikat dan kunci master yang dibuat di LinuxSQL01.

Untuk melakukannya, jalankan perintah berikut pada kedua replika sekunder:

CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'abcd!1234';
CREATE CERTIFICATE AG_Auth_Cert
    FROM FILE = '/var/opt/mssql/data/AG_Auth_Cert_backup.cer'
    WITH PRIVATE KEY (
    FILE = '/var/opt/mssql/data/AG_Auth_Cert_backup.pvk',
    DECRYPTION BY PASSWORD = 'abcd!1234'
            );

Setelah kami membuat sertifikat dan kunci master, kami akan mengonfigurasi titik pencerminan basis data.

Buat titik akhir pencerminan

Untuk berkomunikasi antara replika primer dan sekunder, SQL Server menggunakan titik akhir pencerminan.

Titik akhir pencerminan menggunakan protokol TCP/IP untuk mengirim dan menerima pesan dari replika primer dan sekunder dan mendengarkan pada port TCP/IP yang unik.

Jalankan skrip berikut untuk membuat titik akhir pada node Primer dan Sekunder:

/*Run this script on LinuxSQL01*/

CREATE ENDPOINT [AG_LinuxSQL01]
    AS TCP (LISTENER_PORT = 5022)
    FOR DATABASE_MIRRORING (
	    ROLE = ALL,
	    AUTHENTICATION = CERTIFICATE AG_Auth_Cert,
		ENCRYPTION = REQUIRED ALGORITHM AES
		);
ALTER ENDPOINT [AG_LinuxSQL01] STATE = STARTED;

/*Run this script on LinuxSQL02*/

CREATE ENDPOINT [AG_LinuxSQL02]
    AS TCP (LISTENER_PORT = 5022)
    FOR DATABASE_MIRRORING (
	    ROLE = ALL,
	    AUTHENTICATION = CERTIFICATE AG_Auth_Cert,
		ENCRYPTION = REQUIRED ALGORITHM AES
		);

ALTER ENDPOINT [AG_LinuxSQL02] STATE = STARTED;

/*Run this script on LinuxSQL03*/

CREATE ENDPOINT [AG_LinuxSQL03]
    AS TCP (LISTENER_PORT = 5022)
    FOR DATABASE_MIRRORING (
	    ROLE = ALL,
	    AUTHENTICATION = CERTIFICATE AG_Auth_Cert,
		ENCRYPTION = REQUIRED ALGORITHM AES
		);
ALTER ENDPOINT [AG_LinuxSQL03] STATE = STARTED;

Setelah titik mirroring dibuat, mari kita buat grup ketersediaan.

Buat grup ketersediaan

Kami akan mengonfigurasi AlwaysON menggunakan SQL Server Management Studio.

Pertama, luncurkan dan sambungkan ke instance LinuxSQL01 menggunakan sa kredensial. Setelah terhubung ke instance SQL Server, Klik kanan Always On High Availability dan pilih Wizard Grup Ketersediaan Baru .

Wizard grup ketersediaan dimulai.

1. Pendahuluan

Dalam Pengantar layar, lihat daftar tugas yang akan dilakukan oleh wizard grup ketersediaan. Klik Berikutnya.

2. Tentukan Opsi Grup Ketersediaan

Pada layar Specify Availability Group Option, berikan nama grup ketersediaan yang diinginkan dan pilih EKSTERNAL dari Jenis klaster menu tarik-turun.

Juga, beri tanda centang untuk Deteksi Kesehatan Tingkat Basis Data kotak centang. Ini memungkinkan sesi acara yang diperpanjang untuk ketersediaan kesehatan grup.

3. Pilih Basis Data

Anda dapat memilih database untuk ditambahkan ke grup ketersediaan di Select Databases layar. Catatan:Basis data harus memenuhi prasyarat berikut:

  1. Basis data harus dalam model pemulihan LENGKAP.
  2. Cadangan penuh database harus dibuat.

Saya telah memulihkan cadangan WideWorldImportors database pada replika utama. Basis data dalam keadaan PENUH model pemulihan, dan cadangan lengkap telah dibuat.

Pilih WideWorldImportors database dari daftar dan klik Berikutnya .

4. Tentukan Replika

Pada Tentukan Replika layar, kami memiliki beberapa tab untuk mengonfigurasi opsi yang berbeda. Mari kita tinjau semuanya.

Tab replika

Di sini, kami menentukan replika primer dan sekunder, mode ketersediaan, dan mode failover.

Kami menggunakan LinuxSQL01 sebagai replika utama. LinuxSQL02 dan LinuxSQL03 adalah replika Sekunder.

Mode ketersediaan untuk LinuxSQL02 akan menjadi Komit sinkron , dan untuk LinuxSQL03 akan menjadi Komit asinkron .

Untuk menambahkan replika, klik Tambahkan replika . Kemudian, pada Hubungkan ke Server kotak dialog, tentukan nama server dan detail SQL Login untuk terhubung ke instance:

Tab Titik Akhir

Di sini, kita dapat melihat daftar replika dan titik akhir pencerminannya dengan nomor dan nama port yang sesuai:

Preferensi Cadangan

Di sini, Anda menentukan replika yang ingin Anda gunakan untuk membuat cadangan. Opsi ini berguna ketika Anda ingin membongkar proses pencadangan database SQL dalam grup ketersediaan.

Anda dapat memilih salah satu opsi berikut:

  1. Prefer Secondary:Cadangan akan dibuat pada replika sekunder. Jika replika sekunder tidak tersedia, cadangan akan dibuat di replika utama.
  2. Khusus sekunder:Semua cadangan akan dibuat di replika sekunder.
  3. Utama:Cadangan akan dibuat di replika Utama.
  4. Replika apa pun:Cadangan akan dibuat dari replika mana pun.

Kami akan menggunakan Prefer Secondary pilihan:

Pendengar

Pendengar grup ketersediaan adalah nama virtual yang digunakan oleh aplikasi untuk menghubungkan database grup ketersediaan. Tentukan Nama DNS Pendengar dan portnya di Nama DNS Pendengar dan Pelabuhan kotak teks.

Pilih IP Statis dari Mode Jaringan menu tarik-turun.

Untuk menambahkan Alamat IP untuk pendengar grup ketersediaan, klik Tambahkan >Masukkan Alamat IP dan Subnet Mask .

Perutean Hanya-Baca

Di sini, Anda dapat memberikan URL Perutean Hanya-Baca dan Daftar Perutean Hanya-Baca untuk replika Primer dan Sekunder.

Kami tidak akan mengonfigurasi perutean Read-Only dalam demonstrasi kami. Oleh karena itu, klik Berikutnya. Untuk mempelajari lebih lanjut tentang perutean Hanya-Baca, Anda dapat merujuk ke Perutean Hanya-Baca untuk Perutean Selalu Aktif.

Sekarang, mari kembali ke proses utama yang sedang kita kerjakan.

5. Pilih Sinkronisasi Data Awal

Pada Pilih Sinkronisasi Data Awal layar, atur preferensi Anda untuk sinkronisasi data awal. Detail dari setiap opsi disediakan di layar wizard, dan Anda dapat memilih salah satunya:

  1. Pembibitan Otomatis.
  2. Database Lengkap dan backup log.
  3. Hanya bergabung.
  4. Lewati sinkronisasi data awal.

Saya belum membuat WideWorldImportors database pada replika LinuxSQL02 dan LinuxSQL03, memilih Penyemaian otomatis pilihan. Ini akan membuat database di kedua replika dan memulai sinkronisasi data. Klik Berikutnya.

6. Validasi dan Ringkasan

Pada Validasi layar, wizard memvalidasi semua konfigurasi.

Untuk menyebarkan grup ketersediaan Always On dengan sukses, Anda perlu semua validasi berhasil. Jika ada kesalahan, Anda harus menyelesaikannya.

Di Ringkasan layar, Anda dapat melihat daftar konfigurasi yang dipilih untuk menerapkan grup ketersediaan.

Tinjau detailnya sekali lagi, dan klik Selesai – meluncurkan proses penerapan.

Jika Anda ingin membuat skrip proses penerapan, klik Skrip .

Seperti yang kita lihat, proses penerapan AlwaysOn dimulai. Setelah selesai dengan sukses, klik Tutup untuk keluar dari wizard.

Dengan demikian, penyebaran grup ketersediaan AlwaysOn di SQL Server 2019 selesai.

Ringkasan

Artikel ini membantu kami memahami proses penerapan langkah demi langkah grup ketersediaan SQL Server AlwaysOn di Linux.

Artikel selanjutnya akan menjelaskan bagaimana kita dapat mengkonfigurasi pendengar grup ketersediaan dan melakukan failover manual menggunakan SQL Server Management Studio. Tetap disini!


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Mengaktifkan Batasan CHECK di SQL Server (Contoh T-SQL)

  2. Gunakan Kasus untuk Pernyataan MERGE SQL Server:Menyinkronkan Tabel Online dan Riwayat

  3. Beberapa Indeks vs Indeks Multi-Kolom

  4. Bagaimana cara menulis menggunakan BCP ke SQL Server jarak jauh?

  5. Menggunakan T-SQL, kembalikan elemen delimited ke-n dari sebuah string