标签云
asm恢复 bbed bootstrap$ dul In Memory kcbzib_kcrsds_1 kccpb_sanity_check_2 MySQL恢复 ORA-00312 ORA-00607 ORA-00704 ORA-00742 ORA-01110 ORA-01555 ORA-01578 ORA-01595 ORA-08103 ORA-600 2131 ORA-600 2662 ORA-600 3020 ORA-600 4000 ORA-600 4137 ORA-600 4193 ORA-600 4194 ORA-600 16703 ORA-600 kcbzib_kcrsds_1 ORA-600 KCLCHKBLK_4 ORA-15042 ORA-15196 ORACLE 12C oracle dul ORACLE PATCH Oracle Recovery Tools oracle加密恢复 oracle勒索 oracle勒索恢复 oracle异常恢复 Oracle 恢复 ORACLE恢复 ORACLE数据库恢复 oracle 比特币 OSD-04016 YOUR FILES ARE ENCRYPTED 勒索恢复 比特币加密文章分类
- Others (2)
- 中间件 (2)
- WebLogic (2)
- 操作系统 (103)
- 数据库 (1,744)
- DB2 (22)
- MySQL (75)
- Oracle (1,591)
- Data Guard (52)
- EXADATA (8)
- GoldenGate (24)
- ORA-xxxxx (162)
- ORACLE 12C (72)
- ORACLE 18C (6)
- ORACLE 19C (15)
- ORACLE 21C (3)
- Oracle 23ai (8)
- Oracle ASM (68)
- Oracle Bug (8)
- Oracle RAC (54)
- Oracle 安全 (6)
- Oracle 开发 (28)
- Oracle 监听 (28)
- Oracle备份恢复 (582)
- Oracle安装升级 (95)
- Oracle性能优化 (62)
- 专题索引 (5)
- 勒索恢复 (84)
- PostgreSQL (29)
- pdu工具 (5)
- PostgreSQL恢复 (9)
- SQL Server (30)
- SQL Server恢复 (11)
- TimesTen (7)
- 达梦数据库 (2)
- 生活娱乐 (2)
- 至理名言 (11)
- 虚拟化 (2)
- VMware (2)
- 软件开发 (37)
- Asp.Net (9)
- JavaScript (12)
- PHP (2)
- 小工具 (20)
-
最近发表
- pg创建gbk字符集库
- PostgreSQL运行日志管理
- ora-600 kdsgrp1 错误描述
- GAM、SGAM 或 PFS 页上存在页错误处理
- ORA-600 krhpfh_03-1208
- VMware勒索加密恢复(vmdk勒索恢复)
- ORA-39773: parse of metadata stream failed故障处理
- sql数据库备份失败—失败: 23(数据错误(循环冗余检查)
- vmdk文件被加密恢复(虚拟机文件加密)
- 差点被误操作的ORA-600 kcratr_nab_less_than_odr故障
- win平台19c 打patch遭遇2个小问题汇总
- pg单个数据库目录恢复-pdu恢复单个数据库目录数据
- pg删除数据恢复—pdu恢复pg delete数据
- .[OnlyBuy@cyberfear.com].REVRAC勒索mysql恢复
- 表dml操作权限授权给public,导致只读用户失效
- 21c数据库恢复遭遇ora-600 ktugct: corruption detected
- pg_control丢失/损坏处理
- 当前主流数据库版本服务支持周期-202503
- pg启动报invalid checkpoint record处理
- 删除redo导致ORA-00313 ORA-00312故障处理
标签归档:sid访问pdb
使用sid方式直接访问pdb(USE_SID_AS_SERVICE_LISTENER)
有些应用,因为特殊原因,需要通过sid来访问数据库,在pdb环境中原则上都是通过服务名访问的,可以通过一定的监听配置实现使用pdb名的sid来访问该pdb
在pdb0中创建u_test用户并授权
[oracle@ora19c:/u01/app/oracle/product/19.3.0/db/network/admin]$ sqlplus / as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on Mon Feb 17 22:01:54 2025 Version 19.24.0.0.0 Copyright (c) 1982, 2024, Oracle. All rights reserved. Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.24.0.0.0 sys@ORA19C 22:01:54> show pdbs; CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 PDB0 READ WRITE NO 4 PDBXXX MOUNTED sys@ORA19C 22:01:56> alter session set container=pdb0; Session altered. Elapsed: 00:00:00.16 sys@ORA19C 22:02:07> create user u_test identified by oracle; User created. Elapsed: 00:00:00.29 sys@ORA19C 22:02:21> grant dba to u_test; Grant succeeded. Elapsed: 00:00:00.01
监听的配置和状态
[oracle@ora19c:/home/oracle]$ cat /u01/app/oracle/product/19.3.0/db/network/admin/listener.ora # listener.ora Network Configuration File: /u01/app/oracle/product/19.3.0/db/network/admin/listener.ora # Generated by Oracle configuration tools. LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = ora19c)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) ) [oracle@ora19c:/home/oracle]$ lsnrctl status LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 17-FEB-2025 22:07:12 Copyright (c) 1991, 2024, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ora19c)(PORT=1521))) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 19.0.0.0.0 - Production Start Date 17-FEB-2025 22:06:39 Uptime 0 days 0 hr. 0 min. 32 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /u01/app/oracle/product/19.3.0/db/network/admin/listener.ora Listener Log File /u01/app/oracle/diag/tnslsnr/ora19c/listener/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ora19c)(PORT=1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) Services Summary... Service "21b067cbda1dbcd4e0630100007f12b6" has 1 instance(s). Instance "ora19c", status READY, has 1 handler(s) for this service... Service "22394b20557aff3ee0630100007fafe0" has 1 instance(s). Instance "ora19c", status READY, has 1 handler(s) for this service... Service "86b637b62fdf7a65e053f706e80a27ca" has 1 instance(s). Instance "ora19c", status READY, has 1 handler(s) for this service... Service "ora19c" has 1 instance(s). Instance "ora19c", status READY, has 1 handler(s) for this service... Service "ora19cXDB" has 1 instance(s). Instance "ora19c", status READY, has 1 handler(s) for this service... Service "pdb0" has 1 instance(s). Instance "ora19c", status READY, has 1 handler(s) for this service... Service "pdbxxx" has 1 instance(s). Instance "ora19c", status READY, has 1 handler(s) for this service... The command completed successfully
创建pdb0基于服务和sid的tns(pdb0,pdb0_sid)
[oracle@ora19c:/u01/app/oracle/product/19.3.0/db/network/admin]$ cat tnsnames.ora pdb0 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = ora19c)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = pdb0) ) ) pdb0_sid = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = ora19c)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (sid = pdb0) ) ) [oracle@ora19c:/u01/app/oracle/product/19.3.0/db/network/admin]$ tnsping pdb0 TNS Ping Utility for Linux: Version 19.0.0.0.0 - Production on 17-FEB-2025 22:03:00 Copyright (c) 1997, 2024, Oracle. All rights reserved. Used parameter files: /u01/app/oracle/product/19.3.0/db/network/admin/sqlnet.ora Used TNSNAMES adapter to resolve the alias Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = ora19c)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = pdb0))) OK (0 msec) [oracle@ora19c:/u01/app/oracle/product/19.3.0/db/network/admin]$ tnsping pdb0_sid TNS Ping Utility for Linux: Version 19.0.0.0.0 - Production on 17-FEB-2025 22:03:10 Copyright (c) 1997, 2024, Oracle. All rights reserved. Used parameter files: /u01/app/oracle/product/19.3.0/db/network/admin/sqlnet.ora Used TNSNAMES adapter to resolve the alias Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = ora19c)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (sid = pdb0))) OK (0 msec)
分别测试pdb0和pdb0_sid访问数据库
测试证明基于服务名的方式可以正常访问pdb,基于sid的方式无法访问pdb
[oracle@ora19c:/home/oracle]$ sqlplus u_test/oracle@pdb0 SQL*Plus: Release 19.0.0.0.0 - Production on Mon Feb 17 22:08:35 2025 Version 19.24.0.0.0 Copyright (c) 1982, 2024, Oracle. All rights reserved. Last Successful login time: Mon Feb 17 2025 22:06:11 +08:00 Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.24.0.0.0 u_test@PDB0 22:08:35> exit Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.24.0.0.0 [oracle@ora19c:/home/oracle]$ sqlplus u_test/oracle@pdb0_sid SQL*Plus: Release 19.0.0.0.0 - Production on Mon Feb 17 22:08:39 2025 Version 19.24.0.0.0 Copyright (c) 1982, 2024, Oracle. All rights reserved. ERROR: ORA-12505: TNS:listener does not currently know of SID given in connect descriptor Enter user-name: ERROR: ORA-01017: invalid username/password; logon denied Enter user-name: ERROR: ORA-01017: invalid username/password; logon denied SP2-0157: unable to CONNECT to ORACLE after 3 attempts, exiting SQL*Plus
在listener.ora中增加USE_SID_AS_SERVICE_LISTENER = ON,并reload加载
注意:USE_SID_AS_SERVICE_LISTENER 中的LISTENER根据不同的监听名字而发生改变
[oracle@ora19c:/home/oracle]$ cat /u01/app/oracle/product/19.3.0/db/network/admin/listener.ora # listener.ora Network Configuration File: /u01/app/oracle/product/19.3.0/db/network/admin/listener.ora # Generated by Oracle configuration tools. LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = ora19c)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) ) USE_SID_AS_SERVICE_LISTENER = ON [oracle@ora19c:/home/oracle]$ lsnrctl reload LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 17-FEB-2025 22:12:13 Copyright (c) 1991, 2024, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ora19c)(PORT=1521))) The command completed successfully [oracle@ora19c:/home/oracle]$ lsnrctl status LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 17-FEB-2025 22:13:05 Copyright (c) 1991, 2024, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ora19c)(PORT=1521))) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 19.0.0.0.0 - Production Start Date 17-FEB-2025 22:06:39 Uptime 0 days 0 hr. 6 min. 26 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /u01/app/oracle/product/19.3.0/db/network/admin/listener.ora Listener Log File /u01/app/oracle/diag/tnslsnr/ora19c/listener/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ora19c)(PORT=1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) Services Summary... Service "21b067cbda1dbcd4e0630100007f12b6" has 1 instance(s). Instance "ora19c", status READY, has 1 handler(s) for this service... Service "22394b20557aff3ee0630100007fafe0" has 1 instance(s). Instance "ora19c", status READY, has 1 handler(s) for this service... Service "86b637b62fdf7a65e053f706e80a27ca" has 1 instance(s). Instance "ora19c", status READY, has 1 handler(s) for this service... Service "ora19c" has 1 instance(s). Instance "ora19c", status READY, has 1 handler(s) for this service... Service "ora19cXDB" has 1 instance(s). Instance "ora19c", status READY, has 1 handler(s) for this service... Service "pdb0" has 1 instance(s). Instance "ora19c", status READY, has 1 handler(s) for this service... Service "pdbxxx" has 1 instance(s). Instance "ora19c", status READY, has 1 handler(s) for this service... The command completed successfully
尝试tns名字为pdb0和pdb0_sid名字登录数据库
在listener.ora文件中设置了USE_SID_AS_SERVICE_LISTENER = ON之后,基于sid的方式可以直接访问pdb
[oracle@ora19c:/home/oracle]$ sqlplus u_test/oracle@pdb0_sid SQL*Plus: Release 19.0.0.0.0 - Production on Mon Feb 17 22:12:16 2025 Version 19.24.0.0.0 Copyright (c) 1982, 2024, Oracle. All rights reserved. Last Successful login time: Mon Feb 17 2025 22:08:35 +08:00 Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.24.0.0.0 u_test@PDB0 22:12:16> exit Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.24.0.0.0 [oracle@ora19c:/home/oracle]$ sqlplus u_test/oracle@pdb0 SQL*Plus: Release 19.0.0.0.0 - Production on Mon Feb 17 22:12:28 2025 Version 19.24.0.0.0 Copyright (c) 1982, 2024, Oracle. All rights reserved. Last Successful login time: Mon Feb 17 2025 22:12:16 +08:00 Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.24.0.0.0 u_test@PDB0 22:12:28>