指向数据库系统的连接概览
本文介绍连接到活动数据库系统所需的各种设置。连接方式取决于您使用的客户端工具或协议、连接的用途以及云网络的设置方式。
注:您可以在网络概述中找到有关各种网络方案的信息,但有关如何连接到云中的数据库的特定建议,请与您的网络安全管理员联系。
先决条件
-
要使用控制台或 API 获取默认管理服务连接字符串,您必须在管理员编写的策略中获得所需的访问权限类型,无论是使用控制台还是将 REST API 与 SDK、CLI 或其他工具结合使用。如果您尝试执行某项操作并收到一条您无权或未经授权的消息,请向您的管理员确认您被授予的访问权限类型以及您应该在哪个区间工作。
-
要连接到数据库,您需要数据库系统的公共或专用 IP 地址。
使用专用 IP 地址从内部部署网络或虚拟云网络 (Virtual Cloud Network,VCN) 内连接到系统。这包括从位于内部部署的主机进行连接,该主机通过 VPN 或 FastConnect 连接到 VCN,或从同一 VCN 中的其他主机进行连接。使用公共 IP 地址从云外部连接到系统(没有 VPN)。您可以在控制台中找到 IP 地址,如下所示:
- 在“数据库系统详细信息”页上,选择节点选项卡。
- DNS 名称、公共 IP 地址和专用 IP 地址显示在表列中。
-
要对数据库系统进行安全 Shell (Secure Shell,SSH) 访问,您需要包含与启动数据库系统时使用的公钥关联的私钥的文件的完整路径。
如果连接时出现问题,请参见 Troubleshoot Connection Issues 。
数据库服务和连接字符串
通过数据库服务,您可以根据所需的功能来控制客户机对数据库实例的访问。例如,您可能需要仅出于管理目的访问数据库,或者可能需要将应用程序连接到数据库。连接字符串特定于数据库服务。
预配数据库系统时,会自动创建默认数据库管理服务。对于 12c 及更高版本的 Oracle 数据库,此服务用于在 CDB 级别管理数据库。由于此服务提供的功能有限,因此不适合连接应用程序。Oracle 建议您在创建数据库系统后为初始数据库创建默认应用程序服务。对于 12c 及更高版本的 Oracle 数据库,应用程序服务在 PDB 级别连接。以下是应用服务可以提供的一些重要功能:
- 工作量标识
- 负载平衡
- 应用连续性和 Transaction Guard
- 快速应用程序通知
- 基于服务名称的资源分配
有关这些和其他高可用性功能的详细信息,请参见 Client Failover Best Practices for Highly Available Oracle Databases 。
创建应用程序服务
可以使用 srvctl 实用程序创建应用程序服务。必须先启动服务,然后才能连接到该服务。
可以使用以下步骤为 PDB 或 11g Oracle 数据库创建应用程序服务。
- 以
opc身份登录到数据库系统主机。 -
切换到 oracle 用户,并将您的环境设置为要管理的 Oracle Database。
sudo su - oracle . oraenvORACLE_SID = [oracle] ? <database_name> The Oracle base has been set to /u01/app/oracle -
为数据库创建应用程序服务。仅当要为 PDB 创建应用程序服务时,才包括
pdb选项。srvctl add service -db <DB_unique_name> -pdb <PDB_name> -service <app_service_name> -role PRIMARY -notification TRUE -session_state dynamic -failovertype transaction -failovermethod basic -commit_outcome TRUE -failoverretry 30 -failoverdelay 10 -replay_init_time 900 -clbgoal SHORT -rlbgoal SERVICE_TIME -preferred <rac_node1>,<rac_node2> -retention 3600请注意,只有多节点数据库才需要首选选项来指定 RAC 中节点的主机名。
-
启动应用程序服务。
srvctl start service -db <DB_unique_name> -s <app_service_name>
有关 PDB 服务的更多信息,请参见 Administering PDBs 。
数据库连接 String
必须使用适当的连接字符串才能访问数据库管理或应用程序服务。您可以使用控制台或 API 获取从 VCN 内连接到默认管理服务的字符串。对于 12c 及更高版本的 Oracle 数据库,此服务用于在 CDB 级别管理数据库。该字符串以轻松连接和完整连接描述符(长)格式提供。如果主机名解析不可用,请为连接使用长格式。您还可以使用长格式在 tnsnames.ora 文件中创建别名。
要访问 VCN 中的数据库服务,Real Application Cluster (RAC) 数据库系统的连接字符串使用单客户机访问名称 (SCAN),而单实例数据库系统的连接字符串则改用主机名。
专用 SCAN 名称是在启动双节点 RAC 数据库系统时创建的循环 DNS 条目。专用 SCAN 名称只能在 VCN 内解析。如果客户机和数据库位于同一 VCN 中,则连接机制与内部部署 RAC 数据库相同;VIP 和 SCAN VIP 提供的所有功能(例如服务器端负载平衡和 VIP 故障转移)都可用。
注:如果在数据库系统上手动更改 DB_UNIQUE_NAME、DB_DOMAIN 或监听程序端口,则在控制台或 API 中看到的连接字符串将不会反映您所做的更改。确保在建立连接时使用这些参数的实际值。
获取连接字符串
您可以使用控制台的以下步骤来获取默认管理服务的连接字符串:
- 在数据库系统列表页上,选择包含要使用的数据库的数据库系统。如果需要查找列表页或数据库系统的帮助,请参阅列出数据库系统。
- 在数据库选项卡上,选择要使用的数据库。
- 在数据库详细信息页上,选择连接选项卡。此时将显示连接字符串列表。
- 选择指向查看或复制连接字符串的适用链接。
可以通过将默认应用程序服务连接字符串的一部分替换为适用值来派生其他数据库服务的连接字符串。
推导连接字符串
执行以下步骤可派生 PDB 管理服务或应用程序服务的连接字符串。
-
按照以下过程获取默认管理服务的轻松连接字符串。该字符串应具有以下格式:
<hostname\|SCAN>:1521/<DB_unique_name>.<DB_domain> -
进行适当的替代:
-
对于 PDB 管理服务,将
DB_unique_name替换为 PDB 名称。<hostname\|SCAN>:1521/<PDB_name>.<DB_domain> -
对于应用程序服务,将
DB_UNIQUE_NAME替换为应用程序服务的名称。<hostname\|SCAN>:1521/<app_service_name>.<DB_domain>
-