728x90

Question

Remove Shared Memory Segments

Answer

Directions for removing shared memory segments are as follows: (must be root)

  1. Get your SERVERNUM from the onconfig
  2. Convert that to hex and add it to 5256 in hex
  3. ipcs -m |grep 5256+SERVERNUM(in hex)
  4. The ID is the second column in the output. Write down each of the ID numbers.
  5. Take the list of IDs and run ipcrm -m ID for each ID.

so an example is as follows: 

1. onstat -c |grep SERVERNUM 
SERVERNUM 60 # Unique id corresponding to a Dynamic Server Instance 

2. 0x5256 + 0x3c = 0x5292 

3. ipcs -m |grep 5292 
m 121 0x52924801 --rw-rw---- root informix 
m 122 0x52924802 --rw-rw---- root informix 
m 123 0x52924803 --rw-rw-rw- root informix 

4. ipcrm -m 121 
ipcrm -m 122 
ipcrm -m 123 

5. this command will confirm the segment has been removed 
ipcs -m |grep 5292


http://www-01.ibm.com/support/knowledgecenter/api/content/SSGU8G_11.50.0/com.ibm.admin.doc/ids_admin_1218.htm

http://www-01.ibm.com/support/docview.wss?uid=swg21326141


728x90
728x90

Question

High availability replication (HDR) requires a trust relationship for user informix between the machines in the HDR pair. Is there an alternative to using hosts.equiv for establishing the trust?

Answer

You can use the .netrc file to establish trust between computers. Locate the file in the informix user home directory on both machines. It should have a line like the following:

    machine machine_name login informix password informix_password 
      machine_name 
      the name of the remote machine in the HDR pair. 

      informix_password 
      the password for user informix on the remote machine.


Caution: Be sure to set appropriate permissions on the .netrc file to protect the password.



http://www-01.ibm.com/support/docview.wss?uid=swg21195877

728x90
728x90

Question

Sometime you may need to restore a single table from an archive. In fact you may want the table exactly as it was at a specific date and time, and we can do this using archecker.

It is important to note that the format of the datetime you provide to archecker depends the values in environment variables such as DBTIME, GL_DATETIME, or CLIENT_LOCALE when the back up was taken.

Answer

The following steps are a guide for people who want to use a non-default database locale.

The first thing is to find out which datetime format should be used. This is decided by the following environment variables in this order:

a) DBTIME environment variable:
setenv DBTIME '%Y-%m-%d %H:%M:%S'

b) If DBTIME is not set, then the value of the GL_DATETIME environment variable will be used:
setenv GL_DATETIME '%Y-%m-%d %H:%M:%S'

c) If neither DBTIME or GL_DATETIME are set, the default time format from the CLIENT_LOCALE will be used.
This ESQL/C program shows the time format for a given CLIENT_LOCALE.

/* start datetime.ec */
-------------------------------------------------------------------------------
#datetime.ec
#include <stdio.h>

main(int argc, char **argv)
{
$datetime year to second dt;
char output[100];
char buffer[100];

if (argc!=2) {
printf(" USAGE : datetime <CLIENT_LOCALE value> \n");
printf(" EXAMPLE : datetime ko_kr.ksc \n");
exit(1);
}

sprintf(buffer,"CLIENT_LOCALE=%s",argv[1]);
putenv(buffer);
dtcurrent(&dt);
dttofmtasc(&dt,output,sizeof(output),NULL);
printf("%s \n",output);
}
-------------------------------------------------------------------------------
/* end datetime.ec */

You compile the ESQL/C program above with this command:
esql -o datetime datetime.ec -static

You then execute it like this:
datetime de_de.8859-1

The output looks like this:
Mi. 08 Dez. 2010, 21:19:16


Once the relevant datetime format is known, we can restore one table at a point in time. The example restores a single table from a database where DB_LOCALE & CLIENT_LOCALE are both set to de_de.8859-1, and DBTIME & GL_DATETIME are not set. the datetime will be as shown above

1. Create SQL command file for archecker with a correct time format.
-------------------------------------------------------------------------------
#Archecker SQL example...
#/informix/adm/point-in-time-recovery.cmd
database mydb;

create table t_source (
cm_cd smallint not null ,
c_cmp_cd integer not null ,
corp_ins_no char(13),
prv_no char(20),
is_rpt char(1),
rpt_ymd integer
) in mydbsp ;

create table t_target (
cm_cd smallint not null ,
c_cmp_cd integer not null ,
corp_ins_no char(13),
prv_no char(20),
is_rpt char(1),
rpt_ymd integer);

insert into t_target select * from t_source;
restore to 'Mi. 08 Dez. 2010, 01:02:03';

2. Run the archecker command for recovery. 

archecker -tvs -f /informix/adm/point-in-time-recovery.cmd 

3. See the recovery result from ac_msg.log.



http://www-01.ibm.com/support/docview.wss?uid=swg21457155

728x90
728x90


Question

What is the minimum amount of contiguous memory needed for ontape archive to work?

Cause

Lack of available contiguous memory can cause ontape archive to fail with an assertion warning "ISAM error: An error has occurred during archive back up".

Answer

When you start an ontape archive, the ontape (front-end) process will allocate four blocks of contiguous memory in the size of TAPEBLK configuration parameter. If you have constraints on available memory, a workaround could be reduce the value of TAPEBLK configuration parameter to a minimum value (On UNIX: 32K and on Windows: 16K).


728x90
728x90


Problem(Abstract)

On AIX platform connection to the database server failing with invalid password message, when Informix strarted with user 'informix'. However, if you start it as user 'root', problem does not occur.

Following is a different manifestation of the similar problem. 

With user 'informix' connecting to database server using 'dbaccess -> Query-language -> Select Database' worked fine. However, same user failing with invalid password message during 'dbaccess -> Connection -> Connect -> Database Server -> User Name -> Password'. This problem occurred with TCP/IP as well as shared memory connections.

Symptom

The following message will be recorded in the message log file when the connection to the database server fails:

 Check for password aging/account lock-out.

 listener-thread: err = -952: oserr = 0: errstr = informix@hostname: User (informix@hostname)'s password is not correct for the database server.


Cause

AIX 6.1 and later implemented a Loadable Password Algorithm (LPA) mechanism that allows easily deploy new password encryption algorithms. Each supported password encryption algorithm is implemented as a LPA load module that is loaded at runtime when the algorithm is needed. The supported LPAs and their attributes are defined in the /etc/security/pwdalg.cfg system configuration file. By default only user 'root' can read this system configuration file.

# ls -ld /etc/security /etc/security/pwdalg.cfg

   drwxr-x--- 9 root security  4096 Jun 28 09:13 /etc/security

   -rw-r----- 1 root security  3807 Mar 04 2010 /etc/security/pwdalg.cfg


Resolving the problem

Informix does not support LPA. However, changing permission of the system configuration file may be a possible solution.


http://www-01.ibm.com/support/docview.wss?uid=swg21663148

728x90
728x90


Problem(Abstract)

The -952 error is generally a bad account/password combination. However when there is 100% confidence that the account/password combination is correct, a -952 error can still occur. This article explains one scenario and a possible solution for that problem.

Symptom

Assumptions:

  1. 100% confidence that the account/password combination is correct
  2. The OS is properly configured to authenticate Kerberos/AD user accounts
  3. The user account is a remote Kerberos/AD account
  4. AIX OS

A -952 error is reported in the server message log and possibly a -951 error to the client.

Cause

The remote AD server may not have a crypt hash password stored for the user account. If so it will return "*" for the crypt hash password value. This value does not match the crypt hash value of the passed-in password.

Resolving the problem

Take one of the following actions where applicable:

  1. Ensure the permissions of the oninit binary are rwsr-sr--, owner is root and group is informix
  2. Try running the instance as user root instead of user informix
  3. Use some other form of authentication such as PAM or SSO

Related information

Single Sign-On With IBM Informix
Setting up Kerberos/SSO in IDS using Windows AD
Configuring Informix Clients for Single Sign-On
Pluggable Authentication Module with Informix Dynamic S
-951 / -952 when using Loadable Password Algorithm (LPA
A possible solution for a -952 error when seen on AIX w


http://www-01.ibm.com/support/docview.wss?uid=swg21650838

728x90
728x90


Problem(Abstract)

When configuring IDS to use LPA (ssha1, ssha256 ,sblowfish, smb5, etc) you get -951/-952 errors on AIX

Cause

The underlaying problem is that the default settings on AIX for the LPA mapping config file are

such that only root can read the file. Crypt() function in IDS is run on a CPU VP which is non-root and AIX requires it to be run as root if using LPA, a workaround is to use PAM (which will use MSC VP for authentication )


Resolving the problem

Use PAM to configure LPA on AIX


Following example instructions to set it: 

1) Add to /etc/pam.conf: 
idslogin auth required pam_aix 
idslogin account required pam_aix 

