一个客户的AIX系统中,启动数据库报错ORA-27504。
告警日志中信息为:
Thu Apr 21 07:07:33 CDT 2011
Starting ORACLE instance (normal)
sskgpgetexecname failed to get name
LICENSE_MAX_SESSION = 0
LICENSE_SESSIONS_WARNING = 0
Interface type 1 en12 192.168.195.0 configured from OCR for use as a cluster interconnect
Interface type 1 en0 10.142.195.0 configured from OCR for use as a public interface
Picked latch-free SCN scheme 3
Using LOG_ARCHIVE_DEST_10 parameter default value as USE_DB_RECOVERY_FILE_DEST
LICENSE_MAX_USERS = 0
SYS auditing is disabled
ksdpec: called for event 13740 prior to event group initialization
Starting up ORACLE RDBMS Version: 10.2.0.5.0.
System parameters with non-default values:
processes = 1500
sessions = 1655
__shared_pool_size = 3087007744
__large_pool_size = 16777216
__java_pool_size = 16777216
__streams_pool_size = 0
spfile = /ywdb01/oradata/ywdb/spfileywdb.ora
sga_target = 33554432000
control_files = /ywdb01/oradata/ywdb/control01.ctl, /ywdb02/oradata/ywdb/control02.ctl, /ywdb03/oradata/ywdb/control03.ctl
db_block_size = 8192
__db_cache_size = 30417092608
compatible = 10.2.0.5.0
log_archive_format = %t_%s_%r.dbf
db_file_multiblock_read_count= 16
cluster_database = TRUE
cluster_database_instances= 2
db_recovery_file_dest = /ywdb05/flash_recovery_area
db_recovery_file_dest_size= 42949672960
thread = 2
instance_number = 2
undo_management = AUTO
undo_tablespace = UNDOTBS2
remote_login_passwordfile= EXCLUSIVE
db_domain =
dispatchers = (PROTOCOL=TCP) (SERVICE=ywdbXDB)
local_listener = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.142.195.2)(PORT = 1521))
remote_listener = LISTENERS_YWDB
job_queue_processes = 10
background_dump_dest = /opt/oracle/admin/ywdb/bdump
user_dump_dest = /opt/oracle/admin/ywdb/udump
core_dump_dest = /opt/oracle/admin/ywdb/cdump
audit_file_dest = /opt/oracle/admin/ywdb/adump
db_name = ywdb
open_cursors = 300
pga_aggregate_target = 8589934592
USER: terminating instance due to error 27504
Instance terminated by USER, pid = 5898262
这个错误的描述为:
ORA-27504: IPC error creating OSD context
Cause: This is an operating system/cluster interconnect error.
Action: Check the value of errno and contact Oracle Support Services.
从字面上看,似乎错误和CLUSTER有关,但是实际上是AIX上没有打开用户网络参数的限制。
执行下面的设置后,重新尝试启动数据库,问题消失:
/usr/sbin/no -o udp_sendspace=65536
/usr/sbin/no -o udp_recvspace=655360
/usr/sbin/no -o tcp_sendspace=65536
/usr/sbin/no -o tcp_recvspace=65536
/usr/sbin/no -o rfc1323=1
/usr/sbin/no -o sb_max=1310720
/usr/sbin/no -r -o ipqmaxlen=512
将这些修改添加到系统启动脚本中,避免重启后出现同样的错误。