我收到了一个请求,要求在 Oracle 上也提供一个包含 1000 亿条记录的数据库。遗憾的是,使用复制进行优化不是一种选择,因此我猜最简单的解决方案是创建一个新的 Oracle 数据库,复制所有数据,并每天执行一次。
哪种 Oracle 服务器可以很好地完成此任务?在这方面我需要注意什么具体事项吗?
答案1
细节不足以给出高质量的答案,但我认为“服务器”将是“服务器”。
如果您有 100,000,000,000 条记录,每条 100 字节,则每天的流量为 9,536,743 MB,不包括索引等附带 I/O。将其除以一天的秒数,您将得到每秒 110 MB。即使这样,也假设均匀分布且整整 24 小时。这正好是 GigE 的理论最大值。
换句话说,即使有这些简单的假设,您也将最大限度地利用“正常”带宽和磁盘 I/O。
我觉得你确实想仔细考虑一下这个设计。
答案2
我认为对于这种工作值得打电话给 Oracle。
答案3
我会购买以下产品;
HP DL795 G6 配备 8 个 6 核 Opterons、64GB+ 内存、64 位 RedHat、双 10Gbps 以太网 NIC、2 个 HP P800 SAS 控制器,本地连接到八个 MSA70,每个 MSA70 装有 25 个 146GB 2.5 英寸 6G 15krpm SAS 磁盘。
我喜欢修复硬件的性能问题:)
如果这不管用,那么你将不得不去买一些更贵的东西和/或把它打碎。
答案4
数据泵。并行化。
如果没有复制,那么备用数据库呢?您只需复制一次,然后以异步方式应用更改,这样如果备用数据库崩溃,主数据库就不会有任何感觉。您可以以只读方式获取它,但这可能就足够了。
了解有关数据的更多信息 - 它们是否全部/部分更新或仅添加? 如果条件足够简单且记录没有分散,请尽量避免复制未更改的记录...
只是一些想法...