2014. október 4., szombat

SQL Server Disaster Recovery Workshop

SQL Server Disaster Recovery Workshop
karolyk@microsoft.com
HOST
ADMINSITRATOR
IBM99ibm


Guest
ADMINSITRATOR
Password1


----------------------------------------------------------------------------------------------------------------------------
Log shipping - van egy tartalék gép amin szintén ott a DB és  amire késleltetve átvisszük a log-ot és betöltjök


Copy only mentés : megtörténik a mentés, de a tranzakcios log-hoz nem nyul (nem üriti a fölösleges dolgokat,olyankor használják, ha a normális mentési sorozaton kivül kell valakinek egy példány a database-ről, és igy nem zavar bele a mentési strukturánkba)


Database Mirroring :  minden tranzakciót szépen átküld a másodlagos DB be
- szinkron: csak akkor commitálja az elsődleges DB a tranzakciót, ha a másodlagos DB-is már commintált
- asszinkron: az elsődleges DB commitálja a tranzakciót, nem várja mega  másikat, a másodlagos kicsit le van maradva


Database Snapshot :
-alapból üres amikor létrehozzuk, nem az egész DB-t tartalmazza, hanem ha változás történik, akkor az eredeti lapot másolja csak a snapshotba. Ha elveszik az DB akkor a snapshot is használhatatlan

-Az admin akkor is hozzá tud csatalakozni a Serverhez, ha már a sima userek nem
(DAC)


Registry
LocalMachine/Software/Microsoft/MicrosftSQLServer/MSSSQLServer
TempDB -t érdemes külön,gyors diskre tenni
Log -t érdemes külön,gyors diskre tenni, sequencionálisan írja


dbcc opentrans(testdb)   - kilsitázza , hogy mikor volt az utolso tranzakció a testdb-be
dbcc loginfo :displays information about the number, sizes, and status of the virtual log files internally to the transaction log.(status oszlop 0- nincs használatba)


Checkpoints - kiirja ténylegesen a módosított lapokat a cache-ből a diskre


sp_who -command kilsitázza hogy kik vannak éppen az adatbázisban
kill xx  -kilövi xx user-t


SELECT * FROM databaseneve.sys.database_files    -kilistázza, hogy az adatbázis milyen fileokbol áll
SELECT * FROM databaseneve.sys.filegroups   - -kilistázza, hogy az adatbázis milyen file group-okból áll


----------------------------------------------------------------------------------------------------------------------------


DBCC TRACEON(3604)  - a következő DBCC parancs outputját, nem az error logba hanem a képernyőre listázza ki
DBCC PAGE(Adatbazisnev,1,80,3)   (kilsitázza a 80.as page-t)
----------------------------------------------------------------------------------------------------------------------------
Amikor elrontotottuk a DB logfile -át HEX editoral
Az elrontott DB-t emergencybe tesszuk, igy már olvasható
ALTER DATABASE DisasterRecoveryLab SET EMERGENCY
GO
Az elrontott DB-t single user mode ba teszük
ALTER DATABASE DisasterRecoveryLab SET SINGLE_USER
GO


Az elrontott DB-t megprobálja megjavitnai, némi adat vesztésel
DBCC CHECKDB (DisasterRecoveryLab, REPAIR_ALLOW_DATA_LOSS) WITH NO_INFOMSGS, ALL_ERRORMSGS -- returns error
GO


ALTER DATABASE DisasterRecoveryLab SET MULTI_USER
----------------------------------------------------------------------------------------------------------------------------
Kilistázza, hogy az adott DB -n (Proba) milyen sikeres  mentések/mikor történtek
SELECT * FROM msdb.dbo.backupset
WHERE database_name = 'Proba'
ORDER BY backup_start_date


Kilistázza a csak COPY _ONLY mentéseket
SELECT * FROM msdb.dbo.backupset
WHERE database_name = 'Proba' AND is_copy_only=’1’
ORDER BY backup_start_date


Mirrored backup makes copies of the original backup(up to 3)
(Csak parancssorból, több példányunk lesz ugyanarról a backupról)
BACKUP LOG|DATABASE ···
MIRROR TO <backup_device>
[ ,...n ]
[ next-mirror-to ]

