各位好!
我现在遇到一个项目,其中一个表的数据量巨大,每天新入库数据大概在3千万条,该系统需要保存3-5年的数据,就是400-500亿条记录。我设计的该表的字段如下:
ID  number(20)
col1 varchar2(50)
col2 varchar2(50)
col3 varchar2(150)
现在的问题是,如何选择操作系统的类型、以及oracle的版本,以及该如何分配oracle的存储,是否将该表分表(今日表和历史表),分表以后该如何进行数据迁移?
我的设计存在什么问题?该系统还有哪些需要注意的地方?物理存储时如何选择raid,数据库文件、日志文件、控制文件等文件如何在磁盘上分配?
希望之前有过大型数据库经验的前辈能指导一下小弟。

解决方案 »

  1.   

    操作系统看你服务器了。
    aix,solaris,等等都可。表可以按月来分区。可以更详细的做分区。由于你要存储400-500亿的数据所以存储肯定是T级别的了。
    至于物理存储选择的话raid5,5+1,等等看你的成本了。
    数据文件,日志文件单独存放,其他默认即可了。
    一家之言,仅做参考。
      

  2.   

    谢谢楼上的兄弟
    我还想问一下:控制文件、日志文件、临时文件、回滚文件等文件的位置是可以在安装时指定吗?
    这些文件最好放在不同的raid上还是可以放在同一raid上?
      

  3.   

    肯定可以指定啊,只要你不是默认安装。raid我不太熟悉。以前我见过的好像是放在不同的磁盘上的。
      

  4.   

    控制文件、日志文件、临时文件、回滚文件等文件的位置可以安装后再改有钱就上raid 0+1, 
    raid5便宜点,但读强写弱
    不管用raid几,只能物理地保证数据不丢失,操作误删的话救不了
      

  5.   

    我目前给公司项目的硬件就是ibm服务器,四块硬盘做raid10,两台服务器做异地热备份,数据库六个数据表空间,两个作为实时数据表空间,四个作为历史数据表空间,主要是表数据太大,做表分区用的,再加一个索引表空间就差不多了,其他默认,临时表空间大点,设置好差异备份,应该差不多。
      

  6.   

    这么大型的数据,简直是海量级了,硬件要求配置也是非常高的;
    不用说一个月的数据,一天的数据查起来都非常麻烦了数据库文件,日志文件、控制文件各至少有三组才保险一些,磁盘陈列做rad5
      

  7.   

    从SQL的角度看, 你可以使用Create Table ... Partition来处理, 另外, 请注意pctused和pctfree的设置问题 
      

  8.   

    对头,还要看你的情况了,分区肯定是要的,生产数据库还是raid10好点1块盘也就几千块钱也不贵.
      

  9.   

    诚聘DBA!!!! 有意者请联系[email protected] 
    本科以上学历,计算机或相关专业 
    -至少2年的Oracle数据库管理的相关经验 
    -熟悉Oracle的备份恢复,数据迁移,RAC,数据库调优和PL/SQL编写 
    -熟悉Red Hat和Solaris操作系统及Shell脚本编写 
    -熟练的英语听说读写能力 
    -良好的沟通和表达能力 
    -在高强度和富有挑战的工作环境下,进行有效工作的能力 
    -富有创造力,工作积极主动,能主动地与项目组其他成员进行合作 
    -高度认同公司的企业文化:尊重员工,诚实和正直,追求品质和卓越,以客户为中心,恪守个人职责和倡导团队精神,求变创新,专注于技术,社会责任。 
      

  10.   

    1.分区表(按日或月分区)
    2.分表(取决于应用)
    3.compress(可以减少2/3的存储,大幅度降低IO,但要增加一点 cpu)
    综合应用吧,足够了