2) Define DBSERVERALIAS ids_pam_srv 

3) Add to SQLHOSTS: 
ids_pam_srv onsoctcp <host> <port> 
s=4,pam_serv=idslogin,pamauth=password 

Don't forget to add an appropriate entry to /etc/services (if needed). 

4) check /etc/security/login.cfg for: 
auth_type = STD_AUTH 
pwd_algorithm = sblowfish 


5) and final IDS check: 

bash-3.2$ dbaccess - - 
> connect to "test@ids_pam_srv" user "tester"; 
ENTER PASSWORD: 

Connected.


http://www-01.ibm.com/support/docview.wss?uid=swg21624912

728x90
728x90


Problem(Abstract)

After configuring LPA (Loadable Password Algorithm) on AIX, you see -951 and -952 errors when trying to connect as user informix. -and using PAM is not an immediate option

Cause

AIX has made the /etc/security/pwdalg.cfg file unreadable to normal users (users other than root), hence -attempting to authenticate as user informix does not work.

Resolving the problem

You can use PAM to get around this problem, but if that is not an immediate option and re-writing applications to handle PAM can not be completed immediately - you can use the following work-around:

Warning: You need to ensure you are in a secure environment to use this work-around - i.e. your Informix Server machine is secure and you really trust user 'informix'. If this is true, then you can proceed.

Add user 'informix' to the 'security' group on AIX - this will allow the /etc/security/pwdalg.cfg to be read by user informix and authentication should work without throwing an error.

Note - using PAM is the preferred method for handling this situation, so use this as a temporary work-around only while taking steps to properly remedy the issue.


http://www-01.ibm.com/support/docview.wss?uid=swg21664590

728x90
728x90

Problem(Abstract)

An onbar backup can run on XBSA errors, preceded by BAR_TIMEOUT warnings, due to a tcp/ip send problem in AIX.

Symptom

In baract.log file you'd see XBSA errors like the following:


    XBSA Error: (BSACreateObject) A system error occurred. Aborting XBSA session.


or 

    XBSA Error: (BSAEndTxn) The transaction was aborted.


Due to the nature of the underlying tcp problem - a network communication hang causing the storage manager to wait on a package which the onbar client (XBSA library) has sent, but the tcp layer never fully transmitted - the errors might be preceded by BAR_TIMEOUT warnings for the given onbar_d process: 
    (-43296) WARNING: BAR_TIMEOUT Storage Manager Progress may be stalled.


Other BSA* functions might be affected too, depending on storage manager used.

The current backup would be aborted after such error (and possibly retried depending on BAR_RETRY setting).


Cause

This has been identified as an AIX product defect under APAR IV22133


Environment

IBM Informix onbar on AIX. The problem might be more likely on AIX lpars using virtual network adapters.

Diagnosing the problem

When hitting such XBSA errors, determine whether AIX OS is affected by APAR IV22133 or its siblings.

Resolving the problem

Apply latest AIX fixpacks.



http://www-01.ibm.com/support/docview.wss?uid=swg21668439&myns=swgimgmt&mynp=OCSSGU8G&mync=E

728x90
728x90


Problem(Abstract)

IBM® Informix® Server™ version11.70.FC5W1 and higher will produce a warning message in the online.log and to STDERR, when you have RESIDENT enabled in the onCONFIG file and either KAIO or DIRECT_IO enabled. This warning is only displayed for Informix when running on AIX® and is not displayed in earlier versions.

Symptom

An example of the warning as displayed in the online.log:

      11:17:09  WARNING: Shared-memory residency is enabled while direct I/O and KAIO (kernel asynchronous I/O) are active.

      This configuration could lead to runtime KAIO errors, which might shut down the instance or set chunks offline.

      Set the RESIDENT configuration parameter to 0 to turn off shared-memory residency, and then restart the database server. Refer to the machine notes and APAR IC76872 for more information.


Cause

