Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

SQL सर्वर सिस्टम डेटाबेस - मूल अवधारणाएँ

परिचय

SQL सर्वर डिज़ाइन का तात्पर्य डेटाबेस इंजन (उदाहरण) और उदाहरण पर होस्ट किए गए डेटाबेस के बीच एक-से-अनेक मैपिंग है। इसका अर्थ है कि आप SQL सर्वर के एक उदाहरण पर कई डेटाबेस परिनियोजित कर सकते हैं। Microsoft दस्तावेज़ के अनुसार, आपके पास SQL ​​सर्वर के एकल उदाहरण पर 32767 तक डेटाबेस हो सकते हैं। बेशक, सर्वर पर संसाधन, TempDB पर संगामिति का प्रबंधन, नेटवर्क ट्रैफ़िक, आदि जैसी सीमाएँ होंगी।

SQL सर्वर इंस्टेंस पर तैनात डेटाबेस या तो सिस्टम डेटाबेस या उपयोगकर्ता डेटाबेस हो सकते हैं। सिस्टम डेटाबेस इंस्टेंस के साथ इंस्टाल हो जाते हैं। इस लेख में, हम प्रत्येक सिस्टम डेटाबेस के उद्देश्य पर चर्चा करेंगे। साथ ही, हम स्पष्ट करेंगे कि SQL सर्वर पर सिस्टम डेटाबेस को प्रबंधित करते समय आपको किन बातों का ध्यान रखना चाहिए।

सिस्टम डेटाबेस का अवलोकन

जब आप SQL सर्वर का इंस्टेंस स्थापित करते हैं तो सिस्टम डेटाबेस कई प्रक्रियाओं का हिस्सा होते हैं। डिफ़ॉल्ट रूप से, ये डेटाबेस निम्न पथों में बनाए जाते हैं:

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

और

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

रास्ता अलग हो सकता है। SQL सर्वर की स्थापना के दौरान, आप सिस्टम डेटाबेस फ़ाइलों का स्थान निर्दिष्ट कर सकते हैं।

एक उदाहरण में सभी सिस्टम डेटाबेस को सूचीबद्ध करने के लिए, आप लिस्टिंग 1 में कोड को लागू कर सकते हैं। लिस्टिंग 2 का उपयोग सिस्टम डेटाबेस से जुड़े डेटाफाइल के स्थान को निर्धारित करने के लिए किया जा सकता है। ध्यान दें कि दोनों लिपियों में, हम 5 या 5 से अधिक के डेटाबेस_आईडी वाले फ़िल्टर रिटर्निंग डेटाबेस का उपयोग करते हैं।

आवश्यक "दृश्यमान" सिस्टम डेटाबेस में डेटाबेस_आईड्स 1,2,3,4 हैं - वे क्रमशः मास्टर, टेम्पर्ड, मॉडल और एमएसडीबी को संदर्भित करते हैं। एक "अदृश्य" डेटाबेस भी होता है जिसे संसाधन डेटाबेस कहा जाता है और जब आप प्रतिकृति जैसी सुविधाओं को सक्षम करते हैं तो अन्य सिस्टम डेटाबेस बनाए जाते हैं।

-- 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;

चित्र 1:सिस्टम डेटाबेस

मास्टर डेटाबेस

मास्टर डेटाबेस पहला डेटाबेस है जो SQL सर्वर के प्रारंभ में खुला होता है, जिसमें निम्न डेटा होता है:

  • इंस्टेंस और अन्य सभी डेटाबेस की संरचना/कॉन्फ़िगरेशन के रिकॉर्ड।
  • सबसे गतिशील प्रबंधन विचार जो उदाहरण की निगरानी के लिए आवश्यक हैं।

इस प्रकार, इसमें अन्य सभी डेटाबेस खोलने के लिए आवश्यक जानकारी है। इसलिए इसे सबसे पहले खोलना होगा। सवाल यह है कि इसे कैसे किया जाए।

SQL सर्वर स्टार्टअप पैरामीटर में दो प्रविष्टियाँ होती हैं, जो मास्टर डेटाबेस डेटा और लॉग फ़ाइलों के स्थान को परिभाषित करती हैं। डिफ़ॉल्ट स्टार्टअप पैरामीटर में केवल तीन लाइनें शामिल हैं - तीसरा त्रुटि लॉग फ़ाइल स्थान है। जब SQL सर्वर शुरू होता है, तो उसे उस त्रुटि लॉग फ़ाइल को लिखने में सक्षम होना चाहिए।

