Publikoval Michal Kočí dňa 9.1.2008 o 10:08 v kategórii SharePoint
V novom sharepointe (WSS 3.0 a MOSS 2007) je dvojfázový smetný kôš (2 Stage Recycle Bin) a tento mi včera pri mojich testoch nad SharePointom spôsobil nemilé problémy. Jeho defaultné nastavenie mi privodilo zopár šedín, keď sa mi SharePoint dostal do stavu skoro úplnej nefunkčnosti.
Ako funguje dvojfázový smetný kôš
Dvojfázový smetný kôš, ako už názov napovedá, pracuje vo dvoch fázach. Ak užívateľ niečo v SharePointe zmaže, je toto odstránené do koša a nachádza sa to v prvej fáze. V tejto fáze si užívateľ môže Recycle Bin otvoriť a položku obnoviť. Tiež môže položku z Recycle Binu zmazať, alebo ju zmaže SharePoint po istom časovom intervale (defaultne po 30-tich dňoch). Po jej zmazaní sa táto dostane do druhej fáze.
Druhá fáza znamená, že položka ešte stále nie je fyzicky odstránená zo SharePointu a ešte vždy je možné ju obnoviť (administrátorom). V tejto druhej fáze sa by-default zbierajú zmazané položky kým ich kapacita nedosiahne 50% celkovej kapacity a mažú sa po 30-tich dňoch.
Problém číslo 1 - defaultné nastavenie
Problémom podľa mňa je defaultné nastavenie. 50% miesta pre smetiak je podľa mňa obrovské množstvo. Chápem, že niekedy môže byť zachránený dokument k nezaplateniu, ale 50% sa mi aj tak zdá veľa. 10% až 20% sa mi zdá tak akurát.
Problém číslo 2 - uloženie v tej istej databáze
Dokument, ktorý sa dostane do Sharepointu je uložený v obsahovej databáze (Content Database) v tabuľke AllDocs. Keď je zmazaný, čiže presunutý do smetného koša, v tejto tabuľke ostáva a je mu tu priradené id transakcie, v ktorej bol mazaný (stĺpec DeleteTransactionId). Zároveň sa pri mazaní vytvorí záznam v tabuľke RecycleBin s rovnakým DeleteTransactionId.
Čiže, dôležitý poznatok je, že dáta, aj keď ich zmažete zo smetného koša v databáze naďalej ostávajú, pri štandardnom nastavené spomenutých 30 dní. A toto mi spravilo škrt cez rozpočet. Testoval som koľko trvá vloženie dokumentu do SharePointu a testy testovali aj to, či je čas závislý na množstve dokumentov v knižnici dokumentov. Po vložení necelých 3000 dokumentov, každý o veľkosti niečo cez 1MB sa mi naplnila databáza - dosiahla limit 4GB a to SharePoint dostalo trochu do kolien (nešiel nahrať žiaden ďaľší dokument, a celkovo väčšina operácií padala vďaka plnej databáze).
V logu SharePointu sa Vám podobný problém prejaví zápisom podobným tomuto:
Windows SharePoint Services Database full error on SQL Server instance 'SPS03\OfficeServers' in database 'WSS_Content'. Additional error information from SQL Server is included below. Could not allocate space for object 'dbo.AllDocStreams'.'AllDocStreams_CK' in database 'WSS_Content' because the 'PRIMARY' filegroup is full. Create disk space by deleting unneeded files, dropping objects in the filegroup, adding additional files to the filegroup, or setting autogrowth on for existing files in the filegroup.
Po miernom boji sa mi podarilo odstrániť knižnicu do smetného koša a odtiaľ ju aj odstrániť. Avšak, podľa faktov uvedených vyššie, mi táto stále ostávala v databáze. Dlhý čas som strávil hľadaním riešenia, ako ju odstrániť aj z druhej fáze. Nakoniec ma napadlo skúsiť smetný kôš zakázať úplne a toto sa nakoniec ukázalo ako riešenie.
Postup
V centrálnej administrácii (Central Administration) na záložke Application Management v sekcii SharePoint Web Application Management kliknite na link Web application general settings
Na stránke Web Application General Settings si nezabudnite správne nastaviť aplikáciu (verte mi, viem o čom hovorím).
Úplne dole si nastavte Recycle Bin tak ako potrebujete, vypnite ho alebo zmeňte nastavenia.
Ak ho vypnete, spustí sa proces odmazávania všetkých položiek zo smetného koša. Toto môže pri veľkých množstvách dát trvať.
Odkazy na príspevky o 2 Stage Recycle Bin
Naslednvé odkazy Vám trochu detailnejšie popíšu fungovanie smetného koša, mne boli docela nápomocné pri odstraňovaní problému:
Ak nechceš premeškať príspevky ako je tento, sleduj ma na Twitteri, alebo ak máš RSS čítačku, môžeš sledovať môj RSS kanál.