:::: MENU ::::

Powershell skript pro atribut objektu uzivatele

Skript pro zobrazeni urciteho atributu uzivatele v AD (napr. pro Telephone Notes atribut pouzijte INFO, tedy:

return &aduser.info)

function get-ldapuser ($username, $querydc) {
$domain = new-object DirectoryServices.DirectoryEntry ("LDAP://$querydc)
$searcher = new-object DirectoryServices.DirectorySearcher($domain)
$searcher.filter = "(&(objectclass=user)(samaccountname=$username))"
$searcher.findone().getDirectoryEntry()
}

$prefdc = "DCServerName.DomainName.com"
$lookupid = "loginname"
$aduser = get-ldapuser $lookupid $prefdc

return &aduser.nameoftheobjectattribute


Microsoft SQL Server 2005 – replikace

sqlserver2005 – existuje i peer-to-peer (pres RPC zapouzdrene do HTTPS)

– synchronizace db (synchronizovane db jsou vsechny online)

– da se nastavit, ze nektere budou jen na read a nektere jen na write

– lepsi je vyuzit replikaci na urovni filesystemu, ale to SQL neumi (melo by to byt na SQL 2008)

– zajistuje autonomii serveru sql, prilblizuje data uzivatelum, redukuje locks na db

– role replikacnich serveru

   – publisher – jeho db se zucastnuje replikace (~ sdili db)

   – distributor – kopiruje sdilene db na subsriber, muze byt interni (je na stejnem srv jako publisher) nebo externi (na samostatnem serveru)

   – subscriber – cil pro db

  – muze byt obousmerne tzn. publisher je i subscriber a opacne

– typy replikace

   – snapshot – pri zmene jedne radky v tabulce se replikuje cela tabulka (dobre je to na to, ze se da prenest cela db)

      – snapshot agent – bezi na publisher srvru

   – tranactional  – replikuji se i male zmeny (i jen radky), vyuziva t-log

      – log reader agent

   – merge – oboustranna

               – problem je ze pokud vznikne na obou srv stejne radky, tak dojde ke konfliktu (kvuli tomu vznika dat. typ GUID / pokud to ale nechci tak vyrobim sloupec ID serveru – aplikace pak musi resit rozeznani serveru, nebo to udelam na sql serveru pomoci triggeru)

      – merge agent

   – heterogeneous – replikace mezi sql serverem a jinym typem db serveru

– articles – prenasene data – co publikovat (tabulky, sloupce,…)

– publications – skupiny articles

   – distributor

– subscriptions – odkud kam se ma udelat synchronizace

– replikacni agenti jsou soucasti sluzby sql serveru a pouzivaji joby

– mohu nastavit i replikaci pro napr. PDA pomoci compact edition sql

– konfiguruje se pres SSMS server

   – replications – configure distribution… (timto se vytvori sys db distribution (sp_adddistributiondb))

      – slozku pro snapshot (vytovri se pres bulkcopy) dat na specialni disk, protoze pri jeho vzniku nastane mnoho I/O operaci

   – local publications – new publications…

      – mohu pouzit filter (~ SELECT s WHERE) – vyberu jen napr. urcite radky ze sloupce

      – snapshot – je tam proto, abych mohl prenest ty puvodni data, ale mohu nastavit i schedule

      – nastavuji ucty pro agenty – musi mit prava read k replikovanym datum / mohu to nastavit i na ucet SQL Agenta (jako bylo nativne v SQL 2000)

   – local subscriptions – new subscription …

      – nastvauji push (vyssi zatizeni distributora) nebo pull (~kontinualni replikace => vyskoa latence)

      – nadefinuji opet ucty

      – typ synchronizace

         – kontinualni

         – manualni

     – nemohu udelat subscriber na publikaci, ktera uz je prenasena


Microsoft SQL Server 2005 – High Availability

sqlserver2005 Server Failover Clustering

– Microsoft Cluster Service (vyzaduje domenu)

– daji se udelat i ve 2 domenach (ale musi byt v jednom forestu, nebo musi mit obousmerny trust) – best practice je mit je v jedne domene (nejlepe aby je overoval jeden DC)

– je pouze na OS Enterprise a na SQL Standard a Enterprise (v 1 licenci 2 cluster nody)

– na W2K3 max. 8 cluster nods

– podminky: supported hw, identicke nody v clusteru (vse!!! ~ hw i sw), sdilene disky (se SCSI identifikaci, = fibre channel (limitovan delkou ~ max. 10/100km), = iSCSI (sitove SCSI))

– postup: nainstaluji cluster service na jeden nod, pote na druhy, pak vytvorim pouze 1 cluster resource grooup (s netbios name, IP adress, min. 1 shared HDD)

– pri presunu clusteru se presouvaji i sys db

– protoze ale startuji i sluzby SQL a dela se restore, tak presun cluster nodu trva dlouho (dle MS do 2 s, ve skutecnosti i 2-3min.)

nebo

Database Mirroring

– kazdy cluster nod ma svuj HDD

– pouze mezi 2 sql servery (principal – mirror)

– pri presunu clusteru se nepresouvaji sys db a userdb, ktere nemaji full recovery model

– presun clusteru je prakticky okamzity

– az od SQL SP1

– identicke verze SQL vyzaduje (pouze witness muze mit jinou)

– vznikla puvodne z log shippingu (backup-restore t-logu zpusob pomoci jobu)

– pouziva tzv. listener a pomoci neho si vymenuji db data (rozdil oproti replikaci je to, ze ten druhy server neni aktivni (=> neplatim dalsi licenci), neco jako active/passive)

– ten neaktivni sql server se nazyva "Hot Standby"

– 3rezimy:

   – high availability (vyuziva 3. server, tzv. Witness (svedek), ktery kontroluje stav mirroringu a pripadne zbudi standby server)

      => automaticky failover

   – high protection

   – high performance

– nastavuji cele pres SSMS pres wizard (pres TSQL: CREATE ENDPOINT) – na kazdem serveru to musim udelat

– vyzadovan FQDN (name+suffix)

– pokud nemam witness server, tak mohu udelat presun manualne pomoci ALTER DATABASE (pokud nemam aktualni data, neprobehl presun dat posledni, tak se da spustit i FORCE)

– vyhodou je to, ze pokud aplikace pouziva SQLAgenta nebo .NET2.0 (a vyssi), tak se aplikace automaticky prepoji na funkcni SQL server  v mirroru

– pri nastavovani musim byt dbo a sysadmin

-1. udelam backup db z principal

-2. udelam restore db na mirroru s option NORECOVERY (non-operational)

-3. na principal dam Database – properties – mirroring – configure security – nakonci dat DO NOT START

-4. po dokonceni wizardu si dat pozor na to co se doplnilo do principal, mirror, witness – musi tam byt FQDN !!!

-5. Start mirroring

– behem mirroringu se tsql provadi i nad mirrorovanou db (ta se zmeni do stavu Synchronizing), v tuto chvili si neda do principal db zapisovat; to se da az mirror db nahlasi ze Synchronized (rezim Full Safety) – presne info na http://download.microsoft.com/download/4/7/a/47a548b9-249e-484c-abd7-29f31282b04d/DBM_Best_Pract.doc , ktere uvadi best practice

– tzn. zjistit jako mam sirku pasma, zajistit si ji pote pomoci QOS a pote zajistit nizkou latency

– po zruseni mirroringu se nesmazou endpointy (musi se odstranit rucne DROP ENDPOINT nebo pres SSMS delete endpoint)


Microsoft SQL Server 2005 – automating administrative tasks

sqlserver2005

  • SQL Server Agent (~ job server)

    – po instalaci ma manual start, takze je dobre ho dat na automatic

    – zodpovedny za veskerou automatizaci v SQL serveru

    – veskere joby, notifikace a alerty jsou pak v db msdb, takze je dobry ji zalohovat (pokud se poskodi, tak Agent nanastartuje)

    – configurace agenta:

    • mail – konfigurace komponenty databasemail – zapnout pres Surface Area Configuration, nebo pres SSMS – Management – Database Mail – Configure:

      • protoze SMTP umi jen odesilat, tak aby mi lidi neodepisovali na ten mail tak nastavim replymail

      • pocet opakovani odeslani mailu je jako vychozi 1, takze zvysit min. na 3

    • zalozka Alert System – nastavim mnou vytvoreny mail

      • ucet pod kterym se ale posta odesila je ucet agenta a ten nema na to prava (bug) – vyresim pres msdb – security – role – database role – DatabaseMailUserRole – sem pridat ucet SQL agenta

    • pod SQL server agentem je folder Operators – New Operator – vytvorim operatora. Best practice je mit jeste jednoho zalozniho "Fail Safe Operator" a toho nastavim pres Properties SQL agenta v Alert System jako "Enable fail safe operator"

    Job

    – obsahuje Job Steps, coz jsou jednotlive ulohy Jobu / funguje to tak, ze testuje uspesnost jednotliveho kroku a na zaklade toho jde na dalsi step

    – pokud nektery krok potrebuje vyssi prava nez ma SQL agent, tak ho spustim jako Proxy account (ten vyrobim pres Proxies v SQL Agentovi)

    – Job Activity Monitor – jako vychozi obsahuje 1000 jobu history zpet

    – mohu ho spustit kdyz je CPU idle, co je CPU idle nastavim v SQL Agentovi

    – mohu ho spustit i na vice serveru pres Targets – musim ale nakonfigurovat "Multi Server Administration" v SQL Agentovi

    – nastavim Schedule

    – cela konfigurace je v db msdb v tabulce sysjobs (hlavicka jobu) a v tabulce sysjobssteps (telo jobu ~ steps)

    Alerts

    – 3 typy alertu

    – na zaklade vzniku alertu mohu spustit Job (execute job)

    Multiserver Administration

    – MXSOperator

    – da se spravovat nekolik sql serveru z jednoho

    – Master Server Wizard +

    – posilat events na jeden sql ze vsech (event forwarder) ~ SQL agent properties -> Advanced


  • Microsoft SQL Server 2005 – monitoring

    sqlserver2005

    • SSMS SQL Server2005 -> Maintenance -> Activity Monitor
    • pri vytvareni dotazu se delaji zamky nad db
    • pohledy v db – sys.neco jsou staticke pohledy a sys.dm_neco jsou dynamicke pohledy (jsou v db ->views->system views)
    • zjistit fragmentaci indexu pomoci sys.dm_db_index_physical_stats, ktera je ve vsech db
    • moje vlastni dotazy si pak mohu dat do vlastniho reportu, ktery si udelam pomoci nastroje SQL Server Business Intelligence Development Studio, ktery je soucasti instalace SQL server2005 SP2
    • merice v OS Performance pro SQL pouzivat
    • monitorujeme tedy CPU, RAM a HDD (navaznosti napr. pokud je malo RAM, tak o to vic se musi zapisovat na HDD a ten muze prestat stihat)
    • SQL Profiler
      • graf. utilita, instalovat vzdy na PC a ne na srv, vzdy delat vystupy do txt a ne do table (kdyz do table, tak se strasne vytezuje ta db), da se udelat ze zachycenych logu (trace) pak replay na jinem serveru a na nem se pak podivat co se delo; taky se da s timto tracem pustit Tuning Advisor a zjistit workload
      • spustim ho pres Tools – SQL Profiler; dulezite je vybrat sloupce starttime a endtime (da se pak pouzit i vuci perf logu) – to udelam tak, ze v trace properties dam SHOW ALL COLUMNS a vyberu ty sloupce; vyberu i db, kterou chci monitorovat – to udelam v TRace properties pres Filter
      • spustim OS Performance a udelam v perf.logach counterlog na performance – ten pak mohu po otevreni trace v Profileru, dat v Profileru import perf.logu a dostanu vukon vuci dotazum – SKVELA VEC!!!

    Triggers

    • SQL se deli na
      • DDL – Data Definition Language – prikazy CREATE/ALTER/DROP
      • DML – Data Manipulation Language – prikazy SELECT/INSERT/UPDATE/DELETE
      • DCL – Data Control Language – prikazy GRANT/DENY/REVOKE
    • vse se konfiguruje pres TSQL -bez grafickeho rozhrani
    • nalezaji se v sys.tabulce db sys.triggers
    • jsou fakticky sp, ale je spousteny systemem
    • vznikne po udalosti, ktera ho odpali (je reaktivni), ale je soucasti transakce, takze muze pak na konci pouzit napr. rollback, aby operaci vratil
    • DML trigger (startovan prikazy INSERT/UPDATE/DELETE) – vztahuje se k table/view
    • DDL trigger (startovan prikazy CREATE/ALTER/DROP) – vztahuje se k server/db – je to udelane takto – protoze, napr. kdyz udelam create login, tak tento DDL trigger je vlastne DML triggerem nad systemovou tabulkou (v tomto pripade nad db master nad syslogins), (na co se da vsechno delat je v sql books online v DDL triggers v event groups used for firing)
    • akce, na ktere je povesen trigger, generuje EventData – na ktere se mohu pak dotazovat v tele triggeru
    • pokud zakazu v triggeru i DROP, tak ovsem samotny trigger dropnout mohu – to je vyjimka
    • prikaz triggeru:

    USE UserDB

    GO

    CREATE TRIGGER UserDB_Safety

    ON DATABASE

    FOR DDL_DATABASE_LEVEL_EVENTS

    AS

    DECLARE @TSQLCommand nvarchar(max)

    SELECT EVENTDATA().value(‚(/EVENT_INSTANCE/TSQLCommand/CommandText)[1]‘,’nvarchar(max)‘)

    WHERE EVENTDATA().value(‚(/EVENT_INSTANCE/TSQLCommand/CommandText)[1]‘,’nvarchar(max)‘) LIKE ‚%STATISTICS%‘

    IF @@rowcount = 0 ROLLBACK

    GO

    CREATE TABLE dbo.myTable (Id INT IDENTITY PRIMARY KEY, eventDetail xml NULL);

    UPDATE STATISTICS dbo.UsageLog

    –SELECT * FROM sys.triggers WHERE is_disabled = 0

    ENABLE TRIGGER UserDB_Safety

    ON DATABASE

    Event Notifications

    • vse se konfiguruje pres TSQL -bez grafickeho rozhrani
    • vlastne alternativa k SQL profileru
    • vytvori se na zaklade na nejake udalosti
    • vyzaduje sluzbu ServiceBroker
    • ServiceBroker – soucasti SOA – Service Orientated Architecture
      • aplikace obsahuje svoje casti – bloky – a mezi nimi jsou interfaces, ktere umoznuji si vymenovat data, ktere reprezentuji to reseni – jsou to vlastne zpravy, ktere si mezi sebou posilaji ty sluzby tech bloku
      • napr. bloky A a B – A posle zpravu B a B ji musi ulozit do nejake fronty na sobe (~ buffer => async system)
      • B odpovi A a A tuto odpoved ulozi do sve fronty
      • ServiceBroker resi sifrovani teto komunikace a jeste to, ze tyto fronty mohou byt na vice serverech
      • mohu pak tedy do techto front "strkat" EventData z triggeru, ale to je xml, ktere musim umet
      • takovato fronta je pouzita i pri mailovani z SQL – maily se tam hromadi a pokud se treba do 3h neodeslou tak se smazou
    • postup vyuziti event notif a servicebrokeru
      • 1. vytvorim schemu
      • 2. vytvorim frontu (CREATE QUEUE)
      • 3. vytvorim sluzbu servicebrokeru (CREATE SERVICE) na frontu
      • 4. vytvorim route (CREATE ROUTE), aby sluzba fungovala mistne
      • 5. vytvorim notifikaci
      • cely skript:
      • — Prepare Database for using with Service Broker service instance

      USE userDB

      GO

      –Create a queue to receive messages.

      CREATE QUEUE NotifyQueue ;

      GO

      –Create a service on the queue that references

      –the event notifications contract.

      CREATE SERVICE NotifyService

      ON QUEUE NotifyQueue

      ([http://schemas.microsoft.com/SQL/Notifications/PostEventNotification]);

      GO

      –Create a route on the service to define the address

      –to which Service Broker sends messages for the service.

      CREATE ROUTE NotifyRoute

      WITH SERVICE_NAME = ‚NotifyService‘,

      ADDRESS = ‚LOCAL‘;

      GO

      –Create the event notification.

      CREATE EVENT NOTIFICATION myDemoEventNotification

      ON SERVER

      FOR Audit_Login, Audit_Logout, Audit_Login_Failed

      TO SERVICE ‚NotifyService‘,

      ‚current database‘ ;

      • v tuto chvili se udeje neco, vygeneruje se zprava a da se do servicebrokerove fronty, z ni to ale potrebuji cist a zapsat do nejake tabulky, takze:
      • udela se to tak, ze nad zapisovanim do fronty (coz je vlastne tabulka – mohu nad ni delat SELECT, jenze zpravy jsou zasifrovane, proto mi SELECT nestaci) se udela trigger a na zaklade neho se to presune do tabulky
      • 1. spustim servicebroker na sql serveru (na masterdb) (pozor nesmi byt session k db)
      • 2. nactu zpravy z fronty (RECEIVE TOP(1) @msg…… ) a toto zacyklim pomoci WHILE (donekonecna … 1=1), abych nacetl vsechny zpravy fronty az do vyprazdneni a teprve za obdrzenim udelam BREAK (vyskok z WHILE) az bude vse precteno
      • 3. po nacteni radky ji zapisuji do tabulky (INSERT INTO …)
      • 4. protoze INSERT muze selhat, bude vlozen do BEGIN TRY a BEGIN TRAN, pricemz COMMIT udelam a bude nasledovat odchyceni chyby pomoci BEGIN CATCH kde pouziji ROLLBACK (a mohu pouzit zobrazeni erroru RAISERROR)
      • 5. cele to ulozim jako ulozenou proceduru (sp) (CREATE PROCEDURE)
      • 6. nastavim frontu tak, aby spoustela tuto proceduru (ALTER QUEUE WITH ACTIVATION …)
      • cely skript:

    USE Master

    ALTER DATABASE UserDB SET ENABLE_BROKER

    USE UserDB

    GO

    CREATE PROCEDURE dbo.usp_ParseLog

    AS

    DECLARE @msg_body XML

     

    WHILE (1=1)

    BEGIN

    RECEIVE TOP(1) @msg_body = message_body

    FROM dbo.NotifyQueue

    IF @@rowcount = 0 BREAK

    BEGIN TRY

    BEGIN TRAN

    INSERT INTO dbo.UsageLog (detail) VALUES (@msg_body)

    COMMIT TRAN

    END TRY

    BEGIN CATCH

    –RAISERROR ()

    ROLLBACK

    END CATCH

    END — END WHILE

    GO

    — SELECT * FROM dbo.NotifyQueue

    — EXEC dbo.usp_ParseLog

    ALTER QUEUE dbo.NotifyQueue

    WITH ACTIVATION (

    PROCEDURE_NAME = dbo.usp_ParseLog,

    EXECUTE AS SELF) ;

    • pokud bych chtel logovat audit vseho na celem serveru, pak v options na serveru zapnu ENABLE C2 AUDIT TRACING

    Microsoft SQL Server 2005 – správa security

    sqlserver2005 – pravo PUBLIC na db = pouze pravo connect k db – a ostatni prava se pak nasledne ridi pravy GUEST
    – role – rovnocena skupine uzivatelu => pokud pouzivam AD groups, tak vlastne mi jsou role k nicemu
    – aplikacni role – protoze sice davam uzivateli plna prava k db, chci mu ji dat jen pomoci nejake aplikace
    – schema – rovnocena skupine objektu – slouzi jako nositele opravneni a zjednodusuje si jimi pridelovani prav
    – vsechny loginy jsou v sys.db master v tabluce syslogins (pro jejich vypis tedy "SELECT * FROM sys.syslogins" – zde jsou i hesla u SQL loginu, ale zahashovane)
    – login – umoznuje se pripojit k SQL serveru/instanci
    – user – umoznuje se pripojit k SQL db (pro jejich vypis pouziji onu db a dam "SELECT * FROM sys.users") – pozor pri jeho vytvareni na checkboxy Enforce Password Policy (pokud je SQLserver v domene, tak si nacte GPO a aplikuje si password policy z ni / pokud neni v domene tak se ridi Local Security Policy na serveru == ignoruje ale nastaveni Password History a Password Age) a Enforce Policy Expiration (pokud zustane zaskrtnuto Change Password on next, tak si uzivatel nemuze prihlasit k SQL napr. pres sqlcmd, protoze tam nema moznost zmenit si to heslo
    – mapping user+login – je 1:1 (pokud se uz vaze jeden db user na jeden srv login, tak uz dalsi db user k tomu srv loginu neudelam!!)
    – pokud je WinUser clenem jeste WinGroup a WinUser mel udelany SQL Login a WinGroup mela taky SQL Login, tak overeni se provede na zaklade WinUser, protoze pri overovani Windows se v Tokenu posila nejdrive SIDUser a teprve potom SIDGroups (to je natvrdo ve Win)
    – toto umoznuje prenos db, protoze ta obsahuje users, ale musim pak jeste prenest i master db, nebo alespon loginy mapovane na users
    – objekty v db – (pro jejich vypis pouziji onu db a dam "SELECT * FROM sys.sysobjects")
    – prava na objekty – (pro jejich vypis pouziji onu db a dam "SELECT * FROM sys.sysprotects") – reseno primitivne temito (a jeste dalsimi) tabulkami, a tyto musi SQL server projit, aby zjistil prava – proto je to vsechno nabufferovane v RAM, aby byla odpoved okamzita /// objekt ma nejvyssi prioritu ohledne prav
    – 3 stupne efektivnich prav na urovni SQL (na urovni Windows je to ACL) = grant/revoke/deny (deny ma nejvyssi prioritu)
    -aplikacni role – daji se ji prava povysit i ponizit – vytvori se role, uzivatel se prihlasi (nastavi se mu prava podle user prav), pak zavola
    sp_setapprole nazevrole, heslorole a nyni ma prava presne takova, ktera ma approle
    -1. vytvorim login (= uroven SQL server/instance) – zvolim authentikaci, server role, default language (podle tohoto nastaveni se zobrazuji zpravy tomu uzivateli – musi samozrejme byt nainstalovane znakove sady onoho jazyka ve Win) – v tuto chvili se muze pripojit pouze k sys. dbs
    -2. vytvorim user (= uroven db) – vlastnosti loginu – user mapping – zaskrtnu databazi a tim se vytvori user na te one db — zvolim mu default schema (tim mu jen jakoby priradim vychozi prekladani)
    Keys and Certificates
    – symmetric key – jako klic u dveri – odemykam i zamykam nim (kdyz ho ztratim, tak ho nekdo kompletne pouzije)
    – asymmetric key – je to par – nejcasteji se pouziva s certifikaty, ktere ho vylepsuji
    – v SQL se daji vytvorit pouze 1kB klice, vetsi klice se musi vytvorit mimo a pak je naimportovat do SQL
    – service master key (asymm) – vytvori se automaticky pri instalaci!
    – db master key (asymm) – muze se vytvorit na db a po vytvoreni se kopiruje do master db, takze pozor na to
    – certificate – pouziva se k podepisovani aplikace (pri editace aplikace se klic porusi), k sifrovani dat v tabulkach/desifrovani
    – – k namapovani user na certifikat
    SQL Server 2005 Best Practise Analyzer – vyborna utilita na audit security


    Microsoft SQL Server 2005 – instalace

    sqlserver2005 licencovani na server a na instanci je na kazdy osazeny slot CPU – pokud se jedna o failover cluster s active/passive nod, tak se plati pouze za active nod
    Installing SQL2005
    – named instance – ma svoje sluzby – da se vyborne vyuzit na clustering
    – kazda sluzba SQL by mela byt svuj domenovy ucet (hlavne reporting services) – nemusi byt lokalni administrator, je to resene pres GPO, ktere udela sam instalator (jako run as service);pokud ale existuje GPO security, tak se doporucuje dat SQL servery do jednoho OU a na nem si pohlidat GPO
    – Windows Collations – je reseni znaku na urovni OS (Windows locale)
    – SQL Collations – protoze napr. NTFS neni case-sensitive, ale v SQL ho chci pouzit, tak pouziji SQL collation
    – unattended instalace pomoci "setup.exe /settings sett.ini"
    – sett.ini se da vyrobit pomoci zvoleni REMOTE instalaci pri klikani setup.exe
    – zvlast davat na disky ldf a mdf/ndf
    – jak editovat uz stavajici instalaci serveru/instance = add/remove programs – Microsoft SQL Server 2005 (vzdy pouzivat pouze tuto polozku) – change – …
    Surface Area Configuration
    – udrzet max. miru bezpecnosti pri uzivani sql serveru
    – CLR = common language runtime
    – DAC = dedicated administrator connection – pokud dojde RAM, tak se dostanu ke konzoli – funguje tak, ze pri startu sluzby se rovnou dedikuje misto v RAM pro budouci spusteni konzole
    – xp_cmdshell = prikazy pres tento sel nejsou nijak hlidane SQL serverem.
    SQL Server Configuration Manager
    – nizkourovnova konfigurace sluzeb, site (ktere interface, porty, …) a klienta (nativni sql klient umi aliasy)
    SQLcmd
    – pouziva OLEDB provider
    – jak spustit napr. nejaky vzdaleny skript pres konzoli = "sqlcmd -s server -i sqlfile.sql"
    – umi pouzit promenou (parametr -v), takze do sqlfile.sql napisu promene ve tvaru $(variable) a pote pomoci "sqlcmd -s server -i sqlfile.sql -v variable=hodnotapromene variable2=hodnotadruhepromene"
    – a jeste treba do souboru vystup pomoci -o takze: ""sqlcmd -s server -i sqlfile.sql -o cestasoubor.txt -v variable=hodnotapromene variable2=hodnotadruhepromene"
    – da se pak jeste spustit v admin rezimu (pres DAC), kde se daji spoustet i prikazy, ktere jinak nejsou povolene (napr. shutdown,…): "sqlcmd -s server -a"
    – v express edici sql je to jediny tool jak pracovat s tabulkami
    SQL Server Management Studio
    – dobre je zobrazit Registered Services – kde se daji delat server skupiny pro vetsi prehled; kazdy server muze byt pouze v jedne skupine
    – dobre je zobrazit Template Explorer – kde jsou priklady scriptu/sablony – pomoci CTRL+SHIFT+M doplnim promene sablony (specify values for templates…)
    – vyroba vlastni sablony: vytvorit si skupinu, sablonu a pak dat edit
    – parametry v sablone se davaji do – sablona pro vytvoreni databaze je MODEL db v System Databases
    – pouziva nemodalni okna – nezavisla na rodicovskych
    – cokoli naklikam v konzoli, mohu nahore pomoci tlacitka SCRIPT hodit do scriptu a podivat se, jak se operace provede skriptem
    – nastaveni textoveho editoru – oznacit ho, tools, options, text editor
    – database-options-processes- BOOST SQL SERVER PRIORITY a USE WINDOWS FIBERS(pokud je vice vypoctu, tak diky tomuto se mohou delat soucasne a ne po sobe) – pokud se jedna o server, na kterem je jen SQL, tak to mohu oboje zapnout a jeste nastavit pocet (kolik jader, tolik vlaken)


    Microsoft SQL Server 2005 – disaster recovery

    sqlserver2005 Recovery Model
    – Full – nejvyssi schopnost obnovit db – zalohuje se db i transact.log (log tedy stale roste)
    – Simple – obnovuje pouze posledni full backup – pri kazde zaloze db se transact.log vycisti o neaktivni casti
    – Bulk-Logged – je to velmi podobne full, pouze ma mene mista na transact.log
    – backup je BEZ komprese!
    – role db_operator ma moznost zalohovat konkrektni db
    – Backup Device – je "alias" pro cestu kam zalohovat, aby nebylo potreba pri zmene zalohovaciho umisteni menit vsechny skripty – resi toto sp_addumpdevice, nebo v konzole Server Objects
    – Options v Backup… Append – prida na konec souboru dalsi backup (pouziva se pro transact.logy); Overwrite – prepise cely backup
    – Backup Job – naleza se pak v SQL Agentovi, vysledek Jobu se da nalezt pak hned pod nim v Job Activity Logu, vyberu udalost a dam History (zaroven je to takove v Event Vieweru)
    – backup umi mirror – mohu backupovat soucasne na nekolik mist, ale neumi HDD a TAPE zaroven
    – pouzivat vzdy CHECKSUM a Verifikaci
    – ohledne FULL recovery modelu – pokud se nezalohuje kompletne cela db, ale jen nektere jeji soubory, tak se pouziva 1 zaloha db a nekolik zaloh t-logu – pri restoru se pak udela restore database with recovery (leave the database ready to use), pak postupne vsechny t-logy pomoci restore log with norecovery (leave the database non-operational, behem tohoto se databaze hlasi jako Restoring…) a na poslednim teprve restore log with with recovery
    Database Snapshot (pouze v Enterprise verzi)
    – musi byt na NTFS
    – neni nahradou backupu!!!!
    – nevytvari logy (pracuje pouze na storage enginu, ne na sessions)
    – je pouze read-only – toho se da vyuzit pro uzivatele, ktery jen potrebuje read k nejakym history data
    – behem vytvoreni je prazdny (pouze si alokuje misto na disku, podle velikosti db), teprve az se udela nejaka zmena v db, tak ty jeste nezmenene stranky se kopiruji do snapshotu
    – umi i restore cele databaze, pokud se zmenila cela, pomoci restore database db from database_snapshot = ‚snapshotdb‘ – mnohem rychlejsi nez backup
    – neda se db dropnout, pokud je nad ni snapshot
    – prace se snapshotem je pouze pres prikazy – da se pouzit ovsem sablona z templates (ta je ale pouze pro jeden soubor – pokud jsou tam tedy dalsi soubory db, tak ty se musi dopsat!!) – kazdy db soubor ma tedy svuj soubor snapshotu (.ss)
    Backing Up System Databases
    – pokud nemam jejich zalohu, da se pouze provest pouze navrat ke stavu tesne po instalaci – pomoci "setup.exe /REINSTALLMODE=OMUS"
    – pro restore zazalohovane sys. database musim spustit SQL v single-user modu, protoze pri nem se nehleda master db ("sqlservr.exe -c -m")


    Microsoft SQL Server 2005 – správa souborů a databází

    sqlserver2005 -IIS uzira SQL RAM, protoze SQL sio kontroluje volnou RAM a kdyz ji je malo tak si snizi pamet, ovsem tu uvolnenou si IIS ukradne a tak je to zacyklene, az je buffer SQL na minimu a pak jde vykon dolu, po restartu serveru se SQL vizualne zrychli, ale to je tim, ze IIS uvolnilo pamet… zacne ovsem znovu proces kradeni RAM

    – BUFFER je jen jeden v MS SQL

    – LDF davat na nejrychlejsi disky na ZAPIS (nejlepsi by bylo RAID01, kompromisem je RAID1 nebo RAID5)
    – MDF/NDF davat na nejrychlejsi disky na CTENI
    – na SAN je to resene aplikaci nad SANkou, takze dnes se prakticky ani nevi v jakem modu ktery disk jede (system nastavuje co nejvyssi rychlost a zaroven co nejvyssi redundanci)
    – podivat se na performance citace PHYSICALDISK-AVERAGE DISK SEC/TRANSFER a PHYSICALDISK-AVERAGE DISK QUEUE LENGHT (max. 2) a SQL SERVER BUFFER CACHE-BUFFERCACHEHITRATIO(max. 90%)-pokud je vic, tak je malo RAM
    – pokud nebudu zalohovat db, tak ldf poroste az zaplni disk
    – kolik zabira co mista v db, tak ji v SSMS vyberu a kliknu na Report (vola metadata ze schemy SYS)
    – filegroups – seskupuji nekolik mdf/ndf – pouziva se ke zvyseni performace a napr. pro archivaci, protoze filegroup mohu nastavit read-only
    – schema – pomaha pouze prekladat relativni jmena k tabulka
    – indexy – pokud je fragmentace nad 30%, tak rebuildovat
    – transaction log file – limitovat velikost na 50% celkove velikosti db
    – jako admin mohu vse spravovat pres SSMS, nebo pres prikazy (views, sp, metadata/dynamicmetadata pohledy) tim, ze jako admin mam prava SELECT * SYS, ve ktere jsou prave tyto objekty ulozene


    Microsoft System Center Configuration Manager – client agents

    System Center Configuration ManagerPokud planujete prejit ze stavajiciho Microsoft Systems Management Serveru 2003 na Microsoft System Center Configuration Manager 2007 (v tuto chvili SP1 R2) chci Vas upozornit, ze jiz nebudete moci konfigurovat na sekundarni site jine nastaveni nez je na primary site. Pokud si nainstalujete nekam na otestovani ConfigMgr 2007 uvidite, ze sekce Client Agents uz na secondary site vubec neni. Nedeste se, to neni chyba Vasi instalace, ale vlastnost. Samozrejme, ze se take jedna o licencni politiku. Pokud totiz chcete rozdilne nastaveni na podrizenych site, musite si poridit dalsi licenci pro primary site. Zvazte proto, zda opravdu potrebujete rozdilne nastaveni pro urcite lokality, nebo zda jste schopni dojit ke kompromisu a tim usetrite a samozrejme si take zjednodusite spravu ConfigMgr.


    Stránky:1...1617181920212223