Podpora MS SQL 2000, MSDE 2000, SQL Server 2005 Express a MS SQL 2008 Express edition
Od verzie 6, release A040419730, systém D2000 podporuje uloženie konfiguračnej databázy a archívu nielen v databáze Sybase SQL Anywhere ale aj v MS SQL 2000 (Microsoft SQL Server 2000) a MSDE 2000 (Microsoft SQL Server 2000 Desktop Engine). MSDE je orezaná a upravená verzia runtime MS SQL servera s limitovaným výkonom, ktorá je použiteľná bez licenčných poplatkov. Nahrádza takisto voľne prístupný runtime Microsoft Access.
Výkonnostné obmedzenia MSDE sú popísané na URL adresách http://www.microsoft.com/sql/msde/productinfo/features.asp a http://msdn.microsoft.com/library/?url=/library/en-us/architec/8_ar_sa2_0ciq.asp?frame=true. Ďalšie dôležité obmedzenie je maximálna veľkosť databázy 2 GB, čo je dôležité pri návrhu archívu. Pre MS SQL 2000 toto obmedzenie neplatí.
Poznámka: Vo februári 2006 bola testovaná databáza SQL Server 2005 Express edition a v auguste 2010 MS SQL Server 2008 Express edition, ktoré sú nástupcom MSDE. Na rozdiel od MSDE majú obmedzenú veľkosť databázy na 4 GB, spotrebu pamäte na max. 1GB a používajú iba jeden procesor. Ďalšie obmedzenia sú popísané na stránke http://www.microsoft.com/sql/prodinfo/features/compare-features.mspx. Na rozdiel od MSDE zrejme nemá workload governor (umelé obmedzenie výkonu pri viacerých prihlásených užívateľoch). Porovnanie MSDE a SQL Server 2008 Express edition je na stránke http://msdn2.microsoft.com/ms165672.aspx.
Poznámka: V auguste 2010 boli podporené databázy SQL Server 2008, SQL Server 2008 R2 ako aj voľne použiteľné edície SQL Server 2008 Express
a SQL Server 2008 R2 Express.
SQL Server 2008 Express má obmedzenú veľkosť databázy na 4 GB, spotrebu pamäte na max. 1GB a používa iba jeden procesor.
Ďalšie obmedzenia a vlastnosti sú popísané na stránke
http://www.microsoft.com/sqlserver/2008/en/us/express.aspx.
SQL Server 2008 R2 Express má obmedzenú veľkosť databázy na 10 GB, spotrebu pamäte na max. 1GB a používa iba jeden procesor.
Ďalšie obmedzenia a vlastnosti sú popísané na stránke
http://www.microsoft.com/express/Database.
Inštalácia MSDE 2000
MSDE 2000 je možné nainštalovať z inštalačného DVD D2000 (adresár MSDE) alebo získať z webu www.microsoft.com. Inštalácia je neinteraktívna a je potrebné spustiť program setup.exe s nasledujúcimi parametrami:
SAPWD="lubovolne_heslo" | Heslo užívateľa s menom "sa" (administrátor). Ak zadáte iné heslo ako SystemD2000, pri vytváraní aplikácie alebo pridávaní archívu v aplikácii D2SMC budete musieť toto heslo zadať. |
INSTANCENAME="nazov_instancie" | Názov inštancie MSDE. Na jednom počítači môže byť max. 16 inštancií. Ak je názov inštancie napr. D2000, bude po nainštalovaní inštancia viditeľná v D2SMC ako MSDE$D2000. |
TARGETDIR="cesta_na disku" | Adresár, do ktorého sa MSDE inštaluje (treba zadať koncové lomítko). V tomto adresári sa vytvorí podadresár MSSQL$nazov_instancie, napr. MSSQL$D2000. |
SECURITYMODE=SQL | Užívatelia sú overovaní v MSSQL. |
Príklad štandardnej inštalácie MSDE 2000:
setup SAPWD="SystemD2000" INSTANCENAME="D2000" TARGETDIR="C:\Program Files\" SECURITYMODE=SQL
Vytváranie aplikácií v D2000 Management Console
Proces
D2000 Management Console neumožňuje pre MSDE (na rozdiel od Sybase)
vytvárať nové engines, pretože tieto sa vytvárajú inštaláciou MSDE.
Pri vytvorení novej aplikácie je treba v dialógovom okne pre parameter
DB Driver vybrať položku SQL Server. Následne je možné zvoliť si engine. MSDE engines majú názov
MSDE$nazov_instancie, napr. MSDE$D2000. MS SQL 2000 má názov MSSQLSERVER.
Pri vytvorení aplikácie s použitím MSDE alebo MS SQL sa deje nasledovné:
- D2SMC sa pripojí k SQL serveru do databázy master. Ak heslo administrátora (sa) nie je SystemD2000, objaví sa prihlasovacie okno a užívateľ musí zadať heslo administrátora, prípadne meno a heslo iného užívateľa, ktorý môže pripájať databázu.
- Databázy (konfiguračné, monitorovacia a archivačná) sa nakopírujú z adresára Templates\MSDE do adresára aplikácie.
- Databázy sa zaregistrujú na serveri pomocou uloženej procedúry sp_attach.
- Ak neexistuje užívateľ dba, vytvorí sa a dostane práva prístupu do všetkých troch databáz.
- Vlastníctvo všetkých užívateľských tabuliek v konfiguračnej, monitorovacej a archivačnej databáze je zmenené z užívateľa install na užívateľa dba.
Po vytvorení aplikácie (alebo archívneho procesu) s použitím MSDE alebo MS SQL nie je možné cez D2SMC zmeniť použitý engine. V prípade potreby je to možné ručne (zmeny príslušného DSN, odpojenie databázy, pripojenie k inému engine, vytvorenie užívateľa dba, zmena vlastníctva atď, viď ďalší text).
Kopírovanie aplikácie
Na rozdiel od Sybase SQL Anywhere nie je možné iba prekopírovať databázové súbory (napr. SysCfg.mdf
a SysCfg.ldf) pri kopírovaní aplikácie z jedného počítača (alebo engine) na druhý.
Problém je s definíciou užívateľov: užívateľ v databáze (user name) dba , ktorému patria všetky
tabuľky, je identifikovaný v MSDE engine cez prihlasovacie meno (login) dba. Toto priradenie nie je na
základe textového názvu užívateľa, ale na základe unikátneho ID (UID). Takže po prekopírovaní a pripojení
databázy je v nej síce užívateľ dba, ale nie je použiteľný, pretože k nemu neexistuje v MSDE
engine login s potrebným UID, pretože aj keď sa vytvorí login dba, jeho UID bude iné. Riešením
je vymazať užívateľa dba (predtým ale treba všetky jeho tabuľky previesť na iného užívateľa), vytvoriť
ho v kopírovanej databáze nanovo a urobiť ho vlastníkom tabuliek.
Pred kopírovaním databázových súborov je nutné buď zastaviť engine, ktorý ich používa, alebo dočasne odpojiť
databázu pomocou sp_dboption
Príklad kopírovania konfiguračnej databázy aplikácie Test s použitím nástroja osql.exe (textovo orientovaný nástroj na správu databázy MS SQL):
-
Pripojenie sa k databázovému engine D2000 do databázy master na aktuálnom počítači s názvom
MyComp:
osql -S MyComp\D2000 -U sa -P SystemD2000
-
Pripojenie nakopírovanej databázy:
sp_attach_db 'Test.SysCfg', 'c:\D2000\D2000.V60\Test\SysCfg\SysCfg.mdf','c:\D2000\D2000.V60\Test\SysCfg\SysCfg.ldf'
go -
Vytvorenie loginu dba a nastavenie práv v engine (práva sú potrebné pri backupe archívnej databázy):
sp_addlogin 'dba','swx'
EXEC sp_addsrvrolemember 'dba','dbcreator'
EXEC sp_addsrvrolemember 'dba','diskadmin'
go -
Prechod do databázy Test.Syscfg:
use [Test.Syscfg]
go -
Zmena vlastníctva tabuliek na užívateľa install (varovania môžu byť ignorované):
EXEC sp_changeownerD2000 'install'
go -
Zmazanie užívateľa dba:
sp_revokedbaccess 'dba'
go -
Vytvorenie užívateľa dba a nastavenie práv v databáze:
sp_grantdbaccess 'dba','dba'
go
sp_addrolemember 'db_owner','dba'
go -
Zmena vlastníctva tabuliek na užívateľa dba (varovania môžu byť ignorované):
sp_changeownerD2000 'dba'
go
Archív
Archív pracujúci s MSDE 2000 alebo MS SQL 2000 nepodporuje prácu s trezormi a reorganizáciu archívu.
Backup archívnej databázy je možné vykonať dvoma spôsobmi (generovanie .dat súboru alebo kopírovanie .mdf
a .ldf súboru pri dočasne odpojenej archívnej databáze), bližšie viď popis štartovacieho parametra pre
archív /RS v sekcii
Štartovacie parametre procesov.*
Keďže MSDE 2000 podporuje maximálnu možnú veľkosť databázy 2 GB, po dosiahnutí tejto veľkosti sa archív
vypíše oznámenie o tom, že archívna databáza je plná a ukončí sa.
* Poznámka: Ak pri backupe už súbor .dat existuje, MSSQL pripojí nový
backup na jeho koniec, preto je väčšinou nutné pred backupom starý .dat súbor presunúť, premenovať alebo
vymazať, aby neprimerane nerástol a nespotreboval voľné miesto na disku.
Poznámka ku sieťovej konektivite MSDE
Nasledujúca informácia nie je zaručená a použitie je na vlastné riziko!!!
Po nainštalovaní je MSDE dostupné iba lokálne, nie cez sieť. Toto je možné zmeniť nasledovne:
-
Cez SQL Server Enterprise Manager (súčasť inštalácie MS SQL 2000):
Po pripojení sa na databázový server (engine) kliknúť naň pravým tlačidlom, v popup menu zvoliť Properties. Na záložke General kliknúť na Network Configuration a povoliť protokoly Named pipes, TCP/IP a prípadne aj iné. -
Cez Regedit:
Do položky ProtocolList (typu Multi-string) treba zadať text np tcp.
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\nazov_instancie\MSSQLServer\SuperSocketNetLib]
"ProtocolList"=hex(7):6e,00,70,00,00,00,74,00,63,00,70,00,00,00,00,00
Do položky TcpPort (typu String) treba dať text 1433 (prípadne iné číslo portu, na ktorom má komunikovať engine).
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\nazov_instancie\MSSQLServer\SuperSocketNetLib\Tcp]
"TcpPort"="1433"
Zmena parametrov engine sa prejaví po jeho reštarte (stačí reštartovať servis MSSQL$nazov_instancie).
Poznámka k použitiu pamäte MSDE a MS SQL
Použitie operačnej pamäte MSDE a MS SQL Serverom je popísané v článku, ktorý sa nachádza na URL adrese: http://support.microsoft.com/default.aspx?scid=kb;en-us;321363. Štandardné fungovanie môže spôsobiť spotrebu pamäte až do 2 GB. Maximálnu spotrebu pamäte je možné obmedziť nasledovne:
-
Pomocou SQL Server Enterprise Manager (je súčasťou inštalácie MS SQL 2000):
Po pripojení sa na databázový server (engine) stlačte pravé tlačidlo myši, v otvorenom popup menu vyberte položku Properties. V záložke Memory nastavte minimálne a maximálne použitie pamäte. -
Prostredníctvom textovo orientovaného nástroja OSQL:
Po pripojení sa na databázový server zadajte nasledovné:
USE master
go
EXEC sp_configure 'show advanced option', '1'
go
RECONFIGURE WITH OVERRIDE
go
EXEC sp_configure 'max server memory', '32' max. veľkosť pamäte v megabajtoch, v príklade - 32MB
go
EXEC sp_configure 'min server memory', '8' min. veľkosť pamäte v megabajtoch, v príklade - 8MB
go
RECONFIGURE WITH OVERRIDE
go
Veľkosť alokovanej pamäte má vplyv na rýchlosť odozvy databázy, rovnako ako aj na swapovanie. Optimalizácia swapovania závisí od požiadaviek príslušnej aplikácie.
Pridať komentár