每天拷贝1000亿条logging到Oracle – 如何?

我收到了一个请求,要求在Oracle上提供一个1000亿logging数据库。 不幸的是,使用复制优化不是一种select,所以我猜最简单的解决scheme是创build一个新的Oracle数据库,并复制所有的数据,每天做一次。

什么样的Oracle服务器可以做到这一点? 在这方面有什么特别需要照顾的吗?

没有足够的细节来给出质量的答案,但我认为“服务器”将成为“服务器”。

如果每100个字节有100,000,000,000条logging,那么每天就有9,536,743 MB,而没有任何附带的索引I / O等。除以秒数,每秒得到110 MB。 即使这是假设均匀分布,整整24小时。 GigE的理论最大值是正确的。

换句话说,即使有了这些简单的假设,您仍然可以获得“普通”的带宽和磁盘I / O。

有些东西告诉我,你真的想通过这个devise思考。

我认为这样的工作值得称为甲骨文。

我会买下面的;

带有8个6核Opteron,64GB +内存,64位RedHat,双10Gbps以太网网卡,2个HP P800 SAS控制器的HP DL795 G6本地连接至8个MSA70,每个MSA70均装有25个146GB 2.5“6G 15krpm SAS磁盘。

我喜欢用硬件修复性能问题:)

如果不这样做,那么你将不得不去更昂贵的东西和/或碎片的东西。

  1. 数据泵。 并行。

  2. 如果不是复制,那么备用数据库呢? 您只需复制一次,然后以asynchronous方式应用更改,如果备用数据库崩溃,则主服务器不会感觉到任何问题。 你只读了它,但是这可能就足够了。

  3. 了解更多关于数据 – 他们全部/任何更新或只添加? 尽量避免复制logging,如果条件很简单,logging不会分散

只是一些想法…

当你进行批量处理时,它是关于字节数的,而不是关于行数的。 你只是推动字节。

这个问题有点含糊。 我从这个猜测是你需要将数据从一个数据库移动到另一个右边?

这是我会做的(不知道你的数据库和其他东西的实际大小)

  1. 创build一个数据库和链接。 通过链接创build表作为无logging,看看需要多长时间。 如果这足够好的话。 你完成了。 这通常是移动数据的最快方法。 确保使用NO LOGGING,否则会变慢。 如果你正在阅读的表被分区,然后使用并行选项来查询它,如果不是的话(如果你没有分区的话,不会做任何事情)。

  2. 可移动的表空间。 去谷歌上查询。 您的表将需要是完全包含在表空间中的模式。 您还需要sysdba访问权限(所以必须由oracle用户完成)。 这需要shell脚本和更多的代码比选项1。

  3. 数据泵

以该顺序。 物化视图吸收大量的数据,并刷新。 创build表格要快得多。 如果您不能满足可移动表空间的要求,则只能使用选项#3。

我已经加载了大量的数据/天。 在太字节范围内。