oracle建库配置规范

写此文单的目的:实际工作的项目集成中数据库安装完毕后,会遇到因为配置不规范而给后期运维带来的各种问题,此文档统一规范可能遇到的问题,以防增加后期的工作量。

一、初始化参数配置


名词解释:

open_cursors

单个会话打开游标数。通常默认值够用,如果超过默认值,说明代码可能存在问题,如打开游标未关闭。调整此参数以减少报错。


db_files

此参数控制数据文件个数。对于大库(容量超过5T),存在此参数值不足的可能,调整此参数需要重启实例,故可在建库时直接调整到位(建库前询问研发人员数据将最终成长到多少)。

processes

此参数控制最大进程数,相关参数为sessions,但只调整此参数即可。默认150在大多数场景都偏小,要求至少在600,或者询问研发人员。


fast_start_mttr_target

控制实例恢复时间,即做检查点。设置此值控制实例恢复在150秒,可根据需要调整。

max_dump_file_size

控制单个trace文件的大小。调整此参数可防止trace文件意外变大撑满文件系统。

session_cached_cursors

控制会话可以缓存的游标数。增加该值以减少软解析。


_undo_autotune

默认参数值可能导致undo空间回收慢,增加ora-01555错误的概率。


_gc_policy_time , _gc_undo_affinicy

控制RAC中的DRM特性启用与否。因为应用软件很少针对RAC做访问控制,所以DRM特性经常造成网络流量巨大,严重时导致数据库hang,弊大于利,故一般需要禁用。

这两个参数是oracle 11g中关闭DRM的参数。

_gc_affinicy_time , _gc_undo_affinicy

同上,这两个参数是oracle 10g中关闭DRM的参数

audit_trail

审计用户登录,11g时默认开启审计。大多系统中并没有人关心哪些会话登录了系统,而大量的登录记录(特别是短连接系统)会导致系统表空间迅速膨胀,对系统性能带来影响,故尽量将其关闭。


deferred_segment_creation

延迟段生成是11g新特性,可能导致exp工具无法导出表,故尽量关闭。


_optimiter_use_feedback

该参数默认值经常导致SQL语句的执行计划频繁改变,故尽量关闭。

_clusterwide_global_transcations

该参数经常触发bug,或者在使用dblink产生DFS lock handle等待事件,故尽量关闭。

调整命令


  • 11g以上

alter system set open_cursors=500 scope=both;

alter system set db_files=500 scope=spfile;

alter system set processes=600 scope=spfile;

alter system set max_dump_file_size=104857600 scope=both;

alter system set fast_start_mttr_target=150 scope=both;

alter system set session_cached_cursors=200 scope=spfile;

alter system set "_undo_autotune"=false scope=both;

alter system set "_gc_policy_time"=0 scope=spfile;

alter system set "_gc_undo_affinity"=false scope=spfile;

alter system set audit_trail=none scope=spfile;

alter system set deferred_segment_creation=false scope=both;

alter system set "_optimizer_use_feedback"=false scope=both;

alter system set "_clusterwide_global_transactions"=false scope=spfile;


  • 10g


alter system set open_cursors=500 scope=both;

alter system set db_files=500 scope=spfile;

alter system set processes=600 scope=spfile;

alter system set max_dump_file_size=104857600 scope=both;

alter system set fast_start_mttr_target=150 scope=both;

alter system set session_cached_cursors=200 scope=spfile;

alter system set "_undo_autotune"=false scope=both;

alter system set "_gc_affinity_time"=0 scope=spfile;

alter system set "_gc_undo_affinity"=false scope=spfile;


二、数据库文件配置

1.控制文件

原则:
默认控制文件在建库时有冗余,(rac 11g 默认为一个),保持即可。

调整方法:
如果数据库控制文件没有冗余,首先需要停止所有实例,手工copy一份控制文件,并且调整pfile或spfile。如果是rac 11g R2 操作如下:
#su - grid
$asmcmd
asmcmd>pwd
+data/slmz/controlfile
asmcmd>cp current.111213 crotrol02.ctl
再使用oracle用户调整参数
alter system set control_file='+data/slmz/controlfile/control01.ctl','+data/slmz/controlfile/control02.ctl' scope=spfile sid='正调整的实例名'



2.重制日志
 原则:
  • 数据库默认的redo log 的组数偏少,单实例为三组,RAC为两组,建议rac每个实例至少有5组redo log。
  • redo log 默认没冗余,也就是每组一个成员,但建议在存储IO性能足够的情况下,增加redo log 的冗余。
  • 数据库默认的redo log容量偏小,尽量保证每小时切换次数小于等于4次,且至少>=256m.
 调整方法:
