Oracle12c之修改连接数后导致的故障处理
文章目录
- Oracle12c之修改连接数后导致的故障处理
- 1. 故障原因
- 2. 故障信息
- 3. 解决方法
- 1. 首先登陆到数据库,创建临时pfile
- 2. 手动修改创建的`pfile.bac`
- 3. 以创建的临时文档启动数据库实例
- 4.按照临时pfile中的内容重新创建pfile
- 5. 关闭数据库并重启
- 6. 再次连接一切正常
1. 故障原因
故障原因:
- 修改最大连接数:
alter system set processes = 3000 scope = spfile;
- sqlplus中执行了命令
shutdown immediate;
,发现很卡shutdown immediate
执行卡顿时,又去windows的服务中收到关闭了OracleOraDB12Home1TNSListener
与OracleServiceORCL
- 然后在windows服务中启动正常,然后通sqlplus连接后提示
已连接到空闲例程。
- 再次将连接数改回默认时出现
ORA-01034: ORACLE not available
的错误
2. 故障信息
C:\Users\Administrator>sqlplus conn/sys as sysdba
SQL*Plus: Release 12.2.0.1.0 Production on 星期一 1月 22 09:31:28 2024
Copyright (c) 1982, 2016, Oracle. All rights reserved.
已连接到空闲例程。
SQL> startup
ORA-00838: Specified value of MEMORY_TARGET is too small, needs to be at least 2032M
ORA-01078: 处理系统参数失败
SQL> startup ;e;
ORA-00838: Specified value of MEMORY_TARGET is too small, needs to be at least 2032M
ORA-01078: 处理系统参数失败
# 修改会原来值失败
SQL> alter system set processes = 320 scope = spfile;
alter system set processes = 320 scope = spfile
*
第 1 行出现错误:
ORA-01034: ORACLE not available
进程 ID: 0
会话 ID: 0 序列号: 0
# 启动失败
SQL> startup
ORA-00838: Specified value of MEMORY_TARGET is too small, needs to be at least 2032M
ORA-01078: 处理系统参数失败
SQL>
3. 解决方法
导致这一问题的原因可能是修改了pfile,导致内存指定值过低,数据库启动会失败;
解决方是先指定一个临时的pfile,手动修改内存指定值,再试着启动数据库实例;
注意:处理此问题必须通过
sqlplus
工具来处理,sqlplus基本使用可参考:Oracle之Sqlplus命令行窗口基本使用-CSDN博客
1. 首先登陆到数据库,创建临时pfile
创建临时pfile文件,这里以后缀名
.bac
为例,此文件名后缀可以任意起,如pfile.ora,pfile.txt
等等
# create pfile='D:/app/pfile.bac' from spfile;
C:\Users\Administrator>sqlplus conn/sys as sysdba
SQL*Plus: Release 12.2.0.1.0 Production on 星期一 1月 22 09:46:37 2024
Copyright (c) 1982, 2016, Oracle. All rights reserved.
已连接到空闲例程。
SQL> create pfile='D:/app/pfile.bac' from spfile;
File created.
SQL>
2. 手动修改创建的pfile.bac
- 打卡prfile.bac文件内容如下:
orcl.__data_transfer_cache_size=0
orcl.__db_cache_size=570425344
orcl.__inmemory_ext_roarea=0
orcl.__inmemory_ext_rwarea=0
orcl.__java_pool_size=16777216
orcl.__large_pool_size=33554432
orcl.__oracle_base='D:\app\Administrator'#ORACLE_BASE set from environment
orcl.__pga_aggregate_target=603979776
orcl.__sga_target=1124073472
orcl.__shared_io_pool_size=50331648
orcl.__shared_pool_size=436207616
orcl.__streams_pool_size=0
*.audit_file_dest='D:\app\Administrator\admin\orcl\adump'
*.audit_trail='db'
*.compatible='12.2.0'
*.control_files='D:\app\Administrator\oradata\orcl\control01.ctl','D:\app\Administrator\oradata\orcl\control02.ctl'
*.db_block_size=8192
*.db_name='orcl'
*.deferred_segment_creation=FALSE
*.diagnostic_dest='D:\app\Administrator'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
*.local_listener='LISTENER_ORCL'
*.memory_target=1638m
*.nls_language='SIMPLIFIED CHINESE'
*.nls_territory='CHINA'
*.open_cursors=300
*.processes=3000
*.remote_login_passwordfile='EXCLUSIVE'
*.undo_tablespace='UNDOTBS1'
- 将
*.memory_target=1638m
改为*.memory_target=2032m
3. 以创建的临时文档启动数据库实例
然后以这个临时文件试着启动数据库实例:
SQL> startup pfile=D:/app/pfile.bac
ORACLE instance started.
Total System Global Area 2130706432 bytes
Fixed Size 8748856 bytes
Variable Size 1862271176 bytes
Database Buffers 251658240 bytes
Redo Buffers 8028160 bytes
数据库装载完毕。
数据库已经打开。
SQL>
如下图:
4.按照临时pfile中的内容重新创建pfile
SQL> create spfile from pfile='D:/app/pfile.bac';
文件已创建。
SQL>
5. 关闭数据库并重启
Microsoft Windows [版本 10.0.17763.973]
(c) 2018 Microsoft Corporation。保留所有权利。
C:\Users\Administrator>sqlplus conn/sys as sysdba
SQL*Plus: Release 12.2.0.1.0 Production on 星期一 1月 22 10:25:19 2024
Copyright (c) 1982, 2016, Oracle. All rights reserved.
连接到:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 2130706432 bytes
Fixed Size 8748856 bytes
Variable Size 1862271176 bytes
Database Buffers 251658240 bytes
Redo Buffers 8028160 bytes
数据库装载完毕。
数据库已经打开。
SQL>