hereで提案されたことから、200GBのデータベースをダンプするときにディスク容量を節約できるように、sqlcmd
からの出力をパイプしようとしています。7zip
私は次のことを試しました:
> sqlcmd -S <DBNAME> -Q "SELECT * FROM ..." | .\7za.exe a -si <FILENAME>
一日中システムを離れても、これは機能していないようです。ただし、次のように動作します。
> sqlcmd -S <DBNAME> -Q "SELECT TOP 100 * FROM ..." | .\7za.exe a -si <FILENAME>
そしてこれさえ:
> sqlcmd -S <DBNAME> -Q "SELECT * FROM ..."
シンボルを削除するpipe
と、結果が表示され、7 時間以内にファイルにリダイレクトすることもできます。
大量の出力のパイピングで何が起こっているのかわかりませんが、この時点までに理解できたのは、7zip がアーカイブ ファイルを作成する前に入力全体を消費するのを待っているように見えることです (ファイルが最初に作成されているため、実際にオンザフライ圧縮を実行しているかどうかはわかりません。だから私はgzipを試しましたが、これが私の経験です:
> echo "Test" | .\gzip.exe > test.gz
> .\gzip.exe test.gz
gzip: test.gz: not in gzip format
これを正しい方法で行っているかどうかはわかりません。助言がありますか?