2016-10-06 12 views
1

DBを閉じようとしましたが、開いているファイルはすべて開かれましたが、.sstのファイルはまだ開いています。levelDB:DBを閉じた後でも.sstファイルが開いています

  1. .sstとは何ですか? (LevelDB用)
  2. DBを閉じた後でも引き続きなぜそれが見えますか?
  3. 誰が/それらを閉じるのですか?

私は数日後に私はorg.iq80.leveldb.DBException: IO error: Too many open filesの例外を最終的に得ると思います!

答えて

0

1. .sstファイルとは何ですか? (LevelDB用)
.sstは、あなたのデータをディスクに保存することになっています。

2.私はDBを閉じた後でもまだそれらを見ますか?
leveldbファイルをディスクに保存します。DBを閉じると、データを削除するのではなく、操作するためにハンドルを閉じるだけです。あなたがデーモンmysqlデーモンをシャットダウンしたときと同じように、あなたは本当にデータを削除していない、再起動時にアクセスすることができます。

3.誰が/何を閉じますか?
dbインスタンスを開き、ファイル記述子が.sstのファイルを保持するプロセスによって閉じられます。

「levelDB:DBを閉じた後でも.sstファイルが開かれています」通常、ファイルディスクリプタは閉じられますが、ファイルは閉じられません。開いている場合は、lsofを使用して開かれたプロセスを確認してください。

0

すべてのsstファイルは、DBハンドラが削除された後に閉じられます。 しかし、sstファイルはまだディスク上にあります。 DestroyDBを試して、すべてのdbファイルを削除することができます。

Optionsmax_open_filesを設定して、オープンdbの場合はIO error: Too many open filesを避けることができます。

+0

ありがとうございます! しかし、私はleveldbファイルを削除したくありません。私はそれを再開したい。 – user2302639

関連する問題