首页 | 文章 | 相册 | 收藏夹 | 留言
PROGRESS数据库的创建
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 numberThe records per block,妈的我也没搞懂
数据库Area对应的文件名和路径(可以用绝对路径和相对路径,建议用绝对路径)
Area数据存放的形式:
  f --- Fixed,就是固定大小,后面带一个固定的数值
  v --- Variable,可变大小,初始值128KB;通常后面带一个数值作为这个可变大小的最大值
  r --- Raw Device
  --- 表示无限制的可变大小(这时需要考虑操作系统的文件大小限制;比如HP-UX文件通常有2G限制)
Area的大小(单位:Kb,该值必须是16的整数倍,否则会被数据库自动调整为最合适的16的整数倍大小)
二、数据库的创建:
例,假设progress安装目录是/mfg/dlc91st文件已经创建且在当前目录,那么在当前目录下创建数据库命令如下:
# /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 Size1-2倍。注意mysql下载的vs库放在那个文件里-blocksize参数必须放在最后。
三、数据库原始结构的拷贝:
prostrct create创建的数据库是完全空的,用pro等命令是没法起来的,必须拷贝一个空的结构,比如:
#/mfg/dlc91/bin/procopy /mfg/dlc91/empty8 prod
选择empty多少,需要根据你创建的DBBlock 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 
/*强烈推荐增加TBTM参数,实际上占用很少的资源却大大减少了数据库索引重建的时间*/

注意:也可以用prodb等其它工具创建数据库,但推荐用prostrct方式!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。