Maqaalkani waa mid wax ku ool ah oo kaliya oo u heellan sheekadayda murugada leh
U diyaargarowga Zero Touch PROD RDS (MS SQL), oo dhegahayaga oo dhami ay ka guuxayeen, waxaan sameeyay soojeedin (POC - Proof Of Concept) ee automation: set of powershell scripts. Soo bandhigida ka dib, markii duufaankii, sacabkii daba dheeraaday ay dhinteen, oo u rogay sacab aan kala go' lahayn, waxay ii sheegeen - waxaas oo dhan waa wanaagsan yihiin, laakiin kaliya sababo fikradeed, dhammaan addoommadeenna Jenkins waxay ka shaqeeyaan Linux!
Tani suurtogal ma tahay? Ka soo qaad sida diiran, laambad DBA ah oo ka hooseysa Windows oo ku dheji kulaylka aadka u kulul ee hoosta Linux? Sow kani naxariis ma aha?
Waxa aan ku qasbanaay in aan is dhex galiyo teknooloojiyadan la yaabka leh. Dabcan, dhammaan qoraaladayda 30+ ayaa joojiyay shaqada. Waxaa yaab igu noqotay, in aan wax walba ku hagaajiyo hal maalin shaqo gudaheed. Waxaan qorayaa dabagal kulul. Marka, waa maxay cilladaha aad la kulmi karto marka aad qoraalada powershell ka wareejinayso Windows una direyso Linux?
sqlcmd vs Invoke-SqlCmd
Aan ku xasuusiyo farqiga ugu weyn ee u dhexeeya. Utility jir wanaagsan sqlcmd Waxa kale oo ay ka hoos shaqeysaa Linux, iyada oo ku dhawaad ββisku mid ah shaqeyn. Waxaan u gudubnaa weydiinta si aan u fulino -Q, faylka gelinta sida -i, iyo soo saarista sida -o. Laakiin magacyada faylka, dabcan, ayaa laga dhigay kiis xasaasi ah. Haddii aad isticmaasho -i, markaa faylka ku qor dhamaadka:
GO
EXIT
Haddii aysan jirin wax ka bixitaan ah dhamaadka, markaas sqlcmd wuxuu sii wadi doonaa inuu sugo gelinta, iyo haddii ka hor KA BAX ma doono GO, markaas amarka ugu dambeeya ma shaqayn doono. Faylka wax soo saarka wuxuu ka kooban yahay dhammaan wax soo saarka, xulashada, fariimaha, daabacaadda, iwm.
Invoke-SqlCmd waxay soo saartaa natiijada sida DataSet, DataTables ama DataRows. Sidaa darteed, haddii aad ka baaraandegto natiijada xulashada fudud, waxaad isticmaali kartaa sqlcmdMarka la eego wax soo saarkeeda, waa wax aan macquul aheyn in la soo saaro wax adag: tan waxaa jira U yeedho-SqlCmd. Laakiin kooxdani sidoo kale waxay leedahay kaftan u gaar ah:
Haddii aad fayl ugu wareejiso iyada -Faylka galitaanka, ka dibna KA BAX Looma baahna, sidoo kale, waxay soo saartaa qalad syntax
Waxaa jira laba eray oo lagu qeexay server: -ServerInstance -Username -Password -Database oo dhex mara -ConnectionString. Si la yaab leh, kiiska ugu horreeya suurtagal maaha in la qeexo deked aan ahayn 1433.
soo saarida qoraalka, ku qor PRINT, oo si fudud loo "qabtay" sqlcmdee U yeedho-SqlCmdwaa dhibaato
Markaa waa kan. In *nix beddelka doorsooma ma shaqeeyo. Halbeegga -v la iska indhatiray. U U yeedho-SqlCmd la iska indhatiray -Isbedelka. In kasta oo halbeegga qeexaya doorsoomayaasha laftooda la iska indhatiray, beddelka laftoodu waa shaqeeyaan- waxaad isticmaali kartaa doorsoomayaal kasta oo Shell ah. Si kastaba ha ahaatee, waxaa iga xumaaday doorsoomayaasha oo waxaan go'aansaday inaanan ku tiirsanayn haba yaraatee, waxaana u dhaqmay si akhlaaq darro ah oo asal ah, maadaama qoraallada SQL ay gaaban yihiin: