一、数据库结构文件的创建:
Progress 9.1D一般创建多卷模式的数据库,所以创建结构文件是首要的!Progress数据库结构文件扩展名是st,比如生产系统数据库prod的结构文件是prod.st,和DB文件同目录!
PROGRESS数据库结构文件的格式如下:
①指定Area的类型,比如是DB还是BI,如果以“#”字符开始,该行被认为是注释,具体规定如下:
a --- After-image (AI) Area
b --- Before-image(BI) Area 另外又称为Primary Recovery Area
d --- Schema Area and Application Data Areas
t --- Transaction log (for two-phase commit)
【目前主要用到b & d 】
②Area的信息:"Area名称":Database engine-generated area number ,The records per block
///关于Database engine-generated area number和The records per block,妈的我也没搞懂
③数据库Area对应的文件名和路径(可以用绝对路径和相对路径,建议用绝对路径)
④Area数据存放的形式:
f --- Fixed,就是固定大小,后面带一个固定的数值
v --- Variable,可变大小,初始值128KB;通常后面带一个数值作为这个可变大小的最大值
r --- Raw Device
空 --- 表示无限制的可变大小(这时需要考虑操作系统的文件大小限制;比如HP-UX文件通常有2G限制)
⑤Area的大小(单位:Kb,该值必须是16的整数倍,否则会被数据库自动调整为最合适的16的整数倍大小)
二、数据库的创建:
例,假设progress安装目录是/mfg/dlc91,st文件已经创建且在当前目录,那么在当前目录下创建数据库命令如下:
# /mfg/dlc91/bin/prostrct create prod prod.st
如果st文件没问题,那么会出现正在formating extents等提示,然后OK!如果要指定数据库的block size:
# /mfg/dlc91/bin/prostrct create prod prod.st -blocksize 8192
Block size 必须是2的整数倍,一般是1024 / 2048 / 4096 / 8192中选一个,原则是OS File System Block Size的1-2倍。注意-blocksize参数必须放在最后。
三、数据库原始结构的拷贝:
用prostrct create创建的数据库是完全空的,用pro等命令是没法起来的,必须拷贝一个空的结构,比如:
#/mfg/dlc91/bin/procopy /mfg/dlc91/empty8 prod
选择empty多少,需要根据你创建的DB的Block size大小:
empty1 1024
empty2 2048
empty4 4096
empty8 8192
四、启动数据库导入结构文件:
# /mfg/dlc91/bin/pro prod
按F3激活菜单,选择Tools -> Data Dictionary
再选择Admin -> Load Data and Definitions -> Data Definitions
在提示对话框输入要导入的结构文件,比如prod.df
说明:如果是做DB refiling,那么一般.df文件是事先做好并保存在当前目录下的!
五、Bulkload数据:
# /mfg/dlc91/bin/proutil prod -C bulkload ./prod.fd -d ymd -yy 1950
说明:如果是做DB refiling,那么.fd文件和必须的.d文件一般事先准备就绪并保存在当前目录下。
六、索引重建:
# /mfg/dlc91/bin/proutil prod -C idxbuild all
为了获取更好的性能,通常加上-TB和-TM参数,比如:
# /mfg/dlc91/bin/proutil prod -C idxbuild all -TB 16 -TM 32
/*强烈推荐增加TB和TM参数,实际上占用很少的资源却大大减少了数据库索引重建的时间*/
注意:也可以用prodb等其它工具创建数据库,但推荐用prostrct方式!