मास्टर डेटाबेस पहले खुलता है। मास्टर डेटाबेस में संग्रहीत जानकारी, sp_configure का उपयोग करके परिभाषित कॉन्फ़िगरेशन सहित, अन्य डेटाबेस खोलने और इंस्टेंस स्टार्टअप प्रक्रिया को पूरा करने के लिए लागू होती है।

चित्र 3:SQL सर्वर स्टार्टअप पैरामीटर

उपयोगी SQL सर्वर सिस्टम ऑब्जेक्ट्स के बारे में जानने के कई तरीके हैं, जैसे डायनामिक मैनेजमेंट व्यू और फ़ंक्शंस।

उदाहरण के लिए, ऑब्जेक्ट एक्सप्लोरर पर मास्टर डेटाबेस के लिए दृश्य या प्रोग्रामयोग्यता नोड्स का विस्तार करें। वहां, इन वस्तुओं के नामों की समीक्षा करें और पुस्तकें ऑनलाइन से अधिक विवरण प्राप्त करें।

आप लॉगिन को एक इंस्टेंस से दूसरे इंस्टेंस में भी माइग्रेट कर सकते हैं। उसके लिए, मास्टर डेटाबेस का बैकअप गंतव्य आवृत्ति पर पुनर्स्थापित करें। हम एक अलग लेख में विशिष्ट तकनीक का वर्णन करेंगे।

चित्र 4:मास्टर डेटाबेस ऑब्जेक्ट नेविगेट करना

tempDB डेटाबेस

TempDB डेटाबेस अस्थायी डेटा के भंडारण के लिए जिम्मेदार है जैसे कि भारी संचालन के मध्यवर्ती परिणाम। इसमें अनुक्रमणिका पुनर्निर्माण, आइसोलेशन स्तरों के साथ कॉन्फ़िगर किए गए डेटाबेस के पंक्ति संस्करण और पंक्ति संस्करण पर निर्भर अन्य सुविधाएँ, जैसे कि READ_COMMITTED_SNAPSHOT हो सकती हैं।

अधिकांश लोग tempDB को एक संभावित प्रदर्शन अड़चन मानेंगे, क्योंकि प्रत्येक उपयोगकर्ता डेटाबेस के कार्य एक उदाहरण में tempDB पर निर्भर करते हैं।

ट्यूनिंग tempDB एक जानबूझकर अभ्यास होना चाहिए। हालाँकि, SQL सर्वर 2016 से शुरू होकर, आप SQL सर्वर की स्थापना के दौरान tempDB को सटीक रूप से सेटअप कर सकते हैं। एक पिछला लेख विस्तार से वर्णन करता है कि आपको tempDB को कैसे कॉन्फ़िगर और मॉनिटर करना चाहिए।

मॉडल डेटाबेस

आप मॉडल डेटाबेस को एक टेम्पलेट के रूप में मान सकते हैं। SQL सर्वर इंस्टेंस में बनाया गया प्रत्येक उपयोगकर्ता डेटाबेस मॉडल डेटाबेस का कॉन्फ़िगरेशन लेता है। इसमें समान आकार और ऑटोग्रोथ सेटिंग्स, समान फ़ाइल स्थान, आदि हैं। हालाँकि, आप उन सेटिंग्स को जानबूझकर अलग तरीके से CREATE DATABASE स्टेटमेंट में निर्दिष्ट कर सकते हैं।

संक्षेप में, यदि आपके पास डिफ़ॉल्ट सेटिंग्स के साथ डेटाबेस बनाने वाला कोई एप्लिकेशन है, तो आप मॉडल डेटाबेस को कॉन्फ़िगर करना चाह सकते हैं। यह सुनिश्चित करता है कि आप इन स्वचालित रूप से बनाए गए डेटाबेस के टर्न आउट पर कुछ नियंत्रण रखें।

आइए लिस्टिंग 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

