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

Mengotomatiskan Pemulihan Uji Basis Data di SQL Server

Artikel ini membahas tentang mengotomatisasi proses restorasi database yang sering dilakukan secara manual oleh DBA atau tim infrastruktur yang bertanggung jawab atas pengelolaan server database dan database.

Artikel ini juga menyoroti pentingnya mengotomatisasi tugas administrasi basis data seperti pencadangan dan pemulihan basis data untuk memastikan konsistensi dan keandalan basis data produksi tetap utuh.

Selain itu, akan ada beberapa tips tentang cara merencanakan dan menerapkan otomatisasi tugas pemulihan basis data dalam skenario kehidupan nyata.

Pemulihan Uji Basis Data dan CheckDB (Perspektif DBA)

Pentingnya pencadangan dan pemulihan basis data SQL Server dari sudut pandang administrator basis data atau tim infrastruktur (bertanggung jawab atas manajemen server basis data) lebih dari sekadar menjalankan pencadangan dan pemulihan karena ini adalah salah satu cara untuk memastikan bahwa strategi pemulihan bencana (DR) sudah diterapkan dengan baik.

Ini juga berarti bahwa operasi pencadangan dan pemulihan basis data lebih efektif jika didukung oleh mekanisme pemeriksa konsistensi lainnya.

Menggunakan Perintah DBCC CHECKDB

SQL Server hadir dengan perintah praktis untuk memeriksa konsistensi database.

Menurut dokumentasi Microsoft, perintah DBCC CHECKDB digunakan untuk memeriksa integritas logis dan fisik dari semua objek dalam database dengan melakukan sejumlah operasi yang berbeda.

Eksekusi perintah yang berhasil tanpa kesalahan menunjukkan bahwa database dalam keadaan stabil dan konsisten.

Perintah ini hanya dapat dijalankan sebagai berikut asalkan database yang diinginkan terhubung:

Skenario Pemulihan Uji Basis Data

Mari kita pertimbangkan skenario dunia nyata di mana DBA secara konsisten membuat cadangan database produksi.

Namun, membuat cadangan tidak menjamin bahwa pemulihan bencana basis data yang juga dikenal sebagai DR ada, kecuali jika basis data berhasil dipulihkan.

Jadi basis data harus dipulihkan dari cadangan untuk memastikan bahwa jika terjadi insiden basis data, data dapat dipulihkan dengan sukses.

Cadangan basis data produksi tidak boleh dipulihkan di server produksi untuk tujuan pengujian.

Jadi, bagaimana DBA memastikan bahwa cadangannya baik-baik saja? Cukup dengan memulihkan cadangan database terbaru di server pengujian lain.

Setelah cadangan database berhasil dipulihkan, perintah DBCC CHECKDB harus dijalankan untuk memastikan bahwa database yang dipulihkan konsisten dan stabil.

Ini adalah tugas penting tetapi memakan waktu yang juga membutuhkan banyak perawatan. Idealnya, ini harus otomatis – kecuali aturan dan peraturan organisasi Anda membatasi otomatisasi tugas khusus ini.

Mengotomatiskan Pemulihan Uji Basis Data

Sekarang mari kita lihat cara mengotomatiskan pemulihan pengujian basis data secara mendetail.

Merencanakan Pemulihan Uji Basis Data

Sangat penting untuk merencanakan langkah Anda sehingga Anda dapat mengotomatiskannya dengan mudah. Perencanaan juga mengharuskan Anda memenuhi prasyarat otomatisasi tugas SQL.

Prasyarat

Harap pastikan bahwa prasyarat berikut terpenuhi sebelum Anda mengotomatiskan tugas restorasi database di SQL server menggunakan cara tradisional:

  1. Otomasi Anda tidak bertentangan dengan aturan dan regulasi organisasi
  2. Anda berwenang untuk mengotomatiskan tugas ini
  3. Agen SQL sedang berjalan
  4. Server database tempat pemulihan akan dilakukan harus aktif dan berjalan
  5. Proses backup database sudah otomatis dan backup dikirim ke drive backup
  6. Drive cadangan dapat diakses oleh server pengujian

Ringkasan Langkah

  1. Pencadangan basis data berjalan di server
  2. Cadangan ini disimpan ke drive cadangan yang dapat diakses oleh server pengujian lain
  3. Tugas SQL telah dijadwalkan di server pengujian untuk menjalankan pemulihan cadangan
  4. Tugas SQL setelah dijalankan dapat diikuti dengan menjalankan DBCC CheckDB secara manual pada database yang dipulihkan, tetapi juga dapat diotomatisasi

Artikel Referensi

Silakan merujuk ke artikel Dasar-dasar Otomatisasi Tugas SQL Server untuk mengotomatiskan tugas pencadangan basis data karena artikel ini mengasumsikan bahwa tugas pencadangan basis data telah diotomatisasi dan menyimpan cadangan pada drive cadangan yang dapat diakses oleh server uji.

Mereplikasi Tugas Pencadangan Basis Data

Mari kita asumsikan bahwa tugas pencadangan telah dijalankan dan pencadangan telah dibuat di drive pencadangan.

Untuk mereplikasi tugas ini, kita akan membuat database sampel yang disebut UniversityV7 sebagai berikut:

-- (1) Create the UniversityV7 sample database
CREATE DATABASE UniversityV7;
GO

USE UniversityV7

