我正在遵循这些说明。
我创建了一个这样的 docker 容器:
docker run --name oracle \
-p 1521:1521 \
-e ORACLE_SID=ORASID \
-e ORACLE_PDB=ORAPDB \
-e ORACLE_PWD=F1f@f23_ \
-v /mnt_point/oradata:/home/oracle/oradata \
oracle/database:12.2.0.1-ee
Run Code Online (Sandbox Code Playgroud)
输出是:
#########################
DATABASE IS READY TO USE!
#########################
The following output is now a tail of the alert.log:
Completed: alter pluggable database ORAPDB open
2017-08-07T19:16:31.190780+00:00
ORAPDB(3):CREATE SMALLFILE TABLESPACE "USERS" LOGGING DATAFILE '/opt/oracle/oradata/ORASID/ORAPDB/users01.dbf' SIZE 5M REUSE AUTOEXTEND ON NEXT 1280K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO
ORAPDB(3):Completed: CREATE SMALLFILE TABLESPACE "USERS" LOGGING DATAFILE '/opt/oracle/oradata/ORASID/ORAPDB/users01.dbf' SIZE 5M REUSE AUTOEXTEND ON NEXT 1280K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO
ORAPDB(3):ALTER DATABASE DEFAULT TABLESPACE "USERS"
ORAPDB(3):Completed: ALTER DATABASE DEFAULT TABLESPACE "USERS"
2017-08-07T19:16:32.867558+00:00
ALTER SYSTEM SET control_files='/opt/oracle/oradata/ORASID/control01.ctl' SCOPE=SPFILE;
ALTER PLUGGABLE DATABASE ORAPDB SAVE STATE
Completed: ALTER PLUGGABLE DATABASE ORAPDB SAVE STATE
Run Code Online (Sandbox Code Playgroud)
我通过 ctrl+c 杀死它。然后我运行:
docker start oracle
docker logs -f oracle
#########################
DATABASE IS READY TO USE!
#########################
The following output is now a tail of the alert.log:
ORAPDB(3):Undo initialization finished serial:0 start:508498668 end:508498772 diff:104 ms (0.1 seconds)
ORAPDB(3):Database Characterset for ORAPDB is AL32UTF8
ORAPDB(3):Opatch validation is skipped for PDB ORAPDB (con_id=0)
2017-08-07T19:25:39.799508+00:00
ORAPDB(3):Opening pdb with no Resource Manager plan active
Pluggable database ORAPDB opened read write
Starting background process CJQ0
Completed: ALTER DATABASE OPEN
2017-08-07T19:25:40.536753+00:00
CJQ0 started with pid=38, OS id=239
2017-08-07T19:25:42.538433+00:00
Shared IO Pool defaulting to 64MB. Trying to get it from Buffer Cache for process 77.
===========================================================
Dumping current patch information
===========================================================
No patches have been applied
===========================================================
Run Code Online (Sandbox Code Playgroud)
然后我尝试像这样连接:
docker exec -ti oracle sqlplus pdbadmin@ORAPDB
Run Code Online (Sandbox Code Playgroud)
结果是:
ORA-12154: TNS:could not resolve the connect identifier specified
Run Code Online (Sandbox Code Playgroud)
然后它要求我输入用户名。无论是SYS、SYSTEM还是PDBADMIN用户,我都无法连接。我已经多次重新输入密码 (F1f@f23_) 以确保它不是打字错误。对此的任何想法将不胜感激。
小智 5
我也遇到过这些图像。您必须先打开可插拔数据库,然后才能连接到它。
我用这样的东西来做到这一点:
docker exec -ti oracle sqlplus / as sysdba
alter pluggable database pdb1 open;
Run Code Online (Sandbox Code Playgroud)
是的,在 docker 中设置 Oracle 数据库后我也遇到了同样的错误。
因此,首先检查实例是否正在运行(并查找 ORACLE_SID):
Oracle SID 是 ORCLLCDB。
如果您没有为 ORACLE_SID 设置环境,您将得到:
连接失败。
但是设置 ORACLE_SID 后:
现在您不再收到连接失败错误,而是收到不同的 SYSDBA。
只需将“/ as sysdba”添加到整个 sqlplus 命令中即可。
归档时间: |
|
查看次数: |
22875 次 |
最近记录: |