做oracle的优化,使用Console中打开数据库的配置,发现如图

正在运行的数据库不支持 HiveSQL 语法怎么办 数据库提示正在装载_list

由于里面有的值为零,于是我按照它的建议修改了对应的值。结果重启后oracle启动不起来了。

使用Console连接提示: 无法解析连接描述符中指定的SID。

使用pl/sql连接提示:ORA-12505:TNS:监听程序当前无法识别连接描述符中所给出的SID

1、 若数据库机器上没有装Console或者没有使用Console配置网络服务名.

则可以通过命令sqlplus sys/sys as sysdba 登录到服务器空闲进程。接着执行步骤4。

2、如果配置了网络服务名,则

在路径D:/oracle/product/10.2.0/db_1/network/admin/listener.o
ra下 找到listener.ora。

原来listener.ora内容:


# listener.ora Network Configuration File:  D:/oracle/product/
   
   10.2
   
   .
   
   0
   
   /db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER 
   
   =
   
   
  (SID_LIST 
   
   =
   
   
    (SID_DESC 
   
   =
   
   
      (SID_NAME 
   
   =
   
    PLSExtProc)
      (ORACLE_HOME 
   
   =
   
    E:/oracle/product/
   
   10.2
   
   .
   
   0
   
   /db_1)
      (PROGRAM 
   
   =
   
    extproc)
    )
  )

LISTENER 
   
   =
   
   
  (DESCRIPTION_LIST 
   
   =
   
   
    (DESCRIPTION 
   
   =
   
   
      (ADDRESS 
   
   =
   
    (PROTOCOL 
   
   =
   
    IPC)(KEY 
   
   =
   
    EXTPROC1))
      (ADDRESS 
   
   =
   
    (PROTOCOL 
   
   =
   
    TCP)(HOST 
   
   =
   
    
   
   127.0
   
   .
   
   0.1
   
   )(PORT 
   
   =
   
    
   
   1521
   
   ))
    )
  )


 

 

改成(红色部分为增加部分):


# listener.ora Network Configuration File:  D:/oracle/product/
   
   10.2
   
   .
   
   0
   
   /db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER 
   
   =
   
   
  (SID_LIST 
   
   =
   
   
    (SID_DESC 
   
   =
   
   
      (SID_NAME 
   
   =
   
    PLSExtProc)
      (ORACLE_HOME 
   
   =
   
    D:/oracle/product/
   
   10.2
   
   .
   
   0
   
   /db_1)
      (PROGRAM 
   
   =
   
    extproc)
    )
  (SID_DESC 
   
   =
    (GLOBAL_DBNAME = XXX(网络服务名))
    (ORACLE_HOME = D:/oracle/product/10.2.0/db_1)  
    (SID_NAME =
   
    XXX(网络服务名)))
    )
  )

LISTENER 
   
   =
   
   
  (DESCRIPTION_LIST 
   
   =
   
   
    (DESCRIPTION 
   
   =
   
   
      (ADDRESS 
   
   =
   
    (PROTOCOL 
   
   =
   
    IPC)(KEY 
   
   =
   
    EXTPROC1))
      (ADDRESS 
   
   =
   
    (PROTOCOL 
   
   =
   
    TCP)(HOST 
   
   =
   
    
   
   127.0
   
   .
   
   0.1
   
   )(PORT 
   
   =
   
    
   
   1568
   
   ))
    )
  )


 

 

修改完 listener.ora后

使用console连接提示“数据库已关闭”。

使用pl/sql连接提示

ORA-27101 Sharedmemory realmdoes not exist
ORA-01034 ORACLE not available

查看db1文件夹下的alert_XXX(网络服务名).log。

里面记录 :Cannot set sga_target with db_block_buffers set

3、使用dos端登录oracle

sqlplus sys/sys@XXX(网络服务名). as sysdba
能够登陆
提示已经连接到空闲例程

4、找 pfile,在 /.../admin/XXX(服务名)/pfile 下,init.ora.XXXXXXX(数字串)

5、执行命令

SQL> startup pfile='pfile 路径'
通过指定的 pfile 启动数据库实例

结果如图

正在运行的数据库不支持 HiveSQL 语法怎么办 数据库提示正在装载_list_02

6、执行命令

SQL> create spfile from pfile='pfile 路径';(一定要有分号!)

创建成功会提示: 文件已创建。

数据库可以登录了,查看例程/配置/内存 ,恢复了原样。

对于32 BIT的Windows系统,有SGA 1.7G限制
某些OS系统本身也有一些内存参数限制

修改 SGA 文件:

SGA_MAX_SIZE是调优oracle9i非常重要的参数,但也是并不是调的越大越好。相反,oracle9i对SGA_MAX_SIZE的最大值有一个限制:1.7G,超过该值就会造成实例无法启动,系统报以下信息:


ORA-27102:out of memory,启动失败


ORA-27100:shared memory realm already exists,最终还是启动失败。


 


解决该问题的思路:想办法把SGA_MAX_SIZE的值修改到1.7G以下,然后再启动


 


   解决该问题需要用到从oracle9i开始才拥有的特性:spfile。


   spfile是一个二进制文件,可以通过pfile来创建,而且可以通过rman备份。它管理的是初始化参数;


   spfile和pfile不同之处在于:


   1.在oracle9i之前使用pfile存储初始化参数设置,当oracle实例启动时去读取这些参数,任何参数的修改都必须重启实例才能生效。


 


   2.使用spfile来管理初始化参数,可以使用ALTER SYSTEM或者ALTER SESSION来动态修改那些可动态修改的参数,不必重启实例立即生效。


 


   3.除了第一次启动数据库时,oracle读取的是pfile,然后根据pfile来创建spfile,从此启动我们不在需要pfile。


 


   4.pfile是文本文件,可以通过文本编辑器来修改,而spfile是二进制文件,用文本编辑器无法正常编辑。可以修改文本格式的pfile之后,用“create spfile from pfile”命令将文本生成二进制的spfile


 


   好,大概了解了spfile和pfile之后,我们的思路应该很清晰了,下面是解决方法:


   1.手动把实例的服务关闭(在服务里找到“OracleServiceSID”服务,右击选择“停止”)


 


   2.打开【程序】-【Oracle - OraHome92】-【Configuration and Migration Tools】-【Administration Assistant for Windows NT



 


   3.在该页面中打开树形结构,找到实例结点,右击实例结点选择“启动/关闭选项”,取消“服务启动时启动历程”选项。


 


   4.右击实例结点,点击“启动服务”。


 


   5.运行中敲入“cmd”,进入sqlplus,然后通过命令创建可以修改的pfile文本文件:


C:/Documents and Settings/Administrator>sqlplus /nolog


SQL*Plus: Release 9.2.0.1.0 - Production on 星期四 9月 24 22:43:20 2009


Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.


SQL> conn /as sysdba
已连接到空闲例程。
SQL> create pfile='d:/zgznew.ora' from spfile;


文件已创建。


  


SGA_MAX_SIZE参数,并将它修改到1.7G以下,注意,参数值的单位是字节。修改好之后保存,然后再通过命令创建spfile二进制文件:


SQL> create spfile from pfile='d:/zgznew.ora' ;


文件已创建。


 


 7.此时再用startup命令启动实例就可以成功了:


SQL> startup
ORACLE 例程已经启动。


Total System Global Area  529079780 bytes
Fixed Size                   454116 bytes
Variable Size             503316480 bytes
Database Buffers           25165824 bytes
Redo Buffers                 143360 bytes
数据库装载完毕。
数据库已经打开。