几个常用的 Informix 命令

来源:百度文库 编辑:神马文学网 时间:2024/05/17 01:51:42
几个常用的 Informix   命令   作者:hero99zy  出处:Unix爱好者家园unix-cd.com  更新时间: 2004年07月19日 
Informix命令之一-oninit   


Usage: oninit { -[ipsy] }
    -i   Initialize disk space and shared memory, leave in on-line mode.
    -p   Do not reclaim temporary tables.
    -s   Initialize shared memory, leave in quiescent mode.
    -y   Respond yes to all prompts

以上是在线帮助,用法如下:
1)$>oninit -i
    这个命令将初始化磁盘空间,是很危险的参数,在你使用数据库的过程中,只能在刚安装完做一次,否则。。。
2)$>oninit -p
    数据库不正常宕掉时,数据库中会留有临时表,这些表会占据一定的磁盘空间,一般我们重起数据库时,数据库会自动删除临时表,但我们也可以使用该命令保留这些临时表。
3)$>oninit -s
    将数据库服务器启动到单用户模式,就同操作系统的单用户一样,这时你可以做一些维护工作,而不受其它想连上数据库的用户干扰。
4) $>oninit
   正常启动数据库。
5)$>oninit -v
   正常启动数据库,并且显示启动的过程信息。 

 Informix命令之二--dbexport   


Usage:
dbexport  [-X] [-c] [-q] [-d] [-ss]
[{ -o 
 | -t  -b  -s  [-f ] }]
NOTE: arguments to dbexport are order independent.
参数详解:
  -X  如果某个字符串字段中包含二进制数据,加上该参数后,dbexport将重新组织这些数据。
  -c  除非很严重的错误dbexport才中断,这些错误如下:
         不能打开你指定的磁带设备;
不能写磁带设备或文件;
不正确的命令行参数;
不能打开数据库或没有连接数据库的权限;
  -q  不用将导出过程输出到屏幕上
  -d  让dbexport只导出BLOB字段的描述符,而不导出BLOB数据
  -ss 能够生成更详细的信息,比如:
         初始和附加extent的尺寸;
表的分片信息;
对表的锁的模式(行锁或页锁);
表所在的dbspace或BLOB数据所在的space;
  -o 
  
      可以将数据库导入到你指定的目录下
  -t  -b  -s 
      将数据导入到磁带
  -f 
      dbexport在导出数据的同时会产生一个DDL的文件,你可以指定一个绝对路径的文件


      例:
       1) 将数据库stores导出到当前目录下
$>dbexport stores
       2) 将数据库stores导出到当前目录下,不将过程输出到屏幕,并且忽略小错
$>dbexport stores -q -c
3) 将数据库stores导出到指定目录下
$>dbexport stores -q -c -o /tmp
4)将数据库stores导出到磁带上
$>dbexport stores -t /dev/tape -b 2048 -s 2000000 -f /tmp
       5)将数据库stores导出前目录下,并且加上额外的信息
$>dbexport stores -ss 

 
Informix命令之三--ontape  

 
ontape
usage:
{ -a  |
-c  |
-l  |
-p  |
-r  [-D DBspace_list] |
-s  [-L archive_level] [-A database_list] [-B database_list]
     [-N database_list] [-U database_list]  }
-a Automatic backup of logical logs
-c Continuous backup of logical logs
-l Logical restore
-p Physical restore for HDR
-r Full restore DBspaces/BLOBspaces as listed
-s Archive full system
-A set the following database(s) to ansi logging
-B set the following database(s) to buffered logging
-N set the following database(s) to no logging
-U set the following database(s) to unbuffered logging

与该工具有关的几个参数,在$ONCONFIG文件中:

。。。
# System Archive Tape Device

TAPEDEV         /dev/tapedev    # Tape device path
TAPEBLK         16              # Tape block size (Kbytes)
TAPESIZE        10240           # Maximum amount of data to put on tape (Kbytes)

# Log Archive Tape Device

LTAPEDEV        /dev/tapedev    # Log tape device path
LTAPEBLK        16              # Log tape block size (Kbytes)
LTAPESIZE       10240           # Max amount of data to put on log tape (Kbytes)
。。。

其中LTAPEDEV为备份逻辑日志的磁带设备,TAPEDEV为零级备份的设备。它们也可以指向同一个设备名。

例:
1)零级(一级或二级)备份
$>ontape -s
$>ontape -s -L 0
$>ontape -s -L 1
$>ontape -s -L 2

2)逻辑日志备份
$>ontape -a

3)连续逻辑日志备份(日志文件满一个备份一个,你可以插盘磁带到磁带机上,让IDS自动备份)
$>ontape -c

4)备份恢复(对应零级备份或一级备份或二级备份)
$>ontape -r 

5)备份恢复几个DBSPACE(一定要存在逻辑日志备份,否则物理恢复完后,还是不能用)
$>ontape -r -D dbs1 dbs2 。。。

6)配置HDR时使用的物理恢复
$>ontape -p

7)修改数据库日志模式
$>ontape -s -B db_name   修改为buffer_log
$>ontape -s -U db_name   修改为unbuffer_log
$>ontape -s -N db_name   修改为无日志模式
$>ontape -s -A db_name   修改为ansi logging模式,从这个模式无法改到其它模式,因此一般不要用该项。

另外,我们改完日志后需要做一个零级备份,这时我们可以将TAPEDEV设置为/dev/null ,然后再接着做,就可以了,但作完后一定要将该参数改回来,注意修改LTAPEDEV和TAPEDEV都不用重新启动数据库,改完存盘就能用了。

如果我们不想要逻辑日志备份,我们可以将LTAPEDEV设为/dev/null ,那么逻辑日志会满一个自动备份一个,不用我们去管理了。