关于Orcal 11g数据库ORA-01034 与ORA-27101报错的解决办法,非

阅读更多

    技术人员,写文章有些啰嗦。

   

    先写背景,之前在开发的笔记中安装了Orcal数据,每次开机占用很多内存,目前配置DDR4 8G,配置还行,奈何强迫症犯了,非得想优化一下,想降低一些内存。

    百度“Orcal修改内存”,其中:http://blog.csdn.net/lightupheaven/article/details/7275447

修改oracle中内存占用大小 
在默认安装情况下,oracle的内存分配是按系统内存的大小比例分配的,内存比较大的情况下,oracle所占的内存也大,该情况下,我们一般要修改sga值来减少系统中oracle的内存过大问题。
用dba身份进入Oracle,笔者在plsql中对数据库进行管理:

show parameter sga; --显示内存分配情况

alter system set sga_max_size=200m scope=spfile; --修改占用内存的大小

注:在PL/SQL中 在command window中的Editor模式下使用以上命令

    

    于是执行以上命令修改数据库内存,之后没在用电脑的数据库,一直用服务器公用数据。近期需要外出演示项目,用PL/SQL登录,出现了经典的数据库错误:

 

ERROR:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
进程 ID: 0
会话 ID: 0 序列号: 0

     

    以上纯属假设由于修改了数据的占用内存大小引发的此错误,通过搜索“set sga_max_size ORA01034”没有找到相关的信息,所以纯属假设。除了问题马上解决。

    搜索“ORA-01034 与ORA-01034”出现的问题一大堆,几乎是一样的路子:

 

解决方法:
sqlplus /nolog
connect / as sysdba
startup

验证结果:重新用户名密码登录,成功

   

    如果您能解决问题了,就不必往下看了。我就出现了问题,执行命令“connect / as sysdba”,会有:

 

ERROR:
ORA-01031: insufficient privileges

   错误。没有授权,继续解决“ORA01031”的问题。

   网址:http://blog.csdn.net/wyzxg/article/details/4301266

ORA-01031:insufficient privileges解决方法总结 
sqlplus "/ as sysdba" 连不上,报ora-01031:insufficient privileges解决方法

注意多个数据库实例时候,set ORACLE_SID='',
1、检查sqlnet.ora(WINDOWS下位于%ORACLE_HOME%NETWORKADMIN目录)是否包含这句:SQLNET.AUTHENTICATION_SERVICES=(NTS),没有的话加上

2、检查登陆windows的用户(administrator或安装Oracle时候使用的用户)是不是在包含在ORA_DBA组中,域用户没有连上域服务器时就可能出现这种现象。
3. 要保证 remote_login_passwordfile 参数 = EXCLUSIVE .
4. 看看是否需要使用orapassw生成口令文件 .

    

    1和2没问题,第3步,你让win10家庭版正版的用户情何以堪。

http://jingyan.baidu.com/article/09ea3ede1fdef2c0aede393a.html

 

这不是Windows10版本的问题,不是电脑的问题。家庭版的win10没有这些功能,只有Windows10 Pro(专业版)版本以上才有这些功能。如果要解决这些功能,就需要升级到专业版。

     

    ===========================华丽的分割线============================

 

    8点下班回家了,路上用手机搜索了一个思路,继续往添加ORA_DBA组上努力。

    网址:http://blog.csdn.net/J080624/article/details/52736057

“sqlplus / as sysdba”执行失败---Win10下,DOS命令添加系统用户到ora_dba用户组
ORA_DBA:是Oracle 的特有用户,是超级管理员权限,建成DBA 它具有管理数据库的最高权限。

1.利用命令查看当前系统用户:net user

这里写图片描述

这是当前系统中所有的用户。

2.查看用户组

net localgroup–查看用户组;

这里写图片描述

3.查看ora_dba用户组下的具体用户:

net localgroup ora_dba;

这里写图片描述

并没有第一步中查到的本机管理员用户。

4.添加本机管理员用户到ora_dba用户组下:

net localgroup ora_dba administrator /add;
也可以添加用户组到该组下
net localgroup ora_dba administratos /add;

这里写图片描述

5.此时,成功执行 “sqlplus / as sysdba”

这里写图片描述

   

    添加ORA_DBA的那一刻终于豁然了,中间有个小插曲“发送系统错误 5.”,此时需要用管理员权限运行CMD。

    一波未平一波又起,运行“startup”命令时报错:

 
ORA-00837: Specified value of MEMORY_TARGET greater than MEMORY_MAX_TARGET
SQL> show parameter sga
ORA-01034: ORACLE not available
进程 ID: 0
会话 ID: 0 序列号: 0

   

    虽然报错,感觉离成功又近一步了。

    网址:http://www.cnblogs.com/vipsoft/archive/2012/12/21/2827460.html

 

SQL> startup;
ORA-00837: Specified value of MEMORY_TARGET greater than MEMORY_MAX_TARGET

SQL> startup pfile='E:\app\Administrator\admin\orcl\pfile\init.ora.10192012163956';
ORACLE 例程已经启动。

Total System Global Area 3423965184 bytes
Fixed Size                  2180544 bytes
Variable Size            1862273600 bytes
Database Buffers         1543503872 bytes
Redo Buffers               16007168 bytes
数据库装载完毕。
数据库已经打开。
SQL> show parameter sga

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
lock_sga                             boolean     FALSE
pre_page_sga                         boolean     FALSE
sga_max_size                         big integer 3280M
sga_target                           big integer 0
SQL> show parameter memory

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
hi_shared_memory_address             integer     0
memory_max_target                    big integer 3280M
memory_target                        big integer 3280M
shared_memory_address                integer     0
SQL> create spfile from pfile;
create spfile from pfile
*
第 1 行出现错误:
ORA-01078: 处理系统参数失败
LRM-00109: could not open parameter file
'E:\APP\Administrator\PRODUCT\11.2.0\DBHOME_1\DATABASE\INITZJGSID.ORA'


SQL> create spfile from memory;

文件已创建。

SQL> shutdown abort
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。

Total System Global Area 3423965184 bytes
Fixed Size                  2180544 bytes
Variable Size            1879050816 bytes
Database Buffers         1526726656 bytes
Redo Buffers               16007168 bytes
数据库装载完毕。
数据库已经打开。
SQL> show parameter sga;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
lock_sga                             boolean     FALSE
pre_page_sga                         boolean     FALSE
sga_max_size                         big integer 3280M
sga_target                           big integer 0
SQL> show parameter memory;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
hi_shared_memory_address             integer     0
memory_max_target                    big integer 3280M
memory_target                        big integer 3280M
shared_memory_address                integer     0 

SQL> select count(1) from v$session;

  COUNT(1)
----------

SQL>

   至此,完美解决问题。

你可能感兴趣的:(Orcal,ORA01034,ORA27101)