一台数据库服务器,操作系统崩溃了,只能重做。
其上之前安装了oracle服务,所幸安装在d盘。操作系统重做后,需要重新注册oracle服务。
前置工作
先找到对应目录,配置好参数:
ORACLE_HOME:D:\app\Administrator\product\11.2.0\dbhome_1
ORACLE_SID:sid
PATH增加oracle的bin目录
一、如果忘记了sys密码,需要先重置密码
orapwd file=%ORACLE_HOME%\database\PWDorcl.ora password=test entries=10 force=y
二、注册监听服务
确保配置文件存在:dir %ORACLE_HOME%\network\admin\listener.ora
注册新服务:
lsnrctl install 这个是大坑,没有这个命令
正确做法是:lsnrctl start 系统会启动并注册服务
三、注册服务
删除旧服务:oradim -delete -sid orcl
注册服务:oradim -new -sid orcl -intpwd test -startmode auto
如果启动不了,请查看下注册表
HKEY_LOCAL_MACHINE\SOFTWARE\Oracle\KEY_OraDb11g_home1 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleServiceORCL 这两个下面都有正确的ORACLE_HOME就对了 另外看ImagePath也必须是正确的路径四、启动后续
启动后还有如下问题:
sqlplus / as sysdba 报ORA-01031: insufficient privileges。这是因为就是当前 Windows 账号不在ORA_DBA用户组,执行如下操作:
修改sqlnet.ora文件,保障有如下行:
SQLNET.AUTHENTICATION_SERVICES= (NTS)
然后:Win+R 输入compmgmt.msc打开【计算机管理】
本地用户和组 → 组 → 找到ORA_DBA
双击打开 → 添加 → 输入Administrator→ 检查名称 → 确定
注销当前 Windows 用户,重新登录(组权限必须重登才生效!
如果账号锁定或过期,进入sqlplus执行:
ALTER USER 业务用户名 IDENTIFIED BY 新密码;
ALTER USER 业务用户名 ACCOUNT UNLOCK;