【问题标题】:Can't restart oracle database inside docker无法在docker中重新启动oracle数据库
【发布时间】:2021-10-13 18:52:32
【问题描述】:

因此,根据here 描述的文档,我正在尝试在this docker 映像内的Oracle 数据库上配置debezium。

在“准备数据库”中,我要做的第一个配置是:

ORACLE_SID=ORACLCDB dbz_oracle sqlplus /nolog

CONNECT sys/top_secret AS SYSDBA
alter system set db_recovery_file_dest_size = 10G;
alter system set db_recovery_file_dest = '/opt/oracle/oradata/recovery_area' scope=spfile;
shutdown immediate
startup mount
alter database archivelog;
alter database open;
-- Should now "Database log mode: Archive Mode"
archive log list

exit;

问题是当我运行shutdown immediate 时,数据库死了并且永远不会返回。当我尝试运行时:

docker exec -ti oracle sqlplus sys/top_secret@localhost:1521/ORCLCDB as SYSDBA

我得到错误:

SQL*Plus: Release 19.0.0.0.0 - Production on Tue Aug 10 07:44:23 2021
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.

ERROR:
ORA-12514: TNS:listener does not currently know of service requested in connect
descriptor

我尝试在容器内运行this script,但仍然没有。有谁知道我怎样才能重新启动数据库?

【问题讨论】:

    标签: oracle docker debezium


    【解决方案1】:

    有两种解决方案

    1. 创建一个静态侦听器配置,其中包含在侦听器中定义的数据库。这样做可以像您尝试的那样通过 sqlnet 启动。

    2. 使用本地 dba 组成员的帐户在服务器上运行脚本。对于启动使用类似的东西: ORAENV_ASK=NO; ORACLE_SID=ORCLLCDB;源oraenv; “回声启动”| sqlplus / 作为 sysdba。 这里假设 ORCLLCDB 在 /etc/oratab 中列出

    【讨论】:

      猜你喜欢
      • 2020-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-14
      • 2015-03-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多