在Solaris10中安装Oracle10G R2

 

 刚刚开始学习Unix,花了6个小时才在Solaris10上装好了Oracle10G R2,关键是系统内存太少了,测试的那台机器才512M的内存,而网上的一些文章主要是Solaris9上安装时写的,10推出以后,被照搬了过来,也许是他们的机器内存比较多吧,在建库时没有报错。

安装过程:

 

1。 创建Oracle Inventory group(oinstall), 用于管理Oracle产品清单:

% groupadd oinstall

2。创建Oracle OSDBA group (dba),用于Oracle database管理(SYSDBA权限):

% groupadd dba

3。创建Oracle OSOPER group (oper),用于有限的Oracle database管理(SYOPER权限):

% groupadd oper

4。创建Oracle software owner用户(oracle), 属于Oracle Inventory和Oracle OSDBA组:

% useradd -g oinstall -G dba oracle

5。检查group和passwd文件,不对的修改下:

% vi /etc/group
。。。
oinstall::100/oracle
dba::101/oracle
oper::102/oracle

% vi /etc/passwd
。。。
oracle/::100:100::/u01/app/oracle:/bin/sh

% passwd -r files oracle
New Password:
Re-enter new Password:
passwd: password successfully changed for oracle

6。检查nobody用户:

eoffice-480:/ 50 % id nobody
uid=60001(nobody) gid=60001(nobody)

7。改kernel参数:

Solaris 10中,不再配置/etc/system里的kernel参数,而是使用资源管理,对应关系如下:

semsys:seminfo_semmni project.max-sem-ids 100
shmsys:shminfo_
shmmax project.max-shm-memory 4GB
shmsys:shminfo_shmmni project.max-shm-ids 100

显示当前系统资源管理所管理的项目:

% id -p
uid=0(root) gid=0(root) projid=1(user.root)

显示当前系统资源管理所管理的项目的参数:

% prctl -n project.max-sem-ids -i project user.root
project: 1: user.root
NAME PRIVILEGE VALUE FLAG ACTION RECIPIENT
project.max-sem-ids
privileged 128 - deny -
system 16.8M max deny

如不满意,可用prctl资源管理命令修改:

% prctl -n project.max-sem-ids -v 256 -r -i project user.root

% prctl -n project.max-shm-memory -i project user.root
project: 1: user.root
NAME PRIVILEGE VALUE FLAG ACTION RECIPIENT
project.max-shm-memory
privileged 400GB - deny -
system 16.0EB max deny -

% prctl -n project.max-shm-ids -i project user.root
project: 1: user.root
NAME PRIVILEGE VALUE FLAG ACTION RECIPIENT
project.max-shm-ids
privileged 128 - deny -
system 16.8M max deny -

按理说Solaris 10不改/etc/system,但类似Solaris 8/9的内核参数,如没有配置(set noexec_user_stack=1)如没设置,会警告,所以还需设下:

%vi /etc/system
set noexec_user_stack=1

8。创建Oracle Base目录(需4GB):

Oracle Base目录,安装Oracle软件的起始目录,缺省/u01/app/oracle
Oracle Inventory目录,Oracle软件的产品清单目录,缺省/u01/app/oracle/oraInventory
Oracle Home目录,Oracle主目录,是Oracle Base的子目录,缺省/u01/app/oracle/product/10.2.0/db_1

% mkdir -p /u01/app/oracle
% chown -R oracle/oinstall /u01/app/oracle
% chmod -R 775 /u01/app/oracle

% df -k /u01/app/oracle
Filesystem kbytes used avail capacityMounted on
/dev/dsk/c2t0d0s7 20655529 20507 20428467 1% /u01

9。创建Oracle Database和Recovery文件的目录:

Oracle Database文件的目录,需至少1.2GB,缺省是Oracle Base的子目录:

% mkdir -p /u01/app/oracle/oradata
% chown -R oracle/oinstall /u01/app/oracle/oradata
% chmod 775 /u01/app/oracle/oradata

Recover文件的目录,是enable automated backup用recover文件(flash recover)的目录,需至少2.4GB:

% mkdir -p /u01/app/oracle/flash_recovery_area
% chown -R oracle/oinstall /u01/app/oracle/flash_recovery_area
% chmod 775 /u01/app/oracle/flash_recovery_area

10。配置Oracle software owner用户(oracle)的环境变量:

$ su - oracle

$ vi .cshrc
#ident”@(#)local.cshrc 1.2 00/05/01 SMI”
umask 022
set path=(/disk1/software/ss11/opt/SUNWspro/bin /usr/ccs/bin /bin /usr/bin /usr/sbin /sbin /usr/ucb /etc /usr/openwin/bin /usr
/sfw/bin /opt/SUNWappserver/appserver/bin .)
if ( $?prompt ) then
set history=32
endif
set prompt=”`hostname`:`pwd`!% ”
alias cd ‘cd !*;set prompt=”`hostname`:`pwd` ! % “‘

