在Solaris10中为Oracle配置系统资源

在Solaris10中为Oracle配置系统资源
       文/呼必斯哈拉图
摘要:
      Solaris10 这个版本中的系统资源配置管理较之前的版本有较大的变化。诸如 Oracle 等, 在安装、运行、优化等过程中需要对系统资源(内核参数,信号量,内存空间, CPU 时间等)进行调整和设置后才能运行良好的的大型应用来说,熟悉 Solaris10 的这种新的资源管理方法和机制是非常有必要的。 本文将介绍在 Oracle 的安装、使用过程中用到的一些资源配置的命令和方法。以便为更多的 Oracle 和其它类似情况的用户提供参考。
一、    预备知识
A.           Solaris10 中仍然可以在 /etc/system 中设置需要的系统资源。但是有很多以前可以用在此文件中进行设置的参数在 Solaris10 中已经废止。如图:
 
其中带有 * 号的项目仍然可以在 /etc/system 中进行设置。但是其默认值有所变化。见下表:
 
资源控制标识
废止选项
旧默认值
最大值
新默认值
process.max-msg-qbytes
msginfo_msgmnb
4096 
ULONG_MAX
65536 
process.max-msg-messages
msginfo_msgtq l
40 
UINT_MAX
8192 
process.max-sem-ops
seminfo_semopm
10 
INT_MAX
512 
process.max-sem-nsems
seminfo_semmsl
25 
SHRT_MAX
512 
project.max-sem-ids
seminfo_semmni
10 
224
128 
project.max-shm-memory
shminfo_shmmax
0x800000 
UINT64_MAX
1/4 物理内存
project.max-shm-ids
shminfo_shmmni
100 
2 24
128 
project.max-msg-ids
msginfo_msgmni
50 
224
128 
  注意:写在 /etc/system 文件中的配置只有重新启动后才能生效。
B.           可以用项目数据库( project database )对单个进程或单个项目进行资源分配的设置。项目数据库的文件是 /etc/project 。其格式如下: projname:projid:comment:user-list:group-list:attributes
其中: projname------ 给定的项目名称
      Projid-------- 给定的项目标识符
      Comment------- 项目说明
      User-list----- 用户列表(表明此用户使用此设置)
      Group-list---- 组列表(表明此用户组的用户使用此设置) Attributes---- 设定属性(是 key=value pair
   * 更多详细信息请查阅参考资料 1
C.           projects,projadd,projmod,projdel,prctl 进行系统资源的配置。
其中:
project 用于查看已经配置的 project 参数
projadd 用于创建 project
projmod 用于修改 project 中的属性值
projdel 用于删除 project
prctl 用于动态设置系统资源配置(增,删,改)
      注意:用 proj* 设置的值都会自动写入到 /etc/project 文件里。而
prctl 设置的值在系统重新启动后就会丢失(需要重新设置)。关于 proj* 命令的用法请看手册 ( 例如: #man projadd).
二、    Oracle 中系统资源的调整
A.           proj 系列命令来对 Oracle 安装时的参数进行设置管理
Oracle 安装时下表中的这些参数是需要进行设置的。下面就具体的在 Solaris10 下面一步一步的设置这些值。这些值要 root 用户或者有相同权限的用户进行设置。 ( 假设已经建好了一个 oracle 用户 )
semsys:seminfo_semmni
project.max-sem-ids
100
semsys:seminfo_semmsl
process.max-sem-nsems
256
shmsys:shminfo_shmmax
project.max-shm-memory
4294967295
shmsys:shminfo_shmni
project.max-shm-ids
100
A 1 验证项目信息
#more /etc/project            看一下目前已经存在的项目
可以看到并没有针对 oracle 用户设置 project 。这样 oracle 的默认 project 就是 default:3 了。通过下面的几个命令验证一下吧!
#su – oracle
#projects                显示当前用户参加的 projects
屏幕回显为: default
也可以用 #id –p 来显示当前用户的默认 project 。此时屏幕回显为
uid=102(oracle)gid=(oinstall)projid=3(default)
#exit                    返回到 root 用户
A.2 oracle 用户创建新项目
#projadd –U oracle –p 1234 oracle_param
用户 A.1 中的方法查看就可以看到 oracle 用户已经多了一个 oracle_param project 。可是其默认的 project 还是 default:3
#projadd –U oracle –p 1233 –c “oracle parameters” user.oracle
再次用上面的方法验证,这次不但多了一个 user.oracle project 而且 oracle 用户的默认 project 也变成了 user.oracle 了。实际上这两个 project 我们只用一个就可以了。用
#projdel oracle_param   将这个不用的 project 删除掉(如果愿意可以用前面的方式进行验证)。
提示: -U 指定用户, -p 指定项目的识别号, -c 用于项目信息说明
 A.2 在项目中添加属性设置
   #projmod –a –K “ project.max-shm-memory=(priv,4294967295,deny)” user.oracle
       #more /etc/project 看一下这个值是否已经保存
/etc/project
    用相同的方法设置余下的属性
#projmod –a –K “ project.max-sem-ids =(priv,100,deny)” user.oracle
#projmod –a –K “ process.max-sem-nsems =(priv,256,deny)” user.oracle
     #projmod –a –K “ project.max-shm-ids =(priv,100,deny)” user.oracl
提示: -a 表示增加, -r 表示删除, -K 代表 key ,用于具体属性的设置。可以将将几个参数一起设置,例如: #projmod –a –K “…” –K “…” 。用 project 方式设置的这些选项在系统重新启动后也不会丢失(只要进入到 oracle 用户这些设置就生效了)。
B.           prctl 来进行参数的调整
  Project 方式不同, prctl 是一个动态设置系统资源的方式。只有在当前的系统生效,在系统重新启动后这些设置将会丢失。下面用一个实际的例子来看一下怎么用 prctl 来设置和查看设定的值。
B 1 查看已经设定好的值
     有两种方式,分别如下 ( 例如要查看 max-shm-memory) 先到 oracle 用户( su - oracle ):
提示: #prctl $$ 命令可以查看所有的设置。
     #prctl –n project.max-shm-memory $$
    
     #prctl –n project.max-shm-memory –i project user.oracle
B 2 修改已经设定好的值
     下面试着用 prctl 来修改一下 project.max-shm-memory的值变为 6G , 首先开两个终端窗口,第一个窗口下进入到 oracle 用户下,第二个窗口需要到 root 方式下(因为权限限制)。之后在第二个窗口中执行
     #prctl –n project.max-shm-memory –r –v 6.00G –i project user.oracle
在第一个窗口中用 B.1 中提供的方法查看发现当前的 project.max-shm-memory 值确实已经变成了 6G 了。
在此窗口中用 #more /etc/project 查看发现此文件中 project.max-shm-memory 值仍然是 4G 。还是在第一个窗口中先用 #exit (如果进入了 bash ,那么还要一次 exit )命令返回到 root ,之后再用 su – oracle 进入到 oracle 用户,使用同样的方法检查发现用 prctl 设置的新值已经丢失了。
      Prctl 命令还可以创建和删除一个系统资源设置属性。更多 prctl 命令的使用方法请使用 #man prctl 进行查看。
三、    参考资料:
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tonyzhangcn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值