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

Konfigurasikan Pengiriman Log SQL Server

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:

  1. Buat cadangan log di database utama.
  2. Salin cadangan ke lokasi jaringan atau direktori tertentu di server sekunder.
  3. 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:

  1. Buat cadangan tail-log dan salin di server database sekunder.
  2. Hentikan semua tugas pengiriman log di server utama.
  3. 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:

  1. Buka SQL Server Management Studio
  2. Perluas Basis Data
  3. Klik kanan pada AdventureWorks2017
  4. Arahkan kursor ke Tugas
  5. 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:

  1. 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.
  2. 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.
  3. 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.


  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 Mengimpor File JSON ke Tabel SQL Server

  2. SQL Query Where Column ='' mengembalikan karakter Emoji dan

  3. Memahami Penganalisis Beban Kerja untuk Memetakan Kemacetan Kinerja

  4. Menggunakan Indeks di Tabel yang Dioptimalkan Memori SQL Server

  5. SQL Server:Kiat Berguna untuk Pemula