redo log 成员要先加后删,命令如下:
  • 单实例

加日志组: 

alter database add log file group 4 ('/oradata/orcl/redo04.log') size 256m;

删日志组:

alter database drop log file group 1;

  • RAC
加日志组:

alter database add logfile thread 1 group 8 ('+data/orcl/onlinelog/redo8a.log') size 256m;

*‘thread 1’为实例号,根据需要调整;


删日志组:

alter database drop logfile group 1;


组内增加日志组成员

alter database add log file member '+data/orcl/redo8b.log' to group 8;

⚠️

删除日志组需将其状态切换到inactive状态,命令如下:

alter system  switch log file;

alter system checkpoint;

select group#,thread#,members, status bytes/1048576 size_mb from v$log;


3.archivelog

原则:

开归档一定要有删除策略,避免归档空间被撑满。


4.undo tablespace

原则:

建库默认空间偏小,建议resize当前文件大小或增加当前文件大小

alter database datafile '+data/orcl/undotbs01.dbf' resize 2048m;

 

5.temp tablespace

原则:同undo tablespace

alter database tempfile '+data/orcl/temp.dbf' resize 2048m;


6.监听文件(11g)

为防止警告日志出现 Fatal NI connect error 12170 报错

编辑listener.ora

INBOUND_CONNECT_TIMEOUT_LISTENER = 0

DIAG_ADR_ENABLED_LISTENER = OFF

编辑sqlnet.ora

DIAG_ADR_ENABLED = OFF

SQLNET.INBOUND_CONNECT_TIMEOUT = 0

重启或reload监听


三、用户配置

1.用户密码的有效期(11g以上)

11g默认的用户密码有效期为180天,绝大多数需调整为无限制


2.用户密码尝试错误次数(11g以上有密码验证延迟)

用户登录时如果密码错误,尝试10次后会被锁定,使用一下命令允许无限制尝试

alter profile DEFAULT LIMIT FAILED_LOGIN_ATTEMPS unlimited;

⚠️:对于11g以上版本,如果尝试错误密码次数过多,会导致正常用户登录缓慢,可以通过事假28401禁用密码验证延迟。所以调整上述配置文件时,同时也应设置以下事件

实例级设置:

alter system set events '28401 trace name context forever, level 1';

系统级设置

alter system set event = '28401 trace name context forever , level 1 ' scope = spfile;


四、备份配置

1.控制文件快照路径(11g以上RAC环境)
11g以上RAC环境,需要控制文件快照放在共享存储上(共享文件系统或ASM中),否则备份会失败,默认位置一般为:
configure snapshot controlfile name to '/u01/app/oracle/product/11.2.0/dbname/snapcf_orcl1.f';
调整方法为:
rman target /
configure snapshost controlfile name to '+data/snapcf_orcl1.f'



五、其他配置


1.初始统计信息收集

实际运行中发现如果不收集固定对象统计信息会影响数据库监控时的监控效果,在用户对象创建前运行:

exec dbms_stats.GATHER_DATABASE_STATS(no_invalidate=>false);

exec dbms_stats.GATHER_FIXED_OBJECTS_STATS(no_invalidate=>false);

收集系统信息,便于数据库引擎作出更贴近实际的IO,运算时间估算

exec stats.GATHER_SYSTEM_STATS(gathering_mode=>'NOWORKLOAD');


2.  _serial_direct_read (11g以上)

对于数据量较大,内存较大或存储较慢的环境,可考虑修改此参数为never(默认为auto),减少物理IO,操作方法如下:

alter system set "_serial_direct_read"=never scope=spfile;

重启实例生效

该命令也可以用事件10949 替代,此事件可以在实例级别设置,不用重启实例,也可以在参数文件里设置,方法如下:

alter system set events '10949 trace name context forever';

alter system set events '10949 trace name context forever' scope=spfile;



3.关闭oracle_ocm用户的job(11.2.0.3)

操作方法:

exec dbms_secheduler.disable(‘ORACLE_OCM.MGMT_CONFIG_JOB’);

exec dbms_secheduler.disable(‘ORACLE_OCM.MGMT_STATS_CONFIG_JOB');


4.AWR间隔及保留周期(可选)

10g的awr默认保留7天,间隔1小时;

11g的awr默认保留8天,间隔1小时;

调整方法:

exec dbms_workload_repository.modify_snapshot_settings(interval=>30,retention=>30*24*60);

相应的,SYSAUX表空间也需要扩容,否则无法容纳大量的AWR信息




  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值