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

Database Sistem SQL Server – Konsep Dasar

Pengantar

Desain SQL Server menyiratkan pemetaan satu-ke-banyak antara mesin database (instance) dan database yang dihosting di instance. Ini berarti bahwa Anda dapat menyebarkan beberapa database pada satu contoh server SQL. Menurut dokumentasi Microsoft, Anda dapat memiliki hingga 32767 database pada satu contoh SQL Server. Tentu saja, akan ada batasan, seperti sumber daya di server, mengelola konkurensi di TempDB, lalu lintas jaringan, dll.

Basis data yang digunakan pada instance SQL Server dapat berupa Basis Data Sistem atau Basis Data Pengguna. Database Sistem datang terinstal dengan contoh. Pada artikel ini, kita akan membahas tujuan dari setiap database Sistem. Selain itu, kami akan menjelaskan apa yang perlu Anda perhatikan saat mengelola database sistem di SQL Server.

Ikhtisar Basis Data Sistem

Basis data sistem adalah bagian dari banyak proses yang terjadi saat Anda menginstal instance SQL Server. Secara default, database ini dibuat di jalur berikut:

%programfiles%\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA

dan

%programfiles%\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Log

Jalannya bisa berbeda. Selama instalasi SQL Server, Anda dapat menentukan lokasi file database sistem.

Untuk membuat daftar semua database sistem dalam sebuah instance, Anda dapat memanggil kode di Listing 1. Listing 2 dapat digunakan untuk menentukan lokasi file data yang terkait dengan database sistem. Perhatikan bahwa di kedua skrip, kami menggunakan filter yang mengembalikan database dengan database_id 5 atau lebih tinggi dari 5.

Basis data sistem "terlihat" yang penting memiliki database_ids 1,2,3,4 – masing-masing merujuk ke master, tempdb, model, dan msdb. Ada juga database "tak terlihat" yang disebut database sumber daya dan database sistem lain yang dibuat saat Anda mengaktifkan fitur seperti replikasi.

-- Listing 1: System Databases
select 
name
,database_id
,create_date
,state_desc
,recovery_model_desc
,log_reuse_wait_desc
,physical_database_name
,is_db_chaining_on
,is_broker_enabled
,is_mixed_page_allocation_on
from sys.databases 
where database_id<5;

-- Listing 2: System Database Files
select 
name
,database_id
,DB_NAME(database_id)
,name
,physical_name
,type_desc
from sys.master_files 
where database_id<5;

Gambar 1:Basis Data Sistem

Basis Data Master

Basis data master adalah basis data pertama yang dibuka pada awal SQL Server, yang berisi data berikut:

  • Catatan struktur/konfigurasi instance dan semua database lainnya.
  • Tampilan manajemen paling dinamis yang diperlukan untuk memantau instance.

Dengan demikian, ia memiliki informasi yang diperlukan untuk membuka semua database lainnya. Makanya harus dibuka dulu. Pertanyaannya adalah bagaimana melakukannya.

Parameter startup SQL Server berisi dua entri, yang menentukan lokasi data database master dan file log. Parameter startup default hanya mencakup tiga baris – yang ketiga adalah lokasi file log kesalahan. Ketika SQL Server dijalankan, itu harus dapat menulis ke file log kesalahan itu.

Basis data master terbuka terlebih dahulu. Informasi yang disimpan dalam database master, termasuk konfigurasi yang ditentukan menggunakan sp_configure, berlaku untuk membuka database lain dan menyelesaikan proses startup instance.

Gambar 3:Parameter Startup SQL Server

Ada beberapa cara untuk mempelajari tentang objek sistem SQL Server yang berguna, seperti Tampilan dan Fungsi Manajemen Dinamis.

Misalnya, perluas tampilan atau node programabilitas untuk database master pada penjelajah objek. Di sana, tinjau nama objek ini dan dapatkan detail lebih lanjut dari Books Online.

Anda juga dapat memigrasikan login dari satu instance ke instance lainnya. Untuk itu, pulihkan cadangan database master ke instance tujuan. Kami akan menjelaskan teknik khusus dalam artikel terpisah.

Gambar 4:Menavigasi Objek Basis Data Master

Basis Data tempDB

Basis data tempDB bertanggung jawab atas penyimpanan data sementara seperti hasil antara dari operasi berat. Itu bisa berisi pembuatan ulang indeks, versi baris database yang dikonfigurasi dengan tingkat isolasi, dan fitur lain yang bergantung pada versi baris, seperti READ_COMMITTED_SNAPSHOT.

Kebanyakan orang akan menganggap tempDB sebagai potensi kemacetan kinerja, karena setiap fungsi basis data pengguna dalam sebuah instance bergantung pada tempDB.

Menyetel tempDB harus menjadi latihan yang disengaja. Namun, mulai dengan SQL Server 2016, Anda dapat mengatur tempDB secara akurat selama penginstalan SQL Server. Artikel sebelumnya menjelaskan secara rinci bagaimana Anda harus mengonfigurasi dan memantau tempDB.

Model Basis Data

