SUSE Linux Enterprise 11SP1 静默安装Oracle 11gR2说明文档 1 准备oracle安装文件
Oracle11gR2包含两个文件linux_11gR2_database_1of2.zip和linux_11gR2_database_2of2.zip,下载地址分别是:
http://download.oracle.com/otn/linux/oracle11g/R2/linux_11gR2_database_1of2.zip http://download.oracle.com/otn/linux/oracle11g/R2/linux_11gR2_database_2of2.zip 下载完成后将这两个文件通过SSH上传到/usr/local/oracle中。
解压安装文件到当前目录 [root@localhost root]#cd /usr/local/oracle [root@localhost oracle]#unzip linux_11gR2_database_1of2.zip [root@localhost oracle]#unzip linux_11gR2_database_2of2.zip 执行以上命令后,将会在/usr/local/oracle/下面产生名为database的目录,这就是oracle安装程序的目录。
2 准备oracle的安装目标目录
安装目标目录是用户想将oracle安装到哪个位置的目录,本次我们将oracle安装到/opt/oracle目录中,以下为目录创建命令。 [root@localhost oracle]#mkdir –p /opt/oracle 3 创建oracle相关用户和用户组
oracle不能在root帐户下进行安装,所以需要为oracle的安装专门创建一个用户,同时需要创建dba和oinstall的用户组。
以下命令将创建dba和oinstall用户组: [root@localhost oracle]#groupadd dba [root@localhost oracle]#groupadd oinstall 以下命令将创建oracle用户,并设置密码
[root@localhost oracle]#useradd -g oinstall -G dba oracle [root@localhost oracle]#passwd oracle Changing password for user oracle. New UNIX password: [在此键入密码] BAD PASSWORD: it is based on a dictionary word Retype new UNIX password: [在此再次键入密码] passwd: all authentication tokens updated successfully. 创建oracle用户home目录 [root@localhost oracle]# md /home/oracle [root@localhost oracle]# chown -R oracle:oinstall /home/oracle 以下命令将oracle安装目录(/opt/oracle)赋予oracle用户oinstall用户组 [root@localhost oracle]#chown –R oracle:oinstall /opt/oracle 4 检查安装ORACLE依赖的RPM软件包
oracle的安装所依赖的软件包,有一部分linux是没有安装的。这需要将这些尚未安装的软件包先安装后才能正常安装oracle。这些未安装的软件包在linux安装光盘上可以取到,我 们直接在linux的光盘上对这些软件包进行安装(也可将所需的软件包直接复制到linux本地磁盘中),首先我们需要挂载linux光盘,使用以下命令: [root@localhost oracle]#mkdir /mnt/cdrom [root@localhost oracle]#mount /dev/cdrom /mnt/cdrom 安装所缺少的软件包,此处只安装本linux系统所缺少的软件包。如oracle安装过程中,对软件包进行检查时,发现仍有所需软件包未安装时,可根据显示未安装软件包的名字,再次对所缺少的软件包进行安装。以下为安装命令:
[root@localhost oracle]#rpm -ivh linux-kernel-headers-2.6.32-1.4.13.noarch.rpm [root@localhost oracle]#rpm -ivh glibc-devel-2.11.1-0.17.4.i586.rpm [root@localhost oracle]#rpm -ivh gcc43-4.3.4_20091019-0.7.35.i586.rpm [root@localhost oracle]#rpm -ivh gcc-4.3-62.198.i586.rpm [root@localhost oracle]#rpm -ivh libstdc++43-devel-4.3.4_20091019-0.7.35.i586.rpm [root@localhost oracle]#rpm -ivh gcc43-c++-4.3.4_20091019-0.7.35.i586.rpm [root@localhost oracle]#rpm -ivh gcc-c++-4.3-62.198.i586.rpm [root@localhost oracle]#rpm -ivh sysstat-8.1.5-7.9.56.i586.rpm [root@localhost oracle]#rpm -ivh libaio-devel-0.3.109-0.1.46.i586.rpm [root@localhost oracle]#rpm -ivh libstdc++-devel-4.3-62.198.i586.rpm [root@localhost oracle]#rpm -ivh unixODBC-2.2.12-198.17.i586.rpm [root@localhost oracle]#rpm -ivh unixODBC-devel-2.2.12-198.17.i586.rpm 5 设置linux内核参数
打开修改/etc/sysctl.conf,在最后加入以下内容 kernel.shmall = 2097152
kernel.shmmax = 2147483648 kernel.shmmni = 4096
kernel.sem = 250 32000 100 128 net.core.rmem_default = 4194304 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 fs.file-max = 6815744
net.ipv4.ip_local_port_range = 9000 65500 net.core.wmem_max = 1048576 fs.aio-max-nr = 1048576
有的时候我们需要调整oracle数据库的最大链接数,而这个链接数的调整是在oacle下的dbs目录下init.ora文件中调整的。
ORACLE的连接数(sessions)与其参数文件中的进程数(process)有关,它们的关系如下: sessions=(1.1*process+5)
但是我们增加process数时,往往数据库不能启动了。这因为我们还漏调了一个unix系统参数:它是核心参数中的semmns,这是unix系统的信号量参数。每个process会占用一个信号量。semmns调整后,需要重新启动unix操作系统,参数才能生效。不过它的大小会受制于硬件的内存或 ORACLE SGA。范围可从200——2000不等。
但是,Processes的修改不仅应该调整init
我的atmp大前置机器上对oracle调整的时候,其使用的是unixware操作系统,在做链接数调整的时候,要先对核心参数进行调整。 核心主要相关的参数的调整如下: SHMMAX 1000000000 SHMMIN 1 SHMMNI 200 SHMSEG 15 SEMMNI 1000 SEMMSL 300 SEMMNS 230 SEMOPM 20
其中semmni,semmns,semmsl要加大,至少要比processes大18 ;
SEMMNI(10,10000;150):指定在核心中信号识别的数量。这是可以在任意给定时间被激活的唯一
信号设置数量。缺省值是150。最大值由系统自动调整产生。
SEMMSL(25,300;150):指定每个信号识别中信号量的最大值。缺省值是25。
SEMMNS 除最大db外的所有db 的PROCESSES之和+2*最大db的PROCESSES+10*实例数。如3个实例进程数分别为100、100、200,则=(100+100)+2*200+10*3=630
SEMOPM(10,20;10):指定在每个系统调用semop中能够被执行的信号操作量的最大值。缺省值是10。
SHMMAX(131072,1073741824;524288):指定了共享内存部分大小的最大值。等于0.5×物理内存字节数
SHMMNI(10,1000;100):指定了系统范围内共享内存标识的最大值。
SHMSEG(6,15;6):指定了与每个进程相关连的共享内存块(或标识)的数量。缺省值是6。与每个进程相关连的共享内存块的最大值与进程拥有的未使用空间有关。因此,尽管一个进程拥有少于SHMSEG数值的共享内存块,它也有可能因为其有限的空间而不能与其它进程相联系。 init.ora中调整为: processes = 50 # SMALL #processes = 100 # MEDIUM #processes = 200 # LARGE
输入以下命令,使配置生效 [root@localhost oracle]#sysctl -p
6 修改 /etc/security/limits.conf
修改 /etc/security/limits.conf,加入内容 oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 7 修改系统环境变量/etc/profile
修改环境变量/etc/profile,加入以下内容 if [ $USER = \if [ $SHELL = %ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi 8 修改hosts文件
lihaolong:~ # vi /etc/hosts
增加一行
127.0.0.1 lihaolong
9 增加/dev/shm
MEMORY_MAX_TARGET 的设置不能超过 /dev/shm 的大小 编辑fstab,添加一行: vi /etc/fstab
tmpfs /dev/shm tmpfs defaults,size=1024m 0 0
重新挂载来修改其大小
mount -o remount /dev/shm
10 修改suse版本
lihaolong:/home/database # vi /etc/SuSE-release
SUSE Linux Enterprise Server 11 (i586) VERSION = 9(等号后面要有个空格) PATCHLEVEL = 1
11 开始安装过程
应答文件:
注:安装oracle的目录,至少具备4G的空闲空间 [root@localhost oracle] # su oracle [oracle@localhost oracle] #cd /usr/local/oracle/database