已索引

检查时间同步

# ntpq -p

检查归档是否打开及保存路径

如果是生产库,检查是否打开归档,并检查归档路径是否正确。

配置归档保护策略

主备库均需要配置。

CONFIGURE ARCHIVELOG DELETION POLICY TO NONE
CONFIGURE ARCHIVELOG DELETION POLICY TO BACKED UP 1 TIMES TO 'SBT_TAPE' APPLIED ON ALL STANDBY;    
CONFIGURE ARCHIVELOG DELETION POLICY TO APPLIED ON ALL STANDBY;    
CONFIGURE ARCHIVELOG DELETION POLICY TO BACKED UP 1 TIMES TO 'SBT_TAPE';

配置归档删除计划

如果目前还未配置 RMAN 备份,则需要通过 crontab 计划任务来删除归档日志。归档日志删除脚本见文。配置了 RMAN 备份后,在 RMAN 中删除归档日志,删除该计划任务,并相应修改归档保护策略。

配置控制文件快照到共享存储(RAC)

RMAN> CONFIGURE SNAPSHOT CONTROLFILE NAME TO '+DATA/DEMO/snapcf_demo.f'

只需要在一个节点上操作即可。

关于审计

标准数据库审计功能,会增大系统表空间或文件系统的使用。一般设置为none,建议关闭该功能。打开 sys 审计(一般是监管要求)。

配置AWR快照保留时间

AWR 快照默认每小时拍一次,保留8天,建议修改为半小时拍一次,保留15天以上。

查看AWR保留时间:

SQL>  select * from DBA_HIST_WR_CONTROL;
      DBID   SNAP_INTERVAL         RETENTION              TOPNSQL
      ---    ------------          ----------------       --------
1449005303   +00000 01:00:00.0     +00008 00:00:00.0      DEFAULT

设置AWR保留时间:

exec DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(21600,30);

以分为单位 ,前者是保留时间,后者是拍快照的间隔时间。

修改密码过期时间

用户密码默认 90 天过期,这个要注意,可根据实际情况修改或者修改为 UNLIMITED。

SQL> ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

检查监听地址是否为IP地址(RAC)

若监听地址不是 IP,且 DNS 解析有问题,在 DG 主备切换时会出故障。

检查SCAN监听

# su - grid
$ lsnrctl status LISTENER_SCAN1

检查LOCAL监听

# su - grid
$ lsnrctl status

修改 PST 超时(11g ASM)

在 11g 中, 该隐含参数的值为 15, 物理机未发现问题,但是虚拟机经常发生 OCR 磁盘组被 dismount 的情况。建议将该值修改为 120,120 也是 12c 的默认值。

修改参数值(在两个节点上执行):

# su - grid
$ sqlplus / as sysasm
SQL> alter system set "_asm_hbeatiowait"=120 scope=spfile sid='*'; 

该参数需要重启集群以生效(在两个节点上执行):

$GRID_HOME/bin/crsctl stop cluster
$GRID_HOME/bin/crsctl start cluster

调整 redo 日志大小

根据生产经验,建议初始大小为 2G,然后观察日志切换,Oracle 官方建议 15-20 分钟切换一次 redo log。

undo 调整

11g 能力中心 TXN 数据库因大量 undo 争用导致数据库夯起(报大量 1013 错误,持续时间1分钟左右后自动恢复),在 Oracle SR 的建议下,设置如下隐藏参数:

SQL> alter system set "_rollback_segment_count"=10000 sid='*';
SQL> alter system set "_undo_autotune"=false sid='*';

注意:最佳实践建议通过设置 _rollback_segment_count 来提前创建好undo段,这样就不用在事务过程中动态的创建 undo 段,可以提高业务事务的性能。但这儿一定要注意,整个 RAC 集群所有节点的该参数值之和不能超过32760,否则将导致添加新的节点无法获得 undo segment,继而无法 DML 操作。

监听参数优化

Oracle Net 的默认超时时间为 60 秒,大规模并发情况下,如同时 2000 以上个业务连接,60S 超时设置通常导致大部分应用不能在此期间连接上数据库。

将数据库 listener.ora, sqlnet.ora 的超时设置为0,即不限制,然后重启监听(每个节点都操作)。

– sqlnet.ora
SQLNET.INBOUND_CONNECT_TIMEOUT = 0 
– listener.ora
INBOUND_CONNECT_TIMEOUT_LISTENER = 0 

设置游标

SQL> alter system set open_cursors=1000 scope=both sid='*';

