存档

2014年8月 的存档,文章数:2

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   ---   视图