さて、この間の続きですが、無事ログの切捨てと圧縮はされたのでしょうか。
まずは、ログの切り捨てを妨げている原因がどうなったかを確認。
SELECT name, log_reuse_wait, log_reuse_wait_desc FROM sys.databases WHERE name = 'データベース名')
GO
log_reuse_wait_desc⇒NOTHING
問題は払拭されたようです。
念のため、実行中のトランザクションがあるか確認。
DBCC OPENTRAN('データベース名'')
GO
開かれたアクティブなトランザクションがありません。
DBCC の実行が完了しました。DBCC がエラー メッセージを出力した場合は、システム管理者に相談してください。
よし、ないです。
ではディスク容量を確認。残り15GBが50GBへ増えてました。
2012年3月8日木曜日
2012年3月6日火曜日
SQLServer2005のトランザクションログの切捨て
SQLServer2005のトランザクションログが肥大化したのでメモ。
復旧モデル:完全
ミラーリング動作モード:高パフォーマンス(非同期)
レプリケーション:スナップショットレプリケーション(パブリッシャー)
毎晩完全バックアップをとっているが、どうもトランザクションログの切捨てが行われてない模様。
というのは、データベースの圧縮をして気づいたこと。
ちなみに、自分だけかもしれないがデータベース圧縮すると、ミラーリングが停止してしまう?!(その時は再開しましょう)
まずはこれを試してみた。
「HowTo: Management Studio を使ってトランザクションログファイル (ldf) のサイズを小さくする方法」
http://blogs.msdn.com/b/jpsql/archive/2011/12/20/manegement-studio-ldf.aspx
結果、小さくならないのでその記事の中の
「この手順を実施してもトランザクションログファイルが小さくならない場合」をやってみた。
DBCC OPENTRAN(‘データベース名’)
をやったらこうなった。
データベース 'データベース名' のトランザクション情報。
レプリケートされたトランザクション情報:
配布された最も古い LSN : (0:0:0)
配布されなかった最も古い LSN : (13658:19580:1)
DBCC の実行が完了しました。DBCC がエラー メッセージを出力した場合は、システム管理者に相談してください。
あれ?これがログ切捨てできない原因??もう一つ試す。
SELECT name, log_reuse_wait, log_reuse_wait_desc FROM sys.databases WHERE name = 'データベース名'
をやったらこうなった。
| name| log_reuse_wait| log_reuse_wait_desc
KanzaiApplications, 6, REPLICATION
レプリケーションが悪さをしているようですね。
このメッセージがでないようになればよいので、いくつか試してみた。
1.「レプリケーションモニタ」から「すねてのサブスクリプションの再初期化」⇒結果変わらず
2.サブスクリプションの「同期の停止」⇒結果かわらず
3.パブリケーションを削除(ぉぃ)してから再作成⇒悪いメッセージはでなくなった。
うーん、パブリケーションとサブスクリプションを再作成すると直ったという理由がよくわかりませんが、現状はこうなりました。
DBCC OPENTRAN(‘データベース名’)
GO
開かれたアクティブなトランザクションがありません。
DBCC の実行が完了しました。DBCC がエラー メッセージを出力した場合は、システム管理者に相談してください。
SELECT name, log_reuse_wait, log_reuse_wait_desc FROM sys.databases WHERE name = 'データベース名'
GO
| name| log_reuse_wait| log_reuse_wait_desc
KanzaiApplications, 2, LOG_BACKUP
これでトランザクションログが切捨てられるか、また後程。
復旧モデル:完全
ミラーリング動作モード:高パフォーマンス(非同期)
レプリケーション:スナップショットレプリケーション(パブリッシャー)
毎晩完全バックアップをとっているが、どうもトランザクションログの切捨てが行われてない模様。
というのは、データベースの圧縮をして気づいたこと。
ちなみに、自分だけかもしれないがデータベース圧縮すると、ミラーリングが停止してしまう?!(その時は再開しましょう)
まずはこれを試してみた。
「HowTo: Management Studio を使ってトランザクションログファイル (ldf) のサイズを小さくする方法」
http://blogs.msdn.com/b/jpsql/archive/2011/12/20/manegement-studio-ldf.aspx
結果、小さくならないのでその記事の中の
「この手順を実施してもトランザクションログファイルが小さくならない場合」をやってみた。
DBCC OPENTRAN(‘データベース名’)
をやったらこうなった。
データベース 'データベース名' のトランザクション情報。
レプリケートされたトランザクション情報:
配布された最も古い LSN : (0:0:0)
配布されなかった最も古い LSN : (13658:19580:1)
DBCC の実行が完了しました。DBCC がエラー メッセージを出力した場合は、システム管理者に相談してください。
あれ?これがログ切捨てできない原因??もう一つ試す。
SELECT name, log_reuse_wait, log_reuse_wait_desc FROM sys.databases WHERE name = 'データベース名'
をやったらこうなった。
| name| log_reuse_wait| log_reuse_wait_desc
KanzaiApplications, 6, REPLICATION
レプリケーションが悪さをしているようですね。
このメッセージがでないようになればよいので、いくつか試してみた。
1.「レプリケーションモニタ」から「すねてのサブスクリプションの再初期化」⇒結果変わらず
2.サブスクリプションの「同期の停止」⇒結果かわらず
3.パブリケーションを削除(ぉぃ)してから再作成⇒悪いメッセージはでなくなった。
うーん、パブリケーションとサブスクリプションを再作成すると直ったという理由がよくわかりませんが、現状はこうなりました。
DBCC OPENTRAN(‘データベース名’)
GO
開かれたアクティブなトランザクションがありません。
DBCC の実行が完了しました。DBCC がエラー メッセージを出力した場合は、システム管理者に相談してください。
SELECT name, log_reuse_wait, log_reuse_wait_desc FROM sys.databases WHERE name = 'データベース名'
GO
| name| log_reuse_wait| log_reuse_wait_desc
KanzaiApplications, 2, LOG_BACKUP
これでトランザクションログが切捨てられるか、また後程。
登録:
投稿 (Atom)