Az utolsó log mentés utánni logok lementése(Log tail)
Transaction Log Tail backup example
BACKUP LOG AdventureWorks
TO DISK = 'F:\LOG\AdventureWorks_1230AM_ER_TAIL.TRN'
WITH NORECOVERY, NO_TRUNCATE;


---------------
Kilistázni hogy a DB milyen recovery modba van
SELECT DATABASEPROPERTYEX('Databaseneve','Recovery')


-----------------

Module 3  Lab 06
8 - Semmit se vesztünk, mert volt full backup


9-feladat
Vissza tudunk állni , mert csak a DB-t töröltük, a log megvan


10. Az utolsó insert fog csak elveszni
FULL +Last Diff +last log


Module 3  Lab 07
5 - kimentjük a log utolsó végét:
BACKUP LOG DisasterRecoveryLab  TO DISK=’C:\Templog.bak’  WITH NO_TRUNCATE
(WITH NO_TRUNCATE- jelöli, hogy az adatbázis nem jó, vagy nincs meg)
Letöröljük a DB-t
Majd Restore Egy full mentes (with no recovery)+ az utolso Diff hétfő (with no recovery) +
kimentett kis log : RESTORE LOG DisasterRecoveryLab FROM DISK=’C:\Templog.bak’   WITH RECOVERY
(Ugy érdmes csinálni, hogy restore varázsló, FULL + DIFF majd átváltjuk SCRIPT -be és beirjuk a RESTORE log-os parancsot)


7 - sajnos elvesztjük az utolsó diff utánni dolgokat, kellett volna csinálni
egy log mentést hétfő az átállitás után, akkor nem vesztjük el


8. Ugyanaz mint a 7-es, csak mivel csináltunk egy log mentést is, igy vissza tudunk állitani mindent (FULL+last DIFF+Last log + log vége)
----------------------------------------------------------------------------------------------------------------------------


Ha van mentésünk és ujra kell épitenia  DB-et akkor a
RESTORE HEADERONLY from disk=”C:\temp\valami.mdf” és a
RESTORE FILELISTONLY from disk=”C:\temp\valami.mdf” parancsokkal kinyerhetünk sok információt
(SQL Instance név, file path, build version,netbios name)


Resource adatbázist csak file szinten lehet menteni
Master adatbázisba vannak a Login-ok
MSDB -be vannak a jobjaink
FONTOS!!  Disaster után mindig fel kell hozni az SQL servert legalább olyan SP szintre
mint amilyenen az eredeti volt(commulative update-eket is)



Management Studio -ba a Ha felviszzük a Registered Servers-ekhez az SQL servereket, akkor
tudunk query-et futtatni akár az összes serveren egyszerre

SQL Server 2008 Books Online



- Rebuild System database


---------------------------------------------------------------------------
Performance Monitor - van benne SQL server specifikus performance counter
Miket érdemes monitorozni
-Physical Disk % idle time
-Avg disk sec/Read
-Avg disk sec/Write
-Memory/Available MB
-Page Read/sec
-Page Write/sec
-SQL Server Access Method
-Forwarded Record/sec
-FreeSpace Scan/sec
-Page Splits/sec
-Checkpoint page/sec
-Lazy write/sec
-Free pages
-Page read/sec
-SQLServer:SQL Statistic


http://pal.codeplex.com  - Performance Analysis of Logs (PAL) tool
automatikusan kielemzi a Performance Monitor által generált reportot


SQL Server Profiler  - beépitett tool
- meg tudjuk nézni pl hogy egyes lekérdezések milyen   erőforrásokat használnak müködés közben, a használt SQL -eket is megmutatja, a beépitetteket is
Éles rendszeren rontja az SQL server  teljesítményét!!!!
Ki lehet exportálni SQL-be a beállitott dolgokat(Traceket) és azt be lehet tölteni a Management studioba és akkor nem foglal annyi erőforrást


SQL Diag - beépitett tool (mindent egybe gyűjt,super tool)
c:\Program Files\Microsoft SQL Server\100\tools\Binn\SQLDiag


RML Utility for SQL server- trace filet beolvas és csinál belőle egy reportot


SQL Nexus Tool -  trace filet beolvas és csinál belőle egy reportot, kell hozzá az RML

Nincsenek megjegyzések:

Megjegyzés küldése