none
SQL databaze, vice datových souboru

    Dotaz

  • Dobrý den,

    Dá se nějakým způsobem přidat do již používané dtb další dat. soubor a přesunot do něj stará (neměnná data) z "primárního" datového souboru. Vedlejší soubor bych chtěl dát pouze do read only a do budouna (jednou za půl roku) do něj přisypávat další nepoužívaná data...

    Vymýšlím něco kvůly zálohám, dtb mi poměrně rychle narůstá, ale data již vložená se téměř nemění... Proto bych si je jednou za čas odlil, ten soubor jednorázově zazálohoval a pak už zálohoval pouze "primární".

    Bohužel všechny data musí být stále online, tudíž musí zůstat v dtb...

    Moc děkuji za jakou koliv radu.

    úterý 19. ledna 2010 18:17

Odpovědi

  • Dobrý den,

    rozumíte tomu dobře - Standard edice Vám umožní do jiné filegroupy oddělit pouze celou tabulku. Řešením by pro Vás mohl být dělený pohled, který operátorem UNION ALL spojí data z obou tabulek (aktivní a té historické). Operace, které budou potřebovat všechna data, budete provádět nad pohledem Ve spojení s INSTEAD OF triggery můžete přes pohled provádět i změny v děleném pohledu.

    S pozdravem

    MP.
    • Označen jako odpověď Kejwy pátek 22. ledna 2010 11:44
    středa 20. ledna 2010 14:52

Všechny reakce

  • Dobrý den,

    přidat další datový soubor do existující databáze samozřejmě možné je. Lze to dělat jak graficky v Management Studiu, tak příkazem ALTER DATABASE s volbou ADD FILE. Jako read-only je ale možné označit pouze celou filegroup (skupina datových souborů). Pokud tedy chcete zálohovat pouze měnící se data, musíte do databáze nejdříve přidat novou filegroup a do ní pak datový soubor. Data pak do nového souboru můžete přesunout a danou filegroup označit jako read-only. Pro zálohování databáze bez read-only filegroup má SQL Server přímou podporu v příkazu BACKUP DATABASE - volbu READ_WRITE_FILEGROUPS. Umístění dat do specifického souboru je možné pouze na úrovni celé tabulky nebo jejích jednotlivých partitions, pokud se jedná o dělenou tabulku. Ve Vašem případě by mohlo být použití table partitioningu výhodné. Vše je dobře zdokumentováno v nápovědě SQL Serveru (předpokladem pro dělení tabulek je ale SQL Server verze 2005 a vyšší v Enterprice Edition).

    S pozdravem

    MP. 
    středa 20. ledna 2010 0:06
  • Dobrý den,
    Mockrát děkuji za odpověď.

    Další soubor vytvořím bez problému i s určením druhé filegroupy... Zálohování jsem si také proklikal, ale největší problém mám s přesunem dat...
    Jestli tomu dobře rozumím, tak na Standard edici, dokážu přesunout pouze celé tabulky, což si myslím, že mi nikterak nepomůže. Bohužel máme pouze SQL 2008 Standard edition.

    Zkusím si projít nápovědu a něco vykoumat na standarde. Popřípadě přesvědčím firmu k nákupu enterprise :-).

    S pozdravem,
    JK
    středa 20. ledna 2010 12:04
  • Dobrý den,

    rozumíte tomu dobře - Standard edice Vám umožní do jiné filegroupy oddělit pouze celou tabulku. Řešením by pro Vás mohl být dělený pohled, který operátorem UNION ALL spojí data z obou tabulek (aktivní a té historické). Operace, které budou potřebovat všechna data, budete provádět nad pohledem Ve spojení s INSTEAD OF triggery můžete přes pohled provádět i změny v děleném pohledu.

    S pozdravem

    MP.
    • Označen jako odpověď Kejwy pátek 22. ledna 2010 11:44
    středa 20. ledna 2010 14:52
  • Dobrý den,

    Tak vše bude nakonec jinak... udělám druhou dtb, kam jednou za čtvrt roku budu odsejpat všechna data starší než... V případě potřeby dohledání starších dat bude web přístup a hotovo...

    Jinak mockrát děkuji za pomoc.
    S pozdravem,
    JK
    pátek 22. ledna 2010 11:43
  • Dobrý den,

    nemáte zač děkovat. Dopracoval jste se v podstatě k vytvoření datového skladu pro historická data nadále nepotřebná pro chod transakčního systému. Pokud dobře zvládnete návrh struktury datového skladu, může Vám kromě pohledu na historická data také poskytnout celou řadu velmi zajímavých informací, které zejména management obvylke velice zajímá. Ale to by bylo téma na výrazně delší povídání...

    S pozdravem

    MP.

    neděle 24. ledna 2010 12:29