此次安装oracle选择的是oracle 11.2.0.3版本,下载的安装包总共有7个,单独安装数据库须要使用前两个,具体安装步骤以下:linux
1. 将数据库文件复制到服务器上
cp p10404530_112030_Linux-x86-64_{1,2,}* /u01/c++
2. 解压数据库文件
unzip p10404530_112030_Linux-x86-64_1of7.zip
unzip p10404530_112030_Linux-x86-64_2of7.zip数据库
3. 检查/etc/hosts
注意将主机名的对应信息加入hosts文件安全
关闭sendmail 与iptablesbash
Chkconfig –list iptables服务器
Chkconfig –list sendmail网络
service sendmail stopsession
service iptables stoporacle
4. 建立用户和组
useradd oracleapp
passwd oracle
groupadd dba
usermod -G dba oracle
chown -R oracle:dba /u01/
chmod –R 755 /u01/
检查如下补丁是否已经安装(挂载iso文件,使用mount –o loop 路径 /mnt/iso)
binutils-2.15.92.0.2-18
compat-libstdc++-33.2.3-47.3
elfutils-libelf-0.97-5
elfutils-libelf-devel-0.97-5
glibc-2.3.9.4-2.19
glibc-common-2.3.9.4-2.19
glibc-devel-2.3.9.4-2.19
gcc-3.4.5-2
gcc-c++-3.4.5-2
libaio-devel-0.3.105-2
libaio-0.3.105-2
libgcc-3.4.5
libstdc++-3.4.5-2
libstdc++-devel-3.4.5-2
make-3.80-5
sysstat-5.0.5
unixODBC-2.2.11
unixODBC-devel-2.2.11
[root@erp1 Packages]# rpm -ivh binutils-2.20.51.0.2-5.28.el6.x86_64.rpm compat-libstdc++-33-3.2.3-69.el6.x86_64.rpm elfutils-libelf-0.152-1.el6.x86_64.rpm elfutils-libelf-devel-0.152-1.el6.x86_64.rpm glibc-common-2.12-1.47.el6.x86_64.rpm glibc-devel-2.12-1.47.el6.x86_64.rpm gcc-4.4.6-3.el6.x86_64.rpm gcc-c++-4.4.6-3.el6.x86_64.rpm libaio-devel-0.3.107-10.el6.x86_64.rpm libaio-0.3.107-10.el6.x86_64.rpm libgcc-4.4.6-3.el6.x86_64.rpm libstdc++-4.4.6-3.el6.x86_64.rpm libstdc++-devel-4.4.6-3.el6.x86_64.rpm make-3.81-19.el6.x86_64.rpm sysstat-9.0.4-18.el6.x86_64.rpm unixODBC-2.2.14-11.el6.x86_64.rpm unixODBC-devel-2.2.14-11.el6.x86_64.rpm compat-libcap1-1.10-1.x86_64.rpm compat-libstdc++-33-3.2.3-69.el6.x86_64.rpm ksh-20100621-12.el6.x86_64.rpm libaio-devel-0.3.107-10.el6.x86_64.rpm
5. 修改/etc/sysctl.conf,加入如下内容:
kernel.shmmax = 4294967295
# Controls the maximum number of shared memory segments, in pages
kernel.shmall = 2097152
kernel.shmmni = 4096
#semaphores:semmsl,semmns,semopm,semmni
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 262144
结束后,执行
/sbin/sysctl -p
6. 修改/etc/security/limits.conf,加入内容
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
7. 修改/etc/pam.d/login,加入内容
session required /lib/security/pam_limits.so //对64位系统这条不须要
session required pam_limits.so
8. 修改/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
9. 使用oracle用户登陆,修改.bash_profile文件
su - oracle
vi .bash_profile 加入如下内容
#DISPLAY=localhost:0.0
#export DISPLAY
export ORACLE_SID=center
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/11.2.0./db_1
export ORA_CRS_HOME=/u01/app/product/crs_1
export ORACLE_ADMIN=$ORACLE_BASE/admin
export ORACLE_HOME_LISTNER=$ORACLE_HOME
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/jlib
export JAVA_HOME=$ORACLE_HOME/jdk
export PATH=$PATH:$ORACLE_HOME/bin:/usr/bin:/usr/sbin:/usr/local/sbin:/usr/lib:$JAVA_HOME/bin:$ORA_CRS_HOME/bin:
相关参数文件的内容解释:
a) vi /etc/sysctl.conf
kernel.shmall为物理内存除以pagesize;
kernel.shmmax为物理内存的一半;
fs.file-max为512 乘以 processes (如128个process则为 65536);
net.ipv4.ip_local_port_range/net.core.rmem_default/net.core.rmem_max三个参数设置和官方文档不同, 这是根据metalink 343431.1 最新要求更改的;
net.ipv4.tcp_rmem/net.ipv4.tcp_wmem两个参数通常状况下无需设置, 除非是在Dataguard/Streams等需不少网络传输状况下;
其它参数根据官方文档要求设置便可.
# vi /etc/sysctl.conf
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 9000 65000
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 262144
修改之后让参数生效:
# /sbin/sysctl -p
Shmmax 是核心参数中最重要的参数之一,用于定义单个共享内存段的最大值,
shmmax 设置应该足够大,能在一个共享内存段下容纳下整个的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 内核参数是共享内存段的最大数量(注意这个参数不是 shmmin,是
shmmni, shmmin 表示内存段最小大小 ) 。shmmni 缺省值 4096 ,通常确定是够用了 。
在安装Oracle 以前一般须要设置kernel.sem这个参数,下面对些做简单介绍:
sem实际上是semaphores的缩写,查看当前设置
[Oracle@ebsse oracle]$ cat /proc/sys/kernel/sem
250 32000 100 128
4个数据分别对应
SEMMSL SEMMNS SEMOPM SEMMNI
如当Oracle DB初始化参数文件中PROCESSES参数设置较大时,须要调整SEMAPHORES设置
SEMMSL应该设置为服务器中各个实例中最大的PROCESSES参数+10,例如,当最大的PROCESSES参数为5000时,SEMMSL应设置为5010。
SEMMNS参数应设置为SEMMSL*SEMMNI,接上例SEMMSL为5010,SEMMNS参数应为(5010*128)=641280。
SEMOPM参数应设置与SEMMSL参数相同,接上例此处应设置为5010
更改当前SEMAPHORES参数设置:
[Oracle@ebsse oracle]$ su
Password:
[root@ebsse Oracle]# echo "5010 641280 5010 128" > /proc/sys/kernel/sem
[root@ebsse Oracle]# cat /proc/sys/kernel/sem
5010 641280 5010 128
如需启动时自动应用,可在/etc/sysctl.conf增长:
kernel.sem =5010 641280 5010 128
SEMMNI 100 Defines the maximum number of semaphore sets in the entire system.
SEMMNS 256 Defines the maximum semaphores on the system. This setting is a minimum recommended value, for initial installation only. The SEMMNS parameter should be set to the sum of the PROCESSES parameter for each Oracle database, adding the largest one twice, and then adding an additional 10 for each database.
SEMOPM 100 Defines the maximum number of operations for each semop call.
SEMMSL 100 Defines the minimum recommended value, for initial installation only.
SHMMAX 2147483648 Defines the maximum allowable size of one shared memory segment. 2 GB for SMP kernel. The recommended size is half the RAM size.
SHMMIN 1 Defines the minimum allowable size of a single shared memory segment.
SHMMNI 100 Defines the maximum number of shared memory segments in the entire system.
SHMSEG 4096 Defines the maximum number of shared memory segments one process can attach.
SHMVMX 32767 Defines the maximum value of a semaphore.
SEMMSL :每一个信号量集中的最大信号量数 200
SEMMNS :系统中信号量集的最大数 20000
SEMOPM :每一个semop调用所包含的最大操做数 200
SEMMNI :系统中信号量集的最小数 100
例子:
Linux X86-64操做系统,Oracle 10g数据库,由8G加到16G,把kernel.shmmax参数改到17179869184(16G)后,发现只要修改sga_max_size和sga_target参数到超过8G,Oracle就会报内存不够没法启动,检查另外两个共享内存参数相关参数:kernel.shmall和kernel.shmmni,kernel.shmall参数是控制共享内存页数,kernel.shmmni参数是控制共享内存段总数,目前的参数值是4096,足够大了,那么问题应该是出在kernel.shmall上,用8589934592(8G)除以当前的参数值2097152,结果是4096,说明页大小是4K,如今要把SGA调到大于8G,就要调大kernel.shmall参数,调整到当前值的2倍(4194304)后,就能够成功地将sga设置到13G了。
b) 附件2:linux limits.conf 配置
limits.conf 文件实际是 Linux PAM(插入式认证模块,Pluggable Authentication Modules)中 pam_limits.so 的配置文件,并且只针对于单个会话。
limits.conf的格式以下:
username|@groupname type resource limit
username|@groupname:设置须要被限制的用户名,组名前面加@和用户名区别。也能够用通配符*来作全部用户的限制。
type:有 soft,hard 和 -,soft 指的是当前系统生效的设置值。hard 代表系统中所能设定的最大值。soft 的限制不能比hard 限制高。用 - 就代表同时设置了 soft 和 hard 的值。
resource:
core - 限制内核文件的大小
date - 最大数据大小
fsize - 最大文件大小
memlock - 最大锁定内存地址空间
nofile - 打开文件的最大数目
rss - 最大持久设置大小
stack - 最大栈大小
cpu - 以分钟为单位的最多 CPU 时间
noproc - 进程的最大数目
as - 地址空间限制
maxlogins - 此用户容许登陆的最大数目
要使 limits.conf 文件配置生效,必需要确保 pam_limits.so 文件被加入到启动文件中。查看 /etc/pam.d/login 文件中有:
session required /lib/security/pam_limits.so
10. 使用oracle用户登录,输入startx ,进入图形界面,而后再进入安装目录输入./runInstaller开始安装.
11. 配置安全更新
12. 跳过软件更新配置
13. 安装选项选择建立数据库
14. 系统类型选择服务器类型
15. 安装单实例数据库
16. 选择是否自定义安装
17. 产品语言选择,english和simple chinese都选上
18. 数据库版本选择企业版
19. 安装路径以环境变量里的配置为准
20. 选择oracle安装组
21. 选择数据库类型为oltp类型
22. 根据实际须要输入数据库实例名
23. 选择字符集等参数
24. 选择文件系统,暂不使用asm
25. 设置系统帐户密码
26. 选择数据库管理员组
27. 安装检查
28. 开始安装
29. 在安装中会弹出一个要求执行u01/oraInventory/oraInstRoot.sh和/u01/oracle/root.sh的提示框,以ROOT用户执行这两个文件后结束安装