oracle10G 从ORA-12154到重建数据库再到ORA-04031的艰辛路程

   5月28一大早接到电话说网站打不开,根据以往经验判断肯定是存放数据库的服务器出问题了,登录上去把服务器重启,过了一会在看网站还不行,在重启...还不行。想了想 问题大了,查看数据库的服务都是运行的、oracle的进程也有 在看看后面内存使用才19M。晕死内存使用杂和原来的不一样,平时都有200M多。使用PLSQL Developer登录提示ORA-12154错误,百度一下,找了几篇解决方法,试了下都不行。就这样一天快过去了经理也急 我也急,没办法找高手解决(之前这个数据库出问题都是这个人在弄,问题也是一样。和她联系后他来弄,还以为一会就好。1个小时过去了、2个小时过去了、在看看网站还不行,打电话询问了下怎么样、他说今天数据库很诡异什么都是好好的 数据库就是连不上,算了不弄了,重做数据库,有一个备份应该快,晚上通宵弄,卸载数据库)

步骤:

1、开始->设置->控制面板->管理工具->服务停止所有Oracle服务。

2、开始->程序->Oracle – OraDb10g_home1>Oracle Installation Products-> Universal Installer 卸装所有Oracle产品,但Universal Installer本身不能被删除。

3、运行regedit,选择HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE,按del键删除这个入口。

4、运行regedit,选择HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services,滚动这个列表,删除所有Oracle入口。

    有的电脑上还有CurrentControlSet001、CurrentControlSet002、CurrentControlSet003这些节点下的Services里面都要看下

5、运行regedit,选择HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application,删除所有Oracle入口。

    和4上面的一样里面都要看下

6、运行regedit,选择HKEY_CLASSES_ROOT下面的带有oracle和ora开头的名称都要删除掉

7、重启电脑、再把带有oralce目录全删除掉,这样基本都卸载完了。、

我是先安装Oracle10g Release1(10.1.0.2).iso在安装Oracle10g Client Release1(10.1.0.2).iso的装完后发现不对两个装在不同的目录下了郁闷就这样用吧!先创建一个表空间,在登录PLSQL Developer里面创建用户并给与新建的表空间和常用权限,完成后导入数据也非常顺利,高兴了一小会。把网站服务器的数据库也配置了一下连接也改好了,开始打开网站了,那叫一个慢,看了看数据库服务器的CPU不高 最后提出一个错误页面,试了下服务器上部署的webservice怎么到了取数据那一页就白板。在看看后台报什么错提示(System.Data.OracleClient   需要Oracle   客户端软件8.1.7   或更高版本 System.Data.OracleClient   需要Oracle   客户端软件8.1.7   或更高版本 )通常把oracle目录安全里面加一个network service权限就好。可以我加完后电脑也重启了 就是不行,真是恨自己装的时候怎么不装在一起,已经快晚上11点了还有时间在把数据库卸载重装一次,这次装在一个目录里面,和开始的步骤一样把oracle目录安全里面加一个network service权限,过了一会 可以访问了 就是好慢,网站打开也是慢的很,在用PLSQL Developer登录提示oracle进程超出最大连接数,oracle优化没弄过,网站慢的很,经理也连连说慢一会打的开一会打不开,只有硬着头皮上了,在网上找了找优化方法一个一个试,先把连接数改一下看看效果,oracle默认的只有150,我狠下心改1000试下,使用

alter system set processes=1000 scope=spfile 然后手动重启oracle服务这次启动咋那么快有问题,看看了任务管理器中oracle进程内存使用只用20M,晕数据库又出问题了,赶紧百度,找了一片
1、进入Sqlplus控制台,命令:sqlplus /nolog
2、以系统管理员登录,命令:connect / as sysdba
3、启动数据库,命令:startup
提示在C:\oracle\product\10.1.0\Db_1\database\init.ora文件不存在 我也看看了目录里面确实没有这个目录 在网上找了些资料说什么把C:\oracle\product\10.1.0\admin\orcl\pfile\init.ora.4292012235036文件cp到C:\oracle\product\10.1.0\Db_1\dbs\initorcl.ora下我也试过了还是不行,天快亮了想想怎么要是重新装数据库怕是来不了,我平静下来想了想可不可以把init.ora.4292012235036文件改为init.ora把它放到C:\oracle\product\10.1.0\Db_1\database\目录下,我带着疑惑试了下,改完cp后在运行startup提示ORACLE instance started...成功启动,真是高兴居然被我弄好了。天亮了身体也疲倦,工作了24小时了,真是感觉有点累了,打开网站的首页,缓缓的出来了。没办法了,这时我想离开这我。经理过来问情况,数据库好了,就是还没优化,要在找弄数据库的那个人帮忙弄下。我做地铁回家了,在地铁小睡了1.5个小睡,只有盼望那个高手了。
上午没有联系上,下午联系了让他弄下,他也是一样增加了临时表空间,我也给数据库表加了索引,优化了sql优化
效果不是很好,网站还是慢。晚上了先不管了先把身体弄好在。到了第三天,想在让弄数据库的高手看看居然还是联系不上,看样子只能靠自己了,平静的心情让我想了想init.ora文件我再去看看居然不见了奇怪,我在返回到C:\oracle\product\10.1.0\admin\orcl\pfile\init.ora.4292012235036文件看看,用记事本看了会里面有

##############################################################################
# Copyright (c) 1991, 2001, 2002 by Oracle Corporation
##############################################################################

###########################################
# Job Queues
###########################################
job_queue_processes=10

###########################################
# Shared Server
###########################################
dispatchers="(PROTOCOL=TCP) (SERVICE=orclXDB)"

