做为一个 ORACLE DBA 就必定要和 数据库 参数打交道,我也是一个初学者 ,根据我的使用 总结一下参数的使用
测试 环境Solaris 10 +Oracle 10g
首先 配置文件: pfile(参数文件),spfile(服务器配置文件) 在以前8i 以前的版本 是不可以动态的修改 系统参数的 但是 从9i 过后 就开始有了 spfile 提供给 管理员 更方便的 修改系统参数 两个文件 区别: pfile 是 文本文件 可以通过 文本编辑器 编辑参数 而spfile是二进制文件 最好不要用文本编辑软件编辑 内容,系统startup 默认 是读取spfile 下面 做一个例子 就清楚了 我在pfile设置了 timed_statistics=false
然后 看下面的操作
它是读取的 spfile 显示的timed_statistics=true 他们之间的转化是 create spfile(pfile) from pfile(spfile)(=' ')
下面 提及 重点
上面的 结果 查询出了 静态参数是 107个 动态参数是144+7=151个
三者的修改使用范围:
参数类型---SCOPE属性 | spfile | memory | both | deferred |
静态参数 | 可以,重启服务器生效 | 不可以 | 不可以 | 不可以 |
动态参数(issys_modifiable为immediate) | 可以,重启服务器生效 | 可以,立即生效,重启服务失效 , | 可以,立即生效,重启服务器仍然有效果 | 不可以 |
动态参数(issys_modifiable为deferred) | 可以,重启服务器生效 | 不可以 | 不可以 | 可以 |
静态参数 必须指定为scope 动态参数issys_modifiable为IMMEDIATE不加scope默认的是 both,而动态参数issys_modifiable为DEFERRED的必须加上scope=spfile 或者 加上derferred,下面做演示
演示一:静态参数
演示二:(动态参数 modifiable='IMMEDIATE')
测试默认:
我就直接说了: scope=spfile需要重启生效,scope=memory重启就失效了 只是当前有效果,scope=both就是 当前立即生效,重启服务器也有效果 因为写入到了spfile了的 读取 启动startup 是启动spfile
测试三: (动态参数 issys_modifiable为deferred)
上面的实验 一直没有 看看 scope=spfile的效果 ,这样修改后 在spfile里面值是改变了的 ,意思就是 下一次 服务启动生效, 但是pfile 中的 参数是没有变的,看下面的插图
看到了 效果 我们吧sort_area_size改成了0 但是 结果 我们查看spfile
而不是0而是 系统推荐的数 那么不妨再改改 改成10块数据块的大小
再看看 服务器参数文件:
OK 完了
上面 不是实验 测试当设置为 0的时候 设置成了98304 而不是设置成 0 为什么啊?
因为 我们采用的是deferred; 如果采用 scope=spfile 则为 0 ,哈哈 原来 还有这样一说 采用deferred给的一个 默认值
转载于:https://blog.51cto.com/ganludong/172635