AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题 / 1503
Accepted
Isaac A. Nugroho
Isaac A. Nugroho
Asked: 2011-03-01 20:06:03 +0800 CST2011-03-01 20:06:03 +0800 CST 2011-03-01 20:06:03 +0800 CST

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

  • 772

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

我无法访问其他实例或机器,我拥有的所有工具都是 alert.log、AWR 和 ADDM。我知道有一些与多个实例有关的东西,但我无法证明这一点。

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

oracle performance
  • 3 3 个回答
  • 8576 Views

3 个回答

  • Voted
  1. Best Answer
    ik_zelf
    2011-03-01T22:40:50+08:002011-03-01T22:40:50+08:00

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

    我希望这有帮助

    • 8
  2. BillThor
    2011-03-02T07:11:29+08:002011-03-02T07:11:29+08:00

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

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

    可以调整实例以使用较小的 SGA 运行。Oracle 提供了帮助调整 SGA 大小的工具。如果任何实例的 SGA 过大,它将惩罚所有实例。

    内存的另一个重要用途是缓冲区空间。这充当二级缓存,可以消除重要的读取 I/O。

    运行sar(假设基于 Unix 的 O/S)可以很好地诊断问题所在。可能的问题是交换或磁盘 I/O 饱和。添加 RAM 可能会解决这些问题中的任何一个。

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

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

    • 如果您在同一台服务器上运行不同版本的 Oracle,这总是必要的。应用程序并不总是经过认证或能够使用最新版本。
    • 您可能需要一个可以自动回滚到某个时间点的实例。(虽然我不鼓励这样做,但我已将其用于自动化测试环境。)
    • 如果您在应用程序中有硬编码模式引用,您可能需要不同的实例来处理命名空间冲突。
    • 使用单独的实例可能更容易处理安全要求。在这种情况下,使用不同的服务器可能是合适的。
    • 在同一台服务器上运行同一数据库的不同版本(开发、测试、用户接受、培训和生产),使用单独的实例更安全。我不会在同一台服务器上运行所有这些环境,但经常在同一台服务器上运行两个或更多。
    • 2
  3. bernd_k
    2011-03-01T22:04:18+08:002011-03-01T22:04:18+08:00

    最关键的资源是 RAM。

    每个正在运行的 Oracle 实例在刚启动且未加载时为其自己分配一些 RAM。

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

    我们刚刚开始使用自动内存管理,但情况与 SQL Server 不同,在 SQL Server 中,您可以根据磁盘空间的大小添加数据库。

    在你的情况下,一台机器上有更多实例,每个实例的SGA变得更小,可以缓存更少的预编译 sql,并且机器必须进行更多的 sql 编译,这会降低性能。

    添加 RAM 可能对您的情况有所帮助。

    • 1

相关问题

  • 如何在数据库中找到最新的 SQL 语句?

  • 如何使用正则表达式查询名称?

  • 如何确定是否需要或需要索引

  • 我在哪里可以找到mysql慢日志?

  • 如何优化大型数据库的 mysqldump?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    您如何显示在 Oracle 数据库上执行的 SQL?

    • 2 个回答
  • Marko Smith

    如何选择每组的第一行?

    • 6 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    我可以查看在 SQL Server 数据库上运行的历史查询吗?

    • 6 个回答
  • Marko Smith

    如何在 PostgreSQL 中使用 currval() 来获取最后插入的 id?

    • 10 个回答
  • Marko Smith

    如何在 Mac OS X 上运行 psql?

    • 11 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Marko Smith

    将数组参数传递给存储过程

    • 12 个回答
  • Martin Hope
    Manuel Leduc PostgreSQL 多列唯一约束和 NULL 值 2011-12-28 01:10:21 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Stuart Blackler 什么时候应该将主键声明为非聚集的? 2011-11-11 13:31:59 +0800 CST
  • Martin Hope
    pedrosanta 使用 psql 列出数据库权限 2011-08-04 11:01:21 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST
  • Martin Hope
    BrunoLM Guid vs INT - 哪个更好作为主键? 2011-01-05 23:46:34 +0800 CST
  • Martin Hope
    bernd_k 什么时候应该使用唯一约束而不是唯一索引? 2011-01-05 02:32:27 +0800 CST
  • Martin Hope
    Patrick 如何优化大型数据库的 mysqldump? 2011-01-04 13:13:48 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve