一、說明
在Oracle安裝過程中,可能遇到out of memory這種錯誤,這是由於系統記憶體不足導致。我們可以通過加記憶體的方式解決。
而如果是另一種情況呢: 例如我在主機上裝了兩個Oracle服務端,其中Oracle12c安裝在/u01/app/oracle目錄下,Oracle11g安裝在/u02/app/oracle目錄下。
首先我安裝Oracle12c時多給了記憶體,導致後面安裝Oracle11g時報錯:out of memory。此時我該如何調整Oracle12c的記憶體呢。
二、調整記憶體
方法一:通過修改設定檔中的參數進行調整
1.使用oracle使用者登入Oracle12c的安裝目錄中,找到inita4orcl.ora檔案
vi /u01/app/oracle/dbs/inita4orcl.ora
a4orcl.__data_transfer_cache_size=0a4orcl.__db_cache_size=7784628224a4orcl.__java_pool_size=100663296a4orcl.__large_pool_size=167772160a4orcl.__oracle_base='/u01/app'#ORACLE_BASE set from environmenta4orcl.__pga_aggregate_target=3388997632a4orcl.__sga_target=10099884032a4orcl.__shared_io_pool_size=536870912a4orcl.__shared_pool_size=1476395008a4orcl.__streams_pool_size=0*.audit_file_dest='/u01/app/admin/a4orcl/adump'*.audit_trail='db'*.compatible='12.1.0.2.0'*.control_files='/u01/app/oradata/a4orcl/control01.ctl','/u01/app/fast_recovery_area/a4orcl/control02.ctl'*.db_block_size=8192*.db_domain=''*.db_name='a4orcl'*.db_recovery_file_dest='/u01/app/fast_recovery_area'*.db_recovery_file_dest_size=4560m*.diagnostic_dest='/u01/app'*.dispatchers='(PROTOCOL=TCP) (SERVICE=a4orclXDB)'*.open_cursors=300*.pga_aggregate_target=3207m*.processes=300*.remote_login_passwordfile='EXCLUSIVE'*.sga_target=9623m*.undo_tablespace='UNDOTBS1'
修改sga_target的值,此處修改為6144m,即6個G
2.登入Oracle12c資料庫中,執行如下命令
create spfile from pfile;
3.重啟資料庫
shutdown immediate;
startup;
方法二:通過命令列進行調整
1.登入Oracle12c資料庫中,執行如下命令
alter system set sga_target='6144m' scope=spfile;
alter system set sga_max_size='6144m' scope=spfile;
2.重啟資料庫
shutdown immediate;
startup;
三、關於pfile和spfile的說明
本例中:pfile就是inita4orcl.ora
pfile和spfile都是資料庫的重要檔案,資料庫優先使用spfile。
spfile是二進位檔案,無法直接進行修改;
pfile是文字檔,可以進行修改;所以這兩種檔案可根據對方來進行產生;
例如:當前spfile檔案中的記憶體的值為9623M,系統優先使用它。但它無法直接進行修改。
我可以通過修改pfile後,再通過pfile檔案來產生spfile。這樣spfile不就改過來了嗎?
#由spfile產生pfile
create pfile from spfile;
#由pfile產生spfile
create spfile from pfile;