未找到Oracle XE 11g XE数据库

时间:2016-01-20 17:47:50

标签: database oracle oracle11g windows-7-x64

我是一个新的人,他开始使用Oracle数据库,并在安装tx_streamer->send() x64的最后一个版本到Microsoft Windows 7 x64企业版时遇到了问题。

在安装过程中没有任何错误,并且已成功创建并启动Windows服务(Oracle XE 11gOracleXETNSListener)。 Winservices screen

但是,当我尝试获取可用数据库列表时,我收到错误

  

ORA-01034:ORACLE不可用

ORA-01034: ORACLE not available

由于某种原因, XE数据库未创建OracleServiceXEenter image description here

我的listener.ora的内容与localhost:

%ORACLE_BASE%\oradata\XE

我通过设置localhost IP地址修复了tnsnames.ora:

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server)
      (PROGRAM = extproc)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
    )
  )

DEFAULT_SERVICE_LISTENER = (XE)

sqlnet.ora包含两种服务:

XE =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = XE)
    )
  )

EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )

ORACLR_CONNECTION_DATA = 
  (DESCRIPTION = 
    (ADDRESS_LIST = 
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1)) 
    ) 
    (CONNECT_DATA = 
      (SID = CLRExtProc) 
      (PRESENTATION = RO) 
    ) 
  ) 

来自'%ORACLE_HOME%\ server \ log \ myhost \ client'的日志文件包含此错误:

  

Oracle Database 11g Clusterware版本11.2.0.2.0 - 生产   版权所有1996,2010 Oracle。版权所有。 2016年1月20日   19:51:43.920:[默认] [5096] ut_read_reg:2:ocr注册表项   无法打开SOFTWARE \ Oracle \ olr。错误2 [
  CLSE] [5096] clse_get_crs_home:检索OLR配置时出错[0]   [打开olr注册表项时出错。 Неудаетсянайтиуказанныйфайл。 ]

如何找到问题并解决问题?

1 个答案:

答案 0 :(得分:4)

在解决了这个问题近一个星期后,我找到了一个解决方案,如何从这个source提供XE数据库。它是俄语,我用英语提供解决方案。

  1. 将Oracle XE 11gR2的最新版本从Oracle站点安装到默认位置c:\oraclexe,默认密码为 admin 。如果不是默认值,那么您应该在使用它们之前编辑下面的脚本(路径和pwd)。

  2. 在管理员权限下运行 cmd 命令行并使用它直到重新配置结束。首先,为您的数据库设置环境变量:

    set ORACLE_SID=XE
    set ORACLE_BASE=c:\oraclexe\app\oracle 
    set ORACLE_HOME=c:\oraclexe\app\oracle\product\11.2.0\server
    
  3. 通过命令删除XE数据库:

    oradim -delete -sid XE
    
  4. 删除PWDXE.ORA file

    del %ORACLE_HOME%\database\PWDXE.ORA
    
  5. init.ora%ORACLE_HOME%\config\scripts复制到%ORACLE_HOME%\database,而不是现有,将其重命名为initXE.ora并添加以下配置:

    open_cursors=300
    db_name=XE
    control_files=("C:\oraclexe\app\oracle\oradata\XE\control.dbf")
    job_queue_processes=4
    compatible=11.2.0.0.0
    diagnostic_dest=C:\oraclexe\app\oracle\.
    memory_target=1G
    sessions=100
    audit_file_dest=C:\oraclexe\app\oracle\admin\XE\adump
    remote_login_passwordfile=EXCLUSIVE
    dispatchers="(PROTOCOL=TCP) (SERVICE=XEXDB)"
    shared_servers=4
    undo_management=AUTO
    undo_tablespace=UNDOTBS1
    DB_RECOVERY_FILE_DEST_SIZE = 10G
    DB_RECOVERY_FILE_DEST=C:\oraclexe\app\oracle\fast_recovery_area
    #optional
    nls_language="RUSSIAN"
    nls_territory="RUSSIA"
    
  6. 在上一个带有admin previleges的 cmd 行中,运行命令以创建Oracle服务和文件%ORACLE_HOME%\database\PWDXE.ORA

    oradim -new -sid %ORACLE_SID% -intpwd admin -startmode auto -srvcstart system
    
  7. 运行以下命令以停止Windows Oracle XE服务,删除它们和其他XE文件:

    sqlplus /nolog
    connect sys/admin as sysdba;
    shutdown immediate;
    exit;
    del %ORACLE_BASE%\oradata\XE\CONTROL.DBF
    del %ORACLE_BASE%\fast_recovery_area\XE\ONLINELOG\*.LOG
    
  8. 在一个目录中创建两个文件:

  9. createXE.cmd

    set ORACLE_SID=XE
    set NLS_LANG=AMERICAN_AMERICA.CL8MSWIN1251
    set ORACLE_BASE=C:\oraclexe\app\oracle
    sqlplus /nolog @createXE.sql
    

    createXE.sql

    spool %ORACLE_BASE%\admin\XE\CreateXE.log;
    connect sys/admin as sysdba;
    startup nomount;
    CREATE DATABASE XE
    LOGFILE GROUP 1 SIZE 51200K,
    GROUP 2 SIZE 51200K
    MAXINSTANCES 8
    MAXLOGHISTORY 1
    MAXLOGFILES 16
    MAXLOGMEMBERS 3
    MAXDATAFILES 100
    CHARACTER SET CL8MSWIN1251
    NATIONAL CHARACTER SET AL16UTF16
    DATAFILE 'c:\oraclexe\app\oracle\oradata\XE\system.dbf' SIZE 300M REUSE AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED
    EXTENT MANAGEMENT LOCAL
    SYSAUX DATAFILE 'c:\oraclexe\app\oracle\oradata\XE\sysaux.dbf' SIZE 120M REUSE AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED
    SMALLFILE DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE 'c:\oraclexe\app\oracle\oradata\XE\temp.dbf' SIZE 20M REUSE AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED
    SMALLFILE UNDO TABLESPACE UNDOTBS1 DATAFILE 'c:\oraclexe\app\oracle\oradata\XE\undotbs1.dbf' SIZE 200M REUSE AUTOEXTEND ON NEXT 5120K MAXSIZE UNLIMITED;
    CREATE SMALLFILE TABLESPACE USERS DATAFILE 'c:\oraclexe\app\oracle\oradata\XE\users.dbf' SIZE 300M REUSE AUTOEXTEND ON NEXT  1280K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT  AUTO;
    -- catalog
    @%ORACLE_HOME%\rdbms\admin\catalog.sql;
    @%ORACLE_HOME%\rdbms\admin\catblock.sql;
    @%ORACLE_HOME%\rdbms\admin\catproc.sql;
    @%ORACLE_HOME%\rdbms\admin\catoctk.sql;
    connect system/manager
    -- sqlplus profile
    @%ORACLE_HOME%\sqlplus\admin\pupbld.sql;
    @%ORACLE_HOME%\sqlplus\admin\help\hlpbld.sql helpus.sql;
    connect sys/admin as sysdba;
    -- xdb protocol
    @%ORACLE_HOME%\rdbms\admin\catqm.sql change_on_install SYSAUX TEMP NO;
    @%ORACLE_HOME%\rdbms\admin\catxdbj.sql;
    @%ORACLE_HOME%\rdbms\admin\catrul.sql;
    -- compiling invalid objects
    @%ORACLE_HOME%\rdbms\admin\utlrp.sql;
    spool off;
    exit;
    
    1. 使用管理员权限从命令行运行 createdXE.cmd

    2. 完成。