सबसे महत्वपूर्ण कदम यह है कि SQL Server 2000 डेटाबेस पर अपग्रेड एडवाइज़र चलाएं और इसके द्वारा बताए गए सभी मुद्दों को हल करें।
सर्वोत्तम अभ्यास के रूप में, अपने SQL Server 2000 विरासत डेटाबेस पर अपग्रेड एडवाइज़र टूल का उपयोग करें और विश्लेषण के लिए अपग्रेड एडवाइज़र टूल पर ट्रेस फ़ाइल आयात करें। ट्रेस फ़ाइल अपग्रेड एडवाइजर को उन समस्याओं का पता लगाने देती है जो डेटाबेस के एक साधारण स्कैन में नहीं दिख सकती हैं, जैसे कि TSQL अनुप्रयोगों में एम्बेडेड है। आप विशिष्ट समय के दौरान अपने SQL Server 2000 सर्वर पर SQL Profiler का उपयोग करके TSQL के निशान पर कब्जा कर सकते हैं और अपग्रेड सलाहकार का उपयोग करके इन निशानों का विश्लेषण कर सकते हैं।
तो बाकी चरण होंगे:
प्रवास के दिन:
- स्क्रिप्ट पर हमारे लॉगिन 2000 सर्वर पर sp_help_revlogin का उपयोग कर ।
- एसक्यूएल 2000 सर्वर से जॉब्स और लिंक्ड सर्वर को स्क्रिप्ट करें।
- 2000 सर्वर से जुड़ने वाले वेबसर्वरों को रोकें। सुनिश्चित करें कि कोई भी एप्लिकेशन 2000 सर्वर से कनेक्ट नहीं हो रहा है।
- अपने डेटाबेस का बैकअप लें और गंतव्य sql 2008 R2 सर्वर पर पुनर्स्थापित करें। (ध्यान दें: अलग न करें / संलग्न करें क्योंकि चीजें गलत हो सकती हैं और आप अलग डेटाबेस और कोई बैकअप के साथ समाप्त हो जाएगा!)
- एक बार जब आपका बैकअप 2008 R2 सर्वर पर पुनर्स्थापित हो जाता है, तो लॉग इन को पुनः बनाने के लिए 2008 R2 सर्वर पर sp_help_revlogin से आउटपुट चलाएँ।
- अनाथ उपयोगकर्ताओं (यदि कोई हो) को सिंक करें और नए सर्वर पर एसक्यूएल एजेंट जॉब्स और लिंक्ड सर्वर को फिर से बनाएँ।
- पुनर्स्थापित डेटाबेस पर संगतता स्तर को 100 में बदलें।
- All_errormsgs और data_purity विकल्पों के साथ Dbcc चेकडब चालू:
DBCC CHECKDB ('<db_name_goes_here>' ) WITH ALL_ERRORMSGS,NO_INFOMSGS, DATA_PURITY
- पुनर्स्थापित डेटाबेस पर DBCC UPDATEUSAGE चलाएं
DBCC UPDATEUSAGE('database_name') WITH COUNT_ROWS
- पूर्ण स्कैन के साथ सभी तालिकाओं पर आंकड़े अपडेट करें:
Update Statistics table_name with FULLSCAN
- वैकल्पिक: विखंडन के स्तर की जांच करें और विखंडन स्तर के आधार पर, सभी अनुक्रमितों का एक पुन: निर्माण / पुनर्निर्माण करें। आप ओला की स्क्रिप्ट का उपयोग कर सकते हैं ।
- सभी एसपी का उपयोग करके पुनः साझा करें
sp_recompile 'procedureName'
- अपने विचारों को ताज़ा करें
SP_REFRESHVIEW view_name
- डेटाबेस विकल्प बदलने के लिए सुनिश्चित करें: पृष्ठ चेक करें।
- पुनर्प्राप्ति मॉडल (यदि sql 2000 से भिन्न) को पूर्ण में बदलें। यदि आप पूर्ण पुनर्प्राप्ति मॉडल में बदलते हैं, तो सुनिश्चित करें कि आप अक्सर लेन-देन लॉग बैकअप करते हैं। यह आपको समय-समय पर पुनर्प्राप्त करने में मदद करेगा और साथ ही आपके टी-लॉग को ब्लोट नहीं करेगा।
SQL सर्वर 2005 और ऊपर में, डेटाबेस मेल पेश किया गया था। इसलिए आपको SQLMail से डेटाबेस मेल पर माइग्रेट करना होगा।
USE [master]
GO
sp_configure 'show advanced options',1
GO
RECONFIGURE WITH OVERRIDE
GO
sp_configure 'Database Mail XPs',1
GO
RECONFIGURE
GO
इसके अलावा, यदि आपके पास कोई प्रतिकृति है, तो आपको इसे रीसेट करना होगा। यदि कोई डॉ। लॉगशीपिंग या मिररिंग (2005 में और ऊपर, लेकिन 2012 में ह्रासमान) की तरह है, तो आपको इसे भी रीसेट करना होगा।
पुराने DTS पैकेज को SSIS C:\Program Files\Microsoft SQL Server\100\DTS\Binn\DTSMigrationWizard.exe
(कमांड लाइन) का उपयोग करके या पैकेज माइग्रेशन विज़ार्ड का उपयोग करके माइग्रेट करने की आवश्यकता होती है ।
इसके अलावा, आप /dba//a/36701/8783 पर मिली मेरी स्क्रिप्ट का उपयोग कर सकते हैं । हालाँकि, यह detach / संलग्न विधि का उपयोग करता है, मैं आपको BACKUP / RESTORE विधि का उपयोग करने की अत्यधिक सलाह देता हूं । तदनुसार स्क्रिप्ट बदलें।
अलग नोट के रूप में:
- नए सर्वर पर इंस्टेंट फ़ाइल इनिशियलाइज़ेशन चालू करें।
- है कई tempdb डेटा फ़ाइलों को बराबर आकार के साथ।
- ट्रेस फ्लैग 1118 को सक्षम करें
- अधिकतम और न्यूनतम मेमोरी को सही ढंग से कॉन्फ़िगर करें। विशेष रूप से अधिकतम मेमोरी डिफ़ॉल्ट से दूर।
- MAXDOP सेटिंग्स को ठीक से समायोजित करें। अधिक जानकारी के लिए /dba//a/36578/8783 का संदर्भ लें ।
- सर्वश्रेष्ठ ब्रेंट ओजर से sp_Blitz स्थापित करना है। इसे चलाएं और इसके द्वारा बताए गए महत्वपूर्ण और उच्च प्राथमिकता वाले मुद्दों को संबोधित करें।
- आप kendalvandyke से SQL Power Doc का उपयोग भी कर सकते हैं - SQL Power Doc SQL Server 2000 के सभी संस्करणों के साथ SQL Server 2000 से 2012 तक, और Windows Server के सभी संस्करणों और Windows 2000 और Windows Server के माध्यम से Windows XP और Windows से Windows ऑपरेटिंग सिस्टम 8. योजना उन्नयन के लिए भी उपयोगी - देखें कि एक उदाहरण पर कौन सी छिपी विशेषताएं उपयोग में हैं।
- एड-हॉक वर्कलोड और डिफ़ॉल्ट बैकअप संपीड़न विकल्पों के लिए ऑप्टिमाइज़ सक्षम करें।
अपने प्रश्नों को संबोधित करें ...
माइग्रेशन पूरा करने के लिए मुझे और क्या करना चाहिए?
मेरे उत्तर का संदर्भ लें। यह एक माइग्रेशन योजना के साथ ठीक से आने में आपकी मदद करेगा। व्यावसायिक उपयोगकर्ताओं द्वारा उचित एप्लिकेशन परीक्षण के साथ हमेशा एक UAT (गैर उत्पादन) में अपनी माइग्रेशन योजना का परीक्षण करें।
चेकसमिंग और पूर्ण पुनर्प्राप्ति मॉडल जैसी नई सुविधाओं का उपयोग करें।
CHECKSUM
SQL Server 2005 और ऊपर में नया है। मैंने ऊपर वर्णित प्रवासन चरणों के एक भाग के रूप में इसे कवर किया है।
full recovery model
नया नहीं है। यह आपके व्यवसाय के प्रकार पर निर्भर करता है और यह तय करता है कि आपदा की स्थिति में आप कितना डेटा खो सकते हैं।
बार-बार लेन-देन लॉग बैकअप के साथ पूर्ण पुनर्प्राप्ति मोड आपको डेटा हानि की मात्रा को कम करके पॉइंट-इन-टाइम को पुनर्स्थापित करने की अनुमति देगा।
इस डेटाबेस को बिल्कुल वैसा ही बनाएं जैसा कि SQL Server 2008 R2 में बनाया गया था।
इस डेटाबेस को पूरी तरह से संगत बनाने के लिए, सही करें और नए, SQL 2008 R2 डेटाबेस इंजन के लिए बिल्कुल उपयुक्त रहें।
यह पूरी तरह से समझ में नहीं आता! लेकिन ऊपर दिए गए माइग्रेशन कदम आपकी मदद करेंगे। आपको बस डेटाबेस को पुनर्स्थापित करना होगा और 100
उपरोक्त चरणों के साथ संगतता स्तर 10 को बदलना होगा ।
मैं सिर्फ यह जानना चाहता हूं कि पुराने SQL Server 2000 डेटाबेस को सही ढंग से और पूरी तरह से नए 2008 R2 डेटाबेस में कैसे परिवर्तित किया जाए, शांत रहें कि सबकुछ सही हो गया है और सभी नई सुविधाओं से खुश हैं।
आपको इससे सावधान रहना होगा, क्योंकि इसके लिए आपके एप्लिकेशन कोड में भी बदलाव करने होंगे। यदि आपका एप्लिकेशन कोड SQL Server 2008 R2 में नई सुविधाओं का उपयोग करने के लिए बदल दिया गया है, तो आप किसी भी मुद्दे का सामना नहीं करेंगे - प्रोवीड किया है कि आपने UAT या DEV वातावरण में अपने एप्लिकेशन का पूर्ण प्रतिगमन परीक्षण पूरी तरह से किया है। जब आप PROD में वास्तविक माइग्रेशन करते हैं तो इससे आपको सबसे अच्छा विश्वास मिलेगा।
नोट: ऊपर दिए गए कदम हैं जो मुझे याद हैं और मुझे पूरा यकीन है कि कुछ भी नहीं बचा है। अगर मुझे लगता है कि मैंने कुछ सामान खो दिया है, तो मैं इसे या अन्य विशेषज्ञों को इस साइट पर जोड़ दूंगा - बेझिझक जोड़ें!
वास्तविक प्रवास के दौरान किसी भी आश्चर्य से बचने के लिए एनओएन प्रोडक्शन वातावरण पर सबसे पहले दोहराए जाने वाली जरूरतों को ऊपर उल्लिखित किया गया है।
----------
कुछ और प्रश्न:
आप बैकअप / पुनर्स्थापना विधि का उपयोग करने की सलाह देते हैं, लेकिन मैंने जैसा ऊपर लिखा था, क्या अब मैं किसी भी समस्या का सामना कर सकता हूं? सब कुछ बिना किसी समस्या के काम किया।
यदि सब कुछ ठीक काम किया है और आप डेटाबेस संलग्न करने के लिए है, तो सक्षम थे नहीं कि आप किसी भी समस्या हो रही हो नहीं होते। डिटैच / अटैच बनाम बैकअप / रिस्टोर केवल एक तरीका है कि आप अपने डेटाबेस / एस को किसी अन्य स्थान पर कैसे स्थानांतरित करें। बस FYI करें .. बैकअप / पुनर्स्थापना अधिक सुरक्षित और विश्वसनीय है जैसे कि कुछ भी गलत हो जाता है (सबसे खराब मामलों में) तो कम से कम आपके पास अपने डेटाबेस / एस को पुनर्स्थापित करने और पुनर्प्राप्त करने के लिए एक बैकअप है।
चेकसमिंग और पूर्ण पुनर्प्राप्ति मॉडल के बारे में: यह SQL Server 2000 पर उपलब्ध / सक्षम नहीं था, इसलिए मैं अब उनका उपयोग करना चाहता हूं। आपने कहा कि डेटाबेस गुणों में उन विकल्पों को सक्षम करने के लिए मुझे केवल एक चीज की आवश्यकता है? मैंने कहीं पढ़ा है, कि यह पर्याप्त नहीं है और मुझे भी अनुक्रमणिका या कुछ का पुनर्निर्माण करना चाहिए। मैं वास्तव में नहीं जानता, मैं सिर्फ पूछ रहा हूँ।
जैसा कि मैंने कहा, 2005 और उसके बाद के संस्करण में चेकसम नया है। यह एक ऐसा तंत्र है जिसके द्वारा SQL सर्वर पृष्ठ भ्रष्टाचार का पता लगाता है विशेष रूप से I / O के कारण। अधिक जानकारी के लिए यहां मेरे उत्तर का संदर्भ लें ।
CHECKSUM सक्षम करने के साथ-साथ पुनर्प्राप्ति मॉडल को FULL में बदलें, आप इसे T-SQL कोड के नीचे का उपयोग कर सकते हैं:
USE master;
GO
ALTER DATABASE [your_database_name] -- change this !!
SET RECOVERY FULL, PAGE_VERIFY CHECKSUM;
GO
नोट: एक बार जब आप डेटाबेस विकल्प सेट करते हैं, तो यह तब बना रहता है जब आप 2008R2 से 2012 तक माइग्रेशन करते हैं।
मैं इस डेटाबेस को SQL सर्वर 2012 में माइग्रेट करने की तैयारी कर रहा हूं - इसलिए पहले यह 2000 से 2008 R2 तक था, अब यह 2008 R2 से 2012 तक होगा (SQL में 2000 डेटाबेस के समर्थन की कमी के कारण सीधे ऐसा करना असंभव था सर्वर 2012)। तो मैं समझता हूं कि मुझे आपके गाइड का पालन करना चाहिए: 2008 R2 में बैकअप लें और 2012 में पुनर्स्थापित करें, फिर अपने बाकी टिप्स करें?
हाँ कृपया। जैसा कि मैंने कहा, बैकअप पुनर्स्थापना पसंदीदा तरीका है, जब तक कि आपके पास ऐसा न करने का एक अच्छा कारण है।
कृपया मुझे बैकअप / पुनर्स्थापना विधि की व्याख्या करें: क्या यह SQL क्वेरीज़ के लिए डेटाबेस के डंप की तरह है और फिर प्रश्नों का एक गुच्छा निष्पादित करके इसे पुनर्स्थापित करना है? क्या यह तरीका मेरे डेटाबेस को "डीफ़्रैग्मेन्ट" कर देगा? यदि नहीं, तो इसे मैन्युअल रूप से कैसे डीफ़्रैग्मेन्ट / ऑप्टिमाइज़ करना है?
बैकअप / पुनर्स्थापना है ... सिबेस, ओरेकल या शायद MySQL में भी डंप और लोड के समान। इसका सिर्फ SQL सर्वर इसे कॉल करता है .. बैकअप / रिस्टोर।
एक पढ़ना चाहिए: पॉल रान्डेल द्वारा SQL सर्वर बैकअप को समझना ।
सिंपल सिंटैक्स (पूर्ण सिंटैक्स संदर्भित BOL के लिए ):
backup database database_name
to disk = 'D:\backup\database_name_full.bak'
with init, stats =10
फिर गंतव्य सर्वर पर पुनर्स्थापित किया जा सकता है:
- गंतव्य के डिस्क लेआउट को संभालने से स्रोत सर्वर से मेल नहीं खाता है
restore database database_name
from disk = 'D:\backup\database_name_full.bak'
move 'logical_data_fileName' to 'physical_path\database_name.mdf'
move 'logical_log_fileName' to 'physical_path\database_name_log.ldf'
with recovery, stats = 10
- डेस्टिनेशन डिस्क का लेआउट सोर्स सर्वर से मेल खाता है
restore database database_name
from disk = 'D:\backup\database_name_full.bak'
with recovery, stats = 10
क्या यह तरीका मेरे डेटाबेस को "डीफ़्रैग्मेन्ट" कर देगा? यदि नहीं, तो इसे मैन्युअल रूप से कैसे डीफ़्रैग्मेन्ट / ऑप्टिमाइज़ करना है?
बैकअप / पुनर्स्थापना आपके डेटाबेस को ख़राब नहीं करेगा। आपको अपने विखंडन स्तर के आधार पर Alter Index Reorganize या Rebuild का उपयोग करना होगा।
चूंकि आप SQL सर्वर के लिए नए हैं, इसलिए मैं आपको ओला हैलेनग्रेन का उपयोग करने की अत्यधिक सलाह दूंगा:
जैसा कि हम SQL Server 2000 Express का उपयोग वर्षों से कर रहे थे (कोई प्रबंधन इंटरफ़ेस नहीं), हम बस इंजन और RAR DATA निर्देशिका को रोककर बैकअप कर रहे थे। अभी के लिए, जैसा कि हम SQL Server 2008 में हैं, क्या यह प्रबंधन स्टूडियो में बैकअप फ़ंक्शन का उपयोग करने से बेहतर नहीं है?
इंजन को रोकना सबसे खराब काम है जिसे आप बैकअप के लिए कर सकते हैं !!
ओला की स्क्रिप्ट का उल्लेख और उपयोग करने वाले बैकअप के बारे में पॉल लिंक पढ़ें। Microsoft के पास स्वचालित बैकअप करने के लिए स्क्रिप्ट के साथ KB आलेख है - SQL सर्वर डेटाबेस में SQL सर्वर डेटाबेस के बैकअप को कैसे शेड्यूल और स्वचालित करें
बार-बार लेन-देन लॉग बैकअप के साथ पूर्ण पुनर्प्राप्ति मोड - लेन-देन लॉग कहाँ संग्रहीत किया जाता है - क्या यह एलडीएफ फ़ाइल है? कैसे मैं इसे ठीक से बैकअप लेना चाहिए?
हर SQL सर्वर डेटाबेस में एक लॉग होता है जो प्रत्येक लेनदेन द्वारा किए गए सभी लेनदेन और डेटाबेस संशोधनों को रिकॉर्ड करता है। लेन-देन लॉग किसी भी डेटाबेस का एक महत्वपूर्ण घटक है।
लेन-देन लॉग के लिए सामान्य नामकरण कन्वेंशन एक्सटेंशन '.LDF' है, लेकिन यह कोई भी हो सकता है।
मैं इस पर और अधिक लिखने नहीं जा रहा हूं क्योंकि इससे उत्तर बहुत ही दुबला हो जाएगा। लेन-देन लॉग प्रबंधन का संदर्भ लें
और यहां मेरे उत्तर में उत्कृष्ट लिंक हैं।
EDIT: 8/24/2016 .. इससे भविष्य के पाठकों को मदद मिलेगी:
यदि आप अपने संपूर्ण उदाहरण को एक संस्करण से दूसरे संस्करण में माइग्रेट कर रहे हैं, तो मैं अत्यधिक PowerShell आधारित समाधान का उपयोग करने की सलाह दूंगाStart-SqlMigration