sqlplus是Oracle数据库的命令行工具,需先安装Oracle Instant Client(轻量级客户端)。以19.8.0.0.0版本为例,操作步骤如下:
wget https://download.oracle.com/otn_software/linux/instantclient/instantclient-basic-linux.x64-19.8.0.0.0dbru.zip
wget https://download.oracle.com/otn_software/linux/instantclient/instantclient-sqlplus-linux.x64-19.8.0.0.0dbru.zip
/opt/oracle):sudo unzip instantclient-basic-linux.x64-19.8.0.0.0dbru.zip -d /opt/oracle
sudo unzip instantclient-sqlplus-linux.x64-19.8.0.0.0dbru.zip -d /opt/oracle
sudo ln -s /opt/oracle/instantclient_19_8 /opt/oracle/instantclient
需设置ORACLE_HOME、LD_LIBRARY_PATH、PATH和TNS_ADMIN,确保系统能定位Oracle客户端库和配置文件。
/etc/profile)或用户级文件(如~/.bashrc),添加以下内容:export ORACLE_HOME=/opt/oracle/instantclient
export LD_LIBRARY_PATH=$ORACLE_HOME:$LD_LIBRARY_PATH
export PATH=$ORACLE_HOME:$PATH
export TNS_ADMIN=$ORACLE_HOME/network/admin # tnsnames.ora文件所在目录
source /etc/profile # 或 source ~/.bashrc
确保Debian系统自身网络连通,可通过静态IP或DHCP配置。以静态IP为例:
/etc/network/interfaces):sudo nano /etc/network/interfaces
auto eth0
iface eth0 inet static
address 192.168.1.100 # 本机IP
netmask 255.255.255.0 # 子网掩码
gateway 192.168.1.1 # 网关
sudo systemctl restart networking
监听器负责接收客户端连接请求,需在数据库服务器上配置:
lsnrctl工具启动监听器配置向导:lsnrctl
CONFIGURE LISTENER:创建新监听器(默认名称为LISTENER);localhost或本机IP,如192.168.1.100);1521)。lsnrctl save_config # 保存配置至listener.ora文件
lsnrctl start # 启动监听器
lsnrctl status
输出应显示监听器正在运行,且注册了数据库服务(如ORCL)。tnsnames.ora文件定义了数据库连接的别名(服务名),需在客户端配置:
tnsnames.ora文件(路径为$TNS_ADMIN,即/opt/oracle/instantclient/network/admin):sudo nano /opt/oracle/instantclient/network/admin/tnsnames.ora
HOST、PORT、SERVICE_NAME):ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl) # 数据库服务名(可通过lsnrctl status查看)
)
)
ping 192.168.1.100
tnsnames.ora):sqlplus username/password@ORCL
tnsnames.ora):sqlplus username/password@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.100)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=orcl)))
ORA-12154:无法解析连接标识符
tnsnames.ora文件不存在或服务名配置错误。$TNS_ADMIN路径下的tnsnames.ora文件,确认服务名(如ORCL)的HOST、PORT、SERVICE_NAME是否正确。ORA-12541:无监听器
lsnrctl start启动监听器,检查netstat -tulnp | grep 1521确认端口未被其他进程占用。ORA-12545:连接超时
ping测试网络连通性,检查防火墙规则(如ufw或iptables),开放1521端口:sudo ufw allow 1521/tcp
ORA-01017:无效用户名/密码
GRANT CREATE SESSION TO username;)。