পাওয়ারশেল এসএসএমএস থেকে মুদ্রিত বার্তা পুনরুদ্ধার করাতে


12

আমাদের ডিবিএ টিম নীচে ব্যবহার করে ব্যাকআপগুলি যাচাই করে না TSQL(যা সহজেই পোস্ট-ব্যাকআপ করা যায় এবং প্রায় সময় লাগে না, তাই কেন পাই না):

RESTORE VERIFYONLY
FROM DISK = 'D:\Backups\LOCATION'

তাদের অতীতে সমস্যা ছিল, সুতরাং আমরা যদি মনে করি তারা এগুলি শিখতে পারে তবে তারা তা করেনি। আমি এটি করার জন্য একটি পাওয়ারশেল স্ক্রিপ্ট তৈরি করেছি কারণ আমাদের প্রায় 100+ সার্ভার রয়েছে এবং আমি এই স্ক্রিপ্টটি কেবলমাত্র বৈধ কিনা তা নিশ্চিত করার জন্য সমস্ত ব্যাকআপের বিপরীতে চালাতে চাই। নীচের স্ক্রিপ্টটি সঠিকভাবে চলমান (এতে এটি ত্রুটিগুলি ভেঙে না ফেলে বা ছড়িয়ে দেয় না), আমি যদি কৌতূহল বোধ করি তবে পাওয়ারশেলের মুদ্রিত বার্তাটি ফেরত পাওয়ার কোনও উপায় আছে যা আমরা সাধারণত এসএসএমএসে পাই যেখানে এটিতে বলা আছে যে ফাইল 1 এ ব্যাকআপ সেটটি রয়েছে যাচাইকরণ হিসাবে বৈধ

$SqlCon = New-Object System.Data.SqlClient.SqlConnection
$SqlCon.ConnectionString = "SERVER=SERV\INST;Integrated Security=true;DATABASE=master"

$baks = Get-ChildItem "D:\Backups\" -Filter *.BAK

foreach ($bak in $baks)
{
    $SqlCon.Open()
    $cd = New-Object System.Data.SqlClient.SqlCommand
    $cd.Connection = $SqlCon

    $cd.CommandText = "RESTORE VERIFYONLY FROM DISK = @f"
    $cd.Parameters.Add("@f", $bak.FullName)
    $cd.ExecuteNonQuery()
    $SqlCon.Close()
}


Invoke-SqlCmd ... -Verboseআপনি হোস্টে কেবল তাত্ক্ষণিকভাবে মুদ্রণের পরিবর্তে আউটপুটটিকে পরে ব্যবহারের জন্য পুনর্নির্দেশ করতে চান তবে তাও দুর্দান্ত ।
পিটার ভ্যান্ডিভিয়ার

উত্তর:


19

পাওয়ারশেল ব্যবহার করে এসকিউএল সার্ভার থেকে ইনফরম্যাসেজ আউটপুট (প্রিন্ট, রেজারার) ক্যাপচার করা হচ্ছে

কৌতুকটি, যেমন জোনাথন উল্লেখ করেছেন, মুদ্রণ বা ত্রুটির ক্রিয়াকলাপের জন্য আপনার সংযোগ ব্যবস্থাপকের সাথে শ্রোতা যুক্ত হওয়া দরকার।

$cd.Parameters.Add("@f", $bak.FullName) | Out-Null
$handler = [System.Data.SqlClient.SqlInfoMessageEventHandler] {param($sender, $event) Write-Host $event.Message }
$SqlCon.add_InfoMessage($handler)
$SqlCon.FireInfoMessageEventOnUserErrors = $true  

আমি প্যারামিটার যুক্ত করার আউটপুটটিও পাইপ করলাম Out-Nullযেহেতু আমার প্রয়োজন নেই।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.