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é:

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):

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:

  1. 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é.
  2. 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:

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.