डेटाबेस मिररिंग कनेक्शन मुद्दों को समझना
SQL सर्वर वातावरण में उच्च उपलब्धता और अतिरेक सुनिश्चित करने के लिए डेटाबेस मिररिंग एक आवश्यक रणनीति है। हालाँकि, मिररिंग को कॉन्फ़िगर करने से कभी-कभी निराशाजनक त्रुटियाँ हो सकती हैं, जैसे त्रुटि 1418, जो बताती है कि सर्वर नेटवर्क पते तक नहीं पहुँचा जा सकता है या मौजूद नहीं है।
यह विशेष त्रुटि अक्सर तब होती है जब दो SQL सर्वर इंस्टेंस के बीच मिररिंग सत्र स्थापित करने का प्रयास किया जाता है, भले ही दोनों डेटाबेस व्यक्तिगत रूप से पहुंच योग्य हों। समस्या तब उत्पन्न होती है जब मिररिंग एंडपॉइंट एक दूसरे के साथ संचार करने में विफल हो जाते हैं।
मौजूदा मामले में, एक स्थानीय डेस्कटॉप (192.168.0.80) और एक मिनी पीसी (192.168.0.85) मिररिंग प्रक्रिया में शामिल हैं। मिनी पीसी का उद्देश्य मिररिंग के "उच्च प्रदर्शन" मोड का उपयोग करके मोबाइल एप्लिकेशन के लिए केवल पढ़ने योग्य प्रतिकृति के रूप में काम करना है।
सही पोर्ट कॉन्फ़िगरेशन और फ़ायरवॉल समायोजन के बावजूद, मिररिंग सत्र शुरू करने का प्रयास करते समय उपयोगकर्ता को त्रुटि 1418 का सामना करना पड़ता है। यह आलेख इस समस्या के समाधान के लिए संभावित कारणों और समाधानों का पता लगाएगा।
आज्ञा | उपयोग का उदाहरण |
---|---|
ALTER ENDPOINT | इस कमांड का उपयोग SQL सर्वर में एंडपॉइंट मिररिंग डेटाबेस की स्थिति को संशोधित करने के लिए किया जाता है। त्रुटि 1418 को हल करने के संदर्भ में, यह सुनिश्चित करता है कि समापन बिंदु ठीक से शुरू हो गया है और निर्दिष्ट पोर्ट पर सुन रहा है। उदाहरण: अंतिम बिंदु बदलें [मिररिंग] स्थिति = प्रारंभ; |
GRANT CONNECT ON ENDPOINT | किसी विशिष्ट लॉगिन को मिररिंग एंडपॉइंट से कनेक्ट करने की अनुमति देता है। डेटाबेस मिररिंग के दौरान SQL सर्वर इंस्टेंस को सुरक्षित रूप से संचार करने की अनुमति देने के लिए यह महत्वपूर्ण है। उदाहरण: समापन बिंदु पर अनुदान अनुदान::[मिररिंग_एंडपॉइंट] से [डोमेनउपयोगकर्ता खाता]; |
SET PARTNER | डेटाबेस मिररिंग सत्र में भागीदार के रूप में एक SQL सर्वर इंस्टेंस को कॉन्फ़िगर करता है। यह कमांड पार्टनर सर्वर के लिए नेटवर्क पता स्थापित करता है। उदाहरण: डेटाबेस बदलें YourDatabaseName SET PARTNER = 'TCP://192.168.0.85:5022'; |
CREATE ENDPOINT | एक मिररिंग एंडपॉइंट बनाता है जो एक विशिष्ट पोर्ट पर सुनता है और डेटाबेस मिररिंग सत्रों का प्रबंधन करता है। यह संचार भूमिका (जैसे, पार्टनर) निर्दिष्ट करता है। उदाहरण: डेटाबेस_मिररिंग (रोल = पार्टनर) के लिए टीसीपी (LISTENER_PORT = 5022) के रूप में एंडपॉइंट [मिररिंग_एंडपॉइंट] बनाएं; |
netsh advfirewall firewall add rule | SQL सर्वर और मिररिंग (उदाहरण के लिए, 1433 और 5022) के लिए आवश्यक विशिष्ट पोर्ट के माध्यम से ट्रैफ़िक की अनुमति देने के लिए फ़ायरवॉल नियमों को कॉन्फ़िगर करने के लिए उपयोग किया जाता है। मिररिंग साझेदारों के बीच संचार को सक्षम करने के लिए यह आवश्यक है। उदाहरण: नेटश एडवफ़ायरवॉल फ़ायरवॉल नियम का नाम जोड़ें = "एसक्यूएलपोर्ट" डीआईआर = कार्रवाई में = प्रोटोकॉल की अनुमति दें = टीसीपी लोकलपोर्ट = 1433 |
socket.create_connection | एक पायथन कमांड का उपयोग किसी निर्दिष्ट सर्वर और पोर्ट से टीसीपी कनेक्शन स्थापित करने के लिए किया जाता है। इस संदर्भ में, इसका उपयोग यह जांचने के लिए किया जाता है कि SQL सर्वर इंस्टेंस नेटवर्क पर पहुंच योग्य है या नहीं। उदाहरण: सॉकेट.क्रिएट_कनेक्शन((सर्वर, पोर्ट), टाइमआउट=5); |
New-Object System.Net.Sockets.TcpClient | पोर्ट कनेक्टिविटी के परीक्षण के लिए टीसीपी क्लाइंट बनाने के लिए पावरशेल कमांड का उपयोग किया जाता है। यह सत्यापित करने में मदद करता है कि सर्वर के बीच आवश्यक मिररिंग पोर्ट खुले और पहुंच योग्य हैं या नहीं। उदाहरण: $tcpClient = New-Object System.Net.Sockets.TcpClient($server, $port) |
SELECT * FROM sys.database_mirroring | यह SQL कमांड डेटाबेस मिररिंग सत्र की स्थिति को पुनः प्राप्त करता है, जिससे यह पता लगाने में मदद मिलती है कि मिररिंग सेटअप सही ढंग से स्थापित है या समस्याओं का सामना कर रहा है। उदाहरण: SELECT * FROM sys.database_mirroring; |
मिररिंग त्रुटि समाधान स्क्रिप्ट का विस्तृत विवरण
पिछले उदाहरणों में प्रदान की गई पहली स्क्रिप्ट का उपयोग किया गया है ट्रांजैक्ट-एसक्यूएल (टी-एसक्यूएल) SQL सर्वर में मिररिंग त्रुटि को कॉन्फ़िगर करने और हल करने के लिए आदेश। स्क्रिप्ट का सबसे महत्वपूर्ण हिस्सा इसका निर्माण और विन्यास है समापन बिंदुओं को प्रतिबिम्बित करना. ये एंडपॉइंट नेटवर्क इंटरफेस हैं जिनके माध्यम से SQL सर्वर इंस्टेंस मिररिंग के दौरान संचार करते हैं। आदेश समापन बिंदु बदलें यह सुनिश्चित करता है कि दोनों सर्वरों पर अंतिम बिंदु "STARTED" स्थिति में हैं, जिससे संचार हो सके। पार्टनर सेट करें फिर कमांड का उपयोग डेटाबेस को लिंक करने के लिए किया जाता है, जो पार्टनर सर्वर के नेटवर्क पते को निर्दिष्ट करता है, जो दो SQL इंस्टेंस को पूरे नेटवर्क में डेटा को मिरर करने की अनुमति देता है।
दूसरी स्क्रिप्ट एक पॉवरशेल समाधान है जिसे दो सर्वरों के बीच नेटवर्क कनेक्टिविटी का परीक्षण करने के लिए डिज़ाइन किया गया है। पॉवरशेल का उपयोग करता है न्यू-ऑब्जेक्ट System.Net.Sockets.TcpClient एक टीसीपी क्लाइंट बनाने के लिए कमांड जो निर्दिष्ट आईपी पते और पोर्ट से कनेक्ट करने का प्रयास करता है। यह सत्यापित करने का एक प्रभावी तरीका है कि आवश्यक पोर्ट (एसक्यूएल सर्वर के लिए 1433 और मिररिंग के लिए 5022) खुले और पहुंच योग्य हैं। यह स्क्रिप्ट फ़ायरवॉल या नेटवर्किंग समस्याओं के निदान के लिए विशेष रूप से उपयोगी है जो दो SQL इंस्टेंस को संचार करने से रोक सकती है, जिससे समस्या उत्पन्न हो सकती है। त्रुटि 1418.
तीसरी स्क्रिप्ट फ़ायरवॉल सेटिंग्स को प्रबंधित करने के लिए विंडोज कमांड प्रॉम्प्ट कमांड का लाभ उठाती है। विशेष रूप से, Netsh advfirewall फ़ायरवॉल नियम जोड़ें कमांड का उपयोग SQL सर्वर और मिररिंग के लिए आवश्यक पोर्ट खोलने के लिए किया जाता है। यह सुनिश्चित करता है कि डेटाबेस ट्रैफ़िक (पोर्ट 1433) और मिररिंग ट्रैफ़िक (पोर्ट 5022) दोनों सर्वरों के बीच स्वतंत्र रूप से प्रवाहित हो सकते हैं। फ़ायरवॉल को अस्थायी रूप से अक्षम करके Netsh advfirewall ने सभी प्रोफ़ाइल स्थिति को बंद कर दिया कमांड, स्क्रिप्ट यह सत्यापित कर सकती है कि फ़ायरवॉल नेटवर्क एक्सेस समस्या का मूल कारण है या नहीं। सुरक्षित वातावरण में सर्वर संचार समस्याओं का निवारण करते समय यह समाधान विशेष रूप से महत्वपूर्ण है।
अंत में, पायथन लिपि का उपयोग करता है सॉकेट.create_connection दो सर्वरों के बीच नेटवर्क जांच करने का कार्य। यह स्क्रिप्ट यह सत्यापित करने का एक त्वरित और प्रभावी तरीका प्रदान करती है कि सर्वर आवश्यक टीसीपी पोर्ट पर एक दूसरे तक पहुंच सकते हैं या नहीं। यह कनेक्शन स्थापित करने का प्रयास करता है, और सफल होने पर पुष्टि करता है कि नेटवर्क सेटअप सही है। नेटवर्क से संबंधित मुद्दों को संभालने में पायथन की सरलता इसे कनेक्टिविटी के परीक्षण के लिए एक अच्छा विकल्प बनाती है, खासकर ऐसे वातावरण में जहां अन्य उपकरण अनुपलब्ध हैं या उपयोग करने में बोझिल हैं। साथ में, ये स्क्रिप्ट समाधान के लिए एक व्यापक दृष्टिकोण प्रदान करती हैं डेटाबेस मिररिंग त्रुटि और SQL सर्वर इंस्टेंस के बीच सुचारू संचार सुनिश्चित करना।
समाधान 1: SQL सर्वर डेटाबेस मिररिंग में त्रुटि 1418 को ठीक करना (T-SQL दृष्टिकोण)
यह समाधान एंडपॉइंट्स को कॉन्फ़िगर करने, कनेक्शन को प्रमाणित करने और सर्वर पते को सत्यापित करके डेटाबेस मिररिंग समस्याओं को हल करने के लिए ट्रांजैक्ट-एसक्यूएल (टी-एसक्यूएल) का उपयोग करता है।
-- Enable server to listen on the specified ports
ALTER ENDPOINT [Mirroring]
STATE = STARTED;
GO
-- Ensure both databases are in FULL recovery mode
ALTER DATABASE YourDatabaseName
SET RECOVERY FULL;
GO
-- Create mirroring endpoints on both servers
CREATE ENDPOINT [Mirroring_Endpoint]
STATE = STARTED
AS TCP (LISTENER_PORT = 5022)
FOR DATABASE_MIRRORING (ROLE = PARTNER);
GO
-- Grant CONNECT permissions to the login account
GRANT CONNECT ON ENDPOINT::[Mirroring_Endpoint]
TO [DOMAIN\UserAccount];
GO
-- Set up mirroring using T-SQL command
ALTER DATABASE YourDatabaseName
SET PARTNER = 'TCP://192.168.0.85:5022';
GO
-- Verify the status of the mirroring configuration
SELECT * FROM sys.database_mirroring;
GO
समाधान 2: SQL सर्वर पोर्ट एक्सेसिबिलिटी का परीक्षण करने के लिए PowerShell स्क्रिप्ट
यह समाधान सर्वरों के बीच पोर्ट कनेक्टिविटी का परीक्षण करने के लिए पावरशेल का उपयोग करता है, यह सुनिश्चित करता है कि आवश्यक पोर्ट खुले हैं और सुन रहे हैं।
# Define server IPs and ports
$server1 = "192.168.0.80"
$server2 = "192.168.0.85"
$port = 5022
# Function to test port connectivity
function Test-Port {
param([string]$server, [int]$port)
try {
$tcpClient = New-Object System.Net.Sockets.TcpClient($server, $port)
Write-Host "$server on port $port is reachable."
$tcpClient.Close()
} catch {
Write-Host "$server on port $port is not reachable."
}
}
# Test both servers
Test-Port -server $server1 -port $port
Test-Port -server $server2 -port $port
समाधान 3: SQL सर्वर त्रुटि 1418 ठीक करें (फ़ायरवॉल कॉन्फ़िगरेशन)
यह दृष्टिकोण फ़ायरवॉल कॉन्फ़िगरेशन की जांच करने के लिए विंडोज कमांड प्रॉम्प्ट का उपयोग करता है, यह सुनिश्चित करते हुए कि दोनों सर्वर पर आवश्यक पोर्ट (1433, 5022) खुले हैं।
-- Check if SQL Server and mirroring ports are open
netsh advfirewall firewall add rule name="SQLPort" dir=in action=allow protocol=TCP localport=1433
netsh advfirewall firewall add rule name="MirrorPort" dir=in action=allow protocol=TCP localport=5022
-- Disable firewall temporarily for testing purposes
netsh advfirewall set allprofiles state off
-- Enable firewall again after testing
netsh advfirewall set allprofiles state on
समाधान 4: सर्वरों के बीच टीसीपी कनेक्शन को मान्य करने के लिए पायथन स्क्रिप्ट
यह समाधान यह सत्यापित करने के लिए पायथन का उपयोग करता है कि क्या SQL सर्वर इंस्टेंस टीसीपी कनेक्शन की जांच करके नेटवर्क पर संचार कर सकता है।
import socket
# Define server IPs and port
server1 = '192.168.0.80'
server2 = '192.168.0.85'
port = 5022
# Function to check connectivity
def check_connection(server, port):
try:
sock = socket.create_connection((server, port), timeout=5)
print(f'Connection successful to {server}:{port}')
sock.close()
except socket.error:
print(f'Cannot connect to {server}:{port}')
# Check both servers
check_connection(server1, port)
check_connection(server2, port)
समाधान 5: SQL सर्वर प्रबंधन स्टूडियो (SSMS) GUI कॉन्फ़िगरेशन
यह समाधान उन उपयोगकर्ताओं के लिए एसएसएमएस जीयूआई का उपयोग करके मिररिंग सेट करने के माध्यम से चलता है जो कमांड-लाइन इंटरफेस का उपयोग नहीं करना पसंद करते हैं।
1. Open SQL Server Management Studio (SSMS).
2. Right-click your database -> Tasks -> Mirror...
3. Click Configure Security and follow the wizard.
4. Ensure both Principal and Mirror servers are correct.
5. Set the port for the mirroring endpoints to 5022.
6. Complete the configuration and click Start Mirroring.
7. Verify the mirroring status by checking the "Database Properties" window.
SQL सर्वर मिररिंग में नेटवर्क और सुरक्षा चुनौतियों का अन्वेषण
सेटअप करते समय SQL सर्वर डेटाबेस मिररिंग, एक पहलू जिसे अक्सर अनदेखा किया जाता है वह है नेटवर्क कॉन्फ़िगरेशन और सुरक्षा सेटिंग्स की भूमिका। त्रुटि 1418, जो दर्शाती है कि सर्वर नेटवर्क पते तक नहीं पहुंचा जा सकता, अक्सर अंतर्निहित नेटवर्क समस्याओं के कारण होता है। यहां तक कि जब सही पोर्ट (1433 और 5022) खोले जाते हैं और फ़ायरवॉल अक्षम होते हैं, तब भी अन्य नेटवर्क तत्व जैसे रूटिंग और डीएनएस कॉन्फ़िगरेशन संचार विफलताओं का कारण बन सकते हैं। यह सुनिश्चित करना महत्वपूर्ण है कि दोनों सर्वर एक-दूसरे के आईपी पते को ठीक से हल करें, खासकर मल्टी-सबनेट वातावरण में।
एक और चुनौती शामिल है SQL सर्वर प्रमाणीकरण मिररिंग सेटअप के दौरान सेटिंग्स। डेटाबेस मिररिंग के लिए आवश्यक है कि प्रिंसिपल और मिरर सर्वर दोनों प्रमाणपत्र या डोमेन-आधारित प्रमाणीकरण (केर्बरोस) के माध्यम से एक दूसरे को प्रमाणित करें। यदि यह सेटअप सही ढंग से कॉन्फ़िगर नहीं किया गया है, या यदि दो सर्वरों के बीच सुरक्षा प्रोटोकॉल में कोई मेल नहीं है, तो त्रुटि 1418 हो सकती है। इसके अतिरिक्त, SQL सर्वर सेवा खातों के पास दोनों मशीनों पर सही अनुमतियाँ होनी चाहिए, विशेष रूप से मिररिंग एंडपॉइंट तक पहुंच।
अंततः, ऑपरेटिंग सिस्टम का चुनाव मिररिंग के व्यवहार को भी प्रभावित कर सकता है। अलग-अलग विंडोज़ संस्करण टीसीपी कनेक्शन को अलग-अलग तरीके से संभाल सकते हैं, विशेष रूप से वे फ़ायरवॉल नियमों और नेटवर्क ट्रैफ़िक रूटिंग को कैसे प्रबंधित करते हैं। यदि किसी भी सर्वर के ऑपरेटिंग सिस्टम में पुराने या बेमेल नेटवर्क ड्राइवर हैं, तो सर्वर के बीच संचार विफल हो सकता है। यह सुनिश्चित करना कि ओएस नवीनतम पैच के साथ अद्यतित है और उचित सेवाएं चल रही हैं, त्रुटि 1418 जैसी कनेक्टिविटी समस्याओं को हल करने में महत्वपूर्ण है।
SQL सर्वर मिररिंग सेटअप और त्रुटि 1418 पर सामान्य प्रश्न
- SQL सर्वर मिररिंग में त्रुटि 1418 का क्या कारण है?
- त्रुटि 1418 आमतौर पर दो सर्वरों के बीच संचार विफलता के कारण होती है। यह गलत फ़ायरवॉल सेटिंग्स के कारण हो सकता है mirroring endpoints, या नेटवर्क कनेक्टिविटी समस्याएँ।
- मैं कैसे जांच सकता हूं कि मेरे पोर्ट SQL सर्वर मिररिंग के लिए खुले हैं या नहीं?
- उपयोग telnet कमांड या स्क्रिप्ट जैसे New-Object System.Net.Sockets.TcpClient पावरशेल में यह जांचने के लिए कि पोर्ट 1433 और 5022 खुले हैं या नहीं।
- क्या मिररिंग के लिए दोनों सर्वरों का एक ही डोमेन में होना आवश्यक है?
- नहीं, लेकिन डोमेन प्रमाणीकरण प्रक्रिया को सरल बना सकता है। अन्यथा, आपको इसे सुरक्षित करने के लिए प्रमाणपत्र-आधारित प्रमाणीकरण का उपयोग करना होगा mirroring endpoints.
- डेटाबेस मिररिंग में समापन बिंदु की क्या भूमिका है?
- CREATE ENDPOINT कमांड नेटवर्क इंटरफ़ेस बनाता है जो SQL सर्वर इंस्टेंस को मिररिंग के दौरान संचार करने की अनुमति देता है। प्रत्येक सर्वर में एक कार्यशील मिररिंग एंडपॉइंट होना चाहिए।
- क्या मैं विभिन्न SQL सर्वर संस्करणों पर डेटाबेस मिरर कर सकता हूँ?
- नहीं, डेटाबेस मिररिंग के लिए आवश्यक है कि ठीक से काम करने के लिए दोनों SQL सर्वर इंस्टेंसेस एक ही संस्करण और संस्करण पर हों।
डेटाबेस मिररिंग त्रुटि 1418 को हल करने पर अंतिम विचार
त्रुटि 1418 जैसी डेटाबेस मिररिंग त्रुटियाँ अक्सर सर्वरों के बीच नेटवर्किंग समस्याओं के कारण होती हैं। यह सुनिश्चित करना कि सही पोर्ट खुले हैं, फ़ायरवॉल कॉन्फ़िगर हैं, और एंडपॉइंट ठीक से सेट हैं, इस समस्या को हल कर सकते हैं।
इसके अतिरिक्त, पावरशेल जैसे टूल के साथ नेटवर्क एक्सेस को मान्य करना और यह सुनिश्चित करना कि प्रमाणीकरण प्रोटोकॉल सर्वरों के बीच सुसंगत हैं, आपकी सफलता की संभावनाओं में सुधार करेगा। इन चरणों का पालन करने से उच्च-प्रदर्शन संचालन के लिए विश्वसनीय SQL सर्वर मिररिंग प्राप्त करने में मदद मिल सकती है।
डेटाबेस मिररिंग समाधान के लिए संदर्भ और संसाधन
- त्रुटि 1418 और एंडपॉइंट सेटिंग्स सहित SQL सर्वर मिररिंग कॉन्फ़िगरेशन और समस्या निवारण पर विवरण यहां पाया जा सकता है माइक्रोसॉफ्ट एसक्यूएल दस्तावेज़ीकरण .
- SQL सर्वर मिररिंग के लिए फ़ायरवॉल नियमों और नेटवर्क समस्या निवारण को कॉन्फ़िगर करने के लिए एक व्यापक मार्गदर्शिका यहां देखी जा सकती है विंडोज़ फ़ायरवॉल कॉन्फ़िगरेशन .
- SQL सर्वर इंस्टेंसेस के बीच पोर्ट परीक्षण और नेटवर्क सत्यापन के लिए पावरशेल स्क्रिप्ट यहां उपलब्ध हैं पॉवरशेल दस्तावेज़ीकरण .
- सर्वर कनेक्टिविटी के परीक्षण में उपयोग की जाने वाली पायथन सॉकेट प्रोग्रामिंग तकनीकों के लिए, यहां जाएं पायथन सॉकेट मॉड्यूल .