informix 数据库logdbs 初始化在rootdbs中,后来要改在physdbs
然后执行,下面这条命令“onspaces -c -d phydbs -p /informix/dbs/phydbs -o 4 -s 2000000”
然后就出错了。。说一直在分配空间
“Verifying physical disk space, please wait.....”
然后就不知道为什么了。
后来看日志发现下面这个问题。
Informix's Logical Log Files are Full -- Backup is Needed
按照下面步骤,先把数据库的log备份,再重新分配就没问题了。
Due to certain condition, such as a big chunk of data is trying to roll back, Informix database server tend to use up all the logical spaces that are assigned to it.
If one day you found that your informix server is not functioning properly, why not check at the logical log file first? I've spend my whole day standing in the server room learning this lesson. This is how I manage to resolve it:
1. If logical file is full, You'll see this error in informix's log file :Logical Log Files are Full -- Backup is Needed. You will not be able to search certain tables and you may also encounter table lock often.
2. type onstat -l to list the list of logical file that you have. If it is due to this error, you will see most, if not all, logical space is 100%.
3. type onmode -l to clear logical log file.
4. If the logical space is fully utilised, onmode -l cannot be use. It will not succeed. You need to goto %informix%/etc/onconfig.std (%ONCONFIG file), change the LTAPEDEV value to /dev/null.
5. Run ontape -a to run backup. Follow instruction.
6. Then run onmode -l again to clear logical file one by one.
7. Change back LTAPEDEV to its original value (/dev/tapedev).
8. Restart DB.
搞了一天了,终于弄好了。记录下。