解决ORA-12514,SQLPlus连接localhost:1521失败?

启动Oracle数据库服务

切换至Oracle用户

su - oracle  # 必须使用Oracle安装账户

启动监听器(Listener)

lsnrctl start  # 启动监听服务
lsnrctl status # 验证状态(显示"STATUS=READY"即成功)

启动数据库实例

sqlplus / as sysdba  # 以DBA身份登录SQL*Plus
SQL> STARTUP;        # 启动数据库实例
SQL> SELECT status FROM v$instance;  # 验证状态(返回"OPEN"即成功)

设置开机自启(可选)

sudo systemctl enable oracle-rdbms.service  # 适用于配置了Systemd的系统

连接Oracle数据库的常用方法

*命令行工具(SQLPlus)**

sqlplus username/password@hostname:port/service_name```
#### 2. **图形化工具(推荐)**
- **Oracle SQL Developer**  
  下载地址:[Oracle官网](https://www.oracle.com/database/sqldeveloper/)  
  配置步骤:  
  1. 输入主机名、端口(默认1521)、服务名(如ORCLCDB)  
  2. 填写用户名/密码  
  3. 测试连接 → 保存
- **DBeaver**  
  开源工具,支持多数据库([官网下载](https://dbeaver.io/))
#### 3. **通过Python脚本连接**
```python
import cx_Oracle
conn = cx_Oracle.connect('user', 'password', 'host:port/service_name')
cursor = conn.cursor()
cursor.execute("SELECT * FROM dual")
print(cursor.fetchone())

常见问题解决

监听器启动失败

  • 原因:端口冲突或配置错误
  • 解决
    lsnrctl stop          # 停止监听
    vi $ORACLE_HOME/network/admin/listener.ora  # 检查端口(默认1521)
    lsnrctl start         # 重新启动

数据库无法OPEN

  • 错误ORA-01081: cannot start already-running instance
    SQL> SHUTDOWN IMMEDIATE;  # 先关闭实例
    SQL> STARTUP;             # 重新启动
  • 错误ORA-01157: cannot identify/lock data file
    检查数据文件路径:

    SQL> SELECT name FROM v$datafile;  # 验证文件是否存在

连接超时

  • 检查防火墙:
    sudo firewall-cmd --list-ports | grep 1521  # 查看端口开放
    sudo firewall-cmd --add-port=1521/tcp --permanent  # 开放端口
  • 验证服务名:
    tnsping ORCLCDB  # 测试服务名解析

安全注意事项

  1. 最小权限原则:避免使用sysdba执行常规操作。
  2. 定期备份
    RMAN> BACKUP DATABASE PLUS ARCHIVELOG;  # 使用RMAN工具
  3. 更新补丁:定期安装Oracle Critical Patch Updates(CPU)。

引用说明

  • Oracle官方文档:Database Administrator’s Guide
  • Linux服务管理:Systemd手册
  • 连接工具参考:SQL Developer教程

重要提示:操作前确保已正确安装Oracle数据库(包括环境变量ORACLE_HOMEPATH配置),生产环境建议由专业DBA执行关键操作。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/4773.html

(0)
酷番叔酷番叔
上一篇 2025年6月17日 13:44
下一篇 2025年6月17日 14:08

相关推荐

  • 如何在Linux中安全删除只读文件?

    为什么只读文件无法直接删除?Linux文件权限分为三类:读(r):允许查看文件内容写(w):允许修改或删除文件执行(x):允许运行文件只读文件的权限通常为 -r–r–r–(644),缺少“写”权限,用户需先获得写权限或使用管理员权限才能删除,删除只读文件的4种方法方法1:添加写权限后删除(推荐)通过 ch……

    2025年7月21日
    14400
  • 在Linux操作系统中如何查看FTP服务的运行状态与连接详情?

    在Linux系统中查看FTP相关信息是系统管理和日常运维中的常见需求,可能涉及查看FTP服务器状态、连接情况、传输文件、配置信息等场景,本文将详细介绍通过命令行工具、系统命令及第三方工具实现查看FTP的多种方法,帮助用户高效获取所需信息,使用FTP客户端连接查看远程服务器内容若需查看远程FTP服务器上的文件或目……

    2025年9月30日
    11800
  • Linux hosts文件如何配置?

    hosts文件的位置无论何种Linux发行版,hosts文件均位于 /etc/hosts,这是Linux系统的标准路径,适用于:Ubuntu/DebianCentOS/RHEL/FedoraArch LinuxopenSUSE等可通过命令验证:ls -l /etc/hosts输出示例:-rw-r–r– 1……

    2025年6月20日
    14800
  • 为什么更新软件源列表是第一步?

    在Linux系统中,在线安装软件是最常用且高效的方式,主要通过包管理器实现,不同发行版有各自的工具,以下详细介绍主流发行版的安装方法、安全实践及常见问题解决,确保操作安全可靠,在线安装的核心原理Linux通过软件仓库(Repository) 集中管理软件包,包管理器自动处理依赖关系,从官方或可信源下载并安装软件……

    2025年6月17日
    17400
  • linux如何查看某个目录的大小写

    以使用du -sh 命令来查看某个

    2025年8月17日
    11000

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信