:::: MENU ::::

Microsoft System Center Configuration Manager – instalace nepodepsaného sw

System Center Configuration ManagerVyrabite silent instalacni balicek na nejakou aplikaci, nebo na instalaci ovladace (hw) a ikdyz specifikujete silent parametry, tak vam Windows zahlasi warning ze se snazite instalovat nepodepsany software (okenko ma hlavicku "Hardware Installation" napr., a zacina textem "The software you are installing for this hardware: <em>nazev zarizeni</em> has not passed Windows Logo testing to verify its compatibility with Windows XP……; a ma potvrzovaci volby "Continue Anyway" nebo "Stop Installation")?

Staci kdyz na lokalnim stroji date vlastnosti My Computer -> zalozku Hardware -> Driver signing a zvolte Ignore – Install the software anyway and don’t ask for my approval.
V Group Policy (Windows Server 2008) toto nastaveni zmenite v User Config -> Policies -> Adm templates -> System -> Driver Installation -> polozka "Code signing for device drivers" -> povolte policy a nastavte hodnotu na Ignore.


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


    Stránky:1...1617181920212223