सुरक्षित रूप से चल रहा है और नई tempdb फ़ाइलों का निर्माण कर रहा है


21

दो बातें जो मैं जानना चाहता हूं:

  • आप न्यूनतम डाउनटाइम के साथ टेम्पर्डब को सुरक्षित रूप से कैसे स्थानांतरित करेंगे?
  • आपको कितने tempdb फ़ाइलों की आवश्यकता है?

क्या यह 1 फाइल प्रति कोर है? तो क्वाड-कोर = 4 टेम्पर्ड फाइलें, तीन नए बना रही हैं?

जवाबों:


22

tempdbफ़ाइलों को स्थानांतरित करने के लिए , आपको बस निम्नलिखित करने की आवश्यकता है:

alter database tempdb
modify file
(
    name = tempdev,
    filename = 'C:\YourNewTempdbDir\tempdb.mdf'
)
go

alter database tempdb
modify file
(
    name = templog,
    filename = 'C:\YourNewTempdbDir\templog.ldf'
)
go

यदि आप एक नई फ़ाइल जोड़ना चाहते हैं tempdb, तो आपको बस निम्नलिखित करने की आवश्यकता है (बशर्ते आप इसे फ़ाइल समूह में जोड़ना चाहते हैं PRIMARY, या अपनी खुद की बनाएं):

alter database tempdb
add file
(
    name = tempdb2,
    filename = 'C:\YourNewTempdbDir\Tempdb2.ndf'
)
go

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

"1 टेम्पर्ड डेटा फाइल प्रति कोर" के लिए, यह काफी हद तक एक मिथक है। सही दृष्टिकोण tempdbपेज फ्री स्पेस (पीएफएस), ग्लोबल एलोकेशन मैप (जीएएम) और साझा ग्लोबल आवंटन मैप (एसजीएएम) पेजों के लिए फ़ाइल विवाद की निगरानी करना है। कृपया क्वेरी (वैकल्पिक लिंक) पाने के लिए इस लेख का संदर्भ लें जो sys.dm_os_waiting_tasksडीएमवी के माध्यम से देखता है कि यह देखने के लिए कि कितना tempdbफ़ाइल विवाद है। फिर आपको इसे बंद करने की आवश्यकता है, केवल tempdbफ़ाइलों की एक ही राशि के साथ कंबल करने के बजाय जैसे कि कोर हैं। यह अधिक उचित दृष्टिकोण है।


8
  1. टेम्पर्डब को स्थानांतरित करने के लिए, निष्पादित करें:

    ALTER DATABASE tempdb 
    MODIFY FILE ( name=tempdev, filename='D:\Newpath\tempdb.mdf') 
    GO
    ALTER DATABASE tempdb 
    MODIFY FILE ( name=templog, filename='D:\Newpath\templog.ldf') 
    GO

    फिर अपनी SQL सर्वर सेवा (MSSQLServer) को पुनरारंभ करें।

  2. Tempdb में फ़ाइलों की संख्या - पॉल रान्डेल का लेख देखें: एक SQL सर्वर DBA एक दिन मिथक: (12/30) tempdb में हमेशा प्रति प्रोसेसर कोर में एक डेटा फ़ाइल होनी चाहिए


4

से माइक्रोसॉफ्ट के सलाह :

एक सामान्य नियम के रूप में, यदि तार्किक प्रोसेसर की संख्या 8 से कम या उसके बराबर है, तो तार्किक प्रोसेसर के समान डेटा फ़ाइलों का उपयोग करें।

यदि तार्किक प्रोसेसर की संख्या 8 से अधिक है, तो 8 डेटा फ़ाइलों का उपयोग करें और फिर यदि विवाद जारी रहता है, तो डेटा फ़ाइलों की संख्या को 4 तक बढ़ाएँ (तार्किक प्रोसेसर की संख्या तक) जब तक कि विवाद स्वीकार्य स्तर तक कम न हो जाए या बना न दे वर्कलोड / कोड में परिवर्तन।

TempDB फ़ाइलों को ले जाना एक 2-चरण प्रक्रिया है:

  1. SQL को बताएं कि आप अपनी नई TempDB फ़ाइलें कहाँ जाना चाहते हैं (इसमें डाउनटाइम नहीं है)
  2. SQL Serverपरिवर्तन को प्रभावी करने के लिए सेवा को पुनरारंभ करें (यह आपके लिए आवश्यक न्यूनतम डाउनटाइम है)

SQL को यह बताने के लिए कि नई TempDB फ़ाइलें कहाँ बनाएँ, आप इसका उपयोग कर सकते हैं:

DECLARE @newDriveAndFolder VARCHAR(8000);

SET @newDriveAndFolder = 'Z:\YourTempDBfolder';

SELECT [name] AS [Logical Name]
    ,physical_name AS [Current Location]
    ,state_desc AS [Status]
    ,size / 128 AS [Size(MB)] --Number of 8KB pages / 128 = MB
    ,'ALTER DATABASE tempdb MODIFY FILE (NAME = ' + QUOTENAME(f.[name])
    + CHAR(9) /* Tab */
    + ',FILENAME = ''' + @newDriveAndFolder + CHAR(92) /* Backslash */ + f.[name]
    + CASE WHEN f.[type] = 1 /* Log */ THEN '.ldf' ELSE '.mdf' END  + ''''
    + ');'
    AS [Create new TempDB files]
FROM sys.master_files f
WHERE f.database_id = DB_ID(N'tempdb')
ORDER BY f.[type];

यह उन T-SQL स्टेटमेंट्स को जनरेट करेगा, जिन्हें आप फ़ाइलों को अपने drive:\folderइच्छित नए में ले जाने के लिए चलाना चाहते हैं। (बड़ा बनाने के लिए छवि पर क्लिक करें)

TempDB फ़ाइलों और उन्हें स्थानांतरित करने के लिए T-SQL स्टेटमेंट पर विवरण के साथ 2 पंक्तियों को दिखाने वाली छवि

जब आप अपने चलते बयानों को चला चुके हैं, तो आप उपरोक्त क्वेरी फिर से चला सकते हैं, यह जांचने के लिए कि Current Locationकॉलम अब आपका नया दिखा रहा है drive:\folder

TempDB फ़ाइलों के नए स्थानों को दिखाने वाली छवि

एक बार जब आप अपने परिवर्तनों से खुश हो जाते हैं, तो SQL सर्वर सेवा को पुनरारंभ करें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.