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