Artikel ini menjelaskan proses penyebaran langkah demi langkah pengiriman SQL Server Log. Ini adalah solusi pemulihan bencana tingkat basis data yang mudah disiapkan dan dipelihara.
Pengiriman log melibatkan tiga langkah:
- Buat cadangan log di database utama.
- Salin cadangan ke lokasi jaringan atau direktori tertentu di server sekunder.
- Pulihkan cadangan log di server sekunder.
Teknologi pengiriman log melakukan langkah-langkah yang dijelaskan di atas dengan menggunakan pekerjaan agen SQL Server. Selama proses konfigurasi, wizard pengiriman log membuat pekerjaan tersebut di server primer dan sekunder.
Pengiriman log dapat dilakukan dalam dua mode operasional.
- Mode pemulihan . Pekerjaan SQL memulihkan cadangan log transaksi di pangkalan data sekunder. Status databasenya adalah RESTORING , dan tidak dapat diakses.
- Mode siaga . Pekerjaan SQL memulihkan cadangan log transaksi di database sekunder, tetapi database dapat tetap dalam mode baca-saja. Oleh karena itu, pengguna dapat melakukan operasi baca di atasnya. Dengan opsi ini, kami dapat membongkar aplikasi pelaporan.
Catatan:mode Siaga memiliki kelemahan:database tidak tersedia selama eksekusi pekerjaan pemulihan. Semua pengguna yang terhubung ke database harus memutuskan sambungan selama proses itu. Jika tidak, pekerjaan pemulihan dapat ditunda .
Kerugian utama dari pengiriman log adalah tidak adanya dukungan failover otomatis. Untuk melakukan failover, Anda harus menjalankan langkah-langkah berikut:
- Buat cadangan tail-log dan salin di server database sekunder.
- Hentikan semua tugas pengiriman log di server utama.
- Pulihkan Log di server sekunder.
Proses ini dapat menunda ketersediaan database sekunder.
Sekarang, kami melanjutkan ke pemeriksaan proses penerapan langkah demi langkah. Pertama-tama kita siapkan workstation dengan cara mengaturnya sebagai berikut:
Nama Server | Peran |
SQL01 | Server Utama |
SQL02 | Server Sekunder |
iSCSI\SQL2017 | Server pemantauan |
\\domain\Log Cadangan Pengiriman | Berbagi Jaringan untuk menyalin cadangan |
Konfigurasi Server Utama
SQL01 bertindak sebagai Server Utama dan database. Kami akan menyiapkan pengiriman Log antara database AdventureWorks2017.
Untuk mengonfigurasi pengiriman Log, sambungkan ke instance SQL01:
- Buka SQL Server Management Studio
- Perluas Basis Data
- Klik kanan pada AdventureWorks2017
- Arahkan kursor ke Tugas
- Klik Kirim Log Transaksi.
Properti Basis Data kotak dialog terbuka.
Untuk mengaktifkan pengiriman log, klik Aktifkan ini sebagai database utama dalam konfigurasi pengiriman log pilihan.
Untuk mengonfigurasi jadwal pencadangan log transaksi untuk pengiriman log, klik Setelan Cadangan .
Kotak dialog, 'Setelan cadangan Log Transaksi' akan terbuka.
Di kotak dialog, tentukan jaringan berbagi tempat Anda ingin menyalin cadangan log transaksi – Jalur jaringan ke folder cadangan kolom tulisan. Anda dapat menentukan periode penyimpanan cadangan di Hapus file yang lebih lama dari dinyatakan dalam kotak teks. Jika pekerjaan pencadangan gagal atau file cadangan tidak muncul selama waktu yang ditentukan di kotak teks, SQL Server memunculkan peringatan.
Dalam pengiriman log, SQL Server menyalin cadangan file log ke jaringan berbagi. Wisaya secara otomatis membuat pekerjaan cadangan selama proses penyebaran. Itu juga membuat jadwal secara otomatis, tetapi Anda dapat mengubahnya dengan mengklik tombol Jadwal.
Dalam kasus saya, saya telah mengubah nama pekerjaan pencadangan untuk mengidentifikasinya. Nama pekerjaannya adalah LogShipping_Backup_AdventureWorks2017 .
Saya tidak membuat perubahan apa pun dalam jadwal pekerjaan dan pengaturan kompresi cadangan.
Konfigurasi Server Sekunder
Untuk menambahkan server dan database sekunder, klik “Tambah” di Properti Basis Data kotak dialog.
Kotak dialog bernama Setelan Database Sekunder akan buka. Kita harus terhubung ke server database sekunder. Untuk melakukannya, klik “Tambah.”
Sebuah kotak dialog terbuka. Masukkan nama server dan klik Hubungkan :
Konfigurasi pengaturan database sekunder
Inisialisasi Database Sekunder
Di tab inisialisasi database Sekunder, Anda dapat mengatur salah satu dari tiga opsi berikut untuk memulihkan database:
- Jika database tidak ada di server Sekunder, Anda dapat membuat cadangan lengkap dan memulihkannya di server sekunder. Dalam skenario ini, Anda dapat menggunakan opsi pertama.
- Jika ada cadangan lengkap database yang dihasilkan oleh pekerjaan pencadangan lain, atau Anda sudah memilikinya, Anda dapat memulihkannya di server sekunder. Dalam skenario ini, Anda dapat memilih opsi kedua.
- Jika Anda telah memulihkan database sekunder dengan status NORECOVERY, Anda dapat memilih opsi ketiga.
Salin File
Pada Salin file tab, Anda dapat menentukan direktori tujuan untuk lokasi file cadangan yang disalin. Periode retensi juga ditentukan di sana.
Wisaya membuat Pekerjaan SQL untuk menyalin file ke direktori tujuan. Folder tujuan pencadangan adalah \\domain\Log Shipping Backups. Nama pekerjaan penyalinan adalah LogShipping_Copy_SQL01_AdventureWorks2017 .
Pulihkan Log Transaksi
Di Pulihkan Log Transaksi tab, Anda dapat menentukan mode database. Jika Anda ingin menyimpan database dalam mode hanya-baca, pilih Mode siaga atau pilih Tidak ada mode pemulihan .
Dalam demo ini, kami mempertahankan status basis data sebagai NORECOVERY. Anda dapat menentukan penundaan pemulihan cadangan dan mengonfigurasi peringatan untuk cadangan yang tidak dipulihkan dalam interval yang ditentukan. Dalam kasus kami, kami tidak menggunakan pengaturan default.
Nama tugas pemulihan adalah LogShipping_Restore_SQL01_AdventureWorks2017.
Setelah konfigurasi siap, klik OK untuk menyimpan perubahan.
Seperti yang Anda lihat, server dan database sekunder telah ditambahkan di “Kisi database dan instance server sekunder ” pada Properti Basis Data layar.
Konfigurasikan Instance Pemantauan
Jika Anda ingin mengonfigurasi instance server Monitor, beri tanda centang untuk Gunakan instance server monitor . Untuk menambahkan instance monitor, klik Setelan .
Kami akan menggunakan instance iscsi\SQL2017 sebagai server pemantauan pengiriman log.
Di Setelan Monitor Pengiriman Log kotak dialog, tentukan nama di Monitor server instance kotak teks.
Kami menggunakan sa akun untuk memantau pengiriman log. Oleh karena itu, Anda perlu memberikan sa sebagai username dan password. Anda juga dapat menentukan periode retensi peringatan dan riwayat pemantauan.
Di sini, kami menggunakan pengaturan default. Nama tugas peringatan adalah LogShipping_Alert_iscsi\sql2017 .
Klik OK untuk menyimpan konfigurasi dan menutup kotak dialog.
Anda dapat membuat skrip T-SQL untuk seluruh konfigurasi dengan mengklik Konfigurasi skrip tombol. Salin skrip konfigurasi ke clipboard atau file atau buka di jendela editor kueri baru.
Kami tidak ingin membuat skenario tindakan. Anda dapat mengabaikan langkah ini.
Klik OK untuk menyimpan konfigurasi pengiriman log, dan proses akan dimulai:
Setelah pengiriman Log dikonfigurasi, Anda dapat melihat kotak dialog sukses:
Skenario Kegagalan Uji Coba
USE [AdventureWorks2017]
GO
CREATE TABLE [Person](
[BusinessEntityID] [int] NOT NULL,
[PersonType] [nchar](2) NOT NULL,
[NameStyle] [dbo].[NameStyle] NOT NULL,
[Title] [nvarchar](8) NULL,
[FirstName] [dbo].[Name] NOT NULL,
[MiddleName] [dbo].[Name] NULL,
[LastName] [dbo].[Name] NOT NULL,
[Suffix] [nvarchar](10) NULL,
[EmailPromotion] [int] NOT NULL,
[ModifiedDate] [datetime] NOT NULL,
CONSTRAINT [PK_Person_BusinessEntityID] PRIMARY KEY CLUSTERED
(
[BusinessEntityID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
Jalankan kueri berikut untuk memasukkan data demo:
insert into [Person]([BusinessEntityID],[PersonType],[NameStyle],[Title],[FirstName] ,[MiddleName],[LastName] ,[Suffix] ,[EmailPromotion],[ModifiedDate])
select top 10 [BusinessEntityID],[PersonType],[NameStyle],[Title],[FirstName] ,[MiddleName],[LastName] ,[Suffix] ,[EmailPromotion],[ModifiedDate]
from Person.Person
Untuk melakukan failover, ambil cadangan tail-log dari database adventureworks2017. Jalankan kueri berikut:
Backup Log adventureworks2017 to disk='\\domain\LogShippingBackups\Tail_Log_Backup.trn' with norecovery
Hubungkan ke SQL02 (server sekunder) dan pulihkan cadangan log ekor menggunakan RESTORE WITH RECOVERY. Jalankan kode berikut:
RESTORE LOG [AdventureWorks2017] FROM DISK = N'\\domain\LogShippingBackups\Tail_Log_Backup.trn' WITH RECOVERY
Setelah cadangan tail-log berhasil dipulihkan, jalankan kueri untuk memverifikasi bahwa data disalin ke server sekunder:
Select * from person
Keluaran Kueri:
Seperti yang Anda lihat, data dipulihkan di server sekunder.
Kesimpulan
Pada artikel ini, kami telah menjelaskan proses pengiriman log SQL Server dan cara mengkonfigurasinya. Kami juga mendemonstrasikan proses failover langkah demi langkah dari pengiriman log.