এসকিউএল সার্ভারের সাথে কথা বলার জন্য আমার কোন পাওয়ারশেল কৌশলটি ব্যবহার করা উচিত?


29

আমি এসকিউএল ইনস্ট্যান্স মনিটরের জন্য ব্যবহার করা পুরানো কর্নশেল স্ক্রিপ্টগুলি প্রতিস্থাপনের জন্য শেষ পর্যন্ত পাওয়ারশেলটি ব্যবহার করতে চাই। যদিও পাওয়ারশেল আসলে এসকিউএল সার্ভারের সাথে কথা বলতে পারে তার সমস্ত বিভিন্ন উপায়ে আমার মস্তিষ্ক পেয়েছি time নিশ্চিত হওয়া যায় না যে এগুলি সবই রয়েছে, তবে আমি এখানে এসকিউএল সার্ভারের সংস্করণটি জিজ্ঞাসা করতে পারি 5 টি সম্পূর্ণ ভিন্ন উপায়:

1. এসকিউএল সংযোগ। নেট ক্লাস

$SqlConnection = New-Object System.Data.SqlClient.SqlConnection
$SqlConnection.ConnectionString = "Server=MyServer;Database=Master;Integrated Security=True"
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand
$SqlCmd.CommandText = "Select @@version as SQLServerVersion"
$SqlCmd.Connection = $SqlConnection
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
$SqlAdapter.SelectCommand = $SqlCmd
$DataSet = New-Object System.Data.DataSet
$SqlAdapter.Fill($DataSet)
$SqlConnection.Close()
$DataSet.Tables[0]

2. ডাব্লুএমআই সরবরাহকারী

$sqlProperties = Get-WmiObject 
    -computerName "MyServer"
    -namespace root\Microsoft\SqlServer\ComputerManagement10
    -class SqlServiceAdvancedProperty
    -filter "ServiceName = 'MSSQLSERVER'"
$sqlProperties.VERSION

3. এসএমও

