Oracle数据库是企业级数据库系统的首选,在多数情况下,数据库服务器与客户端之间的远程访问是必不可少的。这就需要借助Oracle的侦听器实现远程访问。
Oracle数据库侦听器是用来接收和处理数据库客户端请求的程序,它监听着固定的端口,接收由客户端发起的连接请求,确定需要连接的数据库服务并将请求转发给正确的数据库实例。然后等待数据库实例返回响应结果,将结果发送给客户端。
我们可以通过修改Oracle数据库侦听器的配置,使其支持远程访问。下面是简单的步骤:
1. 编辑 $ORACLE_HOME/network/admin/listener.ora 文件
将以下配置项添加进去。
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = MyHost)(PORT = 1521))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = sales.us.acme.com)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
(SID_NAME = sales)
)
)
– ADDRESS:指定了侦听器所监听的IP地址和端口号。
– GLOBAL_DBNAME:指定了数据库的全局名称。
– ORACLE_HOME:指定了Oracle数据库的安装路径。
– SID_NAME:指定了数据库的实例名。
2. 重启 Oracle 侦听器
lsnrctl stop
lsnrctl start
3. 授权远程访问
在Oracle数据库实例中执行以下SQL语句,授权目标主机可以访问数据库。
ALTER SYSTEM SET REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE SCOPE=SPFILE;
GRANT CONNECT,RESOURCE,DBA TO my_user IDENTIFIED BY my_password;
其中 my_user 是远程访问数据库的用户名,my_password 是密码。
4. 测试远程访问
使用 Sqlplus 或者其他客户端工具连接到Oracle 数据库实例。
sqlplus my_user/[eml protected]:1521/sales
其中 my_user 和 my_password 是前面授权的用户名和密码,sales 是数据库实例名,1521 是 Oracle 数据库侦听器监听的端口号。
完成了以上步骤,就可以通过侦听器远程访问 Oracle 数据库了。
代码示例:Python脚本连接Oracle
Python作为一门流行的编程语言,广泛应用于数据处理、数据分析等领域。使用Python连接Oracle数据库也非常方便。
现在,我们使用Python脚本来连接Oracle数据库。
首先需要安装cx_Oracle Python包。
pip install cx_Oracle
然后,根据你的Oracle版本和Python版本,下载相应的 Oracle Instant Client。下载地址:https://www.oracle.com/database/technologies/instant-client/downloads.html
将下载的Instant Client解压后,把以下路径添加到系统环境变量中。下面假设Instant Client解压到了 /opt/oracle 目录下。
export ORACLE_HOME=/opt/oracle/instantclient_19_8
export LD_LIBRARY_PATH=$ORACLE_HOME:$LD_LIBRARY_PATH
export PATH=$ORACLE_HOME:$PATH
接下来,需要用到Oracle官方提供的示例代码。将该代码保存到本地文件,命名为 test_oracle.py 。
“`python
import cx_Oracle
# 连接Oracle数据库
dsn = cx_Oracle.makedsn(“localhost”, 1521, “sales”)
conn = cx_Oracle.connect(“my_user”, “my_password”, dsn)
# 执行SQL语句
cursor = conn.cursor()
cursor.execute(“SELECT * FROM emp”)
# 处理查询结果
for row in cursor.fetchall():
print(row)
# 关闭连接
cursor.close()
conn.close()
在命令行中执行该脚本,即可连接Oracle数据库并查询数据。
python test_oracle.py
以上就是 Oracle数据库侦听器注册实现远程访问的详细介绍。只要按照上述步骤,就可以轻松实现远程访问Oracle数据库,快速响应业务需求。