SQL सर्वर डेटाबेस में प्राथमिक डेटा फ़ाइलें, द्वितीयक डेटा फ़ाइलें (वैकल्पिक), और लेन-देन लॉग फ़ाइलें होती हैं।
प्राथमिक और द्वितीयक डेटाफ़ाइल में टेबल, डेटाबेस ऑब्जेक्ट, स्कीमा और डेटा होते हैं।
प्राथमिक डेटाबेस फ़ाइल का फ़ाइल एक्सटेंशन *.mdf . है , और द्वितीयक डेटा फ़ाइल का फ़ाइल एक्सटेंशन *.ndf . है ।
लेन-देन लॉग फ़ाइलें लेन-देन द्वारा किए गए सभी परिवर्तनों को संग्रहीत करती हैं (सम्मिलित करें, अपडेट करें और हटाएं)। यदि SQL सर्वर अनपेक्षित रूप से पुनरारंभ हो जाता है या क्रैश हो जाता है, तो डेटाबेस इंजन अपूर्ण लेन-देन को लेन-देन लॉग फ़ाइल का उपयोग करके विफलता के बिंदु से पहले वापस रोल करता है।
लेन-देन लॉग फ़ाइल का विस्तार *.ldf . है . लेन-देन लॉग फ़ाइल आर्किटेक्चर को समझने के लिए आप इस लेख को देखना चाहेंगे।
इस लेख में, मैं यह समझाने जा रहा हूँ कि हम SQL सर्वर 2019 में डेटाबेस फ़ाइलों (MDF फ़ाइलों) को कैसे प्रबंधित कर सकते हैं।
लेख में निम्नलिखित बिंदुओं को शामिल किया जाएगा:
- DMV और SQL सर्वर प्रबंधन स्टूडियो का उपयोग करके डेटाबेस फ़ाइल विवरण देखें।
- उपयोगकर्ता डेटाबेस MDF फ़ाइलें संलग्न और अलग करें।
- सिस्टम डेटाबेस MDF फ़ाइलें संलग्न और अलग करें।
डायनेमिक प्रबंधन दृश्यों का उपयोग करके डेटाबेस फ़ाइलें देखें
डेटाबेस mdf फ़ाइलों का विवरण देखने के लिए, हम sys.database_files का उपयोग कर सकते हैं और sys.master_files . प्रश्न इस प्रकार लिखा जाना चाहिए:
use master
go
select DB_NAME(database_id),
name as [logical Name],
physical_name as [File Location],
state_desc as [State of the file],
Size [Size of data File],
case when convert(varchar,max_size) =-1 then 'Unlimited' else convert(varchar,max_size) end as [Maximum Size]
from sys.master_files where type_desc='ROWS'
and database_id >5
जैसा कि उदाहरण सभी डेटाबेस के लिए एमडीएफ विवरण को संदर्भित करता है, हमें विशिष्ट डेटाबेस फ़ाइलों को देखने के लिए एक अलग कोड की आवश्यकता होती है। उस उद्देश्य के लिए, हम sys.database_files . का उपयोग करते हैं ।
निम्न स्क्रिप्ट SSISDB . का विवरण प्राप्त करेगी डेटाबेस:
use SSISDB
Go
select
name as [logical Name],
physical_name as [File Location],
state_desc as [State of the file],
Size [Size of data File],
case when convert(varchar,max_size) =-1 then 'Unlimited' else convert(varchar,max_size) end as [Maximum Size]
from sys.database_files
SQL सर्वर प्रबंधन स्टूडियो का उपयोग करके डेटाबेस फ़ाइलें देखें
SQL सर्वर प्रबंधन स्टूडियो (SSMS) में उपलब्ध MDF फ़ाइलों की सूची देखने का विकल्प।
SQL सर्वर प्रबंधन स्टूडियो में, SQL सर्वर आवृत्ति से कनेक्ट करें। फिर, डेटाबेस expand का विस्तार करें -> किसी भी डेटाबेस पर राइट-क्लिक करें -> गुणों . क्लिक करें :
डेटाबेस गुण . में विंडो में, फ़ाइलें पर क्लिक करें . यह डेटाबेस की सूची प्रस्तुत करेगा MDF और एलडीएफ फ़ाइलें:
उपयोगकर्ता डेटाबेस MDF फ़ाइलें अलग करें और संलग्न करें
उपयोगकर्ता डेटाबेस की MDF फ़ाइलों को अलग करने और संलग्न करने के दो तरीके हैं:
- SQL सर्वर प्रबंधन स्टूडियो का उपयोग करना।
- टी-एसक्यूएल स्क्रिप्ट का उपयोग करना।
SSMS का उपयोग करके डेटाबेस संलग्न और अलग करें
डेटाबेस संलग्न करें
SSMS लॉन्च करें -> SQL सर्वर इंस्टेंस से कनेक्ट करें -> डेटाबेस . पर राइट-क्लिक करें -> संलग्न करें Click क्लिक करें ।
यह डेटाबेस संलग्न करें को खोलेगा खिड़की। जोड़ें Click क्लिक करें उस विंडो में:
नए डेटाबेस फ़ाइलों का पता लगाएँ . में विंडो में, MDF . का पता लगाने के लिए फ़ाइल सिस्टम ब्राउज़ करें फ़ाइल। इसे डबल-क्लिक करें।
संबंधित डेटा फ़ाइलें और लॉग फ़ाइलें संबद्ध फ़ाइलों . में भर जाती हैं डेटाबेस संलग्न करें . में ग्रिड दृश्य खिड़की। ठीकक्लिक करें डेटाबेस संलग्न करने के लिए।
एक बार डेटाबेस संलग्न हो जाने पर, आप इसे SQL सर्वर प्रबंधन स्टूडियो में देख सकते हैं:
डेटाबेस को अलग करें
SQL सर्वर प्रबंधन स्टूडियो लॉन्च करें और SQL सर्वर आवृत्ति से कनेक्ट करें . डेटाबेस सूची का विस्तार करें।
आवश्यक डेटाबेस . पर राइट-क्लिक करें -> कार्य -> अलग करें . पर क्लिक करें ।
यदि आप डेटाबेस से जुड़े सभी उपयोगकर्ताओं और प्रक्रियाओं को बलपूर्वक डिस्कनेक्ट करना चाहते हैं, तो आप इसे डेटाबेस को अलग करें में करते हैं। खिड़की।
कनेक्शंस छोड़ें पर सही का निशान लगाएं अलग करने के लिए डेटाबेस . में विकल्प अनुभाग और ठीक click क्लिक करें ।
T-SQL का उपयोग करके डेटाबेस को अटैच और डिटैच करें
हम अटैच के साथ डेटाबेस बनाएं . का उपयोग कर सकते हैं निम्नलिखित सिंटैक्स के साथ क्वेरी करें:
USE [master]
GO
CREATE DATABASE [DatabaseName] ON
( FILENAME = 'Path of Primary Database file (MDF)' ),
( FILENAME = N'Path of Secondary Database file (NDF)' ),
...
...
( FILENAME = N'Path of Transactional Log file (LDF)' )
FOR ATTACH
GO
डेटाबेस संलग्न करने के लिए, निम्न T-SQL क्वेरी चलाएँ:
USE [master]
GO
CREATE DATABASE [WideWorldImporters] ON
( FILENAME = N'C:\MSSQL\SQLData\WideWorldImporters.mdf' ),
( FILENAME = N'C:\MSSQL\SQLLog\WideWorldImporters.ldf' ),
( FILENAME = N'C:\MSSQL\SQLData\WideWorldImporters_UserData.ndf' )
FOR ATTACH
GO
साथ ही, हम sp_detach_db चला सकते हैं डेटाबेस को अलग करने के लिए संग्रहीत कार्यविधि।
यदि आप उपयोगकर्ताओं को जबरदस्ती डिस्कनेक्ट करना चाहते हैं, तो आप ALTER DATABASE SET SINGLE_USER का उपयोग कर सकते हैं निम्न स्क्रिप्ट में आदेश:
Use [master]
GO
ALTER DATABASE [WideWorldImporters] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
GO
EXEC sp_detach_db [WideWorldImporters]
GO
सिस्टम डेटाबेस MDF फ़ाइलें प्रबंधित करें
मान लीजिए कि हम सिस्टम डेटाबेस की MDF फ़ाइलों (मास्टर, मॉडल, msdb, और Tempdb) को किसी अन्य स्थान पर ले जाना चाहते हैं। आइए प्रक्रिया की जांच करें।
मास्टर डेटाबेस को स्थानांतरित करें
मास्टर को स्थानांतरित करने के लिए डेटाबेस, SQL सर्वर कॉन्फ़िगरेशन प्रबंधक खोलें -> SQL सर्वर सेवाएँ क्लिक करें -> वांछित SQL सर्वर आवृत्ति की SQL सर्वर सेवा पर राइट-क्लिक करें (MSSQLSERVER ) -> गुणों . पर क्लिक करें :
master.mdf को बदलने के लिए फ़ाइल स्थान, मास्टर फ़ाइल के डेटा फ़ाइल पथ पर क्लिक करें।
master.mdf पथ मान के बाद -d . आता है ,और mastlog.ldf पथ मान के बाद -l . आता है
इन मानों को निम्न से बदलें:
डेटा फ़ाइल:-dD:\MS_SQL\Data\master.mdf
लॉग फ़ाइल:-lD:\MS_SQL\Log\mastlog.ldf
मान बदल जाने के बाद, अपडेट करें . पर क्लिक करें जैसा कि नीचे दिए गए उदाहरण में दिखाया गया है:
ठीकक्लिक करें मूल्यों को बचाने के लिए।
फिर SQL सर्वर सेवाओं को रोकें और डेटाबेस फ़ाइलों को एक नए स्थान पर कॉपी करें। पूरा होने के बाद, SQL सेवा फिर से शुरू करें।
फ़ाइल स्थान सत्यापित करने के लिए नीचे दी गई क्वेरी चलाएँ।
select DB_NAME(database_id)[Database Name], physical_name [File Location] from sys.master_files
where DB_NAME(database_id)='master'
मॉडल डेटाबेस को स्थानांतरित करें
मॉडल डेटाबेस को किसी अन्य ड्राइव पर ले जाने के लिए, हमें पहले एक ALTER DATABASE MODIFY FILE कमांड चलाना होगा। यह SQL सर्वर सिस्टम कैटलॉग में स्थान बदलने का कार्य करता है।
कमांड के नीचे चलाएँ:
ALTER DATABASE model
MODIFY FILE (NAME = modeldev, FILENAME = 'D:\MS_SQL\Data\model.mdf');
GO
ALTER DATABASE model
MODIFY FILE (NAME = modellog, FILENAME = 'D:\MS_SQL\Log\modellog.ldf');
GO
फिर, PowerShell में निम्न आदेश निष्पादित करके SQL सर्वर सेवाओं को रोकें:
/*Stop SQL Services*/
PS C:\> Stop-Service MSSQLSERVER -Force
/*Start SQL Services*/
PS C:\> Start-Service MSSQLSERVER
model.mdf को कॉपी करें और modellog.ldf फ़ाइलों को एक नए स्थान पर ले जाएँ और सेवाएँ शुरू करें।
फ़ाइल स्थान सत्यापित करने के लिए निम्न क्वेरी चलाएँ:
select DB_NAME(database_id)[Database Name], physical_name [File Location] from sys.master_files
where DB_NAME(database_id)='model'
MSDB डेटाबेस को स्थानांतरित करें
MSDB को स्थानांतरित करने के लिए डेटाबेस को किसी अन्य ड्राइव पर, SQL सर्वर सिस्टम कैटलॉग में स्थान बदलने के लिए पहले एक ALTER DATABASE MODIFY FILE कमांड चलाएँ:
ALTER DATABASE msdb
MODIFY FILE (NAME = MSDBData, FILENAME = 'D:\MS_SQL\Data\MSDBData.mdf');
GO
ALTER DATABASE msdb
MODIFY FILE (NAME = MSDBLog, FILENAME = 'D:\MS_SQL\Log\MSDBLog.ldf');
GO
PowerShell में निम्न आदेश निष्पादित करके SQL सर्वर सेवाओं को रोकें:
/*Stop SQL Services*/
PS C:\> Stop-Service MSSQLSERVER -Force
/*Start SQL Services*/
PS C:\> Start-Service MSSQLSERVER
कॉपी करें MSDBData.mdf और MSDBLog.ldf नए स्थान पर फ़ाइलें और सेवाएँ प्रारंभ करें।
फ़ाइल स्थान सत्यापित करने के लिए निम्न क्वेरी चलाएँ:
select DB_NAME(database_id)[Database Name], physical_name [File Location] from sys.master_files
where DB_NAME(database_id)='msdb'
TempDB डेटाबेस को स्थानांतरित करें
TempDB . को स्थानांतरित करने के लिए डेटाबेस को किसी अन्य ड्राइव पर, SQL सर्वर सिस्टम कैटलॉग में फ़ाइल स्थान बदलने के लिए पहले एक ALTER DATABASE MODIFY FILE कमांड चलाएँ:
ALTER DATABASE tempdb
MODIFY FILE (NAME = tempdev, FILENAME = 'D:\MS_SQL\Data\tempdb.mdf');
GO
ALTER DATABASE tempdb
MODIFY FILE (NAME = temp2, FILENAME = 'D:\MS_SQL\Data\tempdb_mssql_2.ndf');
GO
ALTER DATABASE tempdb
MODIFY FILE (NAME = temp3, FILENAME = 'D:\MS_SQL\Data\tempdb_mssql_3.ndf');
GO
ALTER DATABASE tempdb
MODIFY FILE (NAME = temp4, FILENAME = 'D:\MS_SQL\Data\tempdb_mssql_4.ndf');
GO
ALTER DATABASE tempdb
MODIFY FILE (NAME = temp5, FILENAME = 'D:\MS_SQL\Data\tempdb_mssql_5.ndf');
GO
ALTER DATABASE tempdb
MODIFY FILE (NAME = temp6, FILENAME = 'D:\MS_SQL\Data\tempdb_mssql_6.ndf');
GO
ALTER DATABASE tempdb
MODIFY FILE (NAME = temp7, FILENAME = 'D:\MS_SQL\Data\tempdb_mssql_7.ndf');
GO
ALTER DATABASE tempdb
MODIFY FILE (NAME = temp8, FILENAME = 'D:\MS_SQL\Data\tempdb_mssql_8.ndf');
GO
ALTER DATABASE tempdb
MODIFY FILE (NAME = templog, FILENAME = 'D:\MS_SQL\Log\templog.ldf');
GO
PowerShell में निम्न आदेश निष्पादित करके SQL सर्वर सेवाओं को पुनरारंभ करें:
/*Restart SQL Services*/
PS C:\> Restart-Service MSSQLSERVER -Force
फ़ाइल स्थान सत्यापित करने के लिए निम्न क्वेरी चलाएँ:
select DB_NAME(database_id)[Database Name], physical_name [File Location] from sys.master_files
where DB_NAME(database_id)='tempdb'
आप देवार्ट कंपनी के ट्रांजेक्शन लॉग टूल का भी उपयोग कर सकते हैं - इसमें एमडीएफ और एलडीएफ फाइल डेटा देखने का विकल्प भी शामिल है।
सारांश
यह आलेख SQL सर्वर डेटाबेस की डेटाबेस फ़ाइलों और MDF फ़ाइल स्थानों को देखने के तरीकों के बारे में बताता है। इसने डेटाबेस को जोड़ने और अलग करने की प्रक्रियाओं का भी वर्णन किया और सिस्टम डेटाबेस डेटा फ़ाइलों को स्थानांतरित करने की चरण-दर-चरण प्रक्रिया का वर्णन किया।