每天将 1000 亿条记录复制到 Oracle – 如何做?

每天将 1000 亿条记录复制到 Oracle – 如何做?

我收到了一个请求,要求在 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

  1. 数据泵。并行化。

  2. 如果没有复制,那么备用数据库呢?您只需复制一次,然后以异步方式应用更改,这样如果备用数据库崩溃,主数据库就不会有任何感觉。您可以以只读方式获取它,但这可能就足够了。

  3. 了解有关数据的更多信息 - 它们是否全部/部分更新或仅添加? 如果条件足够简单且记录没有分散,请尽量避免复制未更改的记录...

只是一些想法...

相关内容