关于ORACLE表空间设置问题


数据库的表很多,总共加起来有600多个表,占十几个G左右空间。

  请问表空间如何设置:

  是设置在USERS表空间内建立一个十几G的数据文件USERS01.DBF呢?

  还是在USERS表空间内建立三个几G的数据文件USERS01.DBF,USERS02.DBF,USERS03.DBF,

  表空间内的数据文件以多大上限最好?是越大的单个文件好呢?还是小一点的多个文件好?以什么为原则?

  ORACLE数据库产生许多碎片怎么办?存储数据文件的这个盘符,可以定期做“磁盘碎片整理”吗?该怎么做?要不要先把数据库关掉再做?

  两个数据库同时运行在一个服务器上面,为两套业务系统服务,

  两个数据库共用一个对外端口1521合理吗?会不会影响数据吞吐性能?要不要一个用1521端口,一个用1520端口,开两个监听程序这样设置?

  1。分成多个数据文件。

  原因是:

  (1)有些操作系统对文件大小有限制,或者安装是做过限制。你不一定清楚这些限制。而且某些版本的传输协议不支持过大的文件,例如AIX某版本的sftp就不允许传输文件超过2G。

  (2)你现在数据量小,所以不用考虑太多。但将来数据量增大以后,要考虑负载均衡,就要把部分数据文件挪到其他盘上。多个数据文件会使这样很容易。

  (3)当你的数据文件某部分出现坏块之后,你需要让某个数据文件暂时offline恢复等等,如果你的数据文件过大,影响也可能更大。

  (4)使用RMAN备份的时候,单独备份数据文件。恢复也可单独恢复,因此很显然分多个数据文件有好处。

  2。单个数据文件的大小,这个要考虑的东西比较多。比如你的存储性能,比如你的总数据量,等等。专家的建议是,对于几十G到几百G的数据量,单个数据文件的大小一般在2-10G。原则有一套理论说明的,但是我忘了,只说一下个人的建议:

  (1)操作系统限制。这个如果没有注意到很容易出问题,特别是自扩展的数据文件,例如system,undotbs等等

  (2)表空间的大小。要考虑单个数据文件移动或恢复的情况。显然如果对于几十个G的表空间,就分成两个数据文件,并不能对你的操作带来什么好处。

  (3)全凭经验把握的东西,还要考虑的你硬盘的raid情况等等。情况比较复杂,只能折衷。不能简单的一概而论说大就好或者小就好。

  当然这并不是主要的,你没必要太关注这方面的东西。因为对于你这样的简单环境来说,区区一个表空间数据文件大小的修改,对性能的提高甚至不如多建一条索引大!

  3。数据库产生碎片怎么办。我告诉你,数据库的碎片和windows说的那个碎片整理是两码事,你不要混淆。windows再怎么整理也是没用的。

  其实我坦白的跟你讲,你几十个G的数据库,短期根本就不用考虑什么碎片问题。这种情况得等大家都反映数据库开始变慢了,再考虑回收段空间等等。而且你都说“是否要关闭了再做”,说明你的数据库可以关,也就暗示了它“不是很忙”,那么最近3-5年之内你不用考虑做这件事了。

  4。两个数据库同时用一个监听器1521当然不合理,你一个监听器挂了两个数据库都连不上去,你不觉得这样风险很大么?

  两个公用一个端口,对数据的吞吐性能是没有任何影响的,这个你不用担心。但是安全性无疑很低。

  所以当然有必要用两个端口1521和1520,其实我建议你把两个数据库安装在两个不同的操作系统用户下面,这样大家彼此逻辑都清楚,影响小,带来的好处你能慢慢体会到。这纯粹是从我的工作经验来建议你的。如果你嫌麻烦当我没说。

  如何设置?你这个问题问的复杂了,我可懒得把编辑TNS的一堆写出来。

  告诉你个简单方法,先命令行输入netca创建监听器,建两个,1521和1520。然后再命令行dbca创建数据库,注意创建的过程中会提示你和哪个端口绑定,自己选就行了。全图形界面非常简单


« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3