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

Dasar-dasar Otomatisasi Tugas SQL Server

Ini adalah artikel pengantar tentang otomatisasi di server SQL yang terutama berfokus pada konsep dasar. Kami akan membahas beberapa praktik standar dan beberapa contoh untuk membantu pemula memulai otomatisasi server SQL.

Artikel ini juga menyoroti pentingnya mengotomatisasi tugas server SQL untuk menghemat waktu dan tenaga yang diperlukan untuk melakukan tugas ini secara manual.

Selain itu, kita akan melihat kasus di mana bukanlah ide yang baik untuk mengotomatisasi tugas server SQL meskipun faktanya otomatisasi menghemat waktu dan tenaga.

Tentang Mengotomatiskan SQL Server

Mari kita kenali dulu istilah 'otomatisasi' dan apa sebenarnya otomatisasi tugas server SQL.

Apa itu Otomatisasi?

Otomasi adalah istilah luas yang mencakup berbagai hal, tetapi umumnya berarti alat pemrograman dan perangkat yang memungkinkan melakukan serangkaian tugas secara otomatis dengan sedikit atau tanpa campur tangan manusia.

Apa itu Otomatisasi SQL Server?

Otomatisasi SQL Server juga dapat memiliki beberapa arti, tetapi yang paling umum berkaitan dengan otomatisasi tugas administratif SQL Server untuk menghemat waktu dan tenaga.

Administrator basis data atau tim infrastruktur yang bertanggung jawab atas pengelolaan SQL Server dan basis data yang dihosting sering menghabiskan banyak waktu untuk melakukan tugas pemeliharaan basis data yang dapat diotomatiskan melalui metode yang berbeda dan dijadwalkan untuk dijalankan pada interval tertentu.

Dalam artikel ini, kami terutama berfokus pada otomatisasi tugas administrasi SQL Server.

Kapan Anda Harus Mengotomatiskan Tugas SQL

Mengotomatiskan tugas administratif SQL Server memerlukan perencanaan yang matang sebelum diimplementasikan. Setiap tugas administratif SQL seperti pencadangan, pemeliharaan basis data, atau pemantauan basis data idealnya diotomatisasi jika memenuhi tujuan tanpa menyebabkan masalah lain.

Saat Anda Tidak Mengotomatiskan Tugas SQL

Meskipun otomatisasi sangat berguna dalam banyak kasus, masih ada beberapa tugas yang sebaiknya dilakukan secara manual.

Misalnya, jika tugas administrasi database membutuhkan waktu 5 menit untuk diselesaikan dan otomatisasi tugas tersebut memerlukan 15 jam penulisan dan pengujian skrip otomatisasi, maka akan lebih efektif untuk melakukan tugas ini secara manual.bacsql

Ada tugas-tugas tertentu yang tidak boleh diotomatisasi. Misalnya, sering kali merupakan bagian dari tugas DBA untuk memeriksa perubahan database sebelum menyebarkannya ke server langsung. Hal ini dilakukan untuk memastikan bahwa perubahan tersebut kompatibel dengan database target. Mengotomatiskan tugas ini memiliki lebih banyak risiko daripada manfaat, jadi lebih baik dibiarkan apa adanya.

Secara umum, jika ada tugas basis data yang memerlukan intervensi manual (yaitu harus dilihat atau dikelola oleh seseorang/tim untuk pindah ke langkah/tahap berikutnya) sesuai dengan aturan dan peraturan perusahaan Anda, maka tugas tersebut otomatis sepenuhnya. tidak layak kecuali disetujui oleh manajemen puncak perusahaan Anda.

Contoh Otomatisasi SQL

Sekarang mari kita lihat beberapa contoh otomatisasi SQL.

Skenario Pencadangan Basis Data (perspektif DBA)

Database administrator (DBA) menangani database perusahaan dan tugas sehari-hari mereka termasuk melayani permintaan terkait database dan mengelola server database.

DBA menghabiskan sebagian besar waktunya untuk mengelola dan menerapkan perubahan kecil ke database dan mengurus server database.

DBA harus melakukan tugas konsisten berikut:

  1. Buat cadangan harian database di akhir setiap hari kerja
  2. Buat cadangan mingguan di akhir setiap minggu
  3. Buat cadangan bulanan setiap akhir bulan.