कोड निम्न चरणों का पालन करता है:

  1. sys.master_files को क्वेरी करें मॉडल डेटाबेस में प्रयुक्त सेटिंग्स को निर्धारित करने के लिए
  2. डेटाबेस बनाएं
  3. मॉडल डेटाबेस फ़ाइल वृद्धि और ऑटोग्रोथ सेटिंग बदलें
  4. एक और डेटाबेस बनाएं
  5. क्वेरी sys.master_files फिर से

डेटाबेस निर्माण के लिए एकल वाक्यांश पर ध्यान दें - "डेटाबेस बनाएं।" इस तरह, यह मॉडल डेटाबेस से संबंधित सेटिंग्स को चुनता है। परिणाम बताते हैं कि दूसरी बार जब हमने CREATE DATABASE कमांड जारी किया, तो EXP_AFTER डेटाबेस ने 96GB का फ़ाइल आकार और 128 MB का ऑटोग्रोथ हासिल कर लिया (चित्र 5 देखें)।

चित्र 5:मॉडल डेटाबेस का उपयोग करना

यह भी ध्यान देने योग्य है कि सभी डेटाबेस सेटिंग्स स्वचालित रूप से मॉडल डेटाबेस से नहीं ली जाती हैं। उदाहरण के लिए, जब आप एक नया डेटाबेस बनाते हैं तो MIXED_PAGE_ALLOCATION बंद पर सेट होता है, भले ही वह मॉडल और अन्य सिस्टम डेटाबेस में चालू हो।

एमएसडीबी डाटाबेस

आप msdb को SQL सर्वर एजेंट डेटाबेस मान सकते हैं। यह नौकरियों, डेटाबेस मेल, ऑपरेटरों और स्वचालन से संबंधित सभी डेटा संग्रहीत करता है। लेन-देन लॉग शिपिंग, प्रतिकृति, आदि से संबंधित डेटा भी हैं। आप अपने उदाहरण में लिस्टिंग 4 में प्रश्नों के सेट चलाकर यह सत्यापित कर सकते हैं। उदाहरण के लिए, एमएसडीबी में ऑटोमेशन से संबंधित ऑब्जेक्ट मौजूद होते हैं।

-- 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

आप msdb डेटाबेस में ऑब्जेक्ट्स को SQL सर्वर बुक्स ऑनलाइन पर एक्सट्रेक्ट करके और उनकी जाँच करके उनके बारे में बहुत कुछ सीख सकते हैं। दृष्टिकोण मास्टर डेटाबेस के समान है।

आप नौकरियों, ऑपरेटरों आदि को एक SQL सर्वर इंस्टेंस से दूसरे में माइग्रेट कर सकते हैं। उसके लिए, स्रोत इंस्टेंस से msdb डेटाबेस का बैकअप लें और इसे गंतव्य इंस्टेंस पर पुनर्स्थापित करें। हम इसे एक अन्य लेख में संबोधित करेंगे।

उपसंहार

इस लेख में, हमने सिस्टम डेटाबेस का त्वरित अवलोकन प्रदान किया है।

सिस्टम डेटाबेस डिफ़ॉल्ट रूप से SQL सर्वर इंस्टॉलेशन के साथ आते हैं। विभिन्न सिस्टम डेटाबेस और उनकी भूमिकाओं को समझना आपके SQL सर्वर इंस्टेंस को प्रबंधित करने के लिए एक उत्कृष्ट सहायता है।

आप इस बारे में अधिक जानकारी प्राप्त कर सकते हैं कि वे क्या स्टोर करते हैं और समझते हैं कि उन्हें ऑनलाइन बुक्स और कोडिंगसाइट पर अन्य लेखों से कैसे प्रबंधित किया जाए।

संदर्भ

  1. सिस्टम डेटाबेस
  2. MS SQL सर्वर डेटाबेस और संग्रहण
  3. क्रॉस डेटाबेस ओनरशिप चेनिंग


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. क्या UNION ALL परिणाम सेट के क्रम की गारंटी देता है

  2. SQL सर्वर लेनदेन लॉग फ़ाइल से डेटा पुनर्प्राप्त करने के तरीके

  3. एमएस एसक्यूएल का उपयोग करके अपडेट और ऑर्डर कैसे करें

  4. माइक्रोसॉफ्ट द्वारा डाटाबेस नेमिंग कन्वेंशन?

  5. SQL सर्वर में फ़ाइल समूह की आईडी वापस करने के लिए FILEGROUP_ID() का उपयोग करें