setenv DISPLAY 129.158.167.67:0.0
setenv JAVA_HOME /usr/jdk/instances/jdk1.5.0
setenv ORACLE_HOSTNAME bbs.chinaunix.net
setenv ORACLE_BASE /u01/app/oracle
setenv ORACLE_HOME /u01/app/oracle/product/10.2.0/db_1
setenv ORACLE_SID o10g-10.2
setenv NLS_LANG AMERICAN_AMERICA.ZHS16GBK
setenv TEMP /var/tmp
setenv TMPDIR /var/tmp

$ more .profile
#
# Copyright (c) 2001 by Sun Microsystems, Inc.
# All rights reserved.
#
# ident “@(#)local.profile 1.10 01/06/23 SMI”
stty istrip
PATH=/disk1/software/ss11/opt/SUNWspro/bin:/usr/ccs/bin:/usr/jdk/instances/jdk1.5.0/bin:/usr/bin:/usr/sbin:/sbin:/usr/ucb:/etc
:/usr/openwin/bin:/usr/sfw/bin:/opt/SUNWappserver/appserver/bin:.
export PATH

DISPLAY=129.158.167.67:0.0
JAVA_HOME=/usr/jdk/instances/jdk1.5.0
ORACLE_HOSTNAME=bbs.chinaunix.net
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1
ORACLE_SID=o10g-10.2
NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
TEMP=/var/tmp
TMPDIR=/var/tmp
export DISPLAY JAVA_HOME ORACLE_HOSTNAME ORACLE_BASE ORACLE_HOME ORACLE_SID NLS_LANGTEMP TMPDIR

11。以oracle用户运行runInstaller,安装Oracle 10g Release 2:

$ /oracle10g-release2-10.2/sparc/server/runInstaller
正在启动 Oracle Universal Installer…

正在检查安装程序要求…

检查操作系统版本: 必须是5.8, 5.9 or 5.10。 实际为 5.10 通过

检查临时空间: 必须大于 250 MB。 实际为 28036 MB 通过
检查交换空间: 必须大于 500 MB。 实际为 23270 MB 通过
检查监视器: 监视器配置至少必须显示 256 种颜色。 实际为 16777216 通过

所有安装程序要求均已满足。

准备从以下地址启动 Oracle Universal Installer /var/tmp/OraInstall2005-12-30_04-50-22PM. 请稍候…$

期间需回答问题:
——————————-
基本安装:
Oracle主目录:/u01/app/oracle/product/10.2.0/db_1
安装类型:企业版(1.8GB)
Unix DBA组:oinstall
创建启动数据库(附加820MB)
全局数据库名:orcl
数据库口令(用于SYS,SYSTEM, SYSMAN, DBSNMP):
确认口令:
——————————–
输入产品清单目录:/u01/app/oracle/oraInventory
指定用户组名(产品清单):oinstall
——————————–
安装条件检查:
关于Solaris 8/9的内核参数没有配置(set noexec_user_stack=1)
如没设置,会警告

正在检查操作系统需求…
要求的结果: 5.8,5.9,5.10 之一
实际结果: 5.10
检查完成。此次检查的总体结果为: 通过

正在检查操作系统程序包需求…
要求的结果: SUNWbtool
实际结果: CCS tools bundled with SunOS(SUNWbtool)
检查完成。此次检查的总体结果为: 通过

检查内核参数
正在检查 BIT_SIZE=64; 已发现 BIT_SIZE=64。 通过
正在检查 noexec_user_stack=1; 已发现 noexec_user_stack=1。 通过
检查完成。此次检查的总体结果为: 通过

正在检查物理内存需求…
要求的结果: 922MB
实际结果: 8192MB
检查完成。此次检查的总体结果为: 通过

正在检查可用交换空间需求…
要求的结果: 8192MB
实际结果: 23146MB
检查完成。此次检查的总体结果为: 通过

正在验证 ORACLE_BASE 的位置 (如果已设置)…
检查完成。此次检查的总体结果为: 通过

正在检查 Oracle 主目录路径中的空格…
检查完成。此次检查的总体结果为: 通过

正在检查是否进行了正确的系统清除…
检查完成。此次检查的总体结果为: 通过

正在检查 Oracle 主目录的不兼容性…
实际结果: NEW_HOME
检查完成。此次检查的总体结果为: 通过

—————————————————–
选择创建数据库
——————————————–
确定安装的Oracle 10g 10.2.0.1.0的选择概要
选择安装
——————————————-
不退出安装界面,以root身份执行2个脚本:

% /u01/app/oracle/oraInventory/orainstRoot.sh
更改权限/u01/app/oracle/oraInventory 到 770.
更改组名/u01/app/oracle/oraInventory 到 oinstall.
脚本的执行已完成

