一、备份
一共涉及8个参数,其中2个BACKUP_FILTER、RESTORE_FILTER用于数据变换指定过滤器程序,不常使用;其他6个如下所示用于创建存储空间和逻辑日志备份。
1、修改onconfig中以下6个参数。
# System Archive Tape Device
TAPEDEV /home/share # Tape device path
TAPEBLK 32 # Tape block size (Kbytes)
TAPESIZE 204800 # Maximum amount of data to put on tape (Kbytes)
# Log Archive Tape Device
LTAPEDEV /home/share/tape1 # Log tape device path
LTAPEBLK 32 # Log tape block size (Kbytes)
LTAPESIZE 102400 # Max amount of data to put on log tape (Kbytes)
2、保证设置的文件地址可用
-bash-3.1$touch tape1
-bash-3.1$chmod 660 tape1
3、运行ontape执行0级备份
-bash-3.1$ ontape -s -L 0
[root@fedora share]# su - informix
-bash-3.1$ ontape -s -L 0
100 percent done.
File created: /home/share/fedora_10_L0
Please label this tape as number 1 in the arc tape sequence.
This tape contains the following logical logs:
4
Program over.
4、错误解决
若提示:Directory must have RWX permission for owner/group informix /home/share/
Archive failed - function open archive tape failed code -1 errno 0
Program over.
则:
[root@fedora share]# chown informix:informix /home/share
[root@fedora share]# chmod 777 /home/share
5、使用ontape工具进行数据备份需要注意的问题
1)在执行ontape备份前要对Onconfig文件中的TAPEDEV、TAPEBLK、TAPESIZE参数进行正确的设置。
2)为了缩短数据恢复时间,应以进行0级为主,尽量减少1级和2级备份。对银行等重要部门数据,应每天进行0级备份。
3)如果需要将ontape备份的数据恢复到另一台服务器上时,要求两台服务器机型、操作系统、Onconfig配置文件及非临时分配的Dbspace磁盘空间数量和大小必须一致,否则数据不能正常恢复。
4)必须保证有足够可用的逻辑日志文件。如果剩余的逻辑日志空间小于单个逻辑日志的50%,Informix-online将拒绝执行备份操作。必须先备份已使用过的逻辑日志,然后才能进行数据备份。
5)保留Onconfig文件副本。在进行0级备份后,应备份Onconfig文件,因为在恢复0级备份时需要读Onconfig文件信息,如果online配置被修改,数据恢复将失败,如果恢复此0级备份,必须恢复当时的配置。
6)备份可以在online联机或静止方式下进行,在备份过程中不能改变online运行方式,否则备份会被中断。
7)不要使用后台方式执行备份命令(UNIX下的&&),因为备份采用交互方式进行。
二、ontape恢复:
注意的问题:
在恢复过程中,如果恢复失败,则可能恢复机上的数据库oninit起不来,则只好用oninit -i来初始化了。
1、恢复过程
-bash-3.1$ onmode -ky
-bash-3.1$ ls
fedora_10_L0 lost+found tape1
-bash-3.1$ ontape -r
Restore file /home/share/fedora_10_L0 and press Return to continue ...
Archive Tape Information
Tape type: Archive Backup Tape
Online version: IBM Informix Dynamic Server Version 11.50.UC1DE
Archive date: Tue Aug 17 11:01:04 2010
User id: informix
Terminal id: /dev/pts/0
Archive level: 0
Tape device: /home/share/
Tape blocksize (in k): 32
Tape size (in k): system defined for directory
Tape number in series: 1
Spaces to restore:1 [rootdbs]
2 [dbs1]
Archive Information
IBM Informix Dynamic Server Copyright 2001, 2008 IBM Corporation.
Initialization Time 06/11/2010 13:56:15
System Page Size 2048
Version 16
Index Page Logging OFF
Archive CheckPoint Time 08/17/2010 11:01:03
Dbspaces
number flags fchunk nchunks flags owner name
1 60001 1 1 N B informix rootdbs
2 60001 2 1 N B informix dbs1
Chunks
chk/dbs offset size free bpages flags pathname
1 1 0 450000 340145 PO-B /home/informix/ids11uc1/dbs/rootdbs
2 2 0 250000 161794 PO-B /dbs/dbs1
这里显示的是备份的磁盘配置(可验证是否生成了正确的设备和连接)。包括dbspace和chunk等情况。
Continue restore? (y/n)y
Do you want to back up the logs? (y/n)n
------------------------------------ 进入FastRecovery状态(onstat -观察)
/*此时间开始进行恢复,时间较长,且没有完成百分比提示,请耐心等待*/
Restore a level 1 archive (y/n) Restore a level 1 archive (y/n) n
--------------------------------------- 此步应回答为n,不需要进行1级恢复
Do you want to restore log tapes? (y/n)n
------------------------------------------ 此步应回答为n,不需要进行日志恢复
/home/informix/ids11uc1/bin/onmode -sy
Program over.
/*数据库自动进入quiescent 模式*/
-bash-3.1$ onstat -
IBM Informix Dynamic Server Version 11.50.UC1DE -- Quiescent -- Up 00:00:46 -- 347572 Kbytes
-bash-3.1$ onmode -m
-bash-3.1$ onstat -
IBM Informix Dynamic Server Version 11.50.UC1DE -- On-Line -- Up 00:00:52 -- 347572 Kbytes
2、对恢复期间的监视
在恢复DBSPACE期间,由于online.log不更新,所以监视恢复状况我就采用onstat来分析。
三、备份恢复常用到的命令
oninit
oninit -iy (初始化数据库,删除所有dbspace和chunk)
oninit -s (脱机-->静态)
onmode -ky offline
onmode -s graceful shutdown-->quiescent(联机到静态,让用户处理完成)
onmode -u immediate shutdown-->quiescent(联机到静态,所有用户立即终止)
onmode -m quiescent--->online
onstat - 查看服务器状态
onstat -d 查看dbspace和chunk情况
onstat -l 查看逻辑日志
ipcs 查看共享内存情况
ipcrm 删除某个共享内存
ipcrm -m id
ipcrm -s id
有关逻辑日志的操作,以informix用户登录,
$ onmode -uy (由Online切换到Quiescent状态,所有用户立即中止)
onmode -m (切换到Online)
$ onparams -a -d logdbs -s 100000 (在logdbs中增加逻辑日志)
其中logdbs为dbspaces 名 ,-s 100000 表示增加了100M空间。
再连续执行4遍上述命令,这样新的逻辑日志空间总共为500M,可以用onstat -l 查看逻辑日志情况,接下来就要删除前面3个旧逻辑日志,删除前做一个0级备份
# ontape -s -L 0
执行该命令做0级备份,建议: 如果允许可以每天在业务系统结束工作后做一次0级备份,做完备份后管理好备份磁带,做好标记。
$ onparams -d -l logid
logid 为逻辑日志id号,可以用onstat -l 查看,然后就可根据id号删除3个旧逻辑日志。
A)增加一个新的dbspace:(datadbs,15M, 偏移为0)
onspaces -c -d datadbs -p /home/informix/datadbs -o 0 -s 15000
B)在datadbs这一个dbspace中增加一个chunk:(datadbs_chunk1)
onspaces -a datadbs -p /home/informix/datadbs_chunk1 -o 0 -s 15000
C)将上述chunk删除
onspaces -d datadbs -p /home/informix/datadbs_chunk1 -o 0
D).删除dbspace(仅当要删除的dbspace空间没有数据时才可删除)
onspace -d datadbs
ps:当然还有许多未提到的。
例如备份中:ontape –a, on-demanded backup of logical logs
ontape –c, continuous backup of logical logs
例如热恢复时可以使用的:ontape –r –D [dbs1 dbs2 …]
例如更改database logging:
Ontape –s –A stores7
Ontape –s –B stores7
Ontape –s –U stores7
Ontape –N stores7
Ontape –B stores7
Ontape –U stores7