CREATE TABLE [dbo].[Student] (
    [StudentId] INT           IDENTITY (1, 1) NOT NULL,
    [Name]      VARCHAR (30)  NULL,
    [Course]    VARCHAR (30)  NULL,
    [Marks]     INT           NULL,
    [ExamDate]  DATETIME2 (7) NULL,
    CONSTRAINT [PK_Student] PRIMARY KEY CLUSTERED ([StudentId] ASC)
);
GO

INSERT INTO [dbo].[Student]
           ([Name]
           ,[Course]
           ,[Marks]
           ,[ExamDate])
     VALUES
           ('Asif'
           ,'Power BI Fundamentals'
           ,85
           ,'01 Jan 2019'),
		   ('Mike'
           ,'Power BI Fundamentals'
           ,80
           ,'01 Jan 2019'),
		   ('Sadaf'
           ,'Power BI Fundamentals'
           ,75
           ,'01 Jan 2019')
		   
GO

Menjalankan skrip ini akan membuat dan mengisi database sampel.

Periksa database dengan menjalankan skrip berikut:

SELECT [StudentId]
      ,[Name]
      ,[Course]
      ,[Marks]
      ,[ExamDate]
  FROM [UniversityV7].[dbo].[Student]

Outputnya harus sebagai berikut:

Mari kita asumsikan bahwa tugas pencadangan dilakukan secara otomatis. Namun, untuk melewati langkah ini, kita masih harus membuat backup database secara manual dan menyimpannya ke drive backup yang dapat diakses oleh server pengujian.

Replikasi tugas pencadangan basis data dengan menjalankan skrip T-SQL berikut:

-- Backup the UniversityV7 sample database using the date stamp
DECLARE @BackupName VARCHAR(100)
SET @BackupName=CONCAT('C:\Backup\UniversityV7-',FORMAT(GETDATE(),'yyyy-MM-dd'),'.bak')
BACKUP DATABASE UniversityV7 TO [email protected] WITH COMPRESSION, INIT;
GO

Pemeriksaan Cadangan Basis Data

Periksa cadangan database dengan menavigasi ke folder tempat kita baru saja membuat cadangan dan melihat file cadangan:

Hubungkan ke instance SQL lain

Sekarang, mari kita sambungkan ke instance SQL lain untuk mengemulasi server pengujian. Hal pertama yang harus diperiksa adalah apakah SQL Agent berjalan atau tidak.

Mulai Agen SQL (jika tidak berjalan)

Klik kanan Agen SQL Server dan klik Mulai seperti yang ditunjukkan di bawah ini:

Buat Pekerjaan Baru

Selanjutnya, klik kanan Pekerjaan , klik Pekerjaan Baru… lalu ketik nama pekerjaan sebagai “Pemulihan Uji Basis Data ”:

Selanjutnya, pilih Langkah di menu navigasi kiri, klik Baru , lalu ketik “Pemulihan Uji Basis Data ” sebagai nama langkah:

Ketik skrip T-SQL berikut ke dalam kotak input Command setelah memastikan bahwa jenis T-SQL dipilih dalam daftar drop-down yang sesuai.

-- Restore the UniversityV7 sample database 
RESTORE DATABASE UniversityV7 FROM DISK=N'C:\Backup\UniversityV7-2019-08-27.bak'
WITH
MOVE 'UniversityV7' TO 'C:\Program Files\Microsoft SQL Server\MSSQL12.SQLTAB\MSSQL\DATA\UniversityV7_Data.mdf',
MOVE 'UniversityV7_Log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL12.SQLTAB\MSSQL\DATA\UniversityV7_Log.ldf'
,RECOVERY,REPLACE,STATS=10;
GO

Harap diperhatikan bahwa jalur C:\Program Files\Microsoft SQL Server\MSSQL12.SQLNAME\MSSQL\DATA\UniversityV7_Data.mdf disediakan di skrip ini hanya untuk tujuan demo. Y Anda harus mengganti ini dengan sebenarnya jalur instance server SQL pengujian Anda.

Terakhir, klik OK.

Jadwalkan Tugas untuk dijalankan dalam 2 menit

Klik kanan Pemulihan Uji Basis Data pekerjaan di bawah Pekerjaan dan klik Properti:

Klik Baru , ketik “Setiap 2 menit (pengujian) ”, dan atur jadwal agar berjalan setelah dua menit:

Setelah beberapa menit, sambungkan ke server pengujian dan perluas Database simpul untuk melihat bahwa UniversityV7 database telah berhasil dipulihkan oleh SQL Server Task (Job) otomatis.

Silakan jalankan DBCC CheckDB untuk memastikan bahwa proses restorasi database baik-baik saja.

Selamat! Anda telah berhasil mengotomatiskan proses pemulihan pengujian database.

Hal yang harus dilakukan

Sekarang setelah Anda dapat mengotomatiskan pencadangan basis data dan menguji pemulihan, coba selesaikan tugas berikut untuk meningkatkan keterampilan Anda:

  1. Tambahkan DBCC CheckDB sebagai bagian dari proses pemulihan database otomatis
  2. Otomatiskan pencadangan di satu server dan pulihkan di server uji lain
  3. Otomatiskan pencadangan basis data dan uji tugas pemulihan untuk beberapa basis data


  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 PILIH * tapi tanpa Nama kolom harus unik di setiap tampilan

  2. DATEDIFF() Mengembalikan Hasil yang Salah di SQL Server? Baca ini.

  3. Apa perbedaan antara varchar dan nvarchar?

  4. Apakah kueri ANSI JOIN vs. non-ANSI JOIN akan bekerja secara berbeda?

  5. Cara Mengganti Nama Database SQL Server menggunakan T-SQL