Archive for the ‘Magyar’ Category.
4th September 2010, 06:47 pm
Klasszikus probléma, hogy van egy Windows login az SQL szerveren, aki benne van N csoportban, amik benne vannak másik M csoportban, és a répamese jegyében ez összesen nagyon sok csoport lesz. A kérdés pedig az, hogy pontosan melyik csoporttagságán keresztül milyen jogot is szerzett az SQL szerveren. Na, pont erre nyomtam egy lenyűgöző Powershell demót a SQL 2008 R2 bejelentési eseményen, aztán elhagytam a scriptet. Mivel valami dupla mákos hakkolás volt, próbáltam felhajtani, de nem sikerült. Viszont a vicc, hogy ugyanezt a fícsört megtaláltam beleépítve a SQL szerverbe.
A neve xp_logininfo, és két irányba is működik:
exec master..xp_logininfo [EMEA\EBitemo], 'all'
megmondja az összes csoportot, melyen keresztül engem beenged a SQL Server.
exec master..xp_logininfo [EMEA\#DBA_Operators], 'members'
pedig megmondja, h kiket is enged ő be azon a csoporton keresztül.
Ezzel TT felé való négyhónapos adósságomat rendezettnek tekintem :)
23rd August 2010, 08:55 pm
Kezicsókolom, még élek, de csak részben. Éppen dögrováson vagyok, asszem kicsit túlpörögtem, de most (kicsit) pihenek. ELhatároztam, hogy szeptembertől megint írok majd blogot, horvát barátaim ebben segítenek, mert meghívtak egy konferenciára előadni. ÉN választhattam témát, és hát az bizony az SQL server CLI kezelése lesz. Apró hiba, hogy én alig látok ki a fejemből, a notebookom megint meghalt, és az egész két hét múlva lesz, de innen szép a győzelem. Majd megosztom a magyar nagyérdeművel is. Ha sikerül, felteszem a technetre vagy az SQLKlubra.
10th May 2010, 03:09 pm
Diszket kellett bővíteni egy SQL clusterben, a lehető legkevesebb leállással, úgyhogy úgy döntöttem, hogy folytatom, amiben jó kezdek lenni: scriptelek. A cluster diszkek hozzáadása önmagában nem nagy szám (most felhördül legalább 28 ember, akinek már voltak rossz élményei a témában – nekem is, de a lekapcsolt többi node majdnem mindig dobott a dolgon), a jó rész az, hogy az SQL csak azokat a diszkeket használja, amiken dependál a service, a dependenciát pedig csak leállított helyzetben lehet állítgatni. Itt jön jól a script, hogy ne kelljen klikkelni, míg megöregszem. Ezúttal a cluster.exe volt a műtéti alany, az eredmény pedig alant látható (a sql12clus clustert megtámogatva):
cluster.exe sql12clus resource "SQL Server" /Offline
cluster.exe sql12clus resource "SQL Server" /AddDependency:"K: BillingData"
cluster.exe sql12clus resource "SQL Server" /AddDependency:"L: BillingLog"
cluster.exe sql12clus resource "SQL Server" /Online
Azaz leállít, dependenciát hozzáad, elindít. Egy öröm volt.
27th April 2010, 09:45 am
Az SQL 2008 R2 előadásomon a Lurdy Házban mutattam egy PS scriptet, ami a következő igényt elégíti ki: egy fájlrendszeren lakó könyvtárban lévő backup fájlokból kinyalja a backup információkat. Íme a script:
function List-Backups(
[string] $filename, ##fájl vagy könyvtárnév, dir parancs számára emészthető input kell
$Html, ## HTML fájl output neve, .\ prefix kell neki lokális esetén
$servername = '.' ## az SQL Server, aki lefuttatja a restore headeronly parancsot
) {
## a tulajdonságok, amik kellenek - teljes lista a BOL-ban
$proplist = ('Position', 'DatabaseName','ServerName','BackupFinishDate','DatabaseVersion')
## mint fent, csak a filename mezővel prefixeltem. igénytelen, de gyors megoldás,
$proplist2 = ('FileName', 'Position', 'DatabaseName','ServerName','BackupFinishDate','DatabaseVersion')
## ez a tömb tárolja a teljes listát
$allbck = @()
foreach ($file in (dir $filename)) ## ezért kellett dir kompatibilis input
{
## lefut a restore headeronly...
$backups = invoke-sqlcmd -ServerInstance ".\mysql" -Query "restore headeronly from disk = '$($file.FullName)'"
$bck = @()
## a kiválasztott mezoket eltesszük a $bck változóba.
## Igazából perzisztált scriptben nem illik olyan shortcutokat használni, mint % (foreach) meg ? (where)
$backups|select $proplist|%{$bck += $_}
## hozzáadjuk a fájlnevet is...
$bck |add-member noteproperty filename $file.FullName
## ... és a kibövitett listát eltesszük az összegzett listába
$allbck += $bck|select $proplist2
} #foreach $file
## kiírjuk az összegzett listát a standard outputra - ez a függvény kimenete
$allbck
## ha meg lett adva HTML fájlnév, akkor abba is kitoljuk a táblázatot, és meg is nyitjuk. Itt lehetne kezelni a .\ hiányát, de nem tettem, lustaságból
if ($Html)
{
$allbck|ConvertTo-Html|Out-file $Html
## itt nyitjuk meg, az alkalmazás a default app a megadott kiterjesztéshez, tehát a böngészőnk htm(l)-nél
invoke-expression $Html
} #if $html
} #function List-Backups
## És nézzünk néhány példát is:
## nézzük meg a D:\SQLData\Backups könyvtár tartalmát, HTML-ben is
List-Backups D:\SQLData\Backups .\lista.html
## nézzünk meg egyetlen fájlt a konzolon
List-Backups D:\SQLData\Backups\Full.BAK
##keressük meg a Billing adatbázis legfrissebb full backupját tartalmazó fájlt és a backup pozícióját a megadott könyvtárban
List-Backups D:\SQLData\Backups | ?{$_.DatabaseName -eq 'Billing' -and $_.BackupTypeDescription -eq 'DATABASE'} | `
Sort -prop BackupFinishDate -desc| select Filename, Position -first 1
Az utolsó parancsba beletoltam több mindent is. A ? (where) a szűrést hivatott bemutatni, a -eq és az -and a vicces operátorokat, amit el is rontottam a demóban, a backtick a többsoros parancs sorvégét jelzi, a többi meg magától értetődő, de azért jó látni, hogy a lehetőségek szinte korlátlanok.
25th April 2010, 03:04 pm
<puffogás>
Mert nem tudtam róla. Más sem nagyon tudott róla.
A Microsoft számomra az a cég, amelyiknek olyan kiváló fejlesztői vannak, hogy csak na, és olyan marketingesei, hogy ha nem lennének olyan kiválók a fejlesztők, talán be is csuktak volna már. Erre az egyik kirívó példa az SQL 2008 kampány volt. Hányan szenvedtek azzal, hogy hiába volt clusterük, nem tudtak installálni SP-t 10-15 perc leállás nélkül, ami alapjaiban döntötte meg a nagy rendelkezésreállás élményét. Ehhez képest SQL 2008-at lehet node-onként patchelni, egy failovernyi, azaz 25-55 másodperc kieséssel. Ég és föld szerintem – de csak véletlen, egy technikai blogon tudtam ezt meg. Ugyanakkor a tonnányi marketingvacak meg már égette a szememet, ha megnéztem az SQL Server honlapot.
Most az R2-nél valahogy hiányzott az egységes kommunikáció, mint olyan. Különböző emberek különböző dolgokat tudtak, hogy hogy fog kinézni a végleges termék, de pl. a 10 GB-os Express mérethatárt csak a bejelentés napján az SQL Express blogban olvastam először. Az amerikai MVP-k meg azon buktak ki, hogy miért 2008-as feature-öket marketingelnek a 2008 R2 bemutatón, miért nem 2008 R2-eseket.
Sebaj, majd a Denali (SQL Server 11) talán jobb lesz… A nevet Dan Jones hozta nyilvánosságra, tévedésből (azt hitte,hogy publikus), le is szúrták érte, a http://blogs.msdn.com/dtjones/archive/2010/02/14/codename-denali.aspx pedig hamar el is tűnt, de akkorra már késő volt… Az MVP Summiton ki is röhögte mindenki szegényt, amikor az NDA fontosságára hívta fel a figyelmünket az előadása kezdetén. Ő is nevetett, bár nem pont úgy, mint mi.
Megnéznék egy céget, ahol az Apple marketingesei dolgoznak a Microsoft fejlesztőivel. Az nagyot szólna…
</puffogás>