2016-10-18 1 views
0

今、私はデータとデータベースが同じディスクにあるファイルを持っています。長時間実行されているアトミック・インサートは、コミットする前にディスクがいっぱいになることがあります。たとえデータベースがおそらく現在のファイルを開いていても、数百ギガバイトを節約するために、データファイルをシンボリックリンクで置き換えることができますか?そのようなファイルシステムレベルの解決策がなく、 "データを再オープンし、チェックポイントから続ける"アクションが必要な場合、私はpostgres 9.5を使用しており、データファイルはpg_dumpによって生成されます。Linuxでオープンファイルをシンボリックリンクに置き換える?

私の主な質問と好奇心は、開いているプログラムを中断することなくファイルをリンクで置き換える可能性についてですが、ここでの状況によって動機付けられています。現在実行中のプログラムを中断することなくデータベースが存在するディレクトリに、より多くのディスク領域を関連付ける方法についての知識もあれば便利です。

+2

オンラインextnファイルシステムのサイズを変更する1ギガバイト

# lvextend -L +1G /dev/mapper/datalv 
  • することにより、論理ボリュームを拡張します。 symlinkは元のファイルとは異なるinodeを持ちます。 –

  • 答えて

    2

    “は、プロセスが現在開いているファイルを”に置き換えることはできません。

    しかし、LVMを使用する場合、ファイルシステムを含むボリュームグループに空き領域があり、ファイルシステムの種類によってサイズ変更が可能である場合、ファイルがオンザフライであるファイルシステムを拡張することができます。ここで

    は、ファイルシステムext2とその後継者のためのソリューションです:

    • は、あなたのファイルが

      # df /path/to/large/file 
      Filesystem   1K-blocks Used Available Use% Mounted on 
      /dev/mapper/datalv 
               991512 991500  12 100% /path/to 
      
    • があなたのファイルが

      を常駐ボリュームグループを探す常駐する論理ボリュームを見つけます
      # lvdisplay -c /dev/mapper/datalv | cut -d: -f2 
      datavg 
      
    • 検索物理エクステントのサイズと空き容量はどれくらいですか

      # vgdisplay -c datavg | cut -d: -f13,16 
      4096:476 
      

      空き領域は、476倍の4 MBまたは1904 MBです。

    • # resize2fs /dev/mapper/datalv 
      
    関連する問題