Oracle数据库远程无法连接怎么办?

Oracle数据库远程无法连接怎么办? 目录一、背景二、解决方案2.1.确定数据库启动模式2.2.查看当前数据库进程和会话的连接数2.3.查看系统设置2.4.修改最大连接数2.5.重启生效一、背景有时候我们会遇到Oracle数据库远程无法连接那该怎么办呢通常的测试流程应该有1检查服务器是否可达排查是否是由于网络问题2检查监听是否正常检查监听器是否正常包括lsnrctl、tnsnames.ora3检查数据库是否正常数据库进程状态、实例状态4检查连接数是否爆满v$session/v$process其中监听的问题之前有讲过看这里Oracle中的监听配置与管理动态、静态监听配置对比以及listener.ora和tnsnames.ora-CSDN博客在这里我们主要讨论当连接数爆满的时候。那如何查看是否爆满如果爆满那需要怎么处理呢二、解决方案2.1.确定数据库启动模式# 确定数据库是否以spfile启动show parameter spfile;# 如果不是需要修改以spfile启动create spfile from pfile;2.2.查看当前数据库进程和会话的连接数select count(*) from v$process;select count(*) from v$session;2.3.查看系统设置show parameter processes;SQL show parameter processes; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ aq_tm_processes integer 1 asm_io_processes integer 20 db_writer_processes integer 1 gcs_server_processes integer 0 global_txn_processes integer 1 job_queue_processes integer 4000 log_archive_max_processes integer 4 processes integer 300 SQL SQL SQL SHOW PARAMETER SHARED_POOL_SIZE; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ shared_pool_size big integer 0 SQL2.4.修改最大连接数alter session set containerCDB$ROOT;alter system set processes 800 scope spfile;alter system set shared_pool_size400M;# 注意1如果并发连接数修改超过1000最好修改共享池大小否则数据库启动会报错。# 注意2 ALTER SYSTEM SET processes 是一个会影响整个 CDBContainer Database容器数据库全局的操作因此不允许在 PDB 内执行。如果使用的是CDB、PDB插拔式数据库需要切换到根容器里边。SQL show con_name; CON_NAME ------------------------------ PDB_DEMO SQL SQL alter session set containerCDB$ROOT; Session altered. SQL SQL show con_name; CON_NAME ------------------------------ CDB$ROOT SQL SQL alter system set processes 800 scope spfile; System altered. SQL SQL alter system set shared_pool_size400M; System altered. SQL2.5.重启生效修改processes和sessions值必须重启oracle服务才能生效。shutdown immediate;startupshow parameter processes;SQL shutdown immediate; Database closed. Database dismounted. ORACLE instance shut down. SQL SQL startup ORACLE instance started. Total System Global Area 1073741824 bytes Fixed Size 8801008 bytes Variable Size 1010828560 bytes Database Buffers 46137344 bytes Redo Buffers 7974912 bytes Database mounted. Database opened. SQL SQL show parameter processes; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ aq_tm_processes integer 1 asm_io_processes integer 20 db_writer_processes integer 1 gcs_server_processes integer 0 global_txn_processes integer 1 job_queue_processes integer 4000 log_archive_max_processes integer 4 processes integer 800 SQL注意如果不进行重启配置是没办法进行生效的如下图。因此在生产中需要提前沟通变更时间先做测试评估