IBM Informix Dynamic Server Version 9.40.FC6
Netbackup 4.5 FP_6
I'm trying to recover a production database in a test environment.
My backup has no problems but when I try to restore in bar_act.log I have the following problem.
2009-04-14 10:29:44 16858 16856 Begin cold level 0 restore rootdbs (Storage Mannager copy ID: 1 1237915000).
2009-04-14 10:29:44 16858 16856 ASSERT: file bar_unix.c line 1253 - contact product support
2009-04-14 10:29:44 16858 16856 See also: /tmp/core.16858
2009-04-14 10:31:53 16858 16856 Process 16858 received signal 11. Process will exit after cleanup.
But the log in Netbackup shows me that the recover of rootdbs was succesfull and continue restoring all dbspaces.
But when I tried to recover logs it shows me the following error
2009-05-20 20:00:10 5575 5573 Unable to start the logical log restore: plogdbs which contains a logical log or physical log file
is being restored and rootdbs has not been physically restored.
If the ROOT DBspace or a DBspace containing the physical log or a logical
log file is restored, then the ROOT DBspace and all DBspaces containing
a logical log file or physical log file must be physically restored..
2009-05-20 20:00:10 5575 5573 /informix/bin/onbar_d complete, returning 131 (0x83)
IC51992: ONBAR CAN CRASH WITH UNFAVOURABLE GL_DATETIME SETTING
Closed as program error.
Any GL_DATETIME setting that yields more than the standard 19
character length datetime string can cause onbar to run into a
segmentation violation and/or write a core dump.
$ export GL_DATETIME="%Y-%m-%d %H:%M:%S%F3"
$ onbar -b -l
$ onbar -m
2007-02-27 15:07:25 13535 13533
/sqldists/10.00.FC5W4/bin/onbar_d -b -l
2007-02-27 15:07:27 13535 13533 Begin backup logical log 186.
2007-02-27 15:07:27 13535 13533 Successfully connected to
2007-02-27 15:07:30 13535 13533 ASSERT: file bar_unix.c line
1261 - contact product support
2007-02-27 15:07:30 13535 13533 See also: /tmp/core.13535
2007-02-27 15:07:30 13535 13533 (-43080) Process 13535
received signal 11. Process will exit after cleanup.
Put a line at the beginning of the $INFORMIXDIR/bin/onbar script
"Using ON-Bar and non-default GLS settings, especially GL_DATETI
Thanks for your answer.
I have already read this post, but I donīt use that environment variable.
Actually I didnīt find in Internet the exact error that bar_act.log is sending. I look for similar errors, (bar_unix.c with different line programs) like the post you are sending me but no one gives a real solution.
I donīt understand exactly what you mean with your last post. Could you explain me what exactly I have to check?
LOGFILES 104 # Number of logical log files
LOGSIZE 30000 # Logical log size (Kbytes)
MSGPATH /informix/online.log # System message log file path
CONSOLE /dev/console # System console message path
# To automatically backup logical logs, edit alarmprogram.sh and set
ALARMPROGRAM /informix/etc/alarmprogram.sh # Alarm program path
TBLSPACE_STATS 1 # Maintain tblspace statistics
# System Archive Tape Device
TAPEDEV /dev/null # Tape device path
TAPEBLK 32 # Tape block size (Kbytes)
TAPESIZE 40000000 Maximum amount of data to put on tape (Kbytes)
# Log Archive Tape Device
LTAPEDEV /libre/logs # Log tape device path
LTAPEBLK 16 # Log tape block size (Kbytes)
LTAPESIZE 10240 # Max amount of data to put on log tape (Kbytes)
STAGEBLOB # Informix Dynamic Server staging area
# System Configuration
SERVERNUM 0 # Unique id corresponding to a OnLine instance
DBSERVERNAME baan_srv # Name of default database server
DBSERVERALIASES sfodbc # List of alternate dbservernames
#NETTYPE ipcshm,5,100,CPU # Configure poll thread(s) for nettype
NETTYPE ontlitcp,7,250,NET # Configure poll thread(s) for nettype
DEADLOCK_TIMEOUT 60 # Max time to wait of lock in distributed env.
RESIDENT -1 # Forced residency flag (Yes = 1, No = 0)
MULTIPROCESSOR 1 # 0 for single-processor, 1 for multi-processor
NUMCPUVPS 10 # Number of user (cpu) vps
SINGLE_CPU_VP 0 # If non-zero, limit number of cpu vps to one
NOAGE 0 # Process aging
AFF_SPROC 0 # Affinity start processor
AFF_NPROCS 0 # Affinity number of processors
# Shared Memory Parameters
LOCKS 2000000 # Maximum number of locks
BUFFERS 2000000 # Maximum number of shared buffers
NUMAIOVPS 10 # Number of IO vps
PHYSBUFF 128 # Physical log buffer size (Kbytes)
LOGBUFF 128 # Logical log buffer size (Kbytes)
CLEANERS 20 # Number of buffer cleaner processes
SHMBASE 0x10A000000L # Shared memory base address
SHMVIRTSIZE 5000000 # initial virtual shared memory segment size
SHMADD 512000 # Size of new shared memory segments (Kbytes)
SHMTOTAL 0 # Total shared memory (Kbytes). 0=>unlimited
CKPTINTVL 1800 # Check point interval (in sec)
LRUS 20 # Number of LRU queues
LRU_MAX_DIRTY 2 # LRU percent dirty begin cleaning limit
LRU_MIN_DIRTY 1.5 # LRU percent dirty end cleaning limit
TXTIMEOUT 300 # Transaction timeout (in sec)
STACKSIZE 64 # Stack size (Kbytes)
# System Page Size
# BUFFSIZE - OnLine no longer supports this configuration parameter.
# To determine the page size used by OnLine on your platform
# see the last line of output from the command, 'onstat -b'.
# Recovery Variables
# Number of parallel worker threads during fast recovery or an offline restore.
# Number of parallel worker threads during an online restore.
OFF_RECVRY_THREADS 10 # Default number of offline worker threads
ON_RECVRY_THREADS 1 # Default number of online worker threads
# Data Replication Variables
DRINTERVAL 30 # DR max time between DR buffer flushes (in sec)
DRTIMEOUT 30 # DR network timeout (in sec)
DRLOSTFOUND /informix/etc/dr.lostfound # DR lost+found file path
# CDR Variables
CDR_EVALTHREADS 1,2 # evaluator threads (per-cpu-vp,additional)
CDR_DSLOCKWAIT 5 # DS lockwait timeout (seconds)
CDR_QUEUEMEM 4096 # Maximum amount of memory for any CDR queue (Kbytes)
CDR_NIFCOMPRESS 0 # Link level compression (-1 never, 0 none, 9 max)
CDR_SERIAL 0 # Serial Column Sequence
CDR_DBSPACE # dbspace for syscdr database
CDR_QHDR_DBSPACE # CDR queue dbspace (default same as catalog)
CDR_QDATA_SBSPACE # List of CDR queue smart blob spaces
# -1 => unlimited
# 0 => disable dynamic log addition
# >0 => limit the no. of dynamic log additions with the specified value.
# Max dynamic log requests that CDR can make within one server session.
CDR_MAX_DYNAMIC_LOGS 0 # Dynamic log addition disabled by default
# Backup/Restore variables
BAR_ACT_LOG /informix/bar_act.log # ON-Bar Log file - not in /tmp please
BAR_DEBUG_LOG /informix/bar_dbug.log # ON-Bar Debug Log - not in /tmp please
# The following parameters control the type of diagnostics information which
# is preserved when an unanticipated error condition (assertion failure) occurs
# during OnLine operations.
# For DUMPSHMEM, DUMPGCORE and DUMPCORE 1 means Yes, 0 means No.
DUMPDIR /tmp # Preserve diagnostics in this directory
DUMPSHMEM 1 # Dump a copy of shared memory
DUMPGCORE 0 # Dump a core image using 'gcore'
DUMPCORE 0 # Dump a core image (Warning:this aborts OnLine)
DUMPCNT 1 # Number of shared memory or gcore dumps for
# a single user's session
FILLFACTOR 90 # Fill factor for building indexes
# method for OnLine to use when determining current time
USEOSTIME 0 # 0: use internal time(fast), 1: get time from OS(slow)
# Parallel Database Queries (pdq)
MAX_PDQPRIORITY 100 # Maximum allowed pdqpriority
DS_MAX_QUERIES # Maximum number of decision support queries
DS_TOTAL_MEMORY # Decision support memory (Kbytes)
DS_MAX_SCANS 1048576 # Maximum number of decision support scans
# 0 => Nested loop joins will be preferred (where
# possible) over sortmerge joins and hash joins.
# 1 => If the transaction isolation mode is not
# "repeatable read", optimizer behaves as in (2)
# below. Otherwise it behaves as in (0) above.
# 2 => Use costs regardless of the transaction isolation
# mode. Nested loop joins are not necessarily
# preferred. Optimizer bases its decision purely
# on costs.
OPTCOMPIND 0 # To hint the optimizer
DIRECTIVES 1 # Optimizer DIRECTIVES ON (1/Default) or OFF (0)
# HETERO_COMMIT (Gateway participation in distributed transactions)
# 1 => Heterogeneous Commit is enabled
# 0 (or any other value) => Heterogeneous Commit is disabled
SBSPACENAME # Default smartblob space name - this is where blobs
# go if no sbspace is specified when the smartblob is
# created. It is also used by some datablades as
# the location to put their smartblobs.
SYSSBSPACENAME # Default smartblob space for use by the Informix
# Server. This is used primarily for Informix Server
# system statistics collection.
BLOCKTIMEOUT 3600 # Default timeout for system block
SYSALARMPROGRAM /informix/etc/evidence.sh # System Alarm program path
Yes, This is the onconfig from production but also is onconfig for test server. I did a full backup of /informix and restore it in my test environment. The onconfig is same for both servers.
Also I studied about XBSA library, let me explain what I found.
From Informix Manual
"By default, ONBar looks for the XBSA shared library in $INFORMIXDIR/lib/libbsa.s[ol] on UNIX. To specify a different name or location of the XBSA shared library, use the BAR_BSALIB_PATH configuration parameter. You can also make $INFORMIXDIR/lib/ibsad001.s[ol] a symbolic link to the correct library."
In both production and test environment I have the following files
root@xxxx # pwd
root@xxxx # ls -l libb*
-r-xr-xr-x 1 informix informix 2289072 Dec 8 2004 libbsa.so
root@xxxx # ls -l ibsa*
lrwxrwxrwx 1 root other 37 May 27 19:15 ibsad001.so -> /usr/openv/netbackup/bin/infxbsa.so64
Variable BAR_BSALIB_PATH is not defined in my original onconfig file because the link ibsad001.so points to XBSA library from Netbackup
In the manual Installing Netbackup for Informix says
"Make sure /usr/lib/ibsad001.s0 is linked to Netbackup infxbsa.so"
lrwxrwxrwx 1 root other 37 Jun 1 11:44 /usr/lib/ibsad001.so -> /u
-r-xr-xr-x 1 root other 1459008 Oct 9 2003 /usr/openv/netbackup/bin/infxbsa.so64
This link doesn't exist in my test environment, I changed it but I have the same error.
Now, I found a log in /opt/openv/netbackup/logs/infxbsa
When I restore rootdbs, I have the following messages:
11:58:24.990  <4> closeApi: INF - server EXIT STATUS = 0: the requested operation was successfully completed
11:58:24.990  <4> close_image: INF - restore completed SUCCESSFULLY
11:58:24.990  <4> close_image: INF ---- end of Restore ---
11:58:24.990  <4> VxBSAEndTxn: INF - entering VxBSAEndTxn.
11:58:24.990  <4> VxBSAEndTxn: INF - Transaction being ABORTED.
11:58:24.990  <4> VxBSATerminate: INF - entering VxBSATerminate.
11:58:24.990  <4> VxBSAGetEnv: INF - entering GetEnv -BBSA_DEBUGFD
11:58:24.990  <4> VxBSAGetEnv: INF - returning -
When I restore the following dbspaces I have the following:
13:59:58.953  <4> closeApi: INF - EXIT STATUS 0: the requested operation was successfully completed
14:00:03.950  <4> closeApi: INF - server EXIT STATUS = 0: the requested operation was successfully completed
14:00:03.950  <4> close_image: INF - restore completed SUCCESSFULLY
14:00:03.950  <4> close_image: INF ---- end of Restore ---
The difference is with rootdbs doesn't commit XBSA transaction but the restore is succesful. I understand now the message. rootdbs is restore but XBSA is not finishing the transaction and leaves rootdbs with a flag.
The question is... why is not committing the transaction?