open_cursors specifies the maximum number of open cursors (handles to private SQL areas) a session can have at once. 默认值是300,oracle官方文档上建议设置为500。若负载较高,我们一般设置为1000(参照能力中心txn库)。

session_cached_cursors specifies the number of session cursors to cache. 能力中心 TXN 是默认值 50,可以不改或者修改为200。

修改数据库可以打开的数据文件数量

db_files specifies the maximum number of database files that can be opened for this database. 默认值 200,可以根据业务数据量来计算数据文件的的数量,比如 500,修改该参数需要重启实例,且 DG 也需要修改为相同的值。

配置大页与透明大页

大页数量计算公式:sga_max_size*1024/hugepage_size+100。
注意 memlock 资源限制数量要大于大页的数量,设置为-1表示不限制。

若数据库运行在 Red Hat Linux 内核上,请确认关闭 THP(Transparent HugePages),以防止 THP 带来的性能问题和节点被意外移出集群。

禁用DRM(暂不)

DRM 即 Dynamic Resource management,为减少 RAC 环境下不必要的缓冲区跨节点动态更新同步,根据实践经验,建议调整以下隐藏参数。

_gc_policy_time 设置为0,禁用DRM
_gc_undo_affinity 设置为false,禁用DRM

其他隐藏参数

如下隐藏参数来自于华为 FusionCube DB 3.1 实施文档,可根据自己的实际情况参考使用:

alter system set "_enable_numa_support" = true scope=spfile;
alter system set "_disk_sector_size_override" = true scope=spfile;
alter system set "_ash_size" = 100M scope=spfile;
alter system set "_gc_read_mostly_locking"=FALSE scope=spfile;

参数说明:

  • _enable_numa_support 优化内存调度。
  • _disk_sector_size_override 存储格式4k块大小为新的存储配置,能避免小块不对齐导致的性能下降。
  • _ash_size 避免数据库繁忙时,内存会话信息频繁刷盘,导致业务性能下降。
  • _gc_read_mostly_locking 避免 oracle ADR BUG。

alter system set db_file_multiblock_read_count = 128 ;
db_file_multiblock_read_count 当 DB block size 为 8K 时,参数设置为 128,使得一次完成的存储 io 为 1MB。

安装和配置 OSWatcher 工具

方法见文。

配置 OS 巡检用户

根据企业环境里的权限管理方案来定。

配置 DB 巡检用户

SQL> create user dboper identified by xxxxx;
SQL> grant connect,select any dictionary to dboper;
SQL> grant alter system,alter tablespace to dboper; 
SQL> grant execute on DBMS_WORKLOAD_REPOSITORY to dboper;

配置 zabbix

# mkdir -p /dbmonitor
# scp zabbix and userparameter_oracle.conf
# sed -n '/User specific environment/,$p' /home/oracle/.bash_profile > /dbmonitor/zabbix/db.profile
# sed -n '/User specific environment/,$p' /home/grid/.bash_profile > /dbmonitor/zabbix/grid.profile
# chown -R dboper. /dbmonitor
# chmod -R 775 /dbmonitor
# systemctl restart zabbix-agent.service

配置巡检与短信告警

*/15 * * * * /dbmonitor/dbhealth.sh >/dev/null 2>&1 &

# SMS for alert file
*/5 * * * *  cd /dbmonitor/;sh /dbmonitor/alert_file_chk.sh >/dev/null 2>&1 &

配置命令别名

alias bdump=’cd /data/app/oracle/diag/rdbms/risk/risk1/trace’

配置退格键支持

# echo "stty erase '^H'" >> /home/oracle/.bashrc
# echo "stty erase '^H'" >> /home/grid/.bashrc

使用 orachk 工具进行检查

oracle 12.2.0.1已经内置 ORACHK 工具。路径为:$ORACLE_HOME/suptools/orachk/,用 oracle 用户执行命令:./oracheck

搭建 Data Guard

11g 能力中心 TXN 数据库日志组切换频繁,备库日志实时应用进程阻塞,继而阻塞大量会话进程,在 Oracle SR 的建议下,设置如下隐藏参数,以避免 ADG 环境中 1555 error 和 apply slow:

SQL> ALTER SYSTEM SET "_adg_parselock_timeout"=550 sid=’*’;

删除安装文件

删除安装文件以释放空间。

-- By 许望(RHCA、OCM、VCP)
最后修改:2024 年 02 月 07 日 10 : 32 AM
如果觉得我的文章对你有用,请随意赞赏