APAR "IC82623 : on AIX, WE SHOULD CHECK FOR THE SETTING OF RESIDENT BEFORE BRINGING THE INSTANCE onLINE"

On AIX, setting RESIDENT to -1 may lead to the instance running into an AIX related APAR:

    APAR IC76872 : AIX: HARD TO DIAGNOSE KAIO ERRORS 22 (EINVAL) WHEN SYSTEM RUNNING LOW on PINNABLE MEMORY PAGES. 

    On AIX systems with a lot of allocated pinnable ("resident") memory and KAIO or DIRECT_IO being used by Informix, it is possible that KAIO read or write calls fail with errno 22 (EINVAL), potentially leading to down dbspaces or system aborts. 

    Sample message log error: 

    04:30:40  KAIO: error in kaio_WRITE, kaiocbp = 0x22b620d0, errno= 22
    04:30:40  fildes = 258 (gfd 3), buf = 0x700000122b64000, nbytes= 4096, offset = 130785280
     

    The reason for these EINVAL errors usually is the OS running low on 'pinnable' memory pages (by default 80% of the available RAM). This can be caused by Informix having a lot of shared memory segments allocated as "resident" plus pinned OS kernel memory plus KAIO resources. 
The solution to IC82623 is to warn of the potential problems of APAR IC76872 by displaying a suitable warning message when the instance comes on-line. 

This solution is included within Informix Server 11.70.FC6 and the Post Interim Drop 11.70.FC5W1.

Resolving the problem

Changes are required to the onCONFIG -> RESIDENT parameter. For reference, here are the comments from an onconfig.std file.


    ###################################################################
    # Shared Memory Configuration Parameters
    ###################################################################
    # RESIDENT         - Controls whether shared memory is resident.
    #                    Acceptable values are:
    #                    0 off (default)
    #                    1 lock the resident segment only
    #                    n lock the resident segment and the next n-1
    #                       virtual segments, where n < 100
    #                    -1 lock all resident and virtual segments
     

Recommendation : 
  1. Turn RESIDENT off (i.e. 0). Optionally set the AIX parameters recommended by AIX Technical Support (below)
    or
  2. Set RESIDENT to a positive integer so that only the initial memory segment(s) are pinned and that amount of memory does not exceed approximately 80% of the physical memory of the machine.

Q: Will there be a performance penalty?
A: AIX Technical Support assures us (the Informix team) that the performance penalty for not using RESIDENT in a machine dedicated to the database server is negligible. There are some AIX parameters that can be set to simulate the behavior of RESIDENT while using DIRECT_IO or Kernel AIO without incurring the problems that RESIDENT can cause.

Q: Tell me more about the AIX parameters that can be set to simulate the behavior of RESIDENT while using DIRECT_IO or Kernel AIO without incurring the problems that RESIDENT can cause.
A: Use larger memory page sizes. For example, a 64K page size can be enabled for the stack, data and text pages of oninit processes using this command when starting the Informix Server:LDR_CNTRL=DATAPSIZE=64K@STACKPSIZE=64K@TEXTPSIZE=64K@SHMPSIZE=64K oninit

Q: How does LDR_CNTRL compare to IFX_LARGE_PAGES?
A: First, they are two separate settings and therefore can be used independently. The current view is that LDR_CNTRL will give a small to negligible performance gain in addition to IFX_LARGE_PAGES. For some customers, since IFX_LARGE_PAGES is used with 16MB pages it may be that a LDR_CNTRL of 64K yields no discernible performance improvement.
The OS should always have sufficient pinned memory available for its own operations. For example, if there is insufficient memory errno 22 EINVAL may occur with KAIO operations (APAR IC76872 / 228003).
It is not safe to set RESIDENT to -1 no matter how much memory a system has as it can eventually be consumed and Informix corruption may result.


The amount of pinned memory currently in use may be displayed with the command svmon -G.

Example of setting pinned memory via the operating system.

  • Run svmon -G and look at "L" row within the "PageSize / PoolSize" section of the output.
  • export IFX_LARGE_PAGES=1
  • vmo -p -o lgpg_regions=3200 -o lgpg_size=16777216
  • vmo -p -o v_pinshm=1
  • Start the engine.

You may wish to consult with AIX Technical Support for further information regarding use of the vmo command on your system.


http://www-01.ibm.com/support/docview.wss?uid=swg21608334

728x90

+ Recent posts