多个Oracle实例-这是一个好习惯吗?


9

我的一位客户将我们产品的数据库部署到了已经有3个Oracle实例的Solaris计算机上。因此,现在有4个Oracle实例在同一台计算机上运行。现在,我们遇到了性能问题。

我无权访问其他实例或计算机,并且我拥有的所有工具都是alert.log,AWR和ADDM。我知道有些情况与多个实例有关,但我无法证明这一点。

所以,我的问题是,您是否遇到过类似情况?我应该如何处理?如何确定与多个实例相关的性能问题的原因?

Answers:


8

Isaac最好在一个服务器上运行一个实例,并在该单个数据库中将不同的应用程序实现为架构和服务。如果服务器有足够的内存,那么如果应用程序的行为都像是良好的Oracle公民,就不会有问题。一旦存在不使用绑定变量的应用程序,主机上的痛苦就会越来越大。对于每隔几秒钟不断创建新连接而不是重新使用现有连接的应用程序,情况也是如此。诸如自动提交之类的事情也无助于改善情况。您的应用程序的正常行为是什么?它会进行大更新吗?什么时候提交?每小时产生多少重做?您的应用程序是否使用绑定变量?在许多情况下,联机重做日志文件的位置至关重要。如果该应用程序确实产生了很多重做(或与执行此操作的其他应用程序竞争),则日志编写器将放慢速度,并导致性能大幅下降,因为会话正在等待日志文件写入完成。为您的客户提供磁盘布局,其中重做位于专用的raid-10磁盘上,并查看这有多大帮助。还要找出内存分配情况。可能需要公平地重新分配可用内存。

我希望这有帮助


你是对的。我们会监控实例并在任何可能的地方执行优化。但是性能并不稳定,有时会下降,没有任何可解释的原因(从我们这一角度来看)
Isaac A. Nugroho

艾萨克(Isaac),数据库多久重启一次,它是什么版本,并且您是否在列上由自动统计过程生成的直方图?您是否使用绑定变量和优化器预窥?
ik_zelf 2011年

2

在同一服务器上运行多个实例是可能的,在某些情况下是必要的。oratab专为处理管理多个实例而设计。如果您有多个独立的应用程序,则最好为每个应用程序都有一个实例。

拥有足够的内存至关重要。Oracle在共享内存中构建SGA。如果没有足够的内存,则SGA或进程将开始换入和换出。这被称为颠簸,并导致明显的性能损失。

可能需要调整实例以使其以较小的SGA运行。Oracle提供了有助于调整SGA大小的工具。如果任何实例的SGA过大,将对所有实例进行处罚。

内存的另一个重要用途是缓冲区空间。这充当辅助高速缓存,并且可以消除大量的读取I / O。

运行sar(假设基于Unix的操作系统)可以对问题出在哪里进行很好的诊断。可能的问题是交换或磁盘I / O饱和。添加RAM可能会解决上述两个问题。

磁盘I / O饱和也可以通过将一些表空间移到其他磁盘来解决。我通常配置Oracle,以便将I / O分布在尽可能多的磁盘上。

编辑:这些是少数情况,可能需要单独的实例。

  • 如果您在同一服务器上运行不同版本的Oracle,则总是有必要的。应用程序并不总是经过认证或可以与最新版本一起使用。
  • 您可能需要一个可以自动回滚到某个时间点的实例。(尽管我不建议这样做,但已将其用于自动化测试环境。)
  • 如果您在应用程序中具有硬编码的架构引用,则可能需要其他实例来处理名称空间冲突。
  • 使用单独的实例可能更容易处理安全性要求。在这种情况下,使用不同的服务器可能是合适的。
  • 使用单独的实例在同一服务器上运行同一数据库的不同版本(开发,测试,用户接受,培训和生产)更安全。我不会在同一服务器上运行所有这些环境,但是经常在同一服务器上运行两个或多个。

您能否提供运行多个实例所必需的示例?
ScottCher 2011年

1
@ScottCher我已经编辑了我的回复以提供一些案例。
BillThor

1

最关键的资源是RAM。

每个正在运行的Oracle实例在刚启动且未处于负载状态时都会为其分配一些RAM。

我们正在运行10g和10g,以及11g和8个实例,但这是开发服务器。重新启动操作系统后,一些Oracle服务不会自动启动,必须​​手动启动:Oradim -startup -sid xxx。

我们刚刚开始使用自动内存管理,但是情况与SQL Server有所不同,在SQL Server中,您可以添加磁盘空间所允许的最大数量。

对于您的情况,一台计算机上有更多实例,则每个实例的SGA会变小,可以缓存较少的预编译sql,并且该计算机必须执行更多sql编译,这会降低性能。

添加RAM可能会帮助您解决问题。


2
您说SQL Server与众不同的原因更多是术语。一组进程及其专用内存是一个实例。如果您添加一个SQL Server数据库并且它没有添加新进程,则它不是实例。在这种情况下,它更接近于添加架构。
Stephanie Page
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.