用docker启动的oracle,重启后数据库访问失败
昨天更改了oracle数据库的最大连接数,然后手动重启了docker,以为数据库就直接启动了,没想到报错了
报错类似于一下文章
https://blog.csdn.net/h106140873/article/details/103251534
SQL> startup ORA-00821: Specified value of sga_target 980M is too small, needs to be at least 1164M ORA-01078: failure in processing system parameters
我是通过更给'/u01/app/oracle/product/12.1.0/xe/dbs/initxe.ora' 下的参数,sga_target,然后
startup pfile='/u01/app/oracle/product/12.1.0/xe/dbs/initxe.ora'
重新启动就可以了
另外一种情况重启:
oracle@ac8bdb3a107c:/u01/app/oracle/admin/xe/pfile$ /$ORACLE_HOME/bin/sqlplus / as sysdba SQL*Plus: Release 12.1.0.2.0 Production on Sat Aug 27 09:04:54 2022 Copyright (c) 1982, 2014, Oracle. All rights reserved. Connected to an idle instance. SQL> SQL> SQL> SQL> SQL> SQL> SQL> create spfile from pfile='/u01/app/oracle/admin/xe/pfile/init.ora.7222022152938'; File created. SQL> SQL> SQL> startup ORACLE instance started. Total System Global Area 1996488704 bytes Fixed Size 2926032 bytes Variable Size 587205168 bytes Database Buffers 1392508928 bytes Redo Buffers 13848576 bytes Database mounted. Database opened. SQL>
ORA-00130: invalid listener address '(ADDRESS=(PROTOCOL=TCP)(HOST=dcsopen2Node)(PORT=1521))'
ORA-00130: invalid listener address错误解决
登录Oracle数据库,提示:
ora11g>sqlplus dcsopen/dcsopen1
SQL*Plus: Release 11.2.0.1.0 Production on Mon Jan 5 18:49:31 2015
Copyright (c) 1982, 2009, Oracle. All rights reserved.
ERROR:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux-x86_64 Error: 2: No such file or directory
Process ID: 0
Session ID: 0 Serial number: 0
看样子是没有启动,那就启动数据库:
ora11g>sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on Mon Jan 5 18:50:29 2015
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup
ORA-00119: invalid specification for system parameter LOCAL_LISTENER
ORA-00130: invalid listener address '(ADDRESS=(PROTOCOL=TCP)(HOST=dcsopen2Node)(PORT=1521))'
报的是如上的错误,,看到其中监听信息是HOST=dcsopen2Node,第一反应是监听文件有问题,查看了下listener.ora文件:
# listener.ora Network Configuration File: /opt/app/ora11g/product/11.2.0/dcsopen/network/admin/listener.ora
# Generated by Oracle configuration tools.
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
)
ADR_BASE_LISTENER = /opt/app/ora11g
没有HOST=dcsopen2Node的配置。
查看机器名:
ora11g>hostname
dcsopen2Node
发现本机名称是dcsopen2Node。参看一些帖子,说是有可能oracle启动的时候会同时注册一个和hostname相同名称的监听,所以此处报错提示的是(ADDRESS=(PROTOCOL=TCP)(HOST=dcsopen2Node)(PORT=1521))这个监听,提示无效地址,再查看/etc/hosts文件:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
发现根本没有hostname对应项,由此推测,可能是Oracle注册和hostname同名监听,但/etc/hosts中又没有定义hostname-IP对应项,因此认为此监听地址无效。
解决方法:
/etc/hosts中添加项:
172.27.19.57 dcsopen2Node
重启服务:
ora11g>sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on Mon Jan 5 20:33:32 2015
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup
ORACLE instance started.
Total System Global Area 3290345472 bytes
Fixed Size 2217832 bytes
Variable Size 2533361816 bytes
Database Buffers 738197504 bytes
Redo Buffers 16568320 bytes
Database mounted.
Database opened.