服务器 频道

informix7.X安装指南

   三.Informix-online7.30的日常管理及维护

  1. 自动启动关闭Informix-online数据库

  启动ONLINE的命令是:oninit

  但为了便于系统管理员的管理,将启动命令建立在/etc/rc2.d目录下,名字为S90informix, 就象DOS中的批处理文件一样,当启动SCOUNIX操作系统时,online随之启动。

  编辑文件(在root用户下) /etc/rc2.d/S90informix,内容如下

  INFORMIXDIR=/usr/informix

  INFORMIXSERVER=picc

  ONCONFIG=onconfig.picc

  Export INFORMIXDIR INFORMIXSERVER ONCONFIG

  INFORMIXDIR/bin/oninit

  修改文件属性使它用执行权利: #chmod +x /etc/rc2.d/S90informix

  自动关闭INFORMIX-ONLINE

  关闭ONLINE的命令为: onmode –ky

  将关闭命令建立在/etc/rc0.d目录下,编辑文件名为K01informix,内容如下:

  INFORMIX INFORMIXDIR=/usr/informix

  INFORMIXSERVER=picc

  ONCONFIG=onconfig.picc

  Export INFORMIXDIR INFORMIXSERVER ONCONFIG

  INFORMIXDIR/bin/onmode -ky

  修改文件属性使它用执行权利: #chmod +x /etc/rc2.d/K01informix

  2. INFORMIX ONLINE 的常见工作模式

  Off-line :实例没有运行,没有分配或初始化共享内存。

  Quiescent:实例已经完全启动,但不允许用户访问数据库,有些管理任务,像增加删除dbspaces、逻辑日志,必须在实例处于Quiescent状态时才能完成。

  On-line:实例完全启动,并且对所有有权访问它的用户都是可用的。

  Shutdown::当实例从Online-line状态到Quiescent时的一种过渡状态,所有用户线索仍然可以继续完成他们的工作直到正常结束,但这时所有新的数据库连接都会被拒绝。

  下面介绍各个模式相互转换的命令:

  oninit(将一个配置好的实例从Off-line状态一直变为On-line状态)

  oninit -s(将一个配置好的实例从Off-line状态一直变为Quiescent状态,现有的用户线索可以继续直到正常结束,但所有新的数据库请求连接将被拒绝)

  onmode –sy(将实例从On-line状态经过shutdown)

  onmode –uy(立即终止现有的实例,使之成为Quiescent,所有的用户线索和数据库请求都将被中断)

  onmode –ky(实例从on-line或Quiescent变为off-line状态)

  介绍完ONLINE的几种常用工作模式后,下面我们就可以为online增加工作区、逻辑日志、物理日志、临时文件数据库空间了。

  3.管理Informix Online磁盘空间

  Online初始化时,自动建立了一个名为rootdbs的dbspace。该rootdbs存储Online的管理信息,包括物理日志、逻辑日志等。当你建立一个数据库时,如果不指定dbspace,作为缺省,该库建立在rootdbs中。所以,如果你想将库建立在某个dbspace中,则必须指定dbspace,例如:dbimport 数据库名 –d dbspace名

  注意:在建dbspace时,要指定原始磁盘设备名路径,所需磁盘空间大小,以及该块磁盘空间在原始磁盘设备中的偏移量,偏移量非常关键,要小心设置,否则容易造成chunk块之间空间上的重叠与覆盖。

  1) 用onspaces 命令建立dbspace

  onspaces –c –d dbspaces名 –p 磁盘设备 -o 偏移量 –s 空间大小

  其中: -c 表示建立新的dbspace

  -d dbspace 名字

  -p 原始磁盘设备全路径名,如/dev/dbs

  -o 偏移量,以K字节为单位

  -s dbspace中第一个chunk的尺寸,以K字节为单位

  例如: 假设原始磁盘设备/dev/dbs有1000M空间,其中rootdbs占100M,tmpdbs 占100M,workdbs占800M。

  $ onspaces –c –d tmpdbs –p /dev/dbs –o 100000 –s 100000

  $onspaces –c –d workdbs –p /dev/dbs –o 200000 –s 8000000

  2)用onspaces 命令建立物理日志、逻辑日志空间

  物理日志保存数据被修改前的映象,物理日志的位置和大小可以改变,使用onparams命令可以改变日志的位置和大小,必须在ONLINDE的Quiescent(静态方式)后执行。

  $ onparams –p -s 大小 –d dbspace名

  大小是以K为单位,建议物理日志大小为100M。

  逻辑日志是保存数据在修改后的映象,ONLINE初始化时,逻辑日志个数最少为3个,所以在初始化前可以给逻辑日志个数为3,大小可以少一点例如1000K,等初始化完后,在添加新的逻辑日志,最后再将前面的3个逻辑日志删除,总逻辑日志最好在500M左右。具体做法如下:

  以informix用户登录,

  $ onmode –uy (由Online切换到Quiescent状态)

  $ onparams –a –d logdbs -s 100000

  其中logdbs为dbspaces 名 ,-s 100000 表示增加了100M空间。

  再连续执行4遍上述命令,这样新的逻辑日志空间总共为500M,可以用onstat –l 查看逻辑日志情况,接下来就要删除前面3个旧逻辑日志,删除前做一个0级备份

  # ontape –s –L 0

  $ onparams –d –l logid

  logid 为逻辑日志id号,可以用onstat –l 查看,然后就可根据id号删除3个旧逻辑日志。

  四.Informix Online数据库备份及恢复。

  1. 使用ontape 工具备份

  1.)ontape 有三个备份级别

  0级 实例中所用的页都被写到磁带上

  1级 备份从0级备份以后发生变化的数据

  2级 备份从1级备份以后发生变化的数据

  $ ontape –s –L 0

  执行该命令做0级备份,建议如果允许可以每天在业务系统结束工作后做一次0级备份,做完备份后管理好备份磁带,做好标记。
