![VMWare 上是否有 Oracle DB?](https://linux22.com/image/493520/VMWare%20%E4%B8%8A%E6%98%AF%E5%90%A6%E6%9C%89%20Oracle%20DB%EF%BC%9F.png)
管理层已批准将我们的主要 Oracle DB 迁移到虚拟机平台。
运营部门表示,他们将专门配备重型硬件,并只在其上运行 DB VM。
我听说在虚拟机上运行数据库是不可行的,因为有额外的层(虚拟 io + 物理 io),但 OPS 人员说这是超快的硬件,所以没问题。
DBA 是否应该过度关注这种虚拟化的转变?
谢谢/jp。
答案1
“并且仅在其上运行 DB VM”
我曾在两家不同的公司工作过,在 VMware 上管理 Oracle,两家公司的系统管理员都做出了同样的承诺(但最终他们没有遵守承诺:)
除了 wzzrd 关于 Oracle 不“正式”支持虚拟化硬件上的实例的警告之外,如果 VM 服务器配置正确、功能强大并且不会因数十个其他 VM 而变得臃肿,最终用户应该不会真正注意到性能损失。
这还取决于您要虚拟化的数据库类型。OLTP 通常比 I/O 性能至关重要的 DSS/DWH 更适合虚拟化。
我强烈建议您让您的经理让您在投入生产之前测试新服务器,以便尽早发现可能出现的性能问题。
无论如何,祝你好运。
弗兰。
答案2
我在虚拟机中运行数据库时没有遇到重大问题(小型实时数据库和大型测试/开发数据库,但迄今为止还没有大型实时数据库)。除了潜在的官方支持问题之外,与物理数据库服务器一样,您关注的重点将是 I/O 性能和 RAM。
对于 I/O 性能,我的经验是虚拟驱动器的性能永远不会像相关技术利益相关者声称的那样好,但也绝不会像反对者声称的那样糟糕。只要您有一个良好的物理 I/O 子系统为虚拟机提供服务(例如,一个漂亮的 RAID10 快速驱动器阵列),一切都应该很好。所有正常的性能调整都适用于虚拟机,例如将数据和日志保存在单独的阵列上(如果使用单个驱动器而不是 RAID,则保存在单独的驱动器上)和临时数据(假设 Oracletempdb
在另一个阵列上有与 MSSQL 等效的阵列(有些人建议使用 RAID0 以提高性能,尽管我对在生产中使用 RAID0 持谨慎态度,即使对于临时数据也是如此,因为我不想在驱动器发生故障时停机)如果可以的话。将您的 RAID 完全放在硬件中(使用好的RAID 控制器)或物理主机上的软件。虽然听起来很愚蠢,但我见过有人建议在虚拟机中执行 RAID...
对于 RAM,只需为 DB VM 提供尽可能多的内存,并确保它专用于它们且不会被主机交换。
我认为:数据库在虚拟机中工作,如果你有硬件来为它们服务,那么它的性能肯定足够好,不要过度使用硬件(两个运行虚拟机的数据库负载较大,与处理相同内容的一台数据库服务器相比,这两个实例无法管理它们之间的 RAM 和 I/O 顺序,而单个数据库服务器实例可以根据需要在作业之间调配资源)。
答案3
此外 @弗兰评论,确保您的应用程序小贩也会支持它。
我知道,如果 Oracle 没有安装在“受支持”的平台上,那么我之前工作过的供应商将不会支持整个产品。如果您需要帮助,那么价值数百万美元的工具或多或少就毫无用处了。
只是一点警告:)
答案4
这并不是因为虚拟硬件可能速度有点慢:如果我们相信 Red Hat 和 VMware(等)的基准测试人员给我们提供的数据,那也只是慢了百分之几。
但可能是因为 Moloch Oracle 不支持其数据库下的虚拟化硬件。另一方面,我听说,如果采取适当的策略,他们可以“被迫”支持它。让我们知道你最终会怎么做。
我们实际上有很多 Oracle 数据库在 ESX 上运行,但那些不是生产数据库。