Pencadangan harian membutuhkan waktu setengah jam dan ini adalah hal terakhir yang dilakukan DBA saat berangkat hari itu. Meskipun mereka dapat melakukan banyak tugas setelah proses pencadangan harian dimulai, mereka masih harus mengawasi bagaimana itu akan memastikan bahwa pencadangan selesai. Ini karena cadangan harus disimpan di disk cadangan jika sudah siap.

Bahkan jika kita mengabaikan waktu yang dihabiskan untuk pencadangan mingguan dan bulanan, waktu yang dibutuhkan untuk menyelesaikan pencadangan harian akan meningkat semakin banyak Anda melakukan proses ini karena basis data akan memiliki lebih banyak data. Meskipun diperlukan waktu setengah jam untuk melakukan pencadangan harian di awal, jumlah waktu ini dapat meningkat menjadi kira-kira satu jam dalam beberapa minggu atau bulan tergantung pada pertumbuhan data dalam sistem basis data.

Ini adalah tugas yang tidak berubah yang harus diulang terus-menerus, sehingga DBA mungkin saja bosan atau kehilangan konsentrasi dan membuat kesalahan atau ketinggalan satu atau dua hari.

Jika DBA mengotomatiskan tugas SQL ini, maka mereka tidak hanya akan menghemat waktu dan tenaga. Kemungkinan membuat kesalahan akan diminimalkan.

Proses pencadangan harian dapat dijadwalkan untuk dimulai pada malam hari ketika interaksi basis data rendah. Hari berikutnya, DBA dapat memeriksa pencadangan dan memanfaatkan jam terakhir hari kerja (yang sebelumnya digunakan untuk proses pencadangan) untuk tugas yang lebih penting dan mendesak.

Skenario Pengembangan dan Penerapan Basis Data

Mari kita pertimbangkan contoh yang sangat umum dari pengembangan dan penerapan basis data (saya sengaja mengecualikan pengujian agar tetap berada dalam cakupan artikel ini). Pengembang database menggunakan alat pengembangan database seperti SQL Server Data Tools (SSDT) ​​untuk menambahkan tabel baru ke database. Setelah ini selesai, mereka menyimpan perubahan dalam proyek database SQL. Perubahan ini kemudian dikirim ke DBA atau tim infrastruktur yang harus meninjau perubahan ini dan menerapkannya ke server langsung.

Poin-poin pentingnya adalah sebagai berikut:

  1. Pengembang basis data tidak boleh mempublikasikan perubahan basis data mereka secara langsung ke server langsung sesuai praktik standar
  2. Administrator database atau tim infrastruktur yang mengelola server langsung tidak dapat memublikasikan perubahan apa pun ke database langsung sebelum meninjau perubahan ini untuk memastikan bahwa perubahan tersebut tidak mengganggu konsistensi database.

Seperti yang dapat Anda pahami dari apa yang telah kita diskusikan, mengotomatiskan sepenuhnya tugas pengembangan dan penerapan basis data tidak praktis dan menimbulkan banyak risiko keamanan.

Jadi keputusan terbaik adalah mengotomatiskan langkah-langkah yang bergantung pada DBA atau tim infrastruktur.

Tugas Pemeliharaan Indeks Basis Data

Indeks basis data memainkan peran penting dalam mengambil kumpulan hasil (baris) lebih cepat dari basis data. Namun, indeks ini memang membutuhkan pemeliharaan seiring waktu. Pemeliharaan indeks basis data dapat dilakukan secara manual selama jam sibuk atau otomatis. Ini bisa menjadi tugas yang sangat memakan waktu, jadi lebih baik untuk mengotomatisasi tugas ini terutama ketika ada begitu banyak hal terkait server database yang harus dikelola.

Namun, beberapa ahli berpendapat dengan sudut pandang ini dan merekomendasikan untuk membatasi pemeliharaan indeks sampai batas tertentu untuk mengawasi proses atau bahkan melakukan ini sepenuhnya secara manual.

Dalam hal pemeliharaan indeks, hal-hal berikut dapat meningkatkan kinerja indeks basis data:

  1. Membangun Kembali Indeks
  2. Mengatur Ulang Indeks
  3. Defrag indeks
  4. Perbarui Statistik

Cara Mengotomatiskan Tugas SQL

