PROGRESS 9.1D一般创建多卷模式的数据库,所以创建结构文件是首要的... 一、数据库结构文件的创建: 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倍。注意mysql下载的vs库放在那个文件里-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方式!
|
发表评论