我收到了一个请求,要求在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磁盘。
我喜欢用硬件修复性能问题:)
如果不这样做,那么你将不得不去更昂贵的东西和/或碎片的东西。
看起来像exadata V2应该不仅仅是简单的工作。 请参阅http://www.oracle.com/us/corporate/press/033684和http://faisalgh.blogspot.com/2009/10/embarrassingly-fast-exadata-v2.html
数据泵。 并行。
如果不是复制,那么备用数据库呢? 您只需复制一次,然后以asynchronous方式应用更改,如果备用数据库崩溃,则主服务器不会感觉到任何问题。 你只读了它,但是这可能就足够了。
了解更多关于数据 – 他们全部/任何更新或只添加? 尽量避免复制logging,如果条件很简单,logging不会分散
只是一些想法…
当你进行批量处理时,它是关于字节数的,而不是关于行数的。 你只是推动字节。
这个问题有点含糊。 我从这个猜测是你需要将数据从一个数据库移动到另一个右边?
这是我会做的(不知道你的数据库和其他东西的实际大小)
创build一个数据库和链接。 通过链接创build表作为无logging,看看需要多长时间。 如果这足够好的话。 你完成了。 这通常是移动数据的最快方法。 确保使用NO LOGGING,否则会变慢。 如果你正在阅读的表被分区,然后使用并行选项来查询它,如果不是的话(如果你没有分区的话,不会做任何事情)。
可移动的表空间。 去谷歌上查询。 您的表将需要是完全包含在表空间中的模式。 您还需要sysdba访问权限(所以必须由oracle用户完成)。 这需要shell脚本和更多的代码比选项1。
数据泵
以该顺序。 物化视图吸收大量的数据,并刷新。 创build表格要快得多。 如果您不能满足可移动表空间的要求,则只能使用选项#3。
我已经加载了大量的数据/天。 在太字节范围内。