web-dev-qa-db-ja.com

SQL Serverの「チェックポイント時にログを切り捨て」オプション

長い話ですが、長期コンサルタント(以前の従業員)は、Tivoli Storage Managerとインターフェースするためにカスタムスクリプトを数年前(2006年くらい)に書いており、truncate log on checkpointという名前のSQL Server DBオプションをチェックしているようです。彼らの主張は、SQL 2012であるインスタンスでスクリプトが機能し、バックアップを実行することを妨げているということです。

sp_configureを介してそのようなオプションを見つけることができず、バックアップが1つのインスタンスを除いてどこでも機能しているので、それは完全なBSだと思います。しかし、地雷があればそれを削除し、他の古い要素を削除したいと思います。ベンダーに確認してもらっていますが、彼らの言うことにはあまり自信がありません。

私が行った調査では、SQL 2000またはSybaseのオプションの1つであると考えられます。別の主張は、復旧モデルがSIMPLEであり、それをオンまたはオフにする明示的なオプションがない場合、それが以降のバージョン(2008以降)で暗黙的に呼び出される/使用されるというものでした。

TRUNCATE LOGコマンドは、最近のトランザクションログのしくみが原因で廃止されているため、現時点ではクエリを実行できるオプションではないと思います。

私はSQL Server 2000のインスタンスを持っていないので、誰かがこれを思い出したり、周りに置いているインスタンスでそれをチェックしたりできることを望んでいました。それは私がお勧めできるものではないことを私は彼らに話しました。私はまた、誰かがこれが時代遅れであることを確認できることを望んでいました。

11
user3885315

(SQL Server 2008R2では少なくとも)trunc. log on chkpt.sp_dboptionを使用して引き続き表示でき、データベースオプションも設定できます

enter image description here

enter image description here

SQL Server 2012以降では、Niceエラーが発生します

メッセージ2812、レベル16、状態62、行1ストアドプロシージャ 'sp_dboption'が見つかりませんでした。

下位互換性のためだけにあります。 SQL Server 2000以降のSQL Serverには、ログの記録方法を定義する recovery model という概念があります。切り捨ては尊重されます例えば単純復旧では、チェックポイントのみがログを切り捨てます。完全復旧モードと同様に、ログバックアップのみがログを切り捨てます。

トランザクションログ管理の詳細については、 トランザクションログ管理への階段 を参照してください。

補足として、SybaseASEには新しいバージョンのSybase 15.7にもこのオプションがあります(実際にはtrunc log on chkpttrunc. log on chkpt.が重複しています。後者は、SQL ServerがSQL Serverを介してSQL 7.0で取得したものです。 2008R2-sp_dboptionで見られる):

enter image description here

enter image description here

9
Kin Shah