ORACLE 12c的数据库,以多租户方式运行,运行了一段时间,还比较稳定,分享一下相关参数修改。
1、一些参数
DEFERRED_SEGMENT_CREATION
默认是true,建议设置为false
_DATAFILE_WRITE_ERRORS_CRASH_INSTANCE
默认是true,所有datafile的IO写error,都会导致数据库crash。建议设置为false。12.2.0.1之后版本不用修改
JOB_QUEUE_PROCESSES
默认是1000,建议设置为你真正需要的数字。如果你不知道,建议设置为10。如
_OPTIMIZER_AGGR_GROUPBY_ELIM
默认是true,可能会导致groupby类的结果集错误。建议设置为false。
SESSION_CACHED_CURSORS
默认值是50,太小,容易导致内存碎片,建议设置为1000.
RAC环境设置ASM实例audit_sys_operations 参数设置为FALSE
RAC环境设置ASM实例PROCESSES参数2000
2、上线前打好补丁
请参考以下note查看Oracle相应的补丁(上线前安装最新补丁):
Assistant: Download Reference for Oracle Database/GI Update, Revision, PSU, SPU(CPU), Bundle Patches, Patchsets and Base Releases ( Doc ID 2118136.2 )
3、内存过大导致实例宕机(SGA超过600G)
The following workarounds are available until a permanent fix for base bug will be released:
1/ Increase sga_target by 10% and set _shared_io_pool_size=<granule_size> so that system component can allocate 1 granule during startup instead of asking buffer cache.
-- You can determine your granule size with this SQL:
SQL> select bytes from v$sgainfo where name like 'Granule Size';
-- and set _shared_io_pool_size=<granule_size> by running:
SQL> alter system set "_shared_io_pool_size"= <granule_size>;
- or -
2/ Comment the following in parameter file:
dispatchers = "(PROTOCOL=TCP) (SERVICE=<sid>XDB)" . <sid> should be replaced with the relevant ORACLE_SID value.
Refer more on 2250078.1.