###########################################
# Miscellaneous
###########################################
compatible=10.1.0.2.0

###########################################
# Security and Auditing
###########################################
remote_login_passwordfile=EXCLUSIVE

###########################################
# Sort, Hash Joins, Bitmap Indexes
###########################################
pga_aggregate_target=25165824
sort_area_size=65536

###########################################
# Database Identification
###########################################
db_domain=""
db_name=orcl

###########################################
# File Configuration
###########################################
control_files=("c:\oracle\product\10.1.0\oradata\orcl\control01.ctl", "c:\oracle\product\10.1.0\oradata\orcl\control02.ctl", "c:\oracle\product\10.1.0\oradata\orcl\control03.ctl")
db_recovery_file_dest=c:\oracle\product\10.1.0\flash_recovery_area
db_recovery_file_dest_size=2147483648

###########################################
# Pools
###########################################
java_pool_size=50331648
large_pool_size=8388608
shared_pool_size=83886080

###########################################
# Cursors and Library Cache
###########################################
open_cursors=300

###########################################
# System Managed Undo and Rollback Segments
###########################################
undo_management=AUTO
undo_tablespace=UNDOTBS1

###########################################
# Diagnostics and Statistics
###########################################
background_dump_dest=c:\oracle\product\10.1.0\admin\orcl\bdump
core_dump_dest=c:\oracle\product\10.1.0\admin\orcl\cdump
user_dump_dest=c:\oracle\product\10.1.0\admin\orcl\udump

###########################################
# Processes and Sessions
###########################################
processes=150

###########################################
# Cache and I/O
###########################################
db_block_size=8192
db_cache_size=25165824
db_file_multiblock_read_count=16

大概看了看里面的open_cursors、processes明白是什么意思,就是不知道改这个是不是对数据有什么危险吧。经理来电话了询问我怎么弄,我把我想法和他说了,他也同意了,我先把init.ora.4292012235036做了一个备份以防万一,在把里面的open_cursors、processes值改了都是500然后cp到C:\oracle\product\10.1.0\Db_1\database\目录下运行登录到sysdba模式下运行startup也启动了使用select * from v$parameter查询看看里面值有没有修改过来 还是一样没被修改过来,在百度里找到startup后边可以带pfile='init.ora的物理路径',又试了下也运行成功了,查看了参数没想到修改成功了,胆子大了起来,我又回到init.ora文件中的参数db_cache_size、pga_aggregate_target、sort_area_size这几个百度了下说也和性能有关,我也修改了下修改后的文件是

##############################################################################
# Copyright (c) 1991, 2001, 2002 by Oracle Corporation
##############################################################################

###########################################
# Job Queues
###########################################
job_queue_processes=10

###########################################
# Shared Server
###########################################
dispatchers="(PROTOCOL=TCP) (SERVICE=orclXDB)"

###########################################
# Miscellaneous
###########################################
compatible=10.1.0.2.0

###########################################
# Security and Auditing
###########################################
remote_login_passwordfile=EXCLUSIVE

###########################################
# Sort, Hash Joins, Bitmap Indexes
###########################################
pga_aggregate_target=55165824
sort_area_size=1065536

###########################################
# Database Identification
###########################################
db_domain=""
db_name=orcl

###########################################
# File Configuration
###########################################
control_files=("c:\oracle\product\10.1.0\oradata\orcl\control01.ctl", "c:\oracle\product\10.1.0\oradata\orcl\control02.ctl", "c:\oracle\product\10.1.0\oradata\orcl\control03.ctl")
db_recovery_file_dest=c:\oracle\product\10.1.0\flash_recovery_area
db_recovery_file_dest_size=2147483648

###########################################
# Pools
###########################################
java_pool_size=500331648
large_pool_size=8388608
shared_pool_size=83886080

###########################################
# Cursors and Library Cache
###########################################
open_cursors=500

###########################################
# System Managed Undo and Rollback Segments
###########################################
undo_management=AUTO
undo_tablespace=UNDOTBS1

###########################################
# Diagnostics and Statistics
###########################################
background_dump_dest=c:\oracle\product\10.1.0\admin\orcl\bdump
core_dump_dest=c:\oracle\product\10.1.0\admin\orcl\cdump
user_dump_dest=c:\oracle\product\10.1.0\admin\orcl\udump

###########################################
# Processes and Sessions
###########################################
processes=500

###########################################
# Cache and I/O
###########################################
db_block_size=8192
db_cache_size=55165824
db_file_multiblock_read_count=16

运行了这个文件后数据库正常,运行下网站速度快了不少,我立马给经理打了个电话让他们看了下,他说速度可以。我高兴死了,没想到这个问题到最后还是我给弄好了。晚上了要给数据库做一个备份有错误ORA-04031: unable to allocate bytes of shared memory ("shared pool","unknown object","joxlod: init h", "JOX: ioc_allocate_pal") 百度了下,没找到合适的方法,快到12点了找了一篇里面提示说 解决办法是关闭数据库然后把参数 JAVA_POOL_SIZE 设定为一个较大的值。这里错误信息中提到的 "shared pool" 其实共享全局区(SGA)溢出的误导,并不表示你需要增加SHARED_POOL_SIZE,相反,你必须加大 JAVA_POOL_SIZE 参数的值,然后重启动系统。我想这个可以试下,带着探索的想法弄下没想到可以。数据库基本都弄好了。现在生活又回到以前的平静了....


 

 

posted @ 2012-06-01 11:07  tiger longhu  阅读(269)  评论(0编辑  收藏  举报