質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

トランザクション

トランザクションとは、関連・依存する処理を一連の不可分な処理単位として扱う処理方式を指します。トランザクションとして管理された処理は「すべて成功」か「すべて失敗」のいずれかであることが保証される。処理に失敗した場合は、一連の処理がロールバックされます。

Windows Server

Windows Serverとは、Microsoft社のサーバ用オペレーティングシステムの総称です。 企業内ネットワークなどで利用されるサーバ機へ導入することを想定して開発されているため高い安定性があり、 管理機能を提供するソフトウェアが多く含まれています。

Q&A

解決済

2回答

5948閲覧

トランザクションログ(*.ldf)領域の拡張(解放)について

Hyper1820

総合スコア1

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

トランザクション

トランザクションとは、関連・依存する処理を一連の不可分な処理単位として扱う処理方式を指します。トランザクションとして管理された処理は「すべて成功」か「すべて失敗」のいずれかであることが保証される。処理に失敗した場合は、一連の処理がロールバックされます。

Windows Server

Windows Serverとは、Microsoft社のサーバ用オペレーティングシステムの総称です。 企業内ネットワークなどで利用されるサーバ機へ導入することを想定して開発されているため高い安定性があり、 管理機能を提供するソフトウェアが多く含まれています。

0グッド

0クリップ

投稿2020/06/21 06:51

編集2020/06/21 07:25

前提・実現したいこと

SQLserver2017(OS:WINSERVER2012R2)を利用して、ビッグデータのデータマートを
作成しております。その際に、ログファイルがいっぱいになり、
9002のメッセージが出力され、処理が途中で終わってしまいます。
そのため、処理が途中で終わらないようにするには、どうすればよいのか
ご教授願います。
⇒SSMSを利用して、常にログファイルの圧縮は実施しております。
⇒利用しているうちに、ログファイルの最大値が小さくなっております。

発生している問題・エラーメッセージ

ビックデータ(40G)に対してビッグデータ(40G)のLeftOuterjoinが
処理途中で止まる。これは、エラーメッセージ9002によるものです。
また、処理を実施しているうちに、圧縮を実施したとしても、ldfファイルの最大領域が少なくなり、
この影響で処理が落ちています。

どのような処理をするにしても、メッセージ9002が出てくる問題が解決できないです。
そのため、新規にDBを作成するのが困難な状態です。

エラーメッセージの詳細ですが、下記となります。コピペが出来ないので、転写します。

『メッセージ9002、レベル 17、状態 4.行 2』
『'ACTIVE_TRANSACTION‘により、データベース'master'のトランザクションログがいっぱいになっています。』

試したこと

入力データを100分割して、処理を実施したのですが、根本的な問題である
メッセージ9002問題(容量問題)があります。

補足情報(FW/ツールのバージョンなど)

ちなみに、DB自体の容量は全部で1TB(SSMSのデータベースのプロパティーより確認)ですが、
格納先ドライブは2T(WindowsのDドライブの最大容量)あり、容量的には、使用率50%だと思っているのですが、
実際のWindowsドライブの容量は2Tになっており、
実際に作成したDBの容量が1TBであるはずだが、空き容量が全くない状態となっております。
これも、何かしらの影響を及ぼしているものと考えます。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Orlofsky

2020/06/21 07:03

> DB自体の容量は全部で1TBですが、 1TBと調べた方法も質問に追記しては?
guest

回答2

0

データベースのでバックアップ、ドライブ移動、移動先で復元、復元後、データベースの圧縮遠実施。圧縮開始後、5日が経ったが処理が完了しない。

悠長に待てず、再インストールを実施した。
一応、環境が復活。
知識が無い人間が触って良い機能とツールである事を再認識しました。

ちゃんと管理しましょう。
そのやり方と方法が分からないですがね。

投稿2020/06/29 13:01

Hyper1820

総合スコア1

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

見当違いなこと言ってたらすみませんが…

トランザクションログ(*.ldf)の圧縮するには『完全バックアップを取ること』だったかと。
バックアップを取らないまま何度圧縮しても基本変わりません。

別の方法としてはssmsでデータベースのプロパティを開き、オプションから
復旧モデルを「単純」にしていったん閉じてから、再度プロパティ→ファイルで
ldfファイルの容量を手打ちした後、復旧モデルを「完全」に戻せば良かったと思います。

自動拡張の設定とかどうなっているんですかね?
トランザクションログがいっぱいでも読み取りだけはできた気がしますが
40G同士leftjoinのselectでトランザクションかけているんですか?

追記

必要なのはトランザクションログのバックアップではなく
「データベースの完全バックアップ」です。私の認識ではSQL Serverの復旧モデル「完全」は
「前回の完全バックアップ」と「トランザクションログ」を利用して
「任意の時間に戻す」ということができるようになっています。
「特定の時間の完全なデータベース」を基準に「トランザクションログ」を
先頭から任意の時間までのログを適用して「そのときの状態」に戻します。

なので、データベースの完全バックアップを取り「これからのトランザクションログ」を
始めることでログを「圧縮」(完全バックアップを取ったのでそれ以前のトランザクションログは不要)
できる、と思っています。

投稿2020/06/23 12:04

編集2020/06/24 03:30
sousuke

総合スコア3830

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Hyper1820

2020/06/23 23:10

お世話になっております。 ●基本的な作業として、トランザクションログのバックアップは必須作業なんですね。 SSMSからバックアップ取得方法についてですが、 →一旦閉じるとは、プロパティー画面を指しますか?それともSSMSを閉じることを指してますか? →ldfファイルの容量を手打ちするとの事ですが、具体的に数値は幾つを指定すれば良いですか?また、この作業は数分で完了しますか? ●自動拡張についてですが、5%事に無制限拡張としております。トランザクションログが一杯になってますが、読み取りは可能です。 ●40GBの左外部結合については、selectで実施した結果をinsertでDBに投入しております。大容量データの処理に関しては、実績として、insert+selectよりもselect+intoの方が速いです。 以上となります。再回答をお願い致します。
sousuke

2020/06/24 00:15 編集

復旧モデルの変更はバックアップの取得方法ではないです。復旧モデル「単純」はトランザクション『ログ』を使用しないもので一度『単純』にするとldfファイルは無用の長物になります。そこでldfのファイルサイズを手打ちして減らし、復旧モデルを『完全』に戻すという強硬手段です。初期値をいくつにすればいいかというのはDB次第なので、わかりません。少なくしても自動拡張の設定に従って増えるだけです。全体で30GほどのDBでも復旧モデルの変更自体は1分もかからなかったかと。
Hyper1820

2020/06/24 13:04

追記で記載していただいた内容が参考になりました。未だにメインの問題は解決していないのですが、バックアップの概念は理解が深まって来ました。 業務を遂行するに当たり、どのように進めるのがベストなのか模索してます。 引き続き、アドバイスがあればお願い致します。
Hyper1820

2020/06/30 01:29

バックアップや圧縮作業を試しましたが、 データベースの圧縮作業が1週間経ったが、完了を待てず、SQL serverの再インストールを実施することにした。
sousuke

2020/06/30 01:39

復旧モデルの変更は試してないんですか?
Hyper1820

2020/07/01 13:16

元々、簡単 設定だったせいか、 簡単→完全→簡単と設定して見ましたが、 変化無しでした。
sousuke

2020/07/01 13:25

単純の場合ファイルサイズを手打ちできませんか?100MBとかにすればいいような
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問