2010-07-26 13 views
5

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

उत्तर

6

आप अवधि नहीं कर सकते हैं। SQL सर्वर का बैकअप केवल स्थानीय डिस्क में सहेजा जा सकता है - स्थानीय रूप से SQL सर्वर पर।

आप किसी भी चाल या उपकरण के साथ अपने स्थानीय हार्डडिस्क में एक दूरस्थ SQL सर्वर बैकअप नहीं कर सकते हैं। बस यह नहीं कर सकता।

4

संपादित करें: अपना प्रश्न दोबारा पढ़ना और मेरा उत्तर जवाब देने के लिए marc_s केवल तभी काम करेगा जब रिमोट सर्वर द्वारा आप कहीं भी अपने नेटवर्क पर किसी सर्वर के बारे में बात कर रहे हों। यदि आप किसी अन्य डोमेन पर होस्ट किए गए SQL सर्वर के बारे में बात कर रहे हैं तो कहीं भी marc_s सही है और मेरा उत्तर का उपयोग नहीं है। यदि आप अपने डोमेन में किसी सर्वर के बारे में बात कर रहे हैं तो मैं इसे यहां छोड़ दूंगा। संपादित करें

मेरे स्थानीय सी: \ tmp निर्देशिका पर साझा करने के बाद पावरहेल का यह बिट बैकअप करता है।


[System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.SMO') | out-null 
# may need this instead [System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.SmoExtended') | out-null 

$datePart = Get-Date -Format "yyyyMMdd_hhmm" 
$targetDir = '\\LocalMachineName\tmp\' # change to fit your specs 
$dbname = "DatabaseNameToBackUp" 

$s = new-object ('Microsoft.SqlServer.Management.Smo.Server') 'remoteSqlServer' 
$bckfile = $targetDir + $dbname + "_" + $datePart + ".bak" 
$dbbk = new-object ('Microsoft.SqlServer.Management.Smo.Backup') 
$bdi = new-object ('Microsoft.SqlServer.Management.Smo.BackupDeviceItem') ($bckfile, 'File') 
$dbbk.Action = 'Database' 
$dbbk.BackupSetDescription = "Full backup of " + $dbname 
$dbbk.BackupSetName = $dbname + " Backup" 
$dbbk.Database = $dbname 
$dbbk.MediaDescription = "Disk" 
$dbbk.Devices.Add($bdi) 
$dbbk.SqlBackup($s) 
$dbbk.Devices.Remove($bdi) |out-null 
$bckfile = $null 

मुझे पता है तुम Powershell का उल्लेख नहीं था लेकिन जब से मैं .net टैग मैंने सोचा था कि यह अभी भी कुछ मदद की हो सकता है देखा। पसंद के अपने .net स्वाद के लिए फिर से लिखने के लिए बहुत अधिक प्रयास नहीं होना चाहिए।

संबंधित मुद्दे