none
SQL Server2000のトランザクション ログ領域サイズ変更 RRS feed

  • 質問

  • 現在、SQL Server 2000を使用しています。既存のデータベースを流用して作成したデータベースがあります。もともとの流用元のデータベースを新規で作成した際、トランザクションログの初期サイズを間違って大きく設定した状態になっています。SQL ServerのEnterprise Managerにてプロパティ画面で割り当てた領域を確認できますがこのサイズを後で小さくはできないのでしょうか?変更しようとすると「新しいDBFileサイズは現在のサイズよりも大きくしてください。」と表示されます。トランザクションログファイルの空き領域がとてもあいており、できればサイズを小さくしたいのです。

    もし割り当てた領域を小さくすることができない場合は、新規でデータベースを作成した後「データベースコピーウィザード」または「インポート」でデータを移行すれば同じデータベースの状態となるのでしょうか?

    よろしくお願いします。

    • 編集済み dmisa64 2014年12月4日 10:57
    2014年12月4日 10:33

すべての返信

  • しばらく、SQL Server 2000を使用しておりませんので

    確認はとれておりませんが、ログの切り捨てと圧縮で対応できませんでしょうか?

    具体的には、

    1.ログの切捨て 対象のデータベースで下記実行
    BACKUP LOG [データベース名] WITH TRUNCATE_ONLY
    2.ログの圧縮 対象のデータベースで下記実行
    DBCC SHRINKFILE ([ログファイル名], [圧縮サイズ(MB)])

    で、2.の圧縮サイズの指定で希望のサイズにできたのではないかと思います。

    2014年12月4日 13:23
  • 回答ありがとうございます。

    回答の通りSHRINKFILE を実行するのですが今度はエラーが発生し実行できません。

    SHRINKFILE をわたくし実行したことがないため、要領のどこがわるいのかもしわかればご教示願います。

    コマンドプロンプトにてosqlでログイン、データベース名が'aaa'とする。

    USE aaa
    Go
    BACKUP LOG aaa WITH TRUNCATE_ONLY
    Go
    DBCC SHRINKFILE (aaa_log, 130)
    Go

    「メッセージ 8985、レベル 16、状態 1、(略) sysfiles のファイル'aaa_log' に位置付けられませんでした。」という警告が発生します。

    よろしくお願いします。

    2014年12月5日 2:10
  • DBCC SHRINKFILE (aaa_log, 130)

    のファイル名は、シングルクオテーションで括って試してもらえますか?

    DBCC SHRINKFILE ('aaa_log', 130)

    のように。

    2014年12月5日 2:58
  • 回答ありがとうございます。ご教示の通り’’で囲んでやってみたのですが同じ結果でした。何が悪いのでしょうか?おわかりならご教示ください。よろしくお願いします。
    2014年12月6日 6:13
  • すみません。

    シングルクオテーションの有無はどちらでもよさそうでした。

    すぐに確認できる環境がないので、時間ができたら確認してみます。

    2014年12月7日 12:00
  • 回答ありがとうございます。わたくしももう少し調べてみます。
    2014年12月8日 1:37
  • 遅くなりましたが確認できました。

    DBは該当のDBを選択して実行をしておりますでしょうか?

    こちらで、masterを選択して実行するとご連絡のエラーメッセージが表示されて

    該当のDBを選択して実行したらエラーなく実行できました。

    • 回答の候補に設定 星 睦美 2014年12月18日 1:22
    2014年12月17日 11:30
  • お世話になります。

    回答ありがとうございます。

    当方は2014年12月5日に記載している手順で作業しております。勉強不足で申し訳ないのですが「DBは該当のDBを選択して実行」の具体的な手順をご教示いただけますか?

    よろしくお願いします。

    2014年12月19日 1:37
  • データベースの指定をUSEではなく

    osqlで接続するときに、-dで指定してもダメでしょうか?

    osql -S localhost -U sa -P xxx -d aaa

    のように。

    2014年12月19日 9:36
  • お世話になります。

    回答ありがとうございます。

    後日時間がとれた際、確認してみます。作業後、結果を書き込みます。

    以上です。

    2014年12月24日 1:37