数据库运行一定时间后,性能调优就显得很重要了,其中一项就是调整SGA区域。
成都创新互联公司科技有限公司专业互联网基础服务商,为您提供服务器托管德阳,高防物理服务器租用,成都IDC机房托管,成都主机托管等互联网服务。一个朋友在测试机上练习增大SGA动作。发出如下命令:
更改系统的sga大小
alter system set sga_max_size=4g scope=spfile;
alter system set pga_aggregate_target=2G;
alter system set sga_target=4g scope=spfile;
shutdown immediate
startup
系统直接报错:SQL> conn / as sysdba
Connected to an idle instance.
SQL> startup
ORA-27102: out of memory
程序测试人员要用数据库,如何恢复?
解决办法如下:
[hqmss@topup dbs]$ sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on Mon Jul 1 10:45:58 2013
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL> conn / as sysdba
Connected to an idle instance.
SQL> create pfile from spfile;
在当前系统下生产pfile文件,修改参数文件的内存信息。
[hqmss@topup dbs]$ vi initHQMSS.ora
HQMSS.__db_cache_size=1660944384
HQMSS.__java_pool_size=33554432
HQMSS.__large_pool_size=16777216
HQMSS.__shared_pool_size=419430400
HQMSS.__streams_pool_size=0
*.audit_file_dest='/opt/oracle/admin/HQMSS/adump'
*.background_dump_dest='/opt/oracle/admin/HQMSS/bdump'
*.compatible='10.2.0.1.0'
*.control_files='/opt/oracle/oradata/HQMSS/control01.ctl','/opt/oracle/oradata/HQMSS/control02.ctl','/opt/oracle/oradata/HQMSS/control03.ctl'
*.core_dump_dest='/opt/oracle/admin/HQMSS/cdump'
*.db_block_size=8192
*.db_domain=''
*.db_file_multiblock_read_count=8
*.db_name='HQMSS'
*.DB_UNIQUE_NAME='stanDB'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=HQMSSXDB)'
*.FAL_CLIENT='primDB'
*.FAL_SERVER='stanDB'
*.job_queue_processes=10
*.LOG_ARCHIVE_CONFIG='DG_CONFIG=(primDB,stanDB)'
*.LOG_ARCHIVE_DEST_1='LOCATION=/opt/oracle/flash_recovery_area/HQMSS/onlinelog/
VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=stanDB'
*.LOG_ARCHIVE_DEST_2='SERVICE=primDB LGWR ASYNC
VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=primDB'
*.LOG_ARCHIVE_DEST_STATE_1='ENABLE'
*.LOG_ARCHIVE_DEST_STATE_2='ENABLE'
*.open_cursors=300
*.pga_aggregate_target=2147483648
*.processes=750
*.REMOTE_LOGIN_PASSWORDFILE='EXCLUSIVE'
*.sessions=830
*.sga_max_size=4294967296
*.sga_target=4294967296
*.STANDBY_FILE_MANAGEMENT='AUTO'
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='/opt/oracle/admin/HQMSS/udump'
~
修改后的文件如下:
[hqmss@topup dbs]$ vi initHQMSS.ora
HQMSS.__db_cache_size=1660944384
HQMSS.__java_pool_size=33554432
HQMSS.__large_pool_size=16777216
HQMSS.__shared_pool_size=419430400
HQMSS.__streams_pool_size=0
*.audit_file_dest='/opt/oracle/admin/HQMSS/adump'
*.background_dump_dest='/opt/oracle/admin/HQMSS/bdump'
*.compatible='10.2.0.1.0'
*.control_files='/opt/oracle/oradata/HQMSS/control01.ctl','/opt/oracle/oradata/HQMSS/control02.ctl','/opt/oracle/oradata/HQMSS/control03.ctl'
*.core_dump_dest='/opt/oracle/admin/HQMSS/cdump'
*.db_block_size=8192
*.db_domain=''
*.db_file_multiblock_read_count=8
*.db_name='HQMSS'
*.DB_UNIQUE_NAME='stanDB'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=HQMSSXDB)'
*.FAL_CLIENT='primDB'
*.FAL_SERVER='stanDB'
*.job_queue_processes=10
*.LOG_ARCHIVE_CONFIG='DG_CONFIG=(primDB,stanDB)'
*.LOG_ARCHIVE_DEST_1='LOCATION=/opt/oracle/flash_recovery_area/HQMSS/onlinelog/
VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=stanDB'
*.LOG_ARCHIVE_DEST_2='SERVICE=primDB LGWR ASYNC
VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=primDB'
*.LOG_ARCHIVE_DEST_STATE_1='ENABLE'
*.LOG_ARCHIVE_DEST_STATE_2='ENABLE'
*.open_cursors=300
*.pga_aggregate_target=343597384
*.processes=750
*.REMOTE_LOGIN_PASSWORDFILE='EXCLUSIVE'
*.sessions=830
*.sga_max_size=2147483648
*.sga_target=2147483648
*.STANDBY_FILE_MANAGEMENT='AUTO'
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='/opt/oracle/admin/HQMSS/udump'
启动数据库:
SQL> conn / as sysdba
Connected to an idle instance.
SQL> startup pfile='/opt/oracle/product/10.2.0/db/dbs/initHQMSS.ora';
ORACLE instance started.
Total System Global Area 2147483648 bytes
Fixed Size 1220460 bytes
Variable Size 469762196 bytes
Database Buffers 1660944384 bytes
Redo Buffers 15556608 bytes
Database mounted.
Database opened.
SQL> create spfile from pfile;
File created.