Oracle启动 init.ora spfile pfile

来源:互联网 发布:天下三捏脸数据 编辑:程序博客网 时间:2024/04/24 22:04

http://www.educity.cn/ite/1598489.html

快下班的时候,公司数据库突然堵住了,一个buf表中累计了20多W的数据提取不出来,改了程序,效果不明显。因为之前有一次也重启过Oracle,所以这次还是想把oracle重启一下,因为那些数据都是客户要发送出去的东西,比较急,所以,经理就去机房把oracle重启了。他怎么重启的我也不知道,我只知道,重启之后,oracle起不来了。。那个电话啊。。那个催促啊。。

  >cmd

  >sqlplus sys/**** as sysdba

  SQL>startup

  ORA-00093:_shared_pool_reserved_min_alloc must be between 4000 and 0

  SQL>

  然后我找了一个其中有

  pga_aggregate_taarget=200M

  .....

  db_cache_size=200M

  ....

  shared_pool_size=200M

  ..

  的一个init什么w.ora的文件,不知道在哪里找的,把其中这3个参数改过去,改回来,启动还是报上面那个错,还有的错误是:

  SQL>startup

  ORA-00821:Specified value of sga_target 280M is too small,needs to be at least 692M

  SQL>

  

  D:\oracle\product\10.2.0\db_1\admin\orclyxkj\pfile\init.ora.4142011856

  ##############################################################################
# Copyright (c) 1991, 2001, 2002 by Oracle Corporation
##############################################################################
 
###########################################
# SGA Memory
###########################################
sga_target=890455552

  这个错误,我找到了下面这个文件,改了其中的sga_target=890455552(之前是sga_target=290455552),也就是增加了4倍,但奇怪的是,包括上面那个问题,不管你把参数改成多少,他每次报的错还是一样,上面说至少4000,我改了5000,6000都还是报那个错,现在这个,从原来的参数增加了4倍,还是报同样的错,于是我认为,这些文件不起作用。然后问了群里的高人,问题解决了:

  1.自建一个init.ora的oracle配置文件(随便放在哪里,我放在C盘根目录下面):

  orclyxkj.__db_cache_size=192937984
orclyxkj.__java_pool_size=4194304
orclyxkj.__large_pool_size=4194304
orclyxkj.__shared_pool_size=83886080
orclyxkj.__streams_pool_size=0
*.audit_file_dest='D:\oracle\product\10.2.0\db_1/admin/orclyxkj/adump'
*.background_dump_dest='D:\oracle\product\10.2.0\db_1/admin/orclyxkj/bdump'
patible='10.2.0.1.0'
ntrol_files='D:\oracle\product\10.2.0\oradata\orclyxkj\control01.ctl','D:\oracle\product\10.2.0\oradata\orclyxkj\control02.ctl','D:\oracle\product\10.2.0\oradata\orclyxkj\control03.ctl'
re_dump_dest='D:\oracle\product\10.2.0\db_1/admin/orclyxkj/cdump'
*.db_block_size=8192
*.db_cache_size=188743680
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_name='orclyxkj'
*.db_recovery_file_dest='D:\oracle\product\10.2.0\db_1/flash_recovery_area'
*.db_recovery_file_dest_size=2147483648
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclyxkjXDB)'
*.job_queue_processes=10
*.open_cursors=300
*.pga_aggregate_target=96468992
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
a_target=1073741824                     #这个之前很小,启动还是报错,于是把这个参数调大,内存2G,调的1G
*.shared_pool_size=0                            #然后把share_pool都改为0(这个我不知道为什么,回头研究)
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='D:\oracle\product\10.2.0\db_1/admin/orclyxkj/udump'

  2。启动的时候:

  SQL>startup pfile=c:\init.ora

  然后就发现,oracle可以开起来了!可以在SQL>下面进行查询了。但是,这并不代表着就可以通过pl/sql访问oracle了。

  另外还要执行一句非常重要的话,之前没执行这句话,pl/sql一直不能访问oracle,执行完后,终于可以访问:

  SQL>create spfile from pfile='c:\init.ora'

  注意,pfile=后面的路径一定要加单引号,要不然报“invalied file name”错误。

  3。配置监听。

  打开oracle的Net Configration Assistent,可以删除曾经的监听,再新建一个监听,或者直接配置之前已经有的监听。

  若新建监听:

  Oracle Net Configration Assistent--》本地Net服务名配置--》添加--》服务名(自己写,一般和数据库名一样orclyxkj)--》TCP--》主机名:(127.0.0.1)--》不进行测试--》网络服务名(默认和前面设置的服务名一样)--》后面要指定路径的,指定到db_1这一层(D:\oracle\product\10.2.0\db_1)

  若更改旧监听:

  在Oracle Net Manager页面:

  本地--》服务命名--》orclyxkj(自己的服务器名)--》

  --》服务标识:

  服务名:orclyxkj

  SID:(灰的,无法填)

  连接类型:数据库默认设置

  --》地址配置:

  地址1:

  协议:TCP/IP

  主机名:192.168.1.X(我认为,这里一定要写本机IP,之前试过写本机名或者127.0.0.1,到后来开监听服务的时候,都会报错)

  端口号:XXXX(默认是1521)

  -------》监听程序

  LISTENER:

  地址1,和上面配一样,然后保存,监听就配好了。

  4。开启服务:

  我的电脑--》管理--》服务和应用程序--》服务(需要启动2个oracle服务):

  OracleOraDb10g_home1TNSListener (启动这个的时候如果报“进程以外终止”错误,就到上面把监听配置正确)

  OracleServiceORCLYXKJ

  到这2个服务都正常开启,好了,可以通过pl/sql正常访问oracle了!

  精华啊,弄到晚上4点半啊!其中sga_target为什么那么写,我要进一步了解!


      在Oracle 12c中,pfile的位置在   C:\app\orcl\admin\DBName\pfile; 在该文件夹下可能有因为以前启动错误,Oracle生成的临时文件,可以用该文件启动。startup pfile='C:\app\orcl\admin\DBName\pfile\init.ora.7202014143426';


0 0
原创粉丝点击