The AIX system, the Oracle database, and its listener have not been modified. It is found that the remote database can be connected sometimes, and sometimes cannot be connected to the database.
The AIX system, the Oracle database, and its listener have not been modified. It is found that the remote database can be connected sometimes, and sometimes cannot be connected to the database.
Error description:
The AIX system, the Oracle database, and its listener have not been modified. It is found that the remote database can be connected sometimes, and sometimes cannot be connected to the database.
1. When the database cannot be connected: Return ORA-12537: TNS connection has been closed
2. No error found in alert_SID.log
3. An error occurred while viewing $ ORACLE_HOME/network/log/listener. log:
25-MAY-2010 18:54:26 * (CONNECT_DATA = (SERVICE_NAME = testoms) (CID = (PROGRAM = D: \ project Info \ plsqldev \ plsqldev.exe) (HOST = 89587D60816246E) (USER = Administrator) * (ADDRESS = (PROTOCOL = tcp) (HOST = 10.88.22.77) (PORT = 4954) * establish * testoms * 12518
TNS-12518: TNS: listener cocould not hand off client connection
TNS-12547: TNS: lost contact
TNS-12560: TNS: protocol adapter error
TNS-00517: Lost contact
IBM/aix risc System/6000 Error: 32: Broken pipe
Cause analysis:
You can connect to a database, but cannot connect to the database.
Ping the database ip address-t to find the network is stable.
Generally, the above ora-12537 error occurs, generally because the listener. ora file of the database is not configured, resulting in such an error. However, this file has not been changed, and the original connection to the database has been normal, and it is suddenly found that sometimes the connection can be connected and sometimes cannot be connected.
Check that the listener is normal with lsnrdbms status.
This database is a test database. I tried to shut down the database and then started it.
> Shutdown immediate: shutdown is normal.
However, the following error occurs during startup.
SQL> startup
Cocould not load program oracletestoms:
Cocould not load module/usr/lib/libperfstat. a (shr_64.o ).
Dependent module liblvm. a (shr_64.o) cocould not be loaded.
Cocould not load module liblvm. a (shr_64.o ).
System error: Not enough space
Cocould not load module oracle.
Dependent module/usr/lib/libperfstat. a (shr_64.o) cocould not be loaded.
Cocould not load module.
ORA-12547: TNS: lost contact
The restart error is different:
SQL> startup
ORA-00443: background process "MMAN" did not start
I think this is a problem with the AIX system. Check the swap space.
Omstestdb:/> lsps-
Page Space Physical Volume Group Size % Used Active Auto Type
Cocould not load program/usr/bin/sed:
Dependent module libc. a (shr. o) cocould not be loaded.
Cocould not load module libc. a (shr. o ).
Cocould not load program/usr/bin/awk:
Dependent module libc. a (shr. o) cocould not be loaded.
Cocould not load module libc. a (shr. o ).
0517-041 lsps: Cannot list paging space.
The prompt does not list the swap space size. From this we can know that this is because the AIX memory is exhausted.
Use topas to view the current AIX memory and swap space usage.
The AIX comp (computing memory) uses 4 GB, while the nocomp (non-computing memory) also uses 4 GB, while the swap space has a lot of free space. The total system memory is 8 GB, while the oracle memory generally uses comp memory. While the oracle cache uses nocomp, many SQL statements have not been released, and 4 GB of memory is used, while the maximum value of AIXnocomp is 4 GB, resulting in insufficient memory.
Limit the maximum nocomp (non-computing) memory size of AIX.
Put the AIX
Minperm % = 20
Maxclient % = 80
Maxperm % = 80
Lower adjustment.
Solution:
View the minperm %, maxclient %, and maxperm % values of the original AIX. As follows:
Root User View:
> Vmo-
Minperm % = 20
Maxclient % = 80
Maxperm % = 80
Set minperm % to 10, maxclient % to 20, and maxperm % to 20
Run the following command with the root command line:
1,
Vmo-p-o minperm % = 10
2,
Vmo-p-o maxclient % = 20
3,
Vmo-p-o maxperm % = 20
After performing the preceding operations, the nocomp of AIX cannot release the memory, and the AIX system is restarted.
# Reboot
Restart oracle and listener
SQL> startup
$ Lsnrctl start
Start the database and its listener normally, and connect to the database normally.
Note:
Values of minperm and maxperm Parameters
The operating system satisfies different requirements by leaving the previously read/write memory pages in the real memory. If file pages are requested before their page frames are reassigned, the input and output operations are saved. The file page can be from a local or remote (such as NFS) system.
The ratio of the files used by PAGE frames to the files used for calculation (work or program text) is loosely controlled by the values of minperm and maxperm:
If the percentage of file pages in RAM is higher than maxperm, Page Replacement theft is only used for file pages.
If the percentage of file pages in RAM is lower than minperm, the theft of page replacement is also used for file pages and computing pages.
If the percentage of file pages in RAM is between minperm and maxperm, page replacement only steals file pages, unless the number of re-calls to the file page is greater than the calculated page number.
Noncomp is between 20% and 80%. In this case, the Memory Page switching algorithm only exchanges File Cache pages. However, if the swap rate of File Cache pages is greater than that of program pages, program pages are also exchanged. Because SGA is a Comp page and Data File Cache is a Noncomp page, when a large amount of data is accessed, the swap rate of the File Cache page is higher than that of the program page (SGA), so a large number of SGA pages are exchanged; to avoid switching a large number of SGA pages, you need to reduce the maxperm % value to less than 35%, so that only the File Cache page is exchanged, reducing the number of SGA exchanges.