苹果后端的Oracle数据库

时间:2022-05-03
本文章向大家介绍苹果后端的Oracle数据库,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

最近在微博上,网友发布了一份来自于苹果公司的Oracle数据库AWR报告,虽然我们早就知道Apple的APP Store后端使用的就是Oracle数据库,部署在Exadata一体机上,但是完整的AWR报告通常还是很难见到(这份报告可能包含了客户敏感信息,我仅作一点非常简要的分析)。

从报告上看,数据库环境基本如下:

  1. 数据库版本11.2.0.2 (当然这是几年前的数据);
  2. 5个节点的RAC环境;
  3. 数据库名称为INDIGO,以此为名称的表空间,最大文件序号为1139 - datafile/indigo.1139.788591137 ,单表空间存在大量文件(可见文件667个);
  4. 当然这个报告是夜间的,不具有典型的业务代表性;

最近正好有朋友咨询关于Oracle数据库的隐含参数设定,我们可以借此报告来了解一下苹果的参数设置。

如图中截取部分参数,可以看到,苹果有如下一些参数设置。

  1. cursor_sharing = force,强制的变量绑定,这说明苹果也曾经面临绑定变量的问题;
  2. _file_size_increase_increment = 2143289344,设置文件扩展大小,这是Exadata优化的推荐设置之一;
  3. _optim_peek_user_binds = FALSE,绑定变量Peeking,禁用;
  4. _kill_diagnostics_timeout = 140,超时设置,140秒,这是11g的诊断参数,在指定超时之后,杀掉队列阻塞进程;
  5. _lm_rcvr_hang_allow_time = 140,也是140秒,同样是11g的Hang诊断参数,设置该参数改变节点Hang的驱逐时间;
  6. _buffer_busy_wait_timeout = 2 ,buffer busy wait的超时时间,单位是厘秒;
  7. deferred_segment_creation = FALSE,禁用11g的延迟段创建特性;

此外,如下一个系列的参数是Exadata的推荐设定,在这个环境中也多有设置:

alter system set "_enable_NUMA_support"=FALSE scope=spfile;


alter system set "_file_size_increase_increment"=2044M scope=spfile;


alter system set compatible=11.2.0.3.0  scope=spfile;


alter system set db_lost_write_protect=TYPICAL scope=spfile;


alter system set filesystemio_options=setall  scope=spfile;


alter system set global_names=TRUE scope=spfile;


alter system set open_cursors=1000  scope=spfile;


alter system set parallel_adaptive_multi_user=FALSE scope=spfile;


alter system set processes=10000  scope=spfile;


alter system set sql92_security=TRUE scope=spfile;


alter system set dispatchers  = '' scope=spfile;


alter system set pga_aggregate_target=0 scope=spfile;


alter system set shared_servers=0 scope=spfile;

Oracle的参数设置有大学问,值得参考学习。

以下附件是苹果Apple Store后台的DataGuard架构体系(来自网络),供参考。

另外,我们最近在编撰一本和AWR分析相关的书籍,大家有报告问题和建议欢迎提供,也可以加我的个人微信帐号:eyglee 讨论。