以下的文章主要是对Oracle表空间的设置问题的描述我们大家都知道Oracle数据库中的表很多一共算是多个表大概你能占十几个G空间下面的文章主要讲述的是Oracle表空间设置
是设置在USERS表空间内建立一个十几G的数据文件USERSDBF呢?
还是在USERS表空间内建立三个几G的数据文件USERSDBFUSERSDBFUSERSDBF
Oracle表空间内的数据文件以多大上限最好?是越大的单个文件好呢?还是小一点的多个文件好?以什么为原则?
Oracle数据库产生许多碎片怎么办?存储数据文件的这个盘符可以定期做磁盘碎片整理吗?该怎么做?要不要先把数据库关掉再做?
两个数据库同时运行在一个服务器上面为两套业务系统服务
两个数据库共用一个对外端口合理吗?会不会影响数据吞吐性能?要不要一个用端口一个用端口开两个监听程序这样设置?
分成多个数据文件
原因是
()有些操作系统对文件大小有限制或者安装是做过限制你不一定清楚这些限制而且某些版本的传输协议不支持过大的文件例如AIX某版本的sftp就不允许传输文件超过G
()你现在数据量小所以不用考虑太多但将来数据量增大以后要考虑负载均衡就要把部分数据文件挪到其他盘上多个数据文件会使这样很容易
()当你的数据文件某部分出现坏块之后你需要让某个数据文件暂时offline恢复等等如果你的数据文件过大影响也可能更大
()使用RMAN备份的时候单独备份数据文件恢复也可单独恢复因此很显然分多个数据文件有好处
单个数据文件的大小这个要考虑的东西比较多比如你的存储性能比如你的总数据量等等专家的建议是对于几十G到几百G的数据量单个数据文件的大小一般在-G原则有一套理论说明的但是我忘了只说一下个人的建议
()操作系统限制这个如果没有注意到很容易出问题特别是自扩展的数据文件例如systemundotbs等等
()Oracle表空间的大小要考虑单个数据文件移动或恢复的情况显然如果对于几十个G的表空间就分成两个数据文件并不能对你的操作带来什么好处
()全凭经验把握的东西还要考虑的你硬盘的raid情况等等情况比较复杂只能折衷不能简单的一概而论说大就好或者小就好
当然这并不是主要的你没必要太关注这方面的东西因为对于你这样的简单环境来说区区一个表空间数据文件大小的修改对性能的提高甚至不如多建一条索引大!
数据库产生碎片怎么办我告诉你数据库的碎片和windows说的那个碎片整理是两码事你不要混淆windows再怎么整理也是没用的
其实我坦白的跟你讲你几十个G的数据库短期根本就不用考虑什么碎片问题这种情况得等大家都反映数据库开始变慢了再考虑回收段空间等等而且你都说是否要关闭了再做说明你的数据库可以关也就暗示了它不是很忙那么最近-年之内你不用考虑做这件事了
两个数据库同时用一个监听器当然不合理你一个监听器挂了两个数据库都连不上去你不觉得这样风险很大么?
两个公用一个端口对数据的吞吐性能是没有任何影响的这个你不用担心但是安全性无疑很低
所以当然有必要用两个端口和其实我建议你把两个数据库安装在两个不同的操作系统用户下面这样大家彼此逻辑都清楚影响小带来的好处你能慢慢体会到这纯粹是从我的工作经验来建议你的如果你嫌麻烦当我没说
如何设置?你这个问题问的复杂了我可懒得把编辑TNS的一堆写出来
告诉你个简单方法先命令行输入netca创建监听器建两个和然后再命令行dbca创建数据库注意创建的过程中会提示你和哪个端口绑定自己选就行了全图形界面非常简单