Microsoft published how security permissions work in SQL Server 2008 R2 (including Denali) on this PDF poster: http://social.technet.microsoft.com/wiki/cfs-filesystemfile.ashx/__key/communityserver-wikis-components-files/00-00-00-00-05/5710.Permissions_5F00_Poster_5F00_2008_5F00_R2_5F00_Wiki.pdf
Archive for the ‘MS SQL administration’ Category
Data jsou vždy nahrána z datového souboru do paměti. V případě modifikace dat – UPDATE, DELETE platí pro FULL recovery model:
1) Transakce obsahující např. více modifikujících příkazů se spustí
2) Po každé změně(UPDATE, DELETE) se změní příslušný řádek na stránce v paměti.
3) Dále následuje zápis této změny do paměti pro LOG
4) V případě že se zrovna vyvolá CHECKPOINT se pomocí write-ahead LOG (http://msdn.microsoft.com/en-us/library/ms186259.aspx) zapíší nejprve data do LOG souboru a dále potom do datového souboru. Zapíší se úplně všechny dirty pages na disk včetně všech stránek pro LOG.
5) Transakce dále pokračuje – načte si data do cache(pokud proběhl checkpoint) a probíhají další modifikace (UPDATE, DELETE)
6) Na konci transakce jako poslední krok pro COMMIT se provede zápis z cache LOGu na diskový soubor LOGu.
- V případě selhání serveru po bodě 6 a nepoškozeného LOG souboru se nic neděje a provede se ROLL Forward (http://msdn.microsoft.com/en-us/library/ms191455.aspx) a data se dohrají z LOGu.
- Pokud ovšem transakce není COMMITnutá a nastane selhání serveru, o data z transakce se přijde a je jedno, že i během ní dojde k CHECKPOINTu. Do LOGu se zapisují jen COMMITnuté transakce(z cache).
Více zde:
http://www.sqlskills.com/BLOGS/PAUL/post/How-do-checkpoints-work.aspx
Změna portu se provádí přes SQL Server configuration manager. V menu v položce Protocols for MSSQLSERVER se zvolí vlastnosti TCP/IP. A dále podle potřeby pro dané IP adresy navázané na server se upraví TCP Port. Stačí 127.0.0.1, vnitřní IP a vnější IP. Pro každou se dá nastavit jiný port, popř. vytvořit alias.
V Management studiu se potom port nedefinuje přes dvojtečku, ale přes IP,port. Např. 192.168.2.2,12345. Pokud se přistupuje k instanci nebo aliasu, tak potom např. přes 192.168.2.2\alias,12345.
Pro connection string poté platí zápis tcp:<servername>[\<instancename>],<port> nebo tcp:<IPAddress>[\<instancename>],<port> viz dokumentace
Nyní mám možnost pracovat na projektu, kde se na virtuálním aplikačním serveru používá Windows 2008 Enterprise, s tím nové IIS7. Vše běží na opravdu výkoném hardware. Rozhodl jsem se zvolit instalovat PHP jako ISAPI a ne jako FASTCGI. Již z minulých několika let se verze ISAPI modulu osvědčila ve stabilitě a rychlosti. A právě o těchto dvou jsem četl pozitivně i ve spojení s IIS7.
Stručný návod:
- Stažení PHP 5.2.8 z php.net jako ZIP balíčku. Verze 32 bit. 64 bit verze není podle informací stabilní. Rozbalit do d:\php5
- Nainstalovat IIS7 a podporu pro ISAPI v IIS7. Poté restartovat server. Bohužel až po restartu celého serveru(nestačí jen IIS7) se objeví možnost nastavit “ISAPI and CGI Restrictions”
- V IIS7 otevřít “Handler Mappings”, zvolit “Add Script Map”. Koncovka *.php, handler mapping: d:\php5\php5isapi.dll. Nakonec povolit ISAPI extension and execution of scripts.
- V IIS7 by mělo být vidět “ISAPI and CGI Restrictions”, na něj vlastnosti “Edit Feature Settings” a poté “Allow unspecified ISAPI modules”
- V Default Application Pool vybrat “Advanced Settings”. V něm povolit “Enable 32-bit Applications”. Popř. lépe vytvořit svou pool na 32 bit podporu pro PHP a defaultní nechat pro případný běh jiných modulů na 64 bit.
- PHP.ini se nahraje do c:\windows. Ještě předtím se ale v jiné složce musí správně nakonfigurovat, protože Windows 2008 neumožňují editaci přímo v systémové složce.