我使用这个dockerfile构建并运行Oracle数据库,该文件使用dockerfile的最后一行命令启动Oracle实例。
CMD exec $ ORACLE_BASE / $ RUN_FILEOracle实例有效,我……
当您从sqldeveloper连接到数据库时,您将正确连接到PDB(可插入数据库),因此您需要将当前容器(DB)更改为主容器
alter session set container = CDB;
或类似的东西。
您还可以将数据库创建为非CDB传统数据库,以避免可插入数据库模糊。只需更改用于创建数据库的响应文件即可。
替代方案在sqlplus中执行:
访问容器:
docker exec -it <your container-id/name> /bin/bash cd /opt/oracle/product/18c/dbhome_1/bin ./sqlplus sys/<your syspwd> as sysdba
出于某种原因,ORACLE_SID有时会丢失并且会让你感到奇怪
ORA-12162 TNS:net service name is incorrectly specified
因此,当在容器中时,请验证并退出。在访问数据库之前设置它。
env export ORACLE_SID=<your sid>