abb*_*ood 21 postgresql dump postgresql-9.2 pg-dump
有没有办法查看pg_dump
大数据库(即> 1GB)上的操作进度?添加-v
选项只会在屏幕上转储文本,但不会给我太多有意义的跟踪信息。
R0B*_*0BA 12
适用于 Unix/Linux 环境:
Pipe Viewer (pv) 实用程序可用于跟踪备份进度。pv 为您的 shell 提供有关经过时间和传输字节的详细信息的动画。
下面是使用 pv 和 split 实用程序将大转储文件保留为小块的转储示例。稍后将其转移到另一个位置可能会很方便。
# dump the PREDATA in clear text into a .PREDATA.SQL text file
pg_dump -s -o --section=pre-data -n $schemaname $DatabaseConnString | pv | split -d -b $chunksize - $backuppath/$backupfilename".PREDATA.sql"
# dump the POSTDATA in clear text into a .POSTDATA.SQL text file
pg_dump -s -o --section=post-data -n $schemaname $DatabaseConnString | pv | split -d -b $chunksize - $backuppath/$backupfilename".POSTDATA.sql"
# dump the DATA into the .DATA.dump compressed (binary) file
pg_dump -Fc --section=data -n $schemaname $DatabaseConnString | pv | split -d -b $chunksize - $backuppath/$backupfilename".DATA.dump"
Run Code Online (Sandbox Code Playgroud)
缺点 - 如果使用 pg_dump -Fd 选项(转储到文件夹),则此方法不起作用。
Mat*_*sOl 11
您可以使用 TOC 列表查看粗略的进度。
首先,获取要恢复的对象的TOC列表:
pg_restore -l -f list.toc db.dump
Run Code Online (Sandbox Code Playgroud)
然后,您可以逐行查看TOC 列表并比较verbose 的输出或查询pg_stat_activity 以查看TOC 列表中pg_restore 的位置。
不过这只是一个粗略的估计。首先是因为 TOC 列表中的每个项目可能需要真正不同的时间来加载(例如,模式很快,但加载大表和构建索引的数据却不是),如果您使用 -j,您将有一个项目正在恢复在上一个完成之前。另外,如果您不使用 -L,我不能 100% 确定 pg_restore 是否完全遵循 TOC 列表,但我认为确实如此。
归档时间: |
|
查看次数: |
22260 次 |
最近记录: |