Sdílet prostřednictvím


Vypršení platnosti předplatného a deaktivace

platí pro:SQL Serverazure SQL Managed Instance

Předplatná je možné deaktivovat nebo může vypršet, pokud se nesynchronují během zadané doby uchovávání. Akce, která nastane, závisí na typu replikace a překročení doby uchovávání.

Pokud chcete nastavit dobu uchovávání informací, přečtěte si téma Nastavení období vypršení platnosti pro předplatná, nastavení doby uchovávání distribuce pro transakční publikace (SQL Server Management Studio) a konfiguraci publikování a distribuce.

Transakční replikace

Transakční replikace používá maximální dobu uchovávání distribuce ( @max_distretention parametr sp_adddistributiondb (Transact-SQL)) a dobu uchovávání publikace ( @retention parametr sp_addpublication (Transact-SQL)):

  • Pokud se předplatné nesynchronizovalo v rámci maximální doby uchovávání distribuce (výchozích 72 hodin) a v distribuční databázi se změny nedoručily odběrateli, předplatné se označí deaktivovanou úlohou vyčištění předplatného , která běží na distributoru. Předplatné musí být znovu inicializováno.

  • Pokud se předplatné nesynchronuje během doby uchovávání publikace (výchozí doba 336 hodin), platnost předplatného vyprší a vyřadí se úloha vyčištění předplatného s vypršenou platností , která běží v Publisheru. (Před opravou v KB4014798 se úloha jmenovala Vyčištění distribuce.) Předplatné se musí znovu vytvořit a synchronizovat.

    Pokud vyprší platnost push předplatného, úplně se odebere, ale pull předplatné ne. Musíte vyčistit klientská předplatná u odběratele. Další informace naleznete v tématu Odstranění předplatného replikace.

Slučovací replikace

Slučovací replikace používá dobu uchování publikace (@retention a @retention_period_unit parametry sp_addmergepublication (Transact-SQL)). Když vyprší platnost předplatného, musí se znovu inicializovat, protože se odeberou metadata předplatného. Předplatná, která nejsou znovu inicializována, se zahodí úlohou vyčištění předplatného s vypršenou platností , která běží v Publisheru. Ve výchozím nastavení se tato úloha spouští každý den; odebere všechna pushová předplatná, která se nesynchronizovala po dvojnásobnou dobu uchovávání publikace. Například:

  • Pokud má publikace dobu uchovávání 14 dnů, platnost předplatného může vypršet, pokud se nesynchronuje do 14 dnů.

    Pokud publisher používá SQL Server 2005 (9.x) nebo novější verzi a agent předplatného pochází z SQL Serveru 2005 (9.x) nebo novější verze, platnost předplatného vyprší pouze v případě, že došlo ke změnám dat v oddílu daného předplatného. Předpokládejme například, že odběratel obdrží zákaznická data jenom pro zákazníky v Německu. Pokud je doba uchovávání nastavená na 14 dnů, platnost předplatného vyprší 14. den pouze v případě, že v posledních 14 dnech došlo ke změnám německých zákaznických dat.

  • Od 14 do 27 dnů po poslední synchronizaci je možné předplatné znovu inicializovat.

  • Po uplynutí 28 dnů po poslední synchronizaci dojde k vyřazení předplatného úlohou vyčištění předplatného s vypršenou platností. Vyprší-li platnost push předplatného, úplně se odebere, ale pull předplatná nejsou. U odběratele musíte vyčistit pullová předplatná. Další informace najdete v tématu Odstranění předplatného vyžádané replikace.

Důležité informace o nastavení doby uchovávání publikace pro slučovací publikace

Při nastavování doby uchovávání pro slučovací publikace mějte na paměti následující skutečnosti:

  • Doba uchovávání pro sloučené publikace má 24hodinovou dobu odkladu pro předplatitele v různých časových pásmech. Pokud například nastavíte dobu uchovávání jednoho dne, bude skutečná doba uchovávání 48 hodin.

  • Vyčištění metadat slučovací replikace závisí na období uchovávání publikace:

    • Replikace nemůže vyčistit metadata v databázích publikace a předplatného, dokud není dosaženo doby uchovávání. Při zadávání vysoké hodnoty pro dobu uchovávání buďte opatrní, protože to může negativně ovlivnit výkon replikace. Pokud můžete spolehlivě předpovědět, že se všichni předplatitelé budou v daném časovém období pravidelně synchronizovat, doporučujeme použít nižší nastavení.

    • Je možné zadat, že platnost předplatných nikdy nevyprší (hodnota 0 pro @retention), ale důrazně doporučujeme tuto hodnotu nepoužívat, protože metadata nelze vyčistit.

  • Doba uchovávání pro všechny redistributory musí být nastavena na hodnotu, která je rovna nebo menší než doba uchovávání nastavená u původního vydavatele. Měli byste také použít stejné hodnoty uchovávání publikace pro všechny vydavatele a jejich alternativní synchronizační partnery. Použití různých hodnot může vést k nekonvergenci. Pokud potřebujete změnit hodnotu uchovávání publikace, znovu inicializovat odběratele, aby se zabránilo nekovergenci dat.

  • Pokud se po vyčištění zvýší doba uchovávání publikace a předplatné se pokusí sloučit s Publisherem (který už metadata odstranil), platnost předplatného nevyprší kvůli zvýšené hodnotě uchovávání. Publisher ale nemá dostatek metadat ke stažení změn pro odběratele, což vede k nekonvergenci.