用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.

posted @ 2021-10-14 08:59  unicoe  阅读(704)  评论(0编辑  收藏  举报