2.) 逻辑日志的备份

  仅仅做0级备份还不够,还要做逻辑日志备份才能完整的恢复数据,建议每天业务开始时,执行 连续备份逻辑日志(ontape –c),业务结束前停止ontape –c ,换磁带,做一次0级备份(ontape –s –L 0),换磁带再执行ontape –c

  3)系统恢复

  当系统出现错误,或你想把系统恢复到某一时间点的数据时,必须利用0(1,2)备份带和逻辑日志备份来恢复系统,命令如下:

  # ontape –r

  2. 使用dbexport 命令备份数据

  尽管ontape是一个安全性很高的备份工具,但操作比较烦琐,必须每天要手动备份及换磁带,所以编写一个自动备份程序,这样大大解放了系统管理员的工作。

  具体实现方法如下:

  在/usr/backup目录下用vi编写backup.sh文件,将文件的权限改为”664”,内容如下

  INFORMIXDIR=/usr/informix (设置online路径)

  PATH=$PATH:/usr/informix/bin

  INFORMIXSERVER=picc

  export INFORMIXDIR INFORMIXSERVER PATH

  ONCONFIG=onconfig.picc

  export ONCONFIG

  wk=`date +20%y%m%d` #设置变量wk代表当天日期例如 20010101

  dir=/usr/backup/$wk #设置数据存放目录

  if test ! -d $dir #检验目录是否存在

  then

  mkdir $dir

  else

  rm -r $dir/*

  fi

  #由于使用dbexport命令时,所有正在使用数据库操作的用户必须退出,所

  以我用fuser –k 命令先将所有用户的进程杀掉,然后在重新启动Online.

  fuser -k 用户注册目录(例如/u/motor)

  sleep 10

  onmode –uy #关闭online

  sleep 10

  onmode –m #启动online

  sleep 10

  cd /usr/backup

  dbexport 数据库名1 -o $dir #将数据库卸到当天目录中

  dbexport 数据库名2 -o $dir

  …

  rm sjbf*

  tar cvf sjbf.tar $dir #将目录打包

  compress -H sjbf.tar #压缩打包文件

  #为了保证数据的安全性,将数据传送到另一台主机

  da=`date +%m%d` #创建传送文件名

  da1=`date +%H`

  da=$da.$da1.Z

  ftp -nv 82.17.32.192<
user backup backup #192主机上建立用户backup口令是backup

  put sjbf.tar.Z $da

  quit

  !

  rm -r $dir/*

  cd /usr/backup

  mv sjbf.tar.Z $dir #将压缩文件移到目录中

  编辑backup.cron文件,内容如下

  30 1 * * 1-6 /usr/backup/backup.sh

  在root用户下执行 crontab backup.cron ,就可以让系统自动, 由于白天业务比较忙,所以将备份时间定在每星期一到六凌晨1:30,具体crontab命令用法这里请查考scounix用户手册。

   

0
相关文章