Anda dapat memperlakukan database model sebagai template. Setiap database pengguna yang dibuat dalam contoh SQL Server mengambil konfigurasi database model. Ini memiliki ukuran dan pengaturan pertumbuhan otomatis yang sama, lokasi file yang sama, dll. Namun, Anda dapat menentukan pengaturan tersebut dengan sengaja dengan cara yang berbeda dalam pernyataan CREATE DATABASE.

Intinya, jika Anda memiliki aplikasi yang membuat database sendiri dengan pengaturan default, Anda mungkin ingin mengonfigurasi database model. Ini memastikan Anda memiliki kendali atas pergantian basis data yang dibuat secara otomatis ini.

Mari bereksperimen sedikit dengan ini, menggunakan kode di Listing 3.

-- Listing 3: Using the Model Database
select 
name
,database_id
,DB_NAME(database_id) database_name
,name
,physical_name
,type_desc
,size/1024*8 [size (MB)]
,growth/1024*8 [size (MB)]
from sys.master_files 
where DB_NAME(database_id)='model' or DB_NAME(database_id) like 'EXP%';
GO

create database EXP_BEFORE;
GO

USE [master]
GO
ALTER DATABASE [model] MODIFY FILE ( NAME = N'modeldev', SIZE = 102400KB , FILEGROWTH = 131072KB )
GO
ALTER DATABASE [model] MODIFY FILE ( NAME = N'modellog', SIZE = 102400KB )
GO

create database EXP_AFTER;
GO

select 
name
,database_id
,DB_NAME(database_id) database_name
,name
,physical_name
,type_desc
,size/1024*8 [size (MB)]
,growth/1024*8 [size (MB)]
from sys.master_files 
where DB_NAME(database_id)='model' or DB_NAME(database_id) like 'EXP%';
GO

Kode melakukan langkah-langkah berikut:

  1. Kueri sys.master_files untuk menentukan pengaturan yang digunakan dalam database model
  2. Buat database
  3. Ubah model pertumbuhan file database dan pengaturan pertumbuhan otomatis
  4. Buat database lain
  5. Kueri sys.master_files untuk lagi

Perhatikan frase tunggal untuk pembuatan database – “CREATE DATABASE.” Dengan cara ini, ia mengambil pengaturan milik database model. Hasilnya menunjukkan bahwa kedua kalinya kami mengeluarkan perintah CREATE DATABASE, database EXP_AFTER memperoleh ukuran file 96GB dan pertumbuhan otomatis 128 MB (lihat Gambar 5).

Gambar 5:Menggunakan Model Basis Data

Perlu juga disebutkan bahwa tidak semua pengaturan basis data diambil secara otomatis dari basis data model. Misalnya, MIXED_PAGE_ALLOCATION disetel ke OFF saat Anda membuat database baru, meskipun ON dalam model dan database sistem lainnya.

Basis Data msdb

Anda dapat menganggap msdb sebagai database SQL Server Agent. Ini menyimpan semua data yang terkait dengan pekerjaan, surat database, operator, dan otomatisasi. Data terkait pengiriman log transaksi, replikasi, dll, juga ada. Anda dapat memverifikasinya dengan menjalankan kumpulan kueri di Listing 4 di instans Anda. Misalnya, objek yang terkait dengan otomatisasi ada di msdb.

-- Listing 4: Querying msdb Objects

-- Jobs, Alerts, Operators sit in the msdb database ...
select * from msdb..sysjobs
select * from msdb..sysalerts
select * from msdb..sysoperators
select * from msdb..sysmail_allitems

-- ... NOT in the master database
select * from master..sysjobs
select * from master..sysalerts
select * from master..sysoperators
select * from master..sysmail_allitems

Anda dapat mempelajari banyak tentang objek dalam database msdb dengan mengekstrak dan menyelidikinya di SQL Server Books Online. Pendekatannya sama dengan database master.

Anda dapat memigrasikan pekerjaan, operator, dll. dari satu contoh SQL Server ke contoh lainnya. Untuk itu, ambil cadangan database msdb dari instance sumber dan pulihkan ke instance tujuan. Kami akan membahas ini di artikel lain.

Epilog

Pada artikel ini, kami telah memberikan gambaran singkat tentang database sistem.

Basis data sistem dilengkapi dengan penginstalan SQL Server secara default. Memahami berbagai database sistem dan perannya adalah bantuan yang sangat baik untuk mengelola instance SQL Server Anda.

Anda bisa mendapatkan informasi lebih lanjut tentang apa yang mereka simpan dan memahami cara mengelolanya dari Books Online dan artikel lain di CodingSight.

Referensi

  1. Database Sistem
  2. Database &Penyimpanan MS SQL Server
  3. Rantai Kepemilikan Lintas 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. Bitmap Mode Batch di SQL Server

  2. 2 Cara Membuat Database di Linked Server menggunakan T-SQL

  3. Konversi 'waktu' menjadi 'datetimeoffset' di SQL Server (Contoh T-SQL)

  4. Apakah ada cara untuk mengambil definisi tampilan dari SQL Server menggunakan ADO biasa?

  5. Menghapus Akun Email Database dari Profil (SSMS)