登录 SQLPlus 是最基础也是最关键的步骤。需要ORACLE_SID 和ORACLE_HOME环境变量,如果这些变量没有被设置或设置不正确,请为其设置正确的值。
echo $ORACLE_SID
echo $ORACLE_HOME
当我们使用 SQLPlus 连接到数据库时,可以采用多种格式来指定连接字符串。一般的格式为:
sqlplus <username>/<password>@<connect_string>
其中:
<username>
是你要连接的数据库用户名称。<password>
是对应的用户密码。<connect_string>
是连接字符串,通常指定为 TNS 名称或是一个完整的连接描述。其中,关于 AS
关键字,它通常用于以特定的权限或角色连接到数据库
以下是几种常见的登录方式:
sqlplus username/password
2. 使用服务名:
sqlplus username/password@service_name
3. 无密码登录:
sqlplus / as sysdba
请注意:为了安全起见,建议避免在命令行中直接输入密码。你可以仅输入 sqlplus
,然后在提示时输入用户名和密码。
4.通过 TNSNAMES.ORA 文件
首先,确保你的 tnsnames.ora
文件中已经定义了相关的 SID。该文件通常位于 $ORACLE_HOME/network/admin/
目录下。例如,你可能有一个如下的条目:
MYDB_SID =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = MyHost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SID = MyDB)
)
)
然后,在 SQLPlus 中使用以下命令连接:
sqlplus username/password@MYDB_SID
5. 使用 Easy Connect (EZCONNECT)
Oracle 提供了一个简化的连接方法,称为 Easy Connect。这允许你直接在连接字符串中指定主机、端口和 SID 或服务名,而不需要 tnsnames.ora 文件中的定义。
例如:
sqlplus username/password@MyHost:1521/MyDB
还可以直接在 SQLPlus 命令行中提供完整的连接描述,无需依赖外部文件,例如:
sqlplus username/password@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=1521))(CONNECT_DATA=(SID=MyDB)))
请注意,尽管这样做是可行的,但它通常不是首选方法,因为这样的连接字符串会变得很长。
SQLPlus 提供了一系列的子命令,使你可以更容易地管理和查询数据库。以下是一些常用子命令:
DESC tablename
SET:更改 SQL*Plus 的环境设置。
SET LINESIZE 200
SHOW:显示当前 SQLPlus 环境的某些参数。
SHOW USER
EXIT (或 QUIT):退出 SQL*Plus。
SPOOL:将输出定向到一个文件。
SPOOL filename.log
CONNECT:使用不同的用户名、密码和/或服务名重新连接。
EDIT (或 ED):编辑 SQL 缓冲区中的命令。
以上只是 SQLPlus 提供的子命令的一部分,具体的子命令和详细参数建议查阅官方文档。
SQLPlus 还提供了一系列的启动参数,这些参数允许你更改其默认行为。以下是一些常用参数:
你可以使用 @
符号来执行外部的 .sql
文件。例如:
@/path/to/your_script.sql
你可以使用各种 SQLPlus 子命令来调整查询的输出格式,如 SET LINESIZE
、SET PAGESIZE
和 COLUMN
命令。
6.查看监听器状态:
可以使用 lsnrctl 命令来查看监听器的状态。在该状态输出中有服务名或数据库别名。
lsnrctl status
LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 07-AUG-2023 02:05:43
Copyright (c) 1991, 2019, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date 07-AUG-2023 01:48:10
Uptime 0 days 0 hr. 17 min. 33 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /opt/oracle/product/19c/dbhome_1/network/admin/listener.ora
Listener Log File /opt/oracle/diag/tnslsnr/52e52272aea8/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=0.0.0.0)(PORT=1521)))
Services Summary...
Service "ORCLCDB" has 1 instance(s).
Instance "ORCLCDB", status READY, has 1 handler(s) for this service...
The command completed successfully
从上面的 lsnrctl status
输出中,我们可以清晰地看到以下关键信息:
SQLPlus 是一个功能强大的命令行工具,提供了许多子命令和参数来帮助你更有效地管理和查询 Oracle 数据库。希望本文能帮助你更深入地了解和使用 SQLPlus。如果你有任何问题或需要进一步的帮助,请随时留言或咨询。