Suse11sp4下静默安装Oracle11.2g
1. 准备oracle安装文件
Oracle11gR2包含两个文件linux_11gR2_database_1of2.zip和linux_11gR2_database_2of2.zip,下载地址分别是:
https://download.oracle.com/otn/linux/oracle11g/R2/linux.x64_11gR2_database_1of2.zip
https://download.oracle.com/otn/linux/oracle11g/R2/linux.x64_11gR2_database_2of2.zip
请先注册账号登录
1 mkdir -p /usr/local/oracle
下载完成后将这两个文件通过SSH上传到/usr/local/oracle中,并解压安装文件到当前目录
1 cd /usr/local/oracle 2 unzip linux.x64_11gR2_database_1of2.zip 3 unzip linux.x64_11gR2_database_2of2.zip
执行以上命令后,将会在/usr/local/oracle/下面产生名为database的目录,这就是oracle安装程序的目录。
2. 准备oracle的安装目标目录
mkdir –p /opt/oracle
安装目标目录是用户想将oracle安装到哪个位置的目录,本次我们将oracle安装到/opt/oracle目录中,以下为目录创建命令。
3. 创建oracle相关用户和用户组
oracle不能在root帐户下进行安装,所以需要为oracle的安装专门创建一个用户,同时需要创建dba和oinstall的用户组。
以下命令将创建dba和oinstall用户组:
1 groupadd dba 2 groupadd oinstall
以下命令将创建oracle用户,并设置密码
1 useradd -g oinstall -G dba oracle 2 passwd oracle
Changing password for oracle. New Password: [在此键入密码] Bad password: it is based on a dictionary word Reenter New Password: [在此再次键入密码] Password changed.
创建oracle用户home目录,并将oracle安装目录(/opt/oracle)赋予oracle用户oinstall用户组
1 mkdir -p /home/oracle 2 chown -R oracle:oinstall /home/oracle 3 chown -R oracle:oinstall /opt/oracle
4. 检查安装ORACLE依赖的RPM软件包
oracle的安装所依赖的软件包,有一部分linux是没有安装的。这需要将这些尚未安装的软件包先安装后才能正常安装oracle。这些未安装的软件包在linux安装光盘上可以取到,我们直接在linux的光盘上对这些软件包进行安装(也可将所需的软件包直接复制到linux本地磁盘中),首先我们需要挂载linux光盘,使用以下命令:
1 mkdir /mnt/cdrom 2 mount /dev/cdrom /mnt/cdrom
安装所缺少的软件包,此处只安装本linux系统所缺少的软件包。如oracle安装过程中,对软件包进行检查时,发现仍有所需软件包未安装时,可根据显示未安装软件包的名字,再次对所缺少的软件包进行安装。以下为安装命令:
1 rpm -ivh binutils-2.24-3.62.src.rpm 2 rpm -ivh gcc-4.3-62.200.2.x86_64.rpm 3 rpm -ivh gcc-c++-4.3-62.200.2.x86_64.rpm 4 rpm -ivh gcc43-4.3.4_20091019-0.37.30.x86_64.rpm 5 rpm -ivh gcc43-c++-4.3.4_20091019-0.37.30.x86_64.rpm 6 rpm -ivh glibc-2.11.3-17.84.1.src.rpm 7 rpm -ivh glibc-devel-2.11.3-17.84.1.x86_64.rpm 8 rpm -ivh ksh-93u-0.26.1.src.rpm 9 rpm -ivh libaio-0.3.109-0.1.46.src.rpm 10 rpm -ivh libaio-devel-0.3.109-0.1.46.x86_64.rpm 11 rpm -ivh libgcc43-4.6.9-0.14.1.9.x86_64.rpm 12 rpm -ivh libstdc++-devel-4.3-62.200.2.x86_64.rpm 13 rpm -ivh libstdc++33-3.3.3-11.9.x86_64.rpm 14 rpm -ivh libstdc++43-4.6.9-0.14.1.9.x86_64.rpm 15 rpm -ivh libstdc++43-devel-4.3.4_20091019-0.37.30.x86_64.rpm 16 rpm -ivh libstdc++46-4.6.9-0.13.22.x86_64.rpm 17 rpm -ivh linux-kernel-headers-3.0-19.18.src.rpm 18 rpm -ivh make-3.81-128.20.src.rpm 19 rpm -ivh sysstat-8.1.5-7.50.25.x86_64.rpm 20 rpm -ivh unixODBC-2.2.12-198.17.x86_64.rpm 21 rpm -ivh unixODBC-devel-2.2.12-198.17.x86_64.rpm
5. 设置linux内核参数
打开修改/etc/sysctl.conf,在最后加入以下内容
1 vi /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
输入以下命令,使配置生效
1 sysctl -p
有的时候我们需要调整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.ora文件中的参数,而且应该调整OS的内核参数,象 AIX,HPUX,Solaris,SCO,UNIXWare都是这样,OS的调整是需要重新启动的,而且这个参数的设置不能简单按照多少个终端要连到这个服务器上而定,最关键是考虑会有多少同时连上的session(在使用一些共享连接的中间件时,一般就不需要太大),当然还要考虑一些Oracle的后台进程,还有一些系统维护工作需要多一些连接等。
我的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
6. 修改 /etc/security/limits.conf
修改 vi /etc/security/limits.conf,加入内容
1 vi /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,加入以下内容
1 vi /etc/profile
if [ $USER = "oracle" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi
8 修改hosts文件 - 跳过
vi /etc/hosts
增加一行
127.0.0.1 picctest
9 增加/dev/shm
MEMORY_MAX_TARGET 的设置不能超过 /dev/shm 的大小
编辑fstab,添加一行:
1 vi /etc/fstab
tmpfs /dev/shm tmpfs defaults,size=1024m 0 0
重新挂载来修改其大小
1 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的空闲空间
1 su oracle 2 cd /usr/local/oracle/database
运行安装命令
1 ./runInstaller -silent -responseFile /usr/local/oracle/database/response/db_install.rsp
[以下为ORACLE安装程序输出的结果]
Starting Oracle Universal Installer... Checking Temp space: must be greater than 120 MB. Actual 27296 MB Passed Checking swap space: must be greater than 150 MB. Actual 2053 MB Passed Preparing to launch Oracle Universal Installer from /tmp/OraInstall2019-09-21_08-57-43AM. Please wait ...oracle@linux-cm0k:/usr/local/oracle/database> [WARNING] [INS-06101] IP address of localhost could not be determined CAUSE: The localhost is not mapped to a valid IP address in Hosts file (Eg. /etc/hosts in Unix). ACTION: Assign a valid IP address for the localhost or set it to loopback IP address (127.0.0.1 in IPv4 or ::1 in IPv6). SUMMARY: - linux-cm0k: linux-cm0k