oracle啟動 init.ora spfile pfile[轉]


昨天晚上快下班的時候,公司數據庫突然堵住了,一個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'
*.compatible='10.2.0.1.0'
*.control_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'
*.core_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     #這個是pga的大小,96M。oracle 一共 使用內存 1.7 g。1.7g   的話   80% 給 sga(1.36M) ,20% 給 pga(0.34M)


*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_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為什么那么寫,我要進一步了解!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM