oracle > startup; ORA-00119: ORA-00132: syntax

Oracle 11g 启动失败解决方案
本文提供了解决 Oracle 11g 数据库启动时遇到 ora-00119 和 ora-00132 错误的方法。通过修改 pfile 中的 local_listener 参数,并使用 pfile 或创建 spfile 来启动数据库,确保服务正常运行。

前提:服务全部打开,监听也配置好了!

 

win7 64位    Oracle 11g

 

简单的sql命令:

先登录到sqlplus:

[sql] view plain copy

  1. sqlplus /nolog;  

登录数据库

[sql] view plain copy

  1. conn system/manager as sysdba;  

然后启动数据库:

[sql] view plain copy

  1. startup;  

发现ora-00119【ora-00119 invalid specification for system parameter】

       ora-00132【syntax error or unresolved network name 'LISTENER_ORCL'】:

 

现在看来,完全可以理解就是00119就是oracle没有启动!

现在来个更简单的:

【解决办法】方法①:这种方式每次电脑重启以后,都需要用sysdba的身份启动数据库;优点:能够加深基本的sql密令的印象;缺点:麻烦;

1,找到一个文件夹:pfile;虽然每个人安装oracle的路径不一样,但是在安装的目录下一定会找到这个文件夹!

比如我的文件夹:

[plain] view plain copy

  1. D:\app\jamb008\admin\orcl\pfile  

2,这个文件下有个文件:init.ora.1132014143422 他其实就是pfile,用来启动oracle的文件!

 

3,用写字板的方式打开它,找到local_listener,然后将它的值换掉(原始值叫LISTENER_ORCL),换成你tnsnames.ora中的ADDRESS_LIST:

 

 

4,然后回到cmd中,执行:

[sql] view plain copy

  1. startup pfile='D:\app\jamb008\admin\orcl\pfile\init.ora.1132014143422'  

5,再次用plsql登录:system manager成功了!!!

-------------------------------------------------------华丽的分隔符------------------------------------------------------------------------------------------------

【解决办法】方法②:(网上说什么复制pfile到spfile等等,弱爆了!!!!!)仍然用这种“弱爆的办法”。

1,用sysdba的身份登录

[plain] view plain copy

  1. sqlplus /nolog  

[plain] view plain copy

  1. conn /as sysdba  

2,创建spfile

[plain] view plain copy

  1. create spfile from pfile = 'D:\app\jamb008\admin\orcl\pfile\init.ora.1132014143422'  

[plain] view plain copy

  1. 文件已创建  

这里稍作说明:oracle11g此文件在:D:\app\jamb008\product\11.2.0\dbhome_1\database

                                         10g               :D:\app\jamb008\product\11.2.0\dbhome_1\dbs

下;

再次启动:

[plain] view plain copy

  1. startup  

 

3,到此,我们发现oracle已经成功启动,然后把电脑重启,再次用plsql登录,发现直接进入数据库了。

-------------------------------------------------------------------------华丽的分隔符------------------------------------------------------------------------------------------------------------------

转自:https://blog.youkuaiyun.com/engineer_he/article/details/75285774

当你在 Oracle 数据库中执行 `startup` 命令时遇到错误: ``` ORA-01031: insufficient privileges ``` 这表示你当前的用户账户**没有足够的权限**来启动数据库实例。`STARTUP` 是一个高权限操作,通常只能由具有 **SYSDBA** 或 **SYSOPER** 权限的用户执行。 --- ### ✅ 正确启动 Oracle 数据库的方法 #### 1. 使用具有 SYSDBA 权限的用户登录 你应该使用 `SYS` 用户并以 `SYSDBA` 身份连接到数据库实例(此时实例可能处于非活动状态)。 ```sql SQL> connect / as sysdba; ``` 或(如果你在远程,并配置了密码文件): ```sql SQL> connect sys as sysdba; -- 然后输入密码 ``` > ⚠️ 注意:`connect / as sysdba` 仅适用于操作系统认证(即本地登录且你的操作系统用户属于 DBA 组/OSDBA 组)。 #### 2. 执行 startup 命令 一旦以 `SYSDBA` 身份登录,就可以启动数据库: ```sql SQL> startup; ``` 完整示例: ```sql SQL> connect / as sysdba Connected to an idle instance. SQL> startup ORACLE instance started. Database mounted. Database opened. ``` --- ### 🔍 错误原因分析 | 原因 | 说明 | |------|------| | ❌ 普通用户尝试启动 | 如 `SYSTEM` 或普通用户未授予 `SYSDBA`,无法执行 `STARTUP` | | ❌ 未使用 `AS SYSDBA` | 即使是 `SYS` 用户,不加 `AS SYSDBA` 也无法启动实例 | | ❌ 操作系统权限不足 | 使用 `/ as sysdba` 时,当前 OS 用户必须属于 `dba` 组(Linux/Unix)或 `ORA_DBA` 组(Windows) | | ❌ 密码文件缺失或无效 | 远程使用 `SYSDBA` 需要有效的密码文件 (`orapwd`) | --- ### 🛠️ 解决方案步骤(Linux 示例) ```bash # 1. 切换到 oracle 用户 $ su - oracle # 2. 设置环境变量(确保 ORACLE_SID 正确) $ export ORACLE_SID=orcl # 3. 启动 SQL*Plus 并以 SYSDBA 登录 $ sqlplus /nolog SQL> connect / as sysdba # 4. 启动数据库 SQL> startup; # 可选:查看状态 SQL> select status from v$instance; ``` --- ### 💡 补充:如何检查当前用户是否有 SYSDBA 权限? ```sql SELECT * FROM user_role_privs WHERE granted_role = 'SYSDBA'; ``` 但这通常不会显示,因为 `SYSDBA` 是一种系统权限,不是普通角色。更准确的方式是尝试连接: ```sql connect username as sysdba; ``` 如果成功,则说明该用户有此权限。 --- ### ✅ 授予用户 SYSDBA 权限(已登录为 SYSDBA 时) ```sql GRANT SYSDBA TO some_user; ``` > 注意:这会将用户加入密码文件(如果启用了密码文件认证)。 --- ### 🧩 常见相关命令总结 | 命令 | 用途 | |------|------| | `connect / as sysdba` | 本地操作系统认证登录 | | `startup` | 启动实例并打开数据库 | | `shutdown immediate` | 安全关闭数据库 | | `select instance_name, status from v$instance;` | 查看实例状态 | --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值