简介
- Mac 上 Navicat Premium 连接Oracle, Navicat 这个软件连Oracle稍微有点麻烦需要在Oracle官网上下载对应的instantclient。步骤如下:
- 查看Oracle数据库版本命令如下:
[oracle@test ~]$ lsnrctl status
LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 25-JUL-2023 22:46:35
# 版本 Version 19.0.0.0.0
Copyright (c) 1991, 2019, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=119-61-oracledb)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
#版本
Version TNSLSNR for Linux: Version 19.0.0.0.0 - Production
#启动时间
Start Date 24-JUL-2023 18:33:07
#运行时间
Uptime 1 days 4 hr. 13 min. 27 sec
# 跟踪级别
Trace Level off
#安全性
Security ON: Local OS Authentication #本地认证
SNMP OFF
# 监听器参数文件
Listener Parameter File /opt/data/oracle/product/19.3/db_1/network/admin/listener.ora
# 监听器日志文件
Listener Log File /opt/data/oracle/diag/tnslsnr/119-61-oracledb/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=119-61-oracledb)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Services Summary...
Service "86b637b62fdf7a65e053f706e80a27ca" has 1 instance(s).
Instance "oracledb", status READY, has 1 handler(s) for this service...
# 实例名 Instance 'oracledb'
Service "f3d1f7d4b8e61484e053773ded0acc2f" has 1 instance(s).
Instance "oracledb", status READY, has 1 handler(s) for this service...
Service "orcldb" has 1 instance(s).
Instance "oracledb", status READY, has 1 handler(s) for this service...
Service "orcldbXDB" has 1 instance(s).
Instance "oracledb", status READY, has 1 handler(s) for this service...
Service "pdb" has 1 instance(s).
Instance "oracledb", status READY, has 1 handler(s) for this service...
The command completed successfully
- 确定数据库版本后 到Oracle 官网下载对应的 instantclient
-
https://www.oracle.com/database/technologies/instant-client/macos-intel-x86-downloads.html#ic_osx_inst
-
下载好后解压文件,在Navicat Premium的偏好设置-->环境变量中指定OCI环境:
- sqlplus连接测试或服务器先进行本地测试
连接格式 :
sqlplus username/password@//hostname:1521/pdb_name
- 数据库主机名或IP地址
- 监听器端口号
- 服务名称或SID
实例:
[oracle@test ~]$ sqlplus test/123456@//10.0.0.1:1521/pdb
SQL*Plus: Release 19.0.0.0.0 - Production on Tue Jul 25 23:06:42 2023
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle. All rights reserved.
Last Successful login time: Tue Jul 25 2023 23:06:03 +08:00
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
# 以上反馈为连接成功
注:
System Identifier(SID)是在Oracle数据库中标识唯一实例(Instance)的字符串。每个Oracle数据库实例都有一个唯一的SID,用于在数据库中区分不同的实例。在Oracle 12c及以上版本中,每个实例通常对应一个PDB(Pluggable Database),而每个PDB都有一个唯一的SID。
Oracle12c及以上版本中引入了 CDB(Container Database)和 PDB(Pluggable Database)他们之间的关系类似于房东和租户.CDB只有一个但是它可以容纳多个PDB。
CDB类似于房东,负责管理整个数据库的共享结构和资源。例如共享的SGA、共享的后台进程等
PDB类似于租客,每个PDB是一个独立的数据库,有自己的数据文件、表空间、用户等
多租户架构的优点是可以让Oracle数据库根据适合云环境和多用户的应用场景,可以为每个用户创建一个PDB实例,而不用为每个用户或程序单独部署一个数据库。
在连接数据库的时候我们通常连接的是数据库中的租户,也就是具体的实例PDB,而不是直接连接CDB,这也就是说我们在连接数据库的时候要选择好对应的实例。
-
Navicat Premium客户端配置,也可以使用TNS配置文件链接
如果连接不上报错ORA-01017: 看下自己选择的oracle服务名是否正确