CDB 有sid pdb 不能用sid

sqlplus rick/ @rac1:1521/pdb1

sqlplus rick/ @rac2:1521/pdb1

[c:\~]$ sqlplus system/oracle@192.168.1.101:1521/cdb

SQL> exit 

[c:\~]$ sqlplus system/oracle@192.168.1.101:1521/cdb1 只能用服务名 sid不行

 请输入用户名:  
ERROR:
ORA-12560: TNS: 协议适配器错误

[c:\~]$ sqlplus system/oracle@192.168.1.88:1521/pdb1

SQL> 

[oracle@rac1 ~]$ export ORACLE_PDB_SID=pdb1

看起来还是用CDB进去做了个切换,所以PDB的用户登录不了, 用户必须在CDB有,设置ORACLE_PDB_SID才有用,  ORACLE_PDB_SID对了, ORACLE_SID不对也不行!!

 


[oracle@rac1 ~]$ sqlplus system/oracle

SQL> select *from rick.pdb1tab;

no rows selected

SQL> show pdbs;
SP2-0382: The SHOW PDBS command is not available
SQL> exit
Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.16.0.0.0
[oracle@rac1 ~]$ sqlplus rick/   所以PDB中的用户登录不了

ORA-01017: invalid username/password; logon denied


 
 

CDB =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.88)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = cdb)
    )
  )

CDB1 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.101)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = cdb)
    )
  )
  

CDB2 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.111)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = cdb)
    )
 

CDB1 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.101)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SID = cdb1)
    )
  )
  

CDB2 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.111)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SID = cdb2)
    )
  )
  


PDB1 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.88)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = pdb1)
    )
  )
  
PDB11 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.101)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = pdb1)
    )
  )
 

------SID pdb11不行,不存在 

PDB12 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.111)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = pdb1)
    )
  )

1. 通过alter session set container切换到PDB

登录到CDB,通过alter session set container切换当前的容器为PDB,

2. 通过ORACLE_PDB_SID

如果是18c、19c以上,可以设置ORACLE_PDB_SID环境变量的值,然后再登录,就是这个PDB,

3. 通过设置tnsnames.ora

配置一下tnsnames.ora,其中的service_name设置成PDB的名称,

再通过tns,登录到数据库,就是当前PDB的环境中,

4. 通过EASY CONNECT
通过EASY CONNECT,指定"/"跟着PDB名称,就可登录PDB,

如果是PLSQL Developer,Database中输入EASY CONNECT的"@"跟着的字符串,就可以登陆了,

如果是SQL Developer,“服务名”填写PDB名称,就可以登陆了,

5. 通过JDBC程序的连接

如果是连接PDB,用"/"跟着PDB名称,

jdbc:oracle:thin:@ip:port/pdb_name

如果连接CDB、12c以下的,不用"/",用":",

jdbc:oracle:thin:@ip:port:SID(/SERVICE_NAME)
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值