Sekarang mari kita lihat persyaratan dasar untuk mengotomatisasi Tugas SQL diikuti dengan contoh yang sangat sederhana.

Menyiapkan Contoh Basis Data

Panduan ini memerlukan database sampel tabel tunggal berikut yang disebut UniversityV6 diatur sebagai berikut:

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

USE UniversityV6

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

Jalankan skrip untuk membuat database sampel:

Memulai Agen SQL Server

Mengotomatiskan Tugas SQL biasanya bergantung pada agen SQL Server kecuali Anda memutuskan untuk memilih rute alternatif.

Hal pertama yang Anda butuhkan adalah memastikan bahwa SQL Server Agent berjalan. Jika tidak berjalan, Anda harus memulainya secara manual dan tetap menjalankannya.

Hubungkan ke contoh SQL Server dan cari node SQL Server Agent di Object Explorer. Jika ada ikon 'berhenti' merah yang ditampilkan di simpul ini, itu belum dimulai:

Klik kanan Agen SQL Server simpul dan klik Mulai:

Selanjutnya, Anda harus mengonfirmasi bahwa Anda ingin memulai layanan agen SQL Server di server Anda. Klik Ya untuk melakukan ini:

Setelah dimulai, SQL Server Agent akan menampilkan ikon hijau kecil di sebelahnya. Anda juga dapat memperluas simpul sekarang:

Buat Pekerjaan Baru

Klik kanan pada Pekerjaan folder dan klik Pekerjaan Baru… :

Ketik “Tugas otomatis Backup UniversityV6 ” dan klik Langkah di bilah navigasi sisi kiri:

Tambahkan Langkah Pekerjaan Baru

Selanjutnya, klik Baru , ketik “Backup UniversityV6” sebagai nama langkah, tambahkan skrip SQL berikut, dan klik OK :

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

Klik Oke untuk menyelesaikan penyiapan pekerjaan.

Melihat Pekerjaan yang Dibuat

Gulir ke bawah ke Agen Server SQL dan temukan Pekerjaan yang baru dibuat:

Uji-jalankan Pekerjaan (Tugas Otomatis)

Klik kanan Cadangkan tugas otomatis UniversityV6 dan Klik Mulai Pekerjaan di Langkah…:

Pekerjaan akan dimulai dan selesai:

Periksa Lokasi Pencadangan

Sekarang, pergi ke lokasi di mana tugas otomatis ini membuat cadangan baru:

Selamat! Anda telah berhasil mengotomatiskan tugas membuat cadangan basis data. Sekarang Anda dapat menyimpannya di drive cadangan apa pun hanya dengan mengubah nama huruf drive.

Harap diingat bahwa Anda harus selalu menyimpan cadangan ke drive cadangan selain drive sistem C:. Anda dapat menjadwalkan tugas ini untuk dijalankan secara berkala dengan mengeklik kanan tugas, mengeklik P properti , lalu mengklik Jadwal :

Hal yang harus dilakukan

Sekarang Anda dapat mengotomatiskan tugas-tugas pencadangan basis data dasar, silakan coba yang berikut ini untuk meningkatkan keterampilan Anda:

  1. Jadwalkan tugas ini untuk dijalankan setiap hari di sore hari selama satu minggu sebagai ujian
  2. Buat tabel baru bernama Statistik dalam database sampel dengan kolom berikut:
    1. StatID (INT)
    2. StatDate (DATETIME2)
    3. TotalRows (INT)

Sekarang uji diri Anda dengan membuat tugas otomatis (pekerjaan baru) untuk mencatat jumlah baris untuk Siswa tabel bersama dengan tanggal/waktu di Stats meja. Cobalah untuk sering mengisi tabel Siswa.

Jadwalkan tugas untuk dijalankan setiap jam dan periksa apakah Statistik tabel mencerminkan penyisipan data Anda dengan menunjukkan jumlah baris tabel setiap jam.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ekspor hasil prosedur tersimpan yang disetel ke Excel di SSMS

  2. Masukkan Massal File Data Ke SQL Server

  3. Cara mempercepat penyisipan massal ke MS SQL Server menggunakan pyodbc

  4. Cara Menambahkan File Data ke Database SQL Server (T-SQL)

  5. Sisipkan Massal File CSV yang Dikutip Sebagian di SQL Server