存档
IQ备份数据库时不支持在线压缩备份文件。
在当前情况下,只能等到IQ数据库备份完成后再压缩备份文件。如果压缩IQ备份文件的话,除了IQ数据库备份文件占用存储空间外还需要压缩文件空间。
不管压缩IQ备份文件与否,都至少需要IQ数据库已用空间大小的存储空间。
如何节省IQ备份文件占用存储空间呢?
下面提供一种使用管道文件在线压缩IQ备份文件的方法,供参考。
在backup database命令中如果不指定备份分片文件的大小限制,则默认每个备份分片文件限制为2G;
超过备份分片文件的大小限制时,IQ会自动给备份分片文件名称尾部添加递增的数字后缀;
指定多个to语句可以并行写备份文件。
下面脚本在Linux平台上测试可用,语句中指定size 1000000000 限制每个备份分片文件大小上限为:1T Bytes;如果IQ数据库已用空间超过3T的话,则要求变量stripenum 至少为4。
如果想增加IQ备份分片文件的个数,可以指定更大的stripenum值。IQ备份分片文件个数越多,备份文件压缩并行度越高。
需要使用sybase用户执行下面的脚本:
Sybase ASE自带了一个导出对象结构的命令行工具:ddlgen
比较详细的用法,请参照:用DDLGEN从ASE数据库中提取对象的定义语法
如果对象结构中包含中文,使用参数: -Jcp936
比较实用的用法如下:
1、导出数据库tpchdb内所有表的表结构(包括索引):
ddlgen -Usa -Psybase123456 -STEST -Dtpchdb -TU -N%.% -Jcp936 -O./tables.sql
2、导出数据库tpchdb内所有视图的创建语法:
ddlgen -Usa -Psybase123456 -STEST -Dtpchdb -TV -N%.% -Jcp936 -O./views.sql
3、导出数据库tpchdb内所有存储过程的创建语法:
ddlgen -Usa -Psybase123456 -STEST -Dtpchdb -TP -N%.% -Jcp936 -O./procs.sql
4、只导出表结构(不包含索引):
ddlgen -Usa -Psybase123456 -STEST -Dtpchdb -TU -N%.% -FI -Jcp936 -O./tables.sql
5、仅仅导出表上的索引的语法:
ddlgen -Usa -Psybase123456 -STEST -Dtpchdb -TI -N%.% -Jcp936 -O./indexes.sql
注意常见的对象类型:
I --- 索引
U ---- 表
TR --- 触发器
P --- 存储过程
V --- 视图