% /u01/app/oracle/product/10.2.0/db_1/root.sh
Running Oracle10 root.sh script…

The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1

Enter the full pathname of the local bin directory: [/usr/local/bin]:
Creating /usr/local/bin directory…
Copying dbhome to /usr/local/bin …
Copying oraenv to /usr/local/bin …
Copying coraenv to /usr/local/bin …

Creating /var/opt/oracle/oratab file…
Entries will be added to the /var/opt/oracle/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.
eoffice-480:/u01/app/oracle/product/10.2.0/db_1 23 %
——————————————
安装结束,选择退出:

 

在这安装时走了好多弯路,主要是因为Soliaria10中不再使用/etc/system来设定内核参数,而使用一种新的称为资源管理的机制,这里写出来。

 

 

为了确保一些大型应用程序(如Oracle)运行良好,需要为其分配合理的系统资源,如:内存空间、信号灯集、CPU时间等,这些系统资源的分配在以往的系统中通常通过可调的内核参数在”/etc/system”文件中设定, 这种方式需要重新启动机器才能使修改生效,但Solaris 10版本中的系统资源配置管理较之前的版本有较大的变化, 在Solaris10中保留了这种传统做法,另外还提供了另一种动态设置参数的方式,不需要重新启动OS就可以修改这些系统限制,以下Solaris 10中资源配置管理的例子都是基于Oracle的应用.Oracle是一个由多进程组成的程序, 不同的进程之间利用不同的IPC方式实现不同的功能,IPC需要占用系统开销,对Oracle应用程序的资源限制实际上是设定IPC所能占用的系统开销(有关IPC的介绍,请参考其它书籍).

 

基于项目调整
项目(project)是Solaris Resource Management(资源管理)中的基本单位。通过几个系统命令(projects,projadd,projmod,projdel)对系统资源进行控制. 基于项目方式设置的资源控制在系统重新启动后也不会丢失.本节将以Oracle在Solaris10上进行安装为例,以project为单位为Oracle用户分配所有与之相关的资源。

step1. 为oracle用户创建新的项目.

    # id –p oracle

    uid=605(oracle) gid=601(dba) projid=3(default)

  

    # projadd -U oracle -p 1233 -c "oracle parameters setting" user.oracle

    其中:

    -U: 指定应用到该项目的用户列表.

    -c: 项目的描述信息.

    -p: 非负整数,项目ID号.

 

    # id –p oracle

    uid=605(oracle) gid=601(dba) projid=1233(user.oracle)

step2. 为项目添加属性.

    # projmod -a -K "project.max-shm-memory=(priv,17179869184,deny)" user.oracle (设置最大共享内存为12G,系统物理内存为32G,单位为字节.)

    # projmod -a -K "project.max-sem-ids=(priv,2000,deny)" user.oracle

    # projmod -a -K "process.max-sem-nsems=(priv,2048,deny)" user.oracle

    # projmod -a -K "project.max-shm-ids=(priv,256,deny)" user.oracle

    其中:

    -a: 表示将属性追加到该项目数据库中(-r为删除).

    -K: 代表key,用于指定具体的属性,可以一次设置多个属性值,格式为:

       -K key1=value1 -K "key2=(value2a),(value2b)"

 

 

step3. 查看项目当前的设定值.

    # prctl $$ (查看所有项目的属性)

    # prctl -n project.max-shm-memory $$ (查看当前用户的属性值)

    process: 16830: -sh

    NAME    PRIVILEGE       VALUE    FLAG   ACTION                       RECIPIENT

    project.max-shm-memory

        privileged      7.81GB      -   deny                                 -

        system          16.0EB    max   deny                                 -

    root用户默认可用的共享内存为7.81GB,约为物理内存的1/4.

 

    # prctl -n project.max-shm-memory -i project user.oracle

    project: 1233: user.oracle

    NAME    PRIVILEGE       VALUE    FLAG   ACTION                       RECIPIENT

    project.max-shm-memory

        privileged      12.0GB      -   deny                                 -

        system          16.0EB    max   deny

 

在运行时动态设定
除了基于Project方式来控制系统的资源之外,系统还通过”prctl”工具提供另一种动态设定资源的方法,但经prctl工具设置的系统资源限制只有在当前的系统生效,在系统重新启动后这些设置将会丢失.

如在系统运行时将oracle用户最大能使用的共享内存由12GB改为10GB:

# prctl -n project.max-shm-memory -r -v 10g -i project user.oracle

-r: 替代数据库中该项目已有的属性值.

-v: 指定新的目标值.

 

# prctl -n project.max-shm-memory  -i project user.oracle

project: 1233: user.oracle

NAME    PRIVILEGE       VALUE    FLAG   ACTION                       RECIPIENT

project.max-shm-memory

        privileged      10.0GB      -   deny                                 -

        system          16.0EB    max   deny

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值