Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:SQL Server di Linux
Tutorial ini menunjukkan cara membuat dan mengonfigurasi grup ketersediaan (AG) untuk SQL Server di Linux. Tidak seperti SQL Server 2016 (13.x) dan versi yang lebih lama di Windows, Anda dapat mengaktifkan AG dengan atau tanpa membuat kluster Pacemaker yang mendasarinya terlebih dahulu. Integrasi dengan kluster, jika diperlukan, terjadi nanti.
Tutorial ini mencakup tugas-tugas berikut:
- Aktifkan grup ketersediaan.
- Membuat titik akhir dan sertifikat grup ketersediaan.
- Gunakan SQL Server Management Studio (SSMS) atau Transact-SQL untuk membuat grup ketersediaan.
- Buat login dan izin SQL Server untuk Pacemaker.
- Buat sumber daya grup ketersediaan di kluster Pacemaker (Hanya jenis eksternal).
Prasyarat
Sebarkan kluster ketersediaan tinggi Pacemaker seperti yang dijelaskan dalam Menyebarkan kluster Pacemaker untuk SQL Server di Linux.
Mengaktifkan fitur grup ketersediaan
Tidak seperti di Windows, Anda tidak dapat menggunakan PowerShell atau Pengelola Konfigurasi SQL Server untuk mengaktifkan fitur grup ketersediaan (AG). Di Linux, Anda dapat mengaktifkan fitur grup ketersediaan dengan dua cara: menggunakan utilitas mssql-conf , atau mengedit mssql.conf file secara manual.
Penting
Anda harus mengaktifkan fitur AG untuk replika khusus konfigurasi, bahkan di SQL Server Express.
Menggunakan utilitas mssql-conf
Pada prompt, jalankan perintah berikut:
sudo /opt/mssql/bin/mssql-conf set hadr.hadrenabled 1
Mengedit file mssql.conf
Anda juga dapat mengubah file mssql.conf, yang terletak di bawah folder /var/opt/mssql. Tambahkan baris berikut:
[hadr]
hadr.hadrenabled = 1
Mulai ulang SQL Server
Setelah mengaktifkan grup ketersediaan, Anda harus memulai ulang SQL Server. Gunakan perintah berikut:
sudo systemctl restart mssql-server
Membuat titik akhir dan sertifikat grup ketersediaan
Grup ketersediaan menggunakan titik akhir TCP untuk komunikasi. Di bawah Linux, titik akhir untuk AG hanya didukung jika sertifikat digunakan untuk autentikasi. Anda harus memulihkan sertifikat dari satu instans pada semua instans lain yang berpartisipasi sebagai replika dalam AG yang sama. Proses sertifikat diperlukan bahkan untuk replika khusus konfigurasi.
Anda hanya dapat membuat titik akhir dan memulihkan sertifikat menggunakan Transact-SQL. Anda juga dapat menggunakan sertifikat yang dihasilkan non-SQL Server. Anda juga memerlukan proses untuk mengelola dan mengganti sertifikat apa pun yang kedaluwarsa.
Penting
Jika Anda berencana menggunakan wizard SQL Server Management Studio untuk membuat AG, Anda masih perlu membuat dan memulihkan sertifikat dengan menggunakan Transact-SQL di Linux.
Untuk sintaks penuh pada opsi yang tersedia untuk berbagai perintah (termasuk keamanan), lihat:
Catatan
Meskipun Anda membuat grup ketersediaan, jenis titik akhir menggunakan FOR DATABASE_MIRRORING, karena beberapa aspek yang mendasar pernah dibagikan dengan fitur yang sekarang tidak digunakan lagi.
Contoh ini membuat sertifikat untuk konfigurasi tiga simpul. Nama instansnya adalah LinAGN1, LinAGN2, dan LinAGN3.
Jalankan skrip berikut untuk
LinAGN1membuat kunci master, sertifikat, dan titik akhir, dan cadangkan sertifikat. Untuk contoh ini, port TCP khas 5022 digunakan untuk titik akhir.CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<master-key-password>'; GO CREATE CERTIFICATE LinAGN1_Cert WITH SUBJECT = 'LinAGN1 AG Certificate'; GO BACKUP CERTIFICATE LinAGN1_Cert TO FILE = '/var/opt/mssql/data/LinAGN1_Cert.cer'; GO CREATE ENDPOINT AGEP STATE = STARTED AS TCP ( LISTENER_PORT = 5022, LISTENER_IP = ALL ) FOR DATABASE_MIRRORING ( AUTHENTICATION = CERTIFICATE LinAGN1_Cert, ROLE = ALL ); GOLakukan hal yang sama pada
LinAGN2:CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<master-key-password>'; GO CREATE CERTIFICATE LinAGN2_Cert WITH SUBJECT = 'LinAGN2 AG Certificate'; GO BACKUP CERTIFICATE LinAGN2_Cert TO FILE = '/var/opt/mssql/data/LinAGN2_Cert.cer'; GO CREATE ENDPOINT AGEP STATE = STARTED AS TCP ( LISTENER_PORT = 5022, LISTENER_IP = ALL ) FOR DATABASE_MIRRORING ( AUTHENTICATION = CERTIFICATE LinAGN2_Cert, ROLE = ALL ); GOTerakhir, lakukan urutan yang sama pada
LinAGN3:CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<master-key-password>'; GO CREATE CERTIFICATE LinAGN3_Cert WITH SUBJECT = 'LinAGN3 AG Certificate'; GO BACKUP CERTIFICATE LinAGN3_Cert TO FILE = '/var/opt/mssql/data/LinAGN3_Cert.cer'; GO CREATE ENDPOINT AGEP STATE = STARTED AS TCP ( LISTENER_PORT = 5022, LISTENER_IP = ALL ) FOR DATABASE_MIRRORING ( AUTHENTICATION = CERTIFICATE LinAGN3_Cert, ROLE = ALL ); GOMenggunakan
scpatau utilitas lain, salin cadangan sertifikat ke setiap simpul yang akan menjadi bagian dari AG.Untuk contoh ini:
- Salin
LinAGN1_Cert.cerkeLinAGN2danLinAGN3. - Salin
LinAGN2_Cert.cerkeLinAGN1danLinAGN3. - Salin
LinAGN3_Cert.cerkeLinAGN1danLinAGN2.
- Salin
Ubah kepemilikan dan grup yang terkait dengan file sertifikat yang disalin menjadi
mssql.sudo chown mssql:mssql <CertFileName>Buat login tingkat instans dan pengguna yang terkait dengan
LinAGN2danLinAGN3diLinAGN1.CREATE LOGIN LinAGN2_Login WITH PASSWORD = '<password>'; CREATE USER LinAGN2_User FOR LOGIN LinAGN2_Login; GO CREATE LOGIN LinAGN3_Login WITH PASSWORD = '<password>'; CREATE USER LinAGN3_User FOR LOGIN LinAGN3_Login; GOPerhatian
Kata sandi Anda harus mengikuti kebijakan kata sandi default SQL Server. Secara default, kata sandi harus panjangnya minimal delapan karakter dan berisi karakter dari tiga dari empat set berikut: huruf besar, huruf kecil, digit dasar-10, dan simbol. Panjang kata sandi bisa hingga 128 karakter. Gunakan kata sandi yang panjang dan kompleks mungkin.
Pulihkan dan
LinAGN2_Certaktifkan .LinAGN3_CertLinAGN1Memiliki sertifikat replika lainnya adalah aspek penting dari komunikasi dan keamanan AG.CREATE CERTIFICATE LinAGN2_Cert AUTHORIZATION LinAGN2_User FROM FILE = '/var/opt/mssql/data/LinAGN2_Cert.cer'; GO CREATE CERTIFICATE LinAGN3_Cert AUTHORIZATION LinAGN3_User FROM FILE = '/var/opt/mssql/data/LinAGN3_Cert.cer'; GOBerikan login yang terkait dengan
LinAGN2danLinAGN3izin untuk menyambungkan ke titik akhir diLinAGN1.GRANT CONNECT ON ENDPOINT::AGEP TO LinAGN2_Login; GRANT CONNECT ON ENDPOINT::AGEP TO LinAGN3_Login;Buat login tingkat instans dan pengguna yang terkait dengan
LinAGN1danLinAGN3diLinAGN2.CREATE LOGIN LinAGN1_Login WITH PASSWORD = '<password>'; CREATE USER LinAGN1_User FOR LOGIN LinAGN1_Login; GO CREATE LOGIN LinAGN3_Login WITH PASSWORD = '<password>'; CREATE USER LinAGN3_User FOR LOGIN LinAGN3_Login; GOPulihkan dan
LinAGN1_Certaktifkan .LinAGN3_CertLinAGN2CREATE CERTIFICATE LinAGN1_Cert AUTHORIZATION LinAGN1_User FROM FILE = '/var/opt/mssql/data/LinAGN1_Cert.cer'; GO CREATE CERTIFICATE LinAGN3_Cert AUTHORIZATION LinAGN3_User FROM FILE = '/var/opt/mssql/data/LinAGN3_Cert.cer'; GOBerikan login yang terkait dengan
LinAGN1danLinAGN3izin untuk menyambungkan ke titik akhir diLinAGN2.GRANT CONNECT ON ENDPOINT::AGEP TO LinAGN1_Login; GRANT CONNECT ON ENDPOINT::AGEP TO LinAGN3_Login; GOBuat login tingkat instans dan pengguna yang terkait dengan
LinAGN1danLinAGN2diLinAGN3.CREATE LOGIN LinAGN1_Login WITH PASSWORD = '<password>'; CREATE USER LinAGN1_User FOR LOGIN LinAGN1_Login; GO CREATE LOGIN LinAGN2_Login WITH PASSWORD = '<password>'; CREATE USER LinAGN2_User FOR LOGIN LinAGN2_Login; GOPulihkan dan
LinAGN1_Certaktifkan .LinAGN2_CertLinAGN3CREATE CERTIFICATE LinAGN1_Cert AUTHORIZATION LinAGN1_User FROM FILE = '/var/opt/mssql/data/LinAGN1_Cert.cer'; GO CREATE CERTIFICATE LinAGN2_Cert AUTHORIZATION LinAGN2_User FROM FILE = '/var/opt/mssql/data/LinAGN2_Cert.cer'; GOBerikan login yang terkait dengan
LinAG1danLinAGN2izin untuk menyambungkan ke titik akhir diLinAGN3.GRANT CONNECT ON ENDPOINT::AGEP TO LinAGN1_Login; GRANT CONNECT ON ENDPOINT::AGEP TO LinAGN2_Login; GO
Membuat grup ketersediaan
Bagian ini menunjukkan cara menggunakan SQL Server Management Studio (SSMS) atau Transact-SQL untuk membuat grup ketersediaan untuk SQL Server.
Menggunakan SQL Server Management Studio
Bagian ini memperlihatkan cara membuat AG dengan jenis kluster Eksternal menggunakan SSMS dengan Wizard Grup Ketersediaan Baru.
Di SSMS, perluas Ketersediaan Tinggi AlwaysOn, klik kanan Grup Ketersediaan, dan pilih Wizard Grup Ketersediaan Baru.
Pada dialog Pengenalan, pilih Berikutnya.
Dalam dialog Tentukan Opsi Grup Ketersediaan, masukkan nama untuk grup ketersediaan, dan pilih jenis
EXTERNALkluster atauNONEdi daftar dropdown. GunakanEXTERNALsaat Anda menyebarkan Pacemaker. GunakanNONEuntuk skenario khusus, seperti peluasan skala baca. Memilih opsi untuk deteksi kesehatan tingkat database bersifat opsional. Untuk informasi selengkapnya tentang opsi ini, lihat Opsi failover deteksi kesehatan tingkat database grup ketersediaan. Pilih Selanjutnya.Dalam dialog Pilih Database, pilih database yang akan berpartisipasi dalam AG. Setiap database harus memiliki cadangan penuh sebelum Anda dapat menambahkannya ke AG. Pilih Selanjutnya.
Dalam dialog Tentukan Replika, pilih Tambahkan Replika.
Dalam dialog Sambungkan ke Server, masukkan nama instans Linux SQL Server yang akan menjadi replika sekunder, dan kredensial yang akan disambungkan. Pilih Sambungkan.
Ulangi dua langkah sebelumnya untuk instans yang akan berisi replika khusus konfigurasi atau replika sekunder lainnya.
Semua tiga instans muncul pada dialog Menentukan Replika. Jika Anda menggunakan jenis kluster Eksternal, untuk replika sekunder yang akan menjadi sekunder sejati, pastikan Mode Ketersediaan sesuai dengan replika utama dan mode failover disetel ke Eksternal. Untuk replika khusus konfigurasi, pilih mode ketersediaan Konfigurasi saja.
Contoh berikut menunjukkan AG dengan dua replika, jenis kluster Eksternal, dan replika khusus konfigurasi.
Contoh berikut menunjukkan AG dengan dua replika, jenis kluster Tidak Ada, dan replika khusus konfigurasi.
Jika Anda ingin mengubah preferensi cadangan, pilih tab Preferensi Cadangan. Untuk informasi selengkapnya tentang preferensi pencadangan dengan AG, lihat Mengonfigurasi cadangan pada replika sekunder grup ketersediaan AlwaysOn.
Jika Anda menggunakan sekunder yang dapat dibaca atau membuat AG dengan jenis kluster None untuk skala baca, Anda dapat membuat pendengar dengan memilih tab Listener: Anda juga dapat menambahkan pendengar nanti. Untuk membuat pendengar, pilih opsi Buat pendengar grup ketersediaan dan masukkan nama, port TCP/IP, dan apakah akan menggunakan alamat IP DHCP statis atau yang ditetapkan secara otomatis. Untuk AG dengan tipe kluster 'None', IP seharusnya statis dan harus diatur ke alamat IP primer.
Jika Anda membuat pendengar untuk skenario yang dapat dibaca, SSMS memungkinkan pembuatan perutean baca-saja dalam wizard. Anda juga dapat menambahkannya nanti melalui SSMS atau Transact-SQL. Untuk menambahkan perutean baca-saja sekarang:
Pilih tab Perutean Baca-Saja.
Masukkan URL untuk replika baca-saja. URL ini mirip dengan titik akhir, kecuali url tersebut menggunakan port instans, bukan titik akhir.
Pilih setiap URL dan dari bawah, pilih replika yang dapat dibaca. Untuk memilih beberapa, tahan SHIFT atau pilih-seret.
Pilih Selanjutnya.
Pilih bagaimana replika sekunder diinisialisasi. Defaultnya adalah menggunakan seeding otomatis, yang memerlukan jalur yang sama di semua server yang berpartisipasi dalam AG. Anda juga dapat meminta wizard melakukan pencadangan, penyalinan, dan pemulihan (opsi kedua); minta bergabung jika Anda telah mencadangkan, menyalin, dan memulihkan database secara manual pada replika (opsi ketiga); atau tambahkan database nanti (opsi terakhir). Seperti halnya sertifikat, jika Anda membuat cadangan dan menyalinnya secara manual, atur izin pada file cadangan pada replika lain. Pilih Selanjutnya.
Pada dialog Validasi, jika semuanya tidak kembali sebagai Berhasil, selidiki. Beberapa peringatan dapat diterima dan tidak fatal, seperti jika Anda tidak membuat pendengar. Pilih Selanjutnya.
Pada dialog Ringkasan, pilih Selesai. Proses untuk membuat AG sekarang dimulai.
Saat pembuatan AG selesai, pilih Tutup pada Hasil. Anda sekarang dapat melihat AG pada replika dalam tampilan manajemen dinamis, dan di bawah folder Ketersediaan Tinggi AlwaysOn di SSMS.
Menggunakan Transact-SQL
Bagian ini menunjukkan contoh pembuatan AG menggunakan Transact-SQL. Anda dapat mengonfigurasi pendengar dan perutean baca-saja setelah membuat AG. Anda dapat memodifikasi AG itu sendiri dengan menggunakan ALTER AVAILABILITY GROUP, tetapi Anda tidak dapat mengubah jenis kluster di SQL Server 2017 (14.x). Jika Anda tidak bermaksud membuat AG dengan jenis kluster Eksternal, Anda harus menghapusnya dan membuatnya kembali dengan jenis kluster Tidak Ada. Untuk informasi selengkapnya dan opsi lainnya, lihat tautan berikut ini:
- BUAT GRUP KETERSEDIAAN (Transact-SQL)
- UBAH GRUP KETERSEDIAAN (Transact-SQL)
- Mengonfigurasi Perutean Baca Saja untuk Grup Ketersediaan Always On
- Mengonfigurasi listener bagi grup ketersediaan Always On
Contoh A: Dua replika dengan replika khusus konfigurasi (Jenis kluster eksternal)
Contoh ini menunjukkan cara membuat AG dua replika yang menggunakan replika khusus konfigurasi.
Jalankan pernyataan berikut pada simpul yang akan bertindak sebagai replika utama, dan berisi salinan database yang sepenuhnya dibaca/ditulis. Contoh ini menggunakan seeding otomatis.
CREATE AVAILABILITY GROUP [<AGName>] WITH (CLUSTER_TYPE = EXTERNAL) FOR DATABASE <DBName> REPLICA ON N'LinAGN1' WITH ( ENDPOINT_URL = N' TCP://LinAGN1.FullyQualified.Name:5022', FAILOVER_MODE = EXTERNAL, AVAILABILITY_MODE = SYNCHRONOUS_COMMIT ), N'LinAGN2' WITH ( ENDPOINT_URL = N'TCP://LinAGN2.FullyQualified.Name:5022', FAILOVER_MODE = EXTERNAL, AVAILABILITY_MODE = SYNCHRONOUS_COMMIT, SEEDING_MODE = AUTOMATIC ), N'LinAGN3' WITH ( ENDPOINT_URL = N'TCP://LinAGN3.FullyQualified.Name:5022', AVAILABILITY_MODE = CONFIGURATION_ONLY ); GODi jendela kueri yang terhubung ke replika lain, jalankan perintah berikut untuk menggabungkan replika ke AG dan memulai proses penyemaian dari replika utama ke replika sekunder.
ALTER AVAILABILITY GROUP [<AGName>] JOIN WITH (CLUSTER_TYPE = EXTERNAL); GO ALTER AVAILABILITY GROUP [<AGName>] GRANT CREATE ANY DATABASE; GODi jendela kueri yang tersambung ke replika konfigurasi saja, jalankan pernyataan berikut untuk menggabungkannya ke AG.
ALTER AVAILABILITY GROUP [<AGName>] JOIN WITH (CLUSTER_TYPE = EXTERNAL); GO
Contoh B: Tiga replika dengan perutean baca-saja (Jenis kluster eksternal)
Contoh ini menunjukkan tiga replika lengkap dan bagaimana Anda dapat mengonfigurasi perutean baca-saja sebagai bagian dari pembuatan AG awal.
Jalankan pernyataan berikut pada simpul yang akan bertindak sebagai replika utama, dan berisi salinan database yang sepenuhnya dibaca/ditulis. Contoh ini menggunakan seeding otomatis.
CREATE AVAILABILITY GROUP [<AGName>] WITH (CLUSTER_TYPE = EXTERNAL) FOR DATABASE < DBName > REPLICA ON N'LinAGN1' WITH ( ENDPOINT_URL = N'TCP://LinAGN1.FullyQualified.Name:5022', FAILOVER_MODE = EXTERNAL, AVAILABILITY_MODE = SYNCHRONOUS_COMMIT, PRIMARY_ROLE(ALLOW_CONNECTIONS = READ_WRITE, READ_ONLY_ROUTING_LIST = ( ( 'LinAGN2.FullyQualified.Name', 'LinAGN3.FullyQualified.Name' ) )), SECONDARY_ROLE(ALLOW_CONNECTIONS = ALL, READ_ONLY_ROUTING_URL = N'TCP://LinAGN1.FullyQualified.Name:1433') ), N'LinAGN2' WITH ( ENDPOINT_URL = N'TCP://LinAGN2.FullyQualified.Name:5022', FAILOVER_MODE = EXTERNAL, SEEDING_MODE = AUTOMATIC, AVAILABILITY_MODE = SYNCHRONOUS_COMMIT, PRIMARY_ROLE(ALLOW_CONNECTIONS = READ_WRITE, READ_ONLY_ROUTING_LIST = ( ( 'LinAGN1.FullyQualified.Name', 'LinAGN3.FullyQualified.Name' ) )), SECONDARY_ROLE(ALLOW_CONNECTIONS = ALL, READ_ONLY_ROUTING_URL = N'TCP://LinAGN2.FullyQualified.Name:1433') ), N'LinAGN3' WITH ( ENDPOINT_URL = N'TCP://LinAGN3.FullyQualified.Name:5022', FAILOVER_MODE = EXTERNAL, SEEDING_MODE = AUTOMATIC, AVAILABILITY_MODE = SYNCHRONOUS_COMMIT, PRIMARY_ROLE(ALLOW_CONNECTIONS = READ_WRITE, READ_ONLY_ROUTING_LIST = ( ( 'LinAGN1.FullyQualified.Name', 'LinAGN2.FullyQualified.Name' ) )), SECONDARY_ROLE(ALLOW_CONNECTIONS = ALL, READ_ONLY_ROUTING_URL = N'TCP://LinAGN3.FullyQualified.Name:1433') ) LISTENER '<ListenerName>' ( WITH IP = ('<IPAddress>', '<SubnetMask>'), Port = 1433 ); GOBeberapa hal yang perlu diperhatikan tentang konfigurasi ini:
-
AGNameadalah nama grup ketersediaan. -
DBNameadalah nama database yang Anda gunakan dengan grup ketersediaan. Ini juga bisa menjadi daftar nama yang dipisahkan oleh koma. -
ListenerNameadalah nama yang berbeda dari salah satu server atau simpul yang mendasar. Ini terdaftar di DNS bersama denganIPAddress. -
IPAddressadalah alamat IP yang terkait denganListenerName. Ini juga unik dan tidak sama dengan server atau simpul mana pun. Aplikasi dan pengguna akhir menggunakan atauListenerNameIPAddressuntuk menyambungkan ke AG.-
SubnetMaskadalah subnet mask dariIPAddress. Di SQL Server 2019 (15.x) dan versi sebelumnya, nilai ini adalah255.255.255.255. Di SQL Server 2022 (16.x) dan versi yang lebih baru, nilai ini adalah0.0.0.0.
-
-
Di jendela kueri yang tersambung ke replika lain, jalankan pernyataan berikut untuk menambahkan replika ke dalam AG dan memulai proses penyemaian dari replika utama ke replika sekunder.
ALTER AVAILABILITY GROUP [<AGName>] JOIN WITH (CLUSTER_TYPE = EXTERNAL); GO ALTER AVAILABILITY GROUP [<AGName>] GRANT CREATE ANY DATABASE; GOUlangi Langkah 2 untuk replika ketiga.
Contoh C: Dua replika dengan perutean baca-saja (Jenis kluster tidak ada)
Contoh ini menunjukkan pembuatan konfigurasi dua replika menggunakan jenis kluster Tidak Ada. Gunakan konfigurasi ini untuk skenario skala baca di mana tidak ada failover yang diharapkan. Langkah ini membuat listener yang berfungsi sebagai replika utama, serta perutean hanya-baca, dengan menggunakan fungsionalitas round robin.
Jalankan pernyataan berikut pada simpul yang akan bertindak sebagai replika utama, dan berisi salinan database yang sepenuhnya dibaca/ditulis. Contoh ini menggunakan seeding otomatis.
CREATE AVAILABILITY GROUP [<AGName>] WITH (CLUSTER_TYPE = NONE) FOR DATABASE <DBName> REPLICA ON N'LinAGN1' WITH ( ENDPOINT_URL = N'TCP://LinAGN1.FullyQualified.Name: <PortOfEndpoint>', FAILOVER_MODE = MANUAL, AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT, PRIMARY_ROLE( ALLOW_CONNECTIONS = READ_WRITE, READ_ONLY_ROUTING_LIST = (('LinAGN1.FullyQualified.Name'.'LinAGN2.FullyQualified.Name')) ), SECONDARY_ROLE( ALLOW_CONNECTIONS = ALL, READ_ONLY_ROUTING_URL = N'TCP://LinAGN1.FullyQualified.Name:<PortOfInstance>' ) ), N'LinAGN2' WITH ( ENDPOINT_URL = N'TCP://LinAGN2.FullyQualified.Name:<PortOfEndpoint>', FAILOVER_MODE = MANUAL, SEEDING_MODE = AUTOMATIC, AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT, PRIMARY_ROLE(ALLOW_CONNECTIONS = READ_WRITE, READ_ONLY_ROUTING_LIST = ( ('LinAGN1.FullyQualified.Name', 'LinAGN2.FullyQualified.Name') )), SECONDARY_ROLE(ALLOW_CONNECTIONS = ALL, READ_ONLY_ROUTING_URL = N'TCP://LinAGN2.FullyQualified.Name:<PortOfInstance>') ), LISTENER '<ListenerName>' (WITH IP = ( '<PrimaryReplicaIPAddress>', '<SubnetMask>'), Port = <PortOfListener> ); GODalam contoh ini:
-
AGNameadalah nama grup ketersediaan. -
DBNameadalah nama database yang Anda gunakan dengan grup ketersediaan. Ini juga bisa menjadi daftar nama yang dipisahkan oleh koma. -
PortOfEndpointadalah nomor port yang digunakan oleh titik akhir yang Anda buat.-
PortOfInstanceadalah nomor port yang digunakan oleh instans SQL Server.
-
-
ListenerNameadalah nama yang berbeda dari replikasi dasar mana pun tetapi sebenarnya tidak digunakan. -
PrimaryReplicaIPAddressadalah alamat IP replika utama.-
SubnetMaskadalah subnet mask dariIPAddress. Di SQL Server 2019 (15.x) dan versi sebelumnya, nilai ini adalah255.255.255.255. Di SQL Server 2022 (16.x) dan versi yang lebih baru, nilai ini adalah0.0.0.0.
-
-
Bergabunglah dengan replika sekunder ke AG dan mulai seeding otomatis.
ALTER AVAILABILITY GROUP [<AGName>] JOIN WITH (CLUSTER_TYPE = NONE); GO ALTER AVAILABILITY GROUP [<AGName>] GRANT CREATE ANY DATABASE; GO
Membuat login dan izin SQL Server untuk Pacemaker
Kluster ketersediaan tinggi Pacemaker yang menggunakan SQL Server di Linux memerlukan akses ke instans SQL Server, dan izin pada grup ketersediaan itu sendiri. Langkah-langkah ini membuat login dan izin terkait, bersama dengan file yang memberi tahu Pacemaker cara masuk ke SQL Server.
Di jendela kueri yang tersambung ke replika pertama, jalankan skrip berikut:
CREATE LOGIN PMLogin WITH PASSWORD ='<password>'; GO GRANT VIEW SERVER STATE TO PMLogin; GO GRANT ALTER, CONTROL, VIEW DEFINITION ON AVAILABILITY GROUP::<AGThatWasCreated> TO PMLogin; GOPada Node 1, masukkan perintah:
sudo emacs /var/opt/mssql/secrets/passwdPerintah ini membuka editor Emacs.
Masukkan dua baris berikut ke editor:
PMLogin <password>Tahan tombol
Ctrl, lalu tekanX, laluC, untuk keluar dan menyimpan file.Jalankan:
sudo chmod 400 /var/opt/mssql/secrets/passwduntuk mengunci file.
Ulangi Langkah 1-5 di server lain yang berfungsi sebagai replika.
Membuat sumber daya grup ketersediaan di kluster Pacemaker (Hanya eksternal)
Setelah membuat grup ketersediaan di SQL Server, Anda harus membuat sumber daya yang sesuai di Pacemaker saat Anda menentukan jenis kluster Eksternal. Dua sumber daya dikaitkan dengan grup ketersediaan: grup ketersediaan itu sendiri, dan alamat IP. Mengonfigurasi sumber daya alamat IP bersifat opsional jika Anda tidak menggunakan fungsi pendengar, tetapi disarankan.
Sumber daya AG yang Anda buat adalah jenis sumber daya yang disebut kloning. Sumber daya AG memiliki salinan pada setiap simpul, dan satu sumber daya pengontrol yang disebut master. Master dikaitkan dengan server yang menghosting replika utama. Sumber daya lain menghosting replika sekunder (reguler atau khusus konfigurasi) dan dapat dipromosikan ke master dalam failover.
Buat sumber daya AG dengan sintaks berikut:
sudo pcs resource create <NameForAGResource> ocf:mssql:ag ag_name=<AGName> meta failure-timeout=30s promotable notify=trueDalam contoh ini,
NameForAGResourceadalah nama unik yang Anda berikan ke sumber daya kluster ini untuk AG, danAGNamemerupakan nama AG yang Anda buat.Buat sumber daya alamat IP untuk AG yang Anda kaitkan dengan fungsionalitas pendengar.
sudo pcs resource create <NameForIPResource> ocf:heartbeat:IPaddr2 ip=<IPAddress> cidr_netmask=<Netmask>Dalam contoh ini,
NameForIPResourceadalah nama unik untuk sumber daya IP, danIPAddressmerupakan alamat IP statis yang Anda tetapkan ke sumber daya.Untuk memastikan bahwa alamat IP dan sumber daya AG berjalan pada simpul yang sama, konfigurasikan batasan kolokasi.
sudo pcs constraint colocation add <NameForIPResource> with promoted <NameForAGResource>-clone INFINITYDalam contoh ini,
NameForIPResourceadalah nama untuk sumber daya IP, danNameForAGResourcemerupakan nama untuk sumber daya AG.Buat batasan pemesanan untuk memastikan bahwa sumber daya AG sudah siap dan berjalan sebelum alamat IP. Meskipun batasan kolokasi menyiratkan batasan pemesanan, langkah ini memberlakukannya.
sudo pcs constraint order promote <NameForAGResource>-clone then start <NameForIPResource>Dalam contoh ini,
NameForIPResourceadalah nama untuk sumber daya IP, danNameForAGResourcemerupakan nama untuk sumber daya AG.
Langkah selanjutnya
Dalam tutorial ini, Anda mempelajari cara membuat dan mengonfigurasi grup ketersediaan untuk SQL Server di Linux. Anda mempelajari cara untuk:
- Aktifkan grup ketersediaan.
- Membuat titik akhir dan sertifikat AG.
- Gunakan SQL Server Management Studio (SSMS) atau Transact-SQL untuk membuat AG.
- Buat login dan izin SQL Server untuk Pacemaker.
- Buat sumber daya AG di kluster Pacemaker.
Untuk sebagian besar tugas administrasi AG, termasuk peningkatan dan failover, lihat: