自
informix5.x
以后
,INFORMIX
公司推出新一代数据库引擎
ONLINE DYNAMIC SERVER 动态服务,一般我们简称 ONLINE7.X ,
ONLINE 是一个关系数据管理 (RDBMS) , 它的任务是提供一个存
储、检索、修改和删除数据的环境 , 它的目标就是使具有多个
物理 CPU 和大容量内存的计算机创建高性能和高稳定性的操作
环境 , 所以 ONLINE7.X 广泛运用于银行、保险、电信、邮政等对
于速度和安全性较高的部门。 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
ONLINE DYNAMIC SERVER 动态服务,一般我们简称 ONLINE7.X ,
ONLINE 是一个关系数据管理 (RDBMS) , 它的任务是提供一个存
储、检索、修改和删除数据的环境 , 它的目标就是使具有多个
物理 CPU 和大容量内存的计算机创建高性能和高稳定性的操作
环境 , 所以 ONLINE7.X 广泛运用于银行、保险、电信、邮政等对
于速度和安全性较高的部门。 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
INFORMIX-ONLINE 7.3
在
SCO OpenServer 5.0.X
系统上的
安装和配置。
安装和配置。
一.
Informix7.30
的安装
1.
建立
infomix
组和
informix
用户
1)
以
root
用户登录
2)
使用
scoadmin
系统管理程序里面的
Account Manager
建
立一个组名为" informix " , 用户名为" infomix "的用户 , 其
"Home Directory" 缺省为 "/usr/informix", 不必修改。
立一个组名为" informix " , 用户名为" infomix "的用户 , 其
"Home Directory" 缺省为 "/usr/informix", 不必修改。
2.
产品的安装
1)
以
informix
用户登录系统
,
编辑
.profile
所需的环境变
量 :
量 :
INFORMIXDIR=/usr/informix
INFORMIXSERVER=
服务器名
(
例如
post)
LD_LIBRARY=$INFORMIX/lib:$INFORMIXDIR/lib/esql
TERMCAP=$INFORMIXDIR/etc/termcap
CLIENT_LOCALE=zn_cn.gb
DB_LOCALE=zn_cn.gb
SERVER_LOCALE=zn_cn.gb
PATH=$INFORMIX/bin:$INFORMIX/lib:$PATH
export INFORMIXDIR INFORMIXSERVER LD_LIBRARY TERMCAP
export CLIENT_LOCALE DB_LOCALE SERVER_LOCALE PATH
2)
退出
informix
用户重新登录
,
使上述设置的环境变量生效。
3)
安装
INFORMIX-SQL
、
INFORMIX-4GL
、
INFORMIX-IDS7.3,
请严格按以上步骤安装 ( 否则 ONLINE 启动不了 , 而且报错也是莫名
其妙 ,"CAN'T FIND MESSAGE FILE AND DBLANG") 。
请严格按以上步骤安装 ( 否则 ONLINE 启动不了 , 而且报错也是莫名
其妙 ,"CAN'T FIND MESSAGE FILE AND DBLANG") 。
4)
以
root
用户登录并插入
SQL
光盘
# mount -o lower /dev/cd0 /mnt
# cd /usr/informix
# tar xvf /mnt/sql.tar
# ./installsql
输入许可证提供的序列号,如:
INF#Xxxxxxx
输入许可证提供的
KEY
:如
AAABBB
注意必须是大写字母
# unmount /mnt
插入
4GL
光盘
# mount -o lower /dev/cd0 /mnt
# tar xvf /mnt/4gl.tar
# ./install4gl
输入许可证提供的序列号,如:
INF#Xxxxxxx
输入许可证提供的
KEY
:如
AAABBB
注意必须是大写字母
# unmount /mnt
插入
IDS7.30
光盘
# mount -o lower /dev/cd0 /mnt
# cpio -icvdumBI</mnt/ids.cpio
# ./installserver
输入许可证提供的序列号,如:
INF#Xxxxxxx
输入许可证提供的
KEY
:如
AAABBB
注意必须是大写字母
# unmount /mnt
至此安装完毕。
3
.准备
Informix
初始化环境。
1
)
编辑
/etc/hosts
文件,登记网络各机器的名字及网络地址
例如:
IP
地址
主机名
142.73.111.1
(本机)
informix_server1
142.73.111.49 informix_clIEnt1
2
)
修改
/etc/services
,增加
informix
服务端口名
例如:
online_service 8000/tcp #informix
其中
,online_service
是
informix
服务名
,8000
为端口号
,tcp
为传输协议 , 该端口号必须唯一 , 如果和其它端口号有冲突 ,
可以修改。
为传输协议 , 该端口号必须唯一 , 如果和其它端口号有冲突 ,
可以修改。
3)
编辑
$INFORMIXDIR/etc/sqlhosts
文件
post onipcshm informix_server1 sqlexec
tcp ontlitcp informix_server1 online_service
第一行
post
为
INFORMIX-ONLINE
的
server
名,
onlipcshm
是共享
内存方式连接(只限本地), informix_server1 是本地主机
名 (hostname),sqlexec 是服务名。
内存方式连接(只限本地), informix_server1 是本地主机
名 (hostname),sqlexec 是服务名。
第二行
tcp
是增加的一个数据库服务器别名,
ontlitcp
是使用
传输层 TCP/IP (本地或远程)访问数据库, online_service 是
第 2) 步 /etc/services 中的 online_service 。
传输层 TCP/IP (本地或远程)访问数据库, online_service 是
第 2) 步 /etc/services 中的 online_service 。
4
.准备数据库空间
online
允许使用两种不同的磁盘空间类型:原始的(生设备)
磁盘空间和处理过的(熟设备)文件系统,使用处理过的文件
做 dbspace ,其性能不如原始空间。 使用处理过的文件不能利
用 DMA 功能(既直接内存访问), 将数据从共享内存直接传递
到磁盘 , 所以 , 为了充分发挥 ONLINE 的能力 , 建议使用原始空间。
磁盘空间和处理过的(熟设备)文件系统,使用处理过的文件
做 dbspace ,其性能不如原始空间。 使用处理过的文件不能利
用 DMA 功能(既直接内存访问), 将数据从共享内存直接传递
到磁盘 , 所以 , 为了充分发挥 ONLINE 的能力 , 建议使用原始空间。
1
)使用原始磁盘空间做
dbspaces
原始磁盘空间的分配必须在安装
SCO OpenServer 5
操作系统
时完成。具体做法是:安装操作系统划分磁盘空间时,首先
计算出 Unix 系统所需要的磁盘空间,然后剩余的空间全部用
作 INFORMIX 数据库原始空间,将这部分作一个或多个磁盘分
区,如果磁盘空间有多个磁盘,建议做多个,可以单独分配
空间给物理日志空间、 逻辑日志空间及 tmp 空间以提高系统
的性能。
时完成。具体做法是:安装操作系统划分磁盘空间时,首先
计算出 Unix 系统所需要的磁盘空间,然后剩余的空间全部用
作 INFORMIX 数据库原始空间,将这部分作一个或多个磁盘分
区,如果磁盘空间有多个磁盘,建议做多个,可以单独分配
空间给物理日志空间、 逻辑日志空间及 tmp 空间以提高系统
的性能。
具体做法如:
分区名为 dbs (在安装系统时分的磁盘分区),将该分区设置
为裸设备( NON FS ),在 /dev 可以找到 dbs 的设备名 /dev/dbs ,
将 dbs 的属主和属组改为 “infomix” ,权限改为 "660", 该分
区即为 online 要求的原始空间, 有关 Online 原始磁盘空间的
信息可用命令 # divvy /dev/dbs 查看,同理, 用此方法可以
建立 dbs1 、 dbs2 等原始磁盘空间。
分区名为 dbs (在安装系统时分的磁盘分区),将该分区设置
为裸设备( NON FS ),在 /dev 可以找到 dbs 的设备名 /dev/dbs ,
将 dbs 的属主和属组改为 “infomix” ,权限改为 "660", 该分
区即为 online 要求的原始空间, 有关 Online 原始磁盘空间的
信息可用命令 # divvy /dev/dbs 查看,同理, 用此方法可以
建立 dbs1 、 dbs2 等原始磁盘空间。
2
)使用处理过的文件做
dbspaces
由于在安装系统时没有分多个磁盘分区,可以用现有的磁盘空
间的文件系统 .
间的文件系统 .
下面在
/dev/root
文件系统下创建
3
个
dbspaces,
分别为
workdbs
( 业务数据库 ) 、 logdbs( 逻辑日志、物理日志 ) 、 tmpdbs(tmp 数
据库 )
( 业务数据库 ) 、 logdbs( 逻辑日志、物理日志 ) 、 tmpdbs(tmp 数
据库 )
# cd
# >workdbs logdbs tmpdbs #
建立文件
# chown informix:informix workdbs #
改变属主和属组
# chown informix:informix logdbs
# chown informix:informix tmpdbs
# chmod 660 workdbs #
将权限改为
660
# chmod 660 logdbs
# chmod 660 tmpdbs
5.
修改
SCOUNIX5.05
内核参数
对于
SCO OpenServer 5
平台
,INFORMIX-ONLINE7.30
需要调整下列
核心参数值 :( 参照 /usr/informix/release/en_us/0333 下的 IDS_7.3 文件 )
核心参数值 :( 参照 /usr/informix/release/en_us/0333 下的 IDS_7.3 文件 )
SHMMAX:409600000
SHMALL:512
SHMMNI:8192
SHMSEG:6
SEMMNI:8192
SEMMNS:8192
SEMMAP:8292
SEMMNU:100
SEMMSL:25
具体做法:从
root
注册登录,运行
scoadmin
在菜单中逐层选择
Hardware/Kernel Manager ,然后选择 Tune Parameters ,根据
以上值设置核心参数,也可以直接修改 /etc/conf/cf.d/mtune
这个文件 , 注意修改前做一个拷贝 , 设置完重连核心,退出并重
新启动 UNIX 。
Hardware/Kernel Manager ,然后选择 Tune Parameters ,根据
以上值设置核心参数,也可以直接修改 /etc/conf/cf.d/mtune
这个文件 , 注意修改前做一个拷贝 , 设置完重连核心,退出并重
新启动 UNIX 。
二.初始化
informix
方法一:配置
ONCONFIG
文件
(onconfig)
$ cd /usr/informix/etc(
配置文件所在目录
)
$ cp onconfig.std onconfig(
从标准配置文件中拷贝一份
,
作为配置自己系统的基础 ) 。
作为配置自己系统的基础 ) 。
用
vi
编辑器修改
onconfig
文件中的值,由于文件中的参数多
,
所以主要把重要的参数进行说明:
所以主要把重要的参数进行说明:
ROOTNAME=rootdbs #
这里取缺省
rootdbs
ROOTPATH=/dev/dbs #
rootdbs 的第一个 chunk 所在原始设备全路径名, dbs 为我们在
前面配置的原始 dbspaces 。
rootdbs 的第一个 chunk 所在原始设备全路径名, dbs 为我们在
前面配置的原始 dbspaces 。
ROOTSIZE=1000000 (K) # root dbspace
第一个 Chunk 的大小,这些空间初始创建逻辑日志、物理日志、
和 sysmaster 数据库,当初始完毕后, 就应尽快将日志和临时
表从 rootdbs 中移到其它原始的 dbspaces 或处理过的文件中。
第一个 Chunk 的大小,这些空间初始创建逻辑日志、物理日志、
和 sysmaster 数据库,当初始完毕后, 就应尽快将日志和临时
表从 rootdbs 中移到其它原始的 dbspaces 或处理过的文件中。
DBSERVER NAME(server name)=post
# Online 实例必须具有的唯一名, 这个名字也是环境变量
$INFORMIXSERVER 的值 , 还应当作为 $INFORMIXDIR/etc/sqlhosts
中的第一个字段。
# Online 实例必须具有的唯一名, 这个名字也是环境变量
$INFORMIXSERVER 的值 , 还应当作为 $INFORMIXDIR/etc/sqlhosts
中的第一个字段。
DBSERVERALIASES(server aliases)=tcp
#Online 实例的别名,在网上是要唯一的,它是网络访问数据库
必须的,在前面配置 $INFORMIXDIR/etc/sqlhosts 中要用到它。
#Online 实例的别名,在网上是要唯一的,它是网络访问数据库
必须的,在前面配置 $INFORMIXDIR/etc/sqlhosts 中要用到它。
RESIDENT(Forced Residency)=1
# 该参数决定 Online 实例共享内存的常驻区是否允许从操作系统
的共享内存中交换出来,如果服务器的物理内存足够大( 512MB
以上),建议设置为 1 ( Y ),否则为 0 ( N )。
# 该参数决定 Online 实例共享内存的常驻区是否允许从操作系统
的共享内存中交换出来,如果服务器的物理内存足够大( 512MB
以上),建议设置为 1 ( Y ),否则为 0 ( N )。
LOCKS
(
Max of Locks
)
=100000
# 该参数对共享内存的大小有影响 , 通常对于较忙的实例我们将它
设置为 100000 。
# 该参数对共享内存的大小有影响 , 通常对于较忙的实例我们将它
设置为 100000 。
BUFFERS
(
Max of buffers
)
=100000
# 这些缓冲区是共享内存常驻区唯一的最大消耗者,对实例共享内
存的影响最大。
# 这些缓冲区是共享内存常驻区唯一的最大消耗者,对实例共享内
存的影响最大。
MULTIPROCESSOR=1
# 该参数打开或关闭多处理器封锁机制,如果系统是三个 CPU 以上,
将它设为 1(Y) ,如果是单 CPU 或双 CUP 建议设为 0(N) 。
# 该参数打开或关闭多处理器封锁机制,如果系统是三个 CPU 以上,
将它设为 1(Y) ,如果是单 CPU 或双 CUP 建议设为 0(N) 。
NETTYPE=ipcshm,1,80,CUP #
共享内存数据库服务器通讯方式
NETTYPE=tlitcp,1,80,NET #tcp
数据库服务器通讯方式
配置
ONLINE
的参数很多,以上是只是其中最重要的一部分。
方法二:图形界面
以
informix
用户登录,运行
onmonitor
命令,依次选择
Parameters,
Initialize 进入磁盘初始化菜单 , 配置的参数和方法一相同 , 建议第
一次配置 ONLINE 的用户用此方法。
Initialize 进入磁盘初始化菜单 , 配置的参数和方法一相同 , 建议第
一次配置 ONLINE 的用户用此方法。
配置完
ONLINE
的参数,现在可以启动并初始化磁盘空间,以
informix
用户登录,执行 $ oninit -iy 注意 : 执行此命令后 , 所有在 Online 磁
盘空间上的数据将被破坏, 也可用图形界面 onmonitor 命令初始化,
总之,这两种命令只能在第一次初始化 ONLINE 磁盘空间使用,提醒各
位读者谨慎使用 , 以后在启动数据库只需用 oninit 命令即可, 执行
$ onstat - 命令可以简单查看 online 是否正常启动 , 如果正常则显示
如下类似的提示信息 :
用户登录,执行 $ oninit -iy 注意 : 执行此命令后 , 所有在 Online 磁
盘空间上的数据将被破坏, 也可用图形界面 onmonitor 命令初始化,
总之,这两种命令只能在第一次初始化 ONLINE 磁盘空间使用,提醒各
位读者谨慎使用 , 以后在启动数据库只需用 oninit 命令即可, 执行
$ onstat - 命令可以简单查看 online 是否正常启动 , 如果正常则显示
如下类似的提示信息 :
Informix Dynamic Server Version 7.30.UC2 -- On-Line -- Up 2
days 21:14:58 -- 163840 Kbytes 。
days 21:14:58 -- 163840 Kbytes 。
三.
Informix-online7.30
的日常管理及维护
1
.
自动启动关闭
Informix-online
数据库
启动
ONLINE
的命令是:
oninit
但为了便于系统管理员的管理,将启动命令建立在
/etc/rc2.d 目录下 , 名字为 S90informix,
/etc/rc2.d 目录下 , 名字为 S90informix,
就象
Dos
中的批处理文件一样,当启动
SCO OpenServer 5
操作系统时 ,online 随之启动。
操作系统时 ,online 随之启动。
在
/etc/rc2.d/
创建文件
S90informix,
内容如下
:
INFORMIXDIR=/usr/informix
INFORMIXSERVER=post
export INFORMIXDIR INFORMIXSERVER
$INFORMIXDIR/bin/oninit
修改文件属性使它用执行权利
:
# chmod +x /etc/rc2.d/S90informix
# chmod +x /etc/rc2.d/S90informix
自动关闭
INFORMIX-ONLINE
关闭
ONLINE
的命令为
: onmode –ky
将关闭命令建立在
/etc/rc0.d
目录下
,
编辑文件名为
K01informix, 内容如下 :
K01informix, 内容如下 :
INFORMIXDIR=/usr/informix
INFORMIXSERVER=post
export INFORMIXDIR INFORMIXSERVER
$INFORMIXDIR/bin/onmode -ky
修改文件属性使它用执行权利
:
#chmod +x /etc/rc2.d/K01informix
#chmod +x /etc/rc2.d/K01informix
2. INFORMIX ONLINE
的常见工作模式
Off-line:
实例没有运行
,
没有分配或初始化共享内存。
QuIEscent:
实例已经完全启动,但不允许用户访问数据
库,有些管理任务,像增加删除 dbspaces 、逻辑日志,
必须在实例处于 Quiescent 状态时才能完成。
库,有些管理任务,像增加删除 dbspaces 、逻辑日志,
必须在实例处于 Quiescent 状态时才能完成。
On-line:
实例完全启动,并且对所有有权访问它的用户
都是可用的。
都是可用的。
Shutdown:
当实例从
On-line
状态到
Quiescent
时的一种过
渡状态,所有用户线索仍然可以继续完成他们的工作直到
正常结束,但这时所有新的数据库连接都会被拒绝。
渡状态,所有用户线索仍然可以继续完成他们的工作直到
正常结束,但这时所有新的数据库连接都会被拒绝。
下面介绍各个模式相互转换的命令:
oninit(
将一个配置好的实例从
Off-line
状态一直变为
On-line 状态 )
On-line 状态 )
oninit -s
(将一个配置好的实例从
Off-line
状态一直变
为 Quiescent 状态,现有的用户线索可以继续直到正常结
束,但所有新的数据库请求连接将被拒绝)
为 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 名
该 rootdbs 存储 Online 的管理信息,包括物理日志、逻辑日
志等。当你建立一个数据库时,如果不指定 dbspace ,作为
缺省,该库建立在 rootdbs 中。所以,如果你想将库建立在
某个 dbspace 中,则必须指定 dbspace ,例如:
dbimport 数据库名 -d dbspace 名
注意:在建
dbspace
时,要指定原始磁盘设备名路径,所需
磁盘空间大小, 以及该块磁盘空间在原始磁盘设备中的偏
移量,偏移量非常关键,要小心设置,否则容易造成 chunk
块之间空间上的重叠与覆盖。
磁盘空间大小, 以及该块磁盘空间在原始磁盘设备中的偏
移量,偏移量非常关键,要小心设置,否则容易造成 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
有<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />
1000M
空间
,
其中
rootdbs
占
100M
,
tmpdbs 占 100M , workdbs 占 800M 。
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 命令可以改变日志的位置和大小, 必须在 ONLINDE 的
QuIEscent (静态方式)后执行。
$ onparams
-p -s
大小
-d dbspace
名
大小是以
K
为单位
,
建议物理日志大小为
100M
。
逻辑日志是保存数据在修改后的映象,
ONLINE
初始化时,逻辑日志个数
最少为 3 个,所以在初始化前可以给逻辑日志个数为 3 ,大小可以少一点
例如 1000K ,等初始化完后,在添加新的逻辑日志,最后再将前面的 3 个
逻辑日志删除,总逻辑日志最好在 500M 左右。具体做法如下:
最少为 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 级备份
onstat -l 查看逻辑日志情况,接下来就要删除前面 3 个旧逻辑日志,
删除前做一个 0 级备份
# ontape -s -L 0
$ onparams -d -l logid
logid
为逻辑日志
id
号,可以用
onstat -l
查看,然后就可根据
id
号删
除 3 个旧逻辑日志。
除 3 个旧逻辑日志。
四.
Informix Online
数据库备份及恢复。
1.
使用
ontape
工具备份
1.)ontape
有三个备份级别
0
级
实例中所用的页都被写到磁带上
1
级
备份从
0
级备份以后发生变化的数据
2
级
备份从
1
级备份以后发生变化的数据
$ ontape -s -L 0
执行该命令做
0
级备份,建议
:
如果允许可以每天在业务系统结束工作
后做一次 0 级备份,做完备份后管理好备份磁带,做好标记。
后做一次 0 级备份,做完备份后管理好备份磁带,做好标记。
2.)
逻辑日志的备份
仅仅做
0
级备份还不够
,
还要做逻辑日志备份才能完整的恢复数据
,
建议每天业务开始时 , 执行连续备份逻辑日志 (ontape -c), 业务结
束前停止 ontape -c , 换磁带 , 做一次 0 级备份 (ontape -s -L 0), 换
磁带再执行 ontape -c
建议每天业务开始时 , 执行连续备份逻辑日志 (ontape -c), 业务结
束前停止 ontape -c , 换磁带 , 做一次 0 级备份 (ontape -s -L 0), 换
磁带再执行 ontape -c
3)
系统恢复
当系统出现错误
,
或你想把系统恢复到某一时间点的数据时
,
必须利
用 0(1,2) 备份带和逻辑日志备份来恢复系统 , 命令如下 :
用 0(1,2) 备份带和逻辑日志备份来恢复系统 , 命令如下 :
# ontape -r
2.
使用
dbexport
命令备份数据
尽管
ontape
是一个安全性很高的备份工具
,
但操作比较烦琐
,
必须每天
要手动备份及换磁带 , 所以编写一个自动备份程序 , 这样大大解放了系
统管理员的工作。
要手动备份及换磁带 , 所以编写一个自动备份程序 , 这样大大解放了系
统管理员的工作。
具体实现方法如下:
在
/usr/backup
目录下用
vi
编写
backup.sh
文件
,
将文件的权限改为
"664",
内容如下 :
内容如下 :
INFORMIXDIR=/usr/informix (
设置
online
路径
)
PATH=$PATH:/usr/informix/bin
INFORMIXSERVER=post
export INFORMIXDIR INFORMIXSERVER PATH
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 命令先将所有用户的进程杀掉 , 然后再重新启动 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 142.73.111.10<
user backup backup #10 主机上建立用户 backup 口令是 backup
user backup backup #10 主机上建立用户 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命令的用法请参考SCO OpenServer用户手册。
由于白天业务比较忙,所以将备份时间定在每星期一到六凌晨 1:30,
具体crontab命令的用法请参考SCO OpenServer用户手册。
转载于:https://blog.51cto.com/yucaiyan/93569