一.先安装oracle需要的依赖包:
yum install compat-libstdc++-33* elfutils-libelf-devel-* gcc-4.* gcc-c++-4.* libaio-0.* libaio-devel-0.* libgcc-4.* sysstat-7.* unixODBC-2.* unixODBC-devel-2.* pdksh*
确保所有依赖包都已经安装完成后继续
二.创建用户组和用户:
groupadd oinstall #创建用户组oinstall groupadd dba #创建用户组dba useradd -g oinstall -G dba oracle #创建oracle用户,并加入到oinstall和dba用户组 groups oracle #查询用户组是否授权成功 passwd oracle #设置oracle用户密码
id oracle #查看新建的oracle用户
三.配置系统内核参数:
vim /etc/sysctl.conf
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.conf.all.rp_filter = 1
fs.file-max = 6815744
fs.aio-max-nr = 1048576
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max= 4194304
net.core.wmem_default= 262144
net.core.wmem_max= 1048576
立即生效:sysctl -p
各参数详解:
kernel.shmmax:是核心参数中最重要的参数之一,用于定义单个共享内存段的最大值。设置应该足够大,能在一个共享内存段下容纳下整个的SGA ,设置的过低可能会导致需要创建多个共享内存段,这样可能导致系统性能的下降。至于导致系统下降的主要原因为在实例启动以及ServerProcess创建的时候,多个小的共享内存段可能会导致当时轻微的系统性能的降低(在启动的时候需要去创建多个虚拟地址段,在进程创建的时候要让进程对多个段进行“识别”,会有一些影响),但是其他时候都不会有影响。
官方建议值:
32位linux系统:可取最大值为4GB(4294967296bytes)-1byte,即4294967295。建议值为多于内存的一半,所以如果是32为系统,一般可取值为4294967295。32位系统对SGA大小有限制,所以SGA肯定可以包含在单个共享内存段中。
64位linux系统:可取的最大值为物理内存值-1byte,建议值为多于物理内存的一半,一般取值大于SGA_MAX_SIZE即可,可以取物理内存-1byte。例如,如果为12GB物理内存,可取12*1024*1024*1024-1=12884901887,SGA肯定会包含在单个共享内存段中。
kernel.shmall:
该参数控制可以使用的共享内存的总页数。Linux共享内存页大小为4KB,共享内存段的大小都是共享内存页大小的整数倍。一个共享内存段的最大大小是16G,那么需要共享内存页数是16GB/4KB=16777216KB /4KB=4194304(页),也就是64Bit系统下16GB物理内存,设置kernel.shmall = 4194304才符合要求(几乎是原来设置2097152的两倍)。这时可以将shmmax参数调整到16G了,同时可以修改SGA_MAX_SIZE和SGA_TARGET为12G(您想设置的SGA最大大小,当然也可以是2G~14G等,还要协调PGA参数及OS等其他内存使用,不能设置太满,比如16G)
kernel.shmmni:
该参数是共享内存段的最大数量。shmmni缺省值4096,一般肯定是够用了。
fs.file-max:
该参数决定了系统中所允许的文件句柄最大数目,文件句柄设置代表linux系统中可以打开的文件的数量。
fs.aio-max-nr:
此参数限制并发未完成的请求,应该设置避免I/O子系统故障。
kernel.sem:
以kernel.sem = 250 32000 100 128为例:
250是参数semmsl的值,表示一个信号量集合中能够包含的信号量最大数目。
32000是参数semmns的值,表示系统内可允许的信号量最大数目。
100是参数semopm的值,表示单个semopm()调用在一个信号量集合上可以执行的操作数量。
128是参数semmni的值,表示系统信号量集合总数。
net.ipv4.ip_local_port_range:
表示应用程序可使用的IPv4端口范围。
net.core.rmem_default:
表示套接字接收缓冲区大小的缺省值。
net.core.rmem_max:
表示套接字接收缓冲区大小的最大值。
net.core.wmem_default:
表示套接字发送缓冲区大小的缺省值。
net.core.wmem_max:
表示套接字发送缓冲区大小的最大值。
四.修改用户限制:
vim /etc/security/limits.conf oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536
五.关闭selinux:
vim /etc/sysconfig/selinux SELINUX=enforcing
修改为 SELINUX=disabled
六.创建安装目录及赋权:
mkdir -p /dbfile/oracle mkdir -p /dbfile/oraInventory mkdir -p /dbfile/database chown -R oracle:oinstall /dbfile/
七.配置oracle环境变量
vim /home/oracle/.bash_profile umask 022 export ORACLE_BASE=/dbfile/oracle export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1 export ORACLE_SID=system export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib export ORACLE_UNQNAME=$ORACLE_SID alias sqlplus='rlwrap sqlplus' alias rman='rlwrap rman' source /home/oracle/.bash_profile
十.上传安装包解压安装:
chown -R oracle:oinstall /dbfile unzip linux.x64_11gR2_database_1of2.zip unzip linux.x64_11gR2_database_2of2.zip export DISPLAY=IP:0.0 ./runInstaller
取消勾选并点击“Next”
选择“Install database software only”并点击“Next”
cd /u01/app/oracle/product/11.2.0/dbhome_1/sysman/lib/
cp ins_emagent.mk ins_emagent.mk.bak
vim ins_emagent.mk
(MK_EMAGENT_NMECTL)
$(MK_EMAGENT_NMECTL) -lnnz11