当前位置:首页 > 数据库 > Oracle技术

同一单机装配双数据库,导致TNS-12518故障

优良自学吧提供同一单机装配双数据库,导致TNS-12518故障,同一单机安装双数据库,导致TNS-12518故障大家好。请教个问题,目前公司系统由于遗留问题,在单机上安装了两个oracle实例。现在导致一个数据库无法正常使用。 机器信息:         

同一单机安装双数据库,导致TNS-12518故障
大家好。请教个问题,目前公司系统由于遗留问题,在单机上安装了两个oracle实例。现在导致一个数据库无法正常使用。
机器信息:
                  Windows Server 2003 Enterprise Edition SP2
          Inter Xeon CPU E5520 2.27GHz
                 3.99GB
现在的故障现象是:一个库正常使用,另一个库经常出现如下错误导致无法连接,
故障如下:listener.log中日志显示
                 TNS-12518: TNS: 监听程序无法分发客户机连接
                  TNS-12560: TNS: 协议适配器错误
                   TNS-00530: 协议适配器错误
                    32-bit Windows Error: 233: Unknown error

sga\pga\sessions\process等参数已作过配置调整,观察现象是在连接数70左右就开始出现这个故障。请教一下大家有什么建议和解决方法。

以下是一些相关的配置信息
Oracle 10g 10.2.0

SQL> show parameters sga;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
lock_sga                             boolean     FALSE
pre_page_sga                         boolean     FALSE
sga_max_size                         big integer 1G
sga_target                           big integer 1000M


SQL> show parameters pga;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_target                 big integer 512M


SQL> show parameters memory;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
hi_shared_memory_address             integer     0
shared_memory_address                integer     0


SQL> select * from (select count(*) se_q from v$session) a,(select count(*) pr_q
 from v$process)b;

      SE_Q       PR_Q
---------- ----------
        62         65


SQL> select name,(busy/(busy+idle))*100 "busy rate%" from v$dispatcher;

NAME busy rate%
---- ----------
D000          0


SQL> show parameters session;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
java_max_sessionspace_size           integer     0
java_soft_sessionspace_limit         integer     0
license_max_sessions                 integer     0
license_sessions_warning             integer     0
logmnr_max_persistent_sessions       integer     1
session_cached_cursors               integer     20
session_max_open_files               integer     10
sessions                             integer     390
shared_server_sessions               integer


SQL> show parameters process;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes                      integer     0
db_writer_processes                  integer     2
gcs_server_processes                 integer     0
job_queue_processes                  integer     10
log_archive_max_processes            integer     2
processes                            integer     350
------解决方案--------------------
select  a.SID, a.PROGRAM,b.PGA_USED_MEM/1024/1024
------解决方案--------------------
'M' as "占用内存",a.MACHINE,a.MODULE,a.USERNAME,b.PGA_USED_MEM,b.PGA_ALLOC_MEM,b.PGA_FREEABLE_MEM,b.PGA_MAX_MEM   from v$session a ,v$process b where a.PADDR= b.ADDR and a.USERname is not null
order by b.PGA_USED_MEM desc;
 看看占用内存情况
------解决方案--------------------
在cmd中,给环境变量ORACLE_SID设不同的值,可以使用sqlplus来访问各自的实例
如果监听正常,可以使用不同的服务名或sid来连接到对应实例
或者数据库用的参数文件是Initfile,可以直接用记事本打开查看

不过看起来基本可以定位到内存问题上。解决方法要么打开win32的3gb限制,增加内存,要么降低sga和pga的大小
其实我觉得把其中一个数据库移到别的机器上运行更靠谱一些

(本文来自互联网,不代表搜站(http://www.ylzx8.cn/)的观点和立场)
本站所有内容来自互联网,若本站收录的信息无意侵犯了贵司版权,请给我们来信(ylzx8cn@163.com),我们会及时处理和回复,谢谢