[System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.SMO') | Out-Null
$smo-var = New-Object ('Microsoft.SqlServer.Management.Smo.Server') 'MyServer\instancename'
$smo-var.VersionString

৪.এসডিআরআই

Set-Location SQLSERVER:\SQL\MyServerName\
$server = Get-Item Default
$server.get_VersionString()

5. আমন্ত্রণ - এসকিউএলসিএমডি

Invoke-Sqlcmd -Query "SELECT @@version" -ServerInstance "MyServer"

এই পরিস্থিতিতে কোনটি বিভিন্ন পরিস্থিতিতে ব্যবহার করতে হবে তা স্থির করার বিষয়ে আমি কীভাবে যেতে পারি? প্রত্যেকের কি ভাল / কনস আছে? এই পাওয়ারশেল ০.০ এর কয়েকটি কৌশল কি 2.0 তে এগিয়ে গেছে? তাদের মধ্যে কেউ এসকিউএল 2000 বা 2005 সার্ভারের সাথে যোগাযোগের জন্য কাজ করবে না?

এক পর্যায়ে, আমি নিশ্চিত যে উত্তরটি "যা কিছু কাজ করে তা ব্যবহার করুন", তবে পাওয়ারশেলের নতুন কারও পক্ষে উপরের # 1 এর মতো অনেকগুলি উদাহরণ লেখা খুব বিভ্রান্তিকর, যখন এটি সবচেয়ে দীর্ঘতম এবং (আমার মনে) অন্তত "পাওয়ারশেল-জাতীয়" উদাহরণ।

এটি প্রাসঙ্গিক হলে কিছুটা বেশি তথ্য: যে এসকিউএল সার্ভারটি প্রকৃতপক্ষে মনিটর স্ক্রিপ্টগুলি পরিচালনা করবে তা এসকিউএল 2005, তবে এটি এসকিউএল 2000 থেকে 2008R2 অবধি একাধিক উদাহরণের সাথে সংযোগ করতে ব্যবহৃত হয়।


1
প্রথম প্রথম, দুর্দান্ত প্রশ্ন এবং খুব পুঙ্খানুপুঙ্খ। +1 টি। আমি সম্ভবত এই তালিকাটিকে তাদের দুজনের মধ্যে সংকীর্ণ করব: ADO.NET (আপনার প্রথম) এবং এসএমও। ডাব্লুএমআই কিছুটা আনাড়ি হতে পারে এবং এটি কী-স্ট্রোক কম হলেও এটি কী হবে তা প্রথম নজরে এতটা "স্পষ্ট" নয়।
থমাস স্ট্রিংগার

উত্তর:


7

স্পষ্টতই, এর অনেকগুলি সরল ব্যক্তিগত পছন্দকে রূপান্তরিত করে। এখানে আমার নিজস্ব, ব্যক্তিগত, যুক্তিযুক্তকরণ আছে।

PSH v 1.0 সাল থেকে আমি এসকিউএল এসকিউএল এর সাথে পাওয়ারশেল ব্যবহার করছি এবং এসকিউএল সার্ভার আনুষ্ঠানিকভাবে এটি সংহত করা শুরু করার আগে। (আমি যখন পিএসএইচ দিয়ে শুরু করেছি তখন আমি এসকিউএল সার্ভার 2000 এবং 2005 সার্ভার পরিচালনা করছিলাম।) সুতরাং, আমি এসএমওর সাথে শিখেছি (বা এটি কিছুটা পুরানো অবতার, যার নামটি এই মুহূর্তে আমার হাত থেকে বাঁচায়) এবং নেট এবং আমি অভ্যস্ত ছিলাম তাদের। আমি সাধারণত এসএমওর দিকে ঝুঁকতাম, যেহেতু এটি কিছু জিনিসকে অনেক সহজ করে তোলে যেমন বস্তুগুলি স্ক্রিপ্ট করার মতো। আমার নিজের কোডটি এসএমও ব্যবহার করে এবং কিছু সময় .NET ব্যবহার করে। আমি মনে করি এটি ব্যবহার করা সহজতর ier উদাহরণস্বরূপ সহজ ফলাফল সেট পেতে নেট et

আমি মনে করি আপনার কাছে প্রচুর বিদ্যমান টিএসকিউএল স্ক্রিপ্ট থাকলে ইনভোক-এসকিউএলসিএমডি আরও বোধগম্য হয়। যদি আপনি স্ট্রিং তৈরি করে থাকেন এবং তাদেরকে-ক্যোয়ারির মাধ্যমে কার্যকর করে থাকেন তবে তা অগোছালো হয়ে যাবে। পাওয়ার্সেল কীভাবে নেট। এসএমএল এবং এসএমও-র সাথে কাজ করে সে সম্পর্কে আপনার যদি ভাল উপলব্ধি থাকে তবে মাঝেমধ্যে ইনভোক-এসকিউএলসিএমডি ব্যবহার করে যখন আপনার চালনার জন্য কোনও স্ক্রিপ্ট ফাইল থাকে তখন সহজ।

আমি সর্বদা পিএসডিআরাইভ জিনিসটিকে আড়াল করে খুঁজে পেয়েছি এবং অনুভব করেছি যে তারা এটি বাস্তবায়ন করেছে কারণ তারা "সবকিছুই একটি ফাইল সিস্টেমের মতো দেখতে পারে" ধারণার সাথে জড়িত। আমি জানি যে * নিক্স ছেলেরা love প্রোক এবং আরও পছন্দ করে তবে আমি অনুভব করি যে এই প্ররোচনাটি একরকম জোর করে বোধ করে। আমি মনে করি যে পিএসডিআরাইভ ঠিক আছে, আপনি যদি ইউআইকে ঘৃণা করেন তবে খুব ভাল, জিনিসগুলি অন্বেষণের জন্য তবে আমি এটি ব্যবহার করে এমন কোনও স্ক্রিপ্ট কখনও লিখিনি।

আমি কখনই কাউকে ডাব্লুএমআই সরবরাহকারী ব্যবহার করতে দেখিনি। সুতরাং, এটি আমার শেষ পছন্দ হবে।

সুতরাং, আমি এসএমওর সাথে নেতৃত্ব দিয়েছি এবং আবার পিছনে পড়ে যাব ier


1
মনে রাখার মতো কিছু Invoke-SQLCmdহ'ল এটি সংযোগগুলি খুব কৌতূহলীভাবে পরিচালনা করে না। যদি আপনার কাছে পৃথক পৃথক প্রশ্নগুলির একটি স্ক্রিপ্ট থাকে, সংযোগগুলি স্থির / পুনরুদ্ধার করা যেতে পারে বা কেবল বাদ দেওয়া হয়নি যা #TEMPটেবিলগুলি টিকে থাকার সাথে সংস্থান বা রিসোর্সের সমস্যাগুলির সাথে অপ্রত্যাশিত সমস্যা তৈরি করতে পারে ।
জেএনকে

3

নতুন কাজের জন্য 4, বিদ্যমান স্ক্রিপ্টগুলি বা জায়গাগুলি পুনরায় ব্যবহারের জন্য 5 টি-এসকিউএল অবজেক্ট-ভিত্তিক / পোস্ট শৈলী কোডের চেয়ে বেশি জ্ঞান অর্জন করে। আমি সেগুলি সবচেয়ে পছন্দ করি কারণ তারা পরিষ্কার এবং সাধারণ।


2

আমি যদি পারি তবে এসকিউএলপিএস ব্যবহারের দিকে ঝুঁকে পড়ি। এটি সহজ এবং আমি যদি স্ক্রিপ্টগুলিতে এটি ব্যবহার করি তবে এসএমও ব্যবহার করার চেষ্টা করার চেয়ে পড়তে অনেক সহজ এবং টাইপিং কম। এসএমওর কি এর জায়গা রয়েছে যে এতে খুব ভাল শক্তি রয়েছে তবে এটির সাথে আপনি যদি অপরিচিত থাকেন তবে এটি ব্যবহার করতে মাঝে মাঝে বিভ্রান্তিকর হতে পারে।

আমি মনে করি এসকিউএল সার্ভার সংস্করণগুলি প্রকাশিত হওয়ার সাথে সাথে এসকিউএলপিএস আরও উন্নত হবে। বিশেষত যেহেতু এসকিউএল সার্ভারের সাথে 2012 এসকিউএলপিএস স্ন্যাপিন হওয়ার পরিবর্তে মডুলার নয়। এটি মাইক্রোসফ্টকে এসকিউএলপিএসের সাথে সার্ভিস প্যাকগুলি বা হটফিক্স, এমনকি সিইওর মাধ্যমে সংশোধন বা উন্নতি করার অনুমতি দিতে চলেছে।

তারপরে এসকিউএলপিএসএক্স এর মতো সম্প্রদায়গুলির অফারগুলিও রয়েছে , যা ইতিমধ্যে সেমিডলেট এবং ফাংশন হিসাবে আপনার জন্য প্রস্তুত that এসএমও কোডের প্রচুর পরিমাণে । আমি হুইলটি পুনরায় উদ্ভাবন না করার জন্য যা করছি :)

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