docker解决oracle中ORA-12514和ORA-03113问题

ORA-12514:TNS:监听程序当前无法识别连接描述符中请求的服务;

1、进入docke容器

docker exec -it 容器id bash

2、找到并修改listener.ora文件

查看oracle的位置

命令:cat /etc/profile

这是listener.ora文件的位置 

/home/oracle/app/oracle/product/11.2.0/dbhome_2/network/admin/listener.ora

在文件中的SID_LIST_LISTENER中添加代码段

(SID_DESC =
  (GLOBAL_DBNAME = ORCL)
  (ORACLE_HOME = /home/oracle/app/oracle/product/11.2.0/dbhome_2)  
  (SID_NAME = ORCL)
)

GLOBAL_DBNAME:全局数据库名;

ORACLE_HOME:填写oracle安装目录;

SID_NAME:一般默认都是ORCL(也可以修改,如果修改tnsnames.ora文件也需要改动)

全部内容:

到此第一个问题就解决了,如果还是没有解决请继续往下执行!

oracle-rac实例不能启动 报ORA-03113

1、登录sqlplus

SQL> sqlplus /nolog
SQL> conn / as sysdba;

2、启动数据库(mount方式)

SQL> startup mount
ORACLE instance started.

3、查看v$log

 直接reset不成功
SQL> select * from v$log;
GROUP # THREAD# SEQUENCE # BYTES BLOCKSIZE MEMBERS ARC
/---------- ---------- ---------- ---------- ---------- ---------- —
STATUS FIRST_CHANGE# FIRST_TIM NEXT_CHANGE# NEXT_TIME
/---------------- ------------- --------- ------------ ---------
1 1 112 52428800 512 1 NO
INACTIVE 3826382 16-JUL-23 3857158 17-JUL-23
3 1 114 52428800 512 1 NO
CURRENT 3886899 17-JUL-23 2.8147E+14
2 1 113 52428800 512 1 NO
INACTIVE 3857158 17-JUL-23 3886899 17-JUL-23

4、reset log

SQL> alter database open resetlogs 2;
alter database open resetlogs 2
*
ERROR at line 1:
ORA-02288: invalid OPEN mode

 5、恢复数据库日志

SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR at line 1:ORA-01139: RESETLOGS option only valid after an incomplete database recovery
SQL> recover database until time ‘2013-07-05 00:00:00’
Media recovery complete.
SQL> alter database open resetlogs;
Database altered.

到此第二个问题也就解决了 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
"ora-12547: tns:lost contact" 是一种Oracle数据库的错误,通常位于使用Mac的Docker容器运行Oracle数据库时出现。这个错误表示Docker容器无法与Oracle数据库建立联系。 出现这个错误的原因可能有以下几种: 1. 网络配置问题:确保容器和宿主机之间的网络配置正确。可以尝试检查Docker网络设置,并确保容器可以正确访问Oracle数据库所在的主机。 2. TNS配置问题:检查容器的TNS配置文件(通常为tnsnames.ora)是否正确。确保其的连接字符串、主机名、端口号等信息正确匹配Oracle数据库的实际设置。 3. Oracle监听器问题:确认Oracle监听器是否正在运行,并监听着正确的端口。可以尝试在容器执行`lsnrctl status`命令来检查监听器的状态。 4. 容器资源限制:如果容器的资源限制过低,可能导致无法正常启动Oracle数据库。可以尝试增加容器的内存、CPU等资源限制,以确保数据库能够正常启动。 解决这个问题的方法可以尝试以下几种: 1. 检查网络配置:确保容器和宿主机之间的网络配置正确,容器可以访问到Oracle数据库所在的主机。 2. 检查TNS配置:确认容器的TNS配置文件的连接信息正确。可以尝试手动连接数据库,确保连接字符串、主机名、端口号等信息正确。 3. 检查监听器:确保Oracle监听器正在运行,并监听着正确的端口。可以尝试重启监听器,或者在容器重新配置监听器。 4. 调整资源限制:增加容器的资源限制,确保能够正常启动Oracle数据库。可以尝试给容器分配更多的内存、CPU等资源。 总而言之,解决这个问题需要检查网络配置,确认TNS配置和监听器设置正确,并适当调整容器的资源限制。通过这些步骤,应该能够解决"ora-12547: tns:lost contact"错误。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值