• 締切済み

SQLServer2000-トランザクションログ

SQLServer2000を使用しています。 復旧モデルをシンプルで運用しているのですが、トランザクションログが 数G程度まで肥大化していまいます。 シンプルにも関わらずトランザクションログがここまで肥大化してしまう 原因がわからず、困っております。 原因や対処法をご教授けないでしょうか。 宜しくお願いします。

みんなの回答

  • nora1962
  • ベストアンサー率60% (431/717)
回答No.1

SQL SERVERはあまり詳しくないのですが、単純復旧モデルでもトランザクションが長い場合はそれなりにログが肥大化してしまうのではないでしょうか。 トランザクションが終了してしまえば、領域は再利用可能になりますが、ファイルサイズ自体は自動では縮小しないと思います。 定期的にDBCC SHIRNKFILEの必要性があるのではないでしょうか。

関連するQ&A

  • トランザクションログからの復旧について。

    PostgreSQLのバックアップについて質問です。 24時間稼動しているPostgreSQLのバックアップを1日1度pg_dumpコマンドでとって、復旧時に使用しておりますが、完全に復元する方法がわかりません。 例えば1日の途中にデータが破損した場合、前日までのデータは pg_dumpで復旧できますが、その後のデータが破損する直前までを WALを使ってどのように復旧させるのでしょうか。 /usr/local/pgsql/data/pg_xlog/の直下に"000000070000006D"という名前のファイルはあるのですが、そのログを使ってRedoするやり方がわかりません。 更にトランザクションログのチェックポイントを1時間に1回と設定したりしてログ日付・時間の名称で保存の後次の日には新しい名称で ログをとりたいのですが、そのようなことはできるのでしょうか。

  • accessからsqlserverへの移行について!

    accessからsqlserverへの移行について! 現在accessでシステム運用しています。 処理に時間がかかるのでDBのみsqlserverへの移行を検討しています。 時間がかかる原因は計算項目が多く計算の為に必要な定義項目と参照項目で計算項目を含めると約300項目となります。 この為、クエリーをNo.1とNo.2の2個のクエリーに分けて対処しています。 クエリーNo.2はNo.1の式の値を使用し更に式で計算しています。 クエリーで定義している計算式も条件が複雑なものもありさらに計算結果⇒計算結果⇒・・・・となっています。 この様な内容なので入力画面はレスポンスが遅く印刷は5~10分位かかるものがあります。 とりあえず印刷処理を早くしたいと思い一旦ワークテーブルに必要項目を出力する等をやって見ましたがやはり抽出に時間がかかりあまり改善しません。 データ件数は約3万件なのでデータ件数は問題ないと思っています。 accessの処理はそのままでDBをsqlserverからODBCでリンクしようと思います。 DBをsqlserverに移行することで処理速度の改善はどの程度見込めるのでしょうか。 計算項目数が多いのであまり見込めないのではと思っています。 accessからsqlserverへの移行された方でどの位改善されたのか教えて下さい。 現在の運用環境はサーバは使用せずファイル共有で4台のPCで運用しています。OSはWinXPです。 今回も専用サーバは使用せず現在のWinXPのPCにSQLServer2005無料を使用しようと思っています。 又、accessの処理で他に早くする方法がありましたら教えて下さい。 よろしくお願いします。

  • SQLServer2000でのトランザクションログ削除

    SQLServer2000のEnterpriseManagerにて、 「データベース全体+トランザクションログ」バックアップの設定を行ったのですが、 バックアップ時にトランザクションログが削除されていないようで、 ログファイルがみるみる大きくなってしまいまい、 数日で、HDD容量を使い切ってしまいそうです。 設定されたジョブの内容を確認したところ、 BACKUP LOG [DB名] TO [デバイス名] WITH NOINIT, NOUNLOAD, NAME = N'バックアップ名', NOSKIP, STATS = 10, NOFORMAT, NO_TRUNCATE のようになっていたので、NO_TRUNCATEを外してみましたが、ダメでした。 この『教えて!goo』内でも検索したのですが、 http://oshiete1.goo.ne.jp/kotaeru.php3?q=176852 が同内容の質問だったのですが、こちらはSQLServer7.0で、 この方法は、2000では使用できませんでした。 勉強不足でまことに申し訳ございませんが、 何卒、宜しくお願いいたします。 ≪環境≫ OS: Windows2000Server + ServicePack2 SQL: SQLServer2000 + ServicePack2

  • SQLServer2000:データベース復元失敗

    SQLServer2000を使用しております。 別環境のデータベースのバックアップファイルを当該環境へ復元させたいと考えているのですが、 バックアップデータファイルを指定して復元を行ったところ、以下のダイアログが表示され、復元に失敗します。 "物理ファイルを拡張しようとした時に MODIFY FILEでオペレーティングエラー112(ディスクに十分な空き容量がありません。)が"発生しました RESTORE DATABASEが以上終了しました" 別環境のデータファイルは230M、トランザクションログファイルは11Gでした。 復元先のドライブの空き容量は17Gです。 十分に空き容量があると思われるのですが、なぜ上記のようなダイアログが出るのでしょうか。また、データファイルのみの復元ということは不可能なのでしょうか。 ※ トランザクションログファイルが肥大化している件につきましては、   ログの切捨て、ファイルの最大サイズの指定、及び復旧モデルも"シンプル"と修正する様対応する予定です。 上記の件につきまして、原因、または対応方法がお分かりになる方がいらっしゃいましたら、 ご教示のほど、何卒よろしくお願いいたします。

  • SQLServer7.0のLDF圧縮

    お世話になってます。 あるサーバー(サーバーA)上のSQLServer7.0で作成したバックアップファイルを 復元先のサーバー(サーバーB)に復元したところ、MDFファイルが3GBに対し、 LDFファイルが100GBありました。 LDFファイルのサイズを圧縮しようと、SQLServer7.0のメニューで、    1. フルバックアップ  2. トランザクションログの切り捨て  3. 圧縮  ※以下「1.」、「2.」、「3.」を何度か繰り返し。 を行ってみましたが、300MB程度減っただけで、それ以上は小さくなりませんでした。  SHRINKDATABASE  や  TRUNCATE も試してみましたが、サイズ、変わりませんでした。 他に試すことはありますでしょうか?

  • SQLServer2005での復元の自動化について悩んでいます。

    SQLServer2005での復元の自動化について悩んでいます。 下記の構成でシステムを運用しています。 サーバー1(本番) OS:WindowsSvr2003R2 DB:SQLServer2005 サーバー2(障害用サブ) OS:WindowsSvr2003R2 DB:SQLServer2005 通常は本番用を使用してシステムの運用を行っているのですが、 H/Wの障害などが発生した際には、サーバー2で運用します。 ですので、システムが休止している際にサーバー1のDBをサーバー2 に移行する必要があります。 バッチやSPで自動的に行いたいのですが、何か良い方法はないでしょうか。 アドバイスをお願いします。

  • SQLServer - Access開発環境

    SQLServer2008R2 ExpressのデーターベースへAccess2010を使ってアクセスし、帳票を作成する事になりました。 使用している業務パッケージがSQLServerを使っていて、それで出てこない帳票をAccessかExcelで 作るように言われました。 私は、Access同志のテーブルリンクは使った事があるのですが、SQLServerへのテーブルリンクは始めてです。SQLServerは運用のために本で勉強した程度です。 色々調べてみたのですがよくわからないので、ご存知の方お願いします。 AccessとSQLServerは同じパソコンの中に置く予定です。 業務パッケージで使っているパソコンは1日中入力に使われていて同じパソコンをAccessの開発用に使用することができません。 業務パッケージのデータベースは、オフラインバックアップしているので、Accessでの開発用の 環境に移せそうな気がしますが ODBC経由でSQLServerをテーブルリンクする場合、データソースを作る時に サーバー名とかユーザ名とかを指定するので、Accessを開発環境から運用環境に移行した時の手直しがどの程度必要なのかがよくわかりません。 現在の業務の関係上、サーバー名を同じにした環境を作成することもできません。 業務パッケージを作った所も今はもう無いし、社内に詳しい人はいないので困ってしまいました。 あまり具体的に書けずに申し訳ありませんが、 上記環境で運用環境に移行出来るものか否かと SQLServer ・ Access作成時の注意点・などありましたら教えてください。 よろしくお願いいたします。

  • SQLServer7.0クエリアナライザについて

    SQLServer7.0のクエリアナライザにて、Aというテーブル から、全件データを抽出するSELECT文を実行します。 2台のクライアントパソコンにて実行すると下記の通りの 処理時間となります。  PC1   34秒  PC2 2分24秒 この処理時間の違いはなぜおこるのでしょうか。 また、PC2の処理時間が遅くなったのはある日突然です。 SQLServer7.0の再インストール等を行ったのですが原因が わかりません。 対処法について、アドバイスをお願い致します。

  • SQLserverライセンス

    初心者です。 VB2005で開発、その際 SQL Serverを使用していました。 インストール設定をし、実行ファイルを別パソコンに入れ 動作確認を行いましたが、SQLServerを使用している 処理のところで「SQL Server 2005 Mobile Edition のこのバージョンは、 運用環境向けにライセンスされていません。」とエラーメッセージが出ます。 VB2005で開発中の時には、SQLserverライセンスを取っていなくても 実行の際、そのようなエラーメッセージは出なかったのですが・・ VB2005の入っていないパソコンだからでしょうか? 分かる方ご教授お願いいたします。

  • OracleとSQLServerの共存について

    質問があります。 私のPCなのですが、Oracleの8.1.6をインストールして使用していました。 その後、SQLServerも使用する必要があり、SQLServer2000をインストールしました。 しかし、SQLServer2000をインストールした後、Oracleのサービス(OracleServiceSID)を起動しようとすると、"開始中"になってしまい、ORACLEが動きません。※"OracleOraHome81TNSListener"は起動します。また、SQLServerは起動します。 SQLserver2000が原因なのかと考えたのでSQLServerをアンインストールしたらやはりOracleは起動できました。 OracleとSQLServerは共存できないのでしょうか? ちなみにOSはWindows2000 pro です。