一些操作系统有最大文件大小限制,这在创建大型ux_dump输出文件时可能会出现问题。幸运的是,ux_dump可以写入标准输出,因此可以使用标准Linux工具解决这个潜在问题。有如下几种方法:
使用压缩程序,例如gzip:
ux_dumpdbname
| gzip >filename
.gz
恢复:
gunzip -cfilename
.gz | uxsqldbname
或者:
catfilename
.gz | gunzip | uxsqldbname
split命令允许将输出分割成较小的文件以便能够适应底层文件系统的尺寸要求。例如让每一块的大小为1兆字节:
ux_dumpdbname
| split -b 1m -filename
恢复:
catfilename
* | uxsqldbname
如果UXDB所在的系统上安装了zlib压缩库,自定义转储格式将在写出数据到输出文件时对其压缩。这种方式的优势是输出文件中的表可以被有选择地恢复。下面的命令使用自定义转储格式来转储一个数据库:
ux_dump -Fcdbname
>filename
自定义格式的转储输出不是uxsql的脚本,只能通过ux_restore恢复:
ux_restore -ddbname
filename
对于非常大型的数据库,需要将split配合压缩转储或自定义转储两种方法之一进行使用。
为了加快转储大型数据库的速度,可以使用ux_dump的并行模式。它将同时转储多个表。-j参数控制并行度。并行转储只支持“目录”归档格式。
ux_dump -jnum
-F d -fout.dir
dbname
ux_restore -j以并行方式恢复转储。它只能适合于“自定义”归档或者“目录”归档,不论归档是否由ux_dump -j创建。