dbcat 怎么连接oracle pdb

【 使用环境 】observer dbcat
【 使用版本 】ob4.2.1. dbcat2.1.0
【问题描述】
dbcat 怎么连接oracle pdb (oracle 18c)

./dbcat convert -H … -P 1521 -uqy -poracle -D QY --service-name ORCLPDB1 --service-id orclpdb1 --from oracle18c --to oboracle40 --all
用户qy是orclpdb1的用户。

报错:

[--all] true
[--host] 。。。。。。。
[--port] 1521
[--user] qy
[--password] ******
[--database] QY
[--service-id] orclpdb1
[--service-name] ORCLPDB1
[--from] oracle18c
[--to] oboracle40

2024-08-16 16:58:10 INFO  Init convert config finished.
2024-08-16 16:58:10 INFO  {dataSource-1} inited
2024-08-16 16:58:10 INFO  Init source druid connection pool finished.
2024-08-16 16:58:10 INFO  Load meta/oracle/oracle10g.xml, meta/oracle/oracle11g.xml, meta/oracle/oracle12c1.xml, meta/oracle/oracle12c2.xml, meta/oracle/oracle18c.xml successed
2024-08-16 16:58:12 ERROR create connection SQLException, url: jdbc:oracle:thin:@。。。。。:1521:orclpdb1, errorCode 1017, state 72000
java.sql.SQLException: ORA-01017: 用户名/口令无效; 登录被拒绝

        at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:509)
        at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:456)
        at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:451)
        at oracle.jdbc.driver.T4CTTIfun.processError(T4CTTIfun.java:1040)
        at oracle.jdbc.driver.T4CTTIoauthenticate.processError(T4CTTIoauthenticate.java:552)
        at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:550)
        at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:268)
        at oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java:501)
        at oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java:1292)
        at oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java:1025)
        at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:743)
        at oracle.jdbc.driver.PhysicalConnection.connect(PhysicalConnection.java:793)
        at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:57)
        at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:747)
        at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:562)
        at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1652)
        at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1718)
        at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2785)
2024-08-16 16:58:13 ERROR create connection SQLException, url: jdbc:oracle:thin:@。。。。。。。。。。。。。:1521:orclpdb1, errorCode 1017, state 72000
java.sql.SQLException: ORA-01017: 用户名/口令无效; 登录被拒绝

        at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:509)
        at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:456)
        at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:451)
        at oracle.jdbc.driver.T4CTTIfun.processError(T4CTTIfun.java:1040)
        at oracle.jdbc.driver.T4CTTIoauthenticate.processError(T4CTTIoauthenticate.java:552)
        at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:550)
        at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:268)
        at oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java:501)
        at oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java:1292)
        at oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java:1025)
        at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:743)
        at oracle.jdbc.driver.PhysicalConnection.connect(PhysicalConnection.java:793)
        at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:57)
        at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:747)
        at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:562)
        at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1652)
        at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1718)
        at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2785)
2024-08-16 16:58:13 INFO  {dataSource-1} failContinuous is true
2024-08-16 16:58:13 ERROR SQL: SELECT
                        USERNAME,
                        USER_ID,
                        CREATED
                FROM ALL_USERS
                WHERE USERNAME=?, Args: [QY]
com.alibaba.druid.pool.DataSourceNotAvailableException: java.sql.SQLException: ORA-01017: 用户名/口令无效; 登录被拒绝```
1 个赞

–service-id 这个参数没看到过呢。。还有Oracle那边的PDB创建的service-name 对吗

您好,从报错上是用户名密码不对
1 使用其他工具 验证检查用户名密码是否正确
2 也可能是你的连接串的servicename和 sid那里没填写正确

感谢回复 通过其他服务器sqlplus 登录验证是可以的

你好,你提的这个技术问题牵涉到OceanBase企业版范围内的功能细节;针对此类问题,建议你通过以下方式寻求帮助:

  1. 如你所在的企业客户已签署OceanBase企业版销售合同,请你联系客户经理;

  2. 如你所在的企业客户尚未签署OceanBase企业版销售合同,你可通过OceanBase官网商务咨询页面留下你的联系方式,OceanBase企业版的业务顾问会在一个工作日内与你联系。

另外,我们欢迎你使用社区版,并在论坛/社群中分享你对社区版本的想法、经验和问题,与其他社区成员共同交流。