Oradim for Oracle 18c无法在Windows Server 2016上运行

时间:2019-05-22 13:09:57

标签: windows oracle

我在Windows Server 2016 VM上安装了Oracle 18c,并具有以下选项:仅软件,单实例数据库,标准版2,使用虚拟帐户。

当我尝试运行ORADIM命令创建数据库时,该命令从不将控制权返回给提示符,而我不得不强制关闭它。

oradin日志文件中没有任何错误消息,该实例以及所有相关的Oracle服务已创建。

我在Windows事件查看器中发现的唯一错误与Oracle VSS Writer服务有关:

“卷影复制服务错误:承载具有名称Oracle Vss Writer-XXXX和ID {yyy}的作家的进程不在具有足够访问权限的用户下运行。请考虑在本地帐户下运行此进程,该帐户是本地系统,管理员,网络服务或本地服务。”

我的理解是,由于Vss服务启动失败,因此未返回ORADIM命令,有人可以确认吗? ORADIM命令与虚拟用户安装兼容吗?要使其正常运行,我需要怎么做?

2 个答案:

答案 0 :(得分:1)

如果这是一个测试数据库,则:

  • 为此Oracle实例(例如Ora)创建本地或域用户
  • 将此用户添加到本地Windows组和用户中的ora_dba组
  • 将Oracle数据库和VSS Writer Service运行的帐户(如果在安装的此阶段存在)更改为此帐户
  • 使用此帐户再次运行OraDim

答案 1 :(得分:0)

我能够确认oradim命令是否由于Oracle Vss Service启动失败而冻结:我启动了oradim命令,一旦创建了Oracle Vss Writer Service,我便将关联的Log On用户修改为LocalService并启动了该服务。 ,oradim命令立即将控制权返回到命令窗口。

因此,尽管我认为可能有更好的解决方案,但我在安装脚本中想到了这种变通方法,

start oradim -new -sid %ORACLE_SID% -startmode manual

SET ORACLEVSS_NAME=OracleVssWriter%ORACLE_SID%

:VSSSRVCLOOP
SC QUERY %ORACLEVSS_NAME% > NUL
IF NOT ERRORLEVEL 1060 GOTO SVCCREATED
TIMEOUT 5 > NUL
GOTO VSSSRVCLOOP

:SVCCREATED
net stop %ORACLEVSS_NAME%
SC CONFIG %ORACLEVSS_NAME% obj= "NT AUTHORITY\LocalService" password= ""
net start %ORACLEVSS_NAME%