Chinaunix首页 | 论坛 | 博客
  • 博客访问: 843096
  • 博文数量: 150
  • 博客积分: 5123
  • 博客等级: 大校
  • 技术积分: 1478
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-06 10:03
文章分类

全部博文(150)

文章存档

2011年(2)

2010年(139)

2009年(9)

分类: Oracle

2010-08-31 16:14:47

oracle10g

+需要安装的包+

Rhel5.3需要安装:

不管哪个oracel版本都需要安装libXp,这是xwindow需要的包
检查是否安装了libXp
#rpm -qa |grep libXp     
libXp-1.0.0-8.1.el5
libXpm-3.5.5-3
libXpm-3.5.5-3
libXpm-devel-3.5.5-3
注意是libXp-XXXXXXX的,不是libXpm-xxxxx。

如果使用rpm:
rpm -ivh libXp-1.0.0-8.1.el5.i386.rpm

如果使用yum
yum install libXp.i386

只需要安装32bit的包就可以了。


oracle11g需要libaio-devel包,只需要安装64bit的包就可以了:
rpm -qa |grep libaio-devel
libaio-devel-0.3.106-3.2

rpm -ivh libaio-devel-0.3.106
yum install libaio-devel.x86_64

#rpm -qa |grep elfutils-libelf
elfutils-libelf-0.137-3.el5

#rpm -qa |grep elfutils-libelf-devel

yum install elfutils-libelf-devel.x86_64


安装glibc-devel包,32bit和64bit的包都需要安装
rpm -qa |grep glibc-devel

glibc-devel-2.5-i386
yum install glibc-devel.i386
yum install glibc-devel.x86_64


*   /usr/bin/ld: crt1.o: No such file: No such file or directory
解决办法:安装glibc-devel-2.3.4-2.25.i386.rpm

 
sysstat-7.0.0
yum install sysstat.x86_64

.完全安装linux as4 (完全安装的话,系统就只差两个补丁compat-libcwait-2.0-2.i386.rpm 和compat-oracle-rhel4-1.0-5.i386.rpm ,
若你不是完全安装的话 那就要检查很多的组件是不是安装了
以下这些是必须的
compat-db-4.1.25-9 
compat-gcc-32-3.2.3-47.3 
compat-gcc-32-c++-3.2.3-47.3 
compat-oracle-rhel4-1.0-3 
compat-libcwait-2.0-1 
compat-libgcc-296-2.96-132.7.2 
compat-libstdc++-296-2.96-132.7.2 
compat-libstdc++-33-3.2.3-47.3 
gcc-3.4.3-9.EL4 
gcc-c++-3.4.3-9.EL4 
gnome-libs-1.4.1.2.90-44 
gnome-libs-devel-1.4.1.2.90-44 
libaio-devel-0.3.102-1 
libaio-0.3.102-1 
make-3.80-5 
openmotif21-2.1.30-11 
xorg-x11-deprecated-libs-devel-6.8.1-23.EL 
xorg-x11-deprecated-libs-6.8.1-23.EL


在Rhel4.7版本下:
rpm -ivh libstdc++-devel-3.4.6-10.i386.rpm
或yum install libstdc++-devel.x86_64
yum install libstdc++-devel.i386


rpm -ivh unixODBC-devel-2.2.11-1.RHEL4.1.i386.rpm
yum install unixODBC-devel.x86_64
yum install unixODBC-devel.i386 

rpm -ivh  sysstat-5.0.5-19.el4.i386.rpm
yum install sysstat.x86_64


yum install glibc-devel.i386

需要安装gcc
Rhel4.7下安装gcc的方法如下:
rpm -ivh glibc-kernheaders-2.4-9.1.103.EL.i386.rpm
rpm -ivh glibc-headers-2.3.4-2.41.i386.rpm
rpm -ivh glibc-devel-2.3.4-2.41.i386.rpm
其它Linux下安装gcc的方法也类似。
 


+设置操作系统参数+
++关闭Linux操作系统中不需要的服务++
chkconfig --level 0123456 avahi-daemon    off
chkconfig --level 0123456 bluetooth       off
chkconfig --level 0123456 cups            off
chkconfig --level 0123456 gpm             off
chkconfig --level 0123456 hidd            off
chkconfig --level 0123456 hplip           off
chkconfig --level 0123456 ip6tables       off
chkconfig --level 0123456 isdn            off
chkconfig --level 0123456 mcstrans        off
chkconfig --level 0123456 mdmonitor       off
chkconfig --level 0123456 netfs           off
chkconfig --level 0123456 nfslock         off
chkconfig --level 0123456 pcscd           off
chkconfig --level 0123456 portmap         off
chkconfig --level 0123456 readahead_early off
chkconfig --level 0123456 readahead_later off
chkconfig --level 0123456 rhnsd           off
chkconfig --level 0123456 rpcgssd         off
chkconfig --level 0123456 rpcidmapd       off
chkconfig --level 0123456 sendmail        off

++查看内存及swap++
grep MemTotal /proc/meminfo
oracle10g至少需要922M物理内存


cat /proc/swaps
dd if=/dev/zero of=swap.dat bs=1M count=20000
chmod 600 swap.dat
mkswap swap.dat 
swapon swap.dat


oracle11g需要的swap大小:
12033MB

++设置系统参数++
参照以下设置在/etc/sysctl.conf设置有关参数。具体取值取决于应用。
+++semaphores设置+++
对于orale10g:
# SEMMSL SEMMNS SEMOPM SEMMNI
kernel.sem=2010 257280 2010 128
net.core.rmem_default = 262144
net.core.wmem_default = 262144
net.core.rmem_max = 262144
net.core.wmem_max = 262144
net.ipv4.ip_local_port_range=1024 65000
fs.file-max=65536
fs.file-max=65536
kernel.shmmax=4294967296
kernel.shmall=16777216

对于oracle11g
kernel.sem=2010 257280 2010 128
net.core.rmem_default = 4194304
net.core.wmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_max = 262144
net.ipv4.ip_local_port_range=1024 65000
fs.file-max=65536
kernel.shmmax=4294967296
kernel.shmall=16777216

kernel.shmmax这里设置为4G,这个参数可以根据实际的内存修改。
kernel.shmall单位是页面数,这里设置为16777216*4k为64G大小,可以根据实际修改

/proc/sys/kernel/shmall
This file contains the system-wide limit on the total number of pages of System V shared memory.

/proc/sys/kernel/shmmax
This file can be used to query and set the run time limit on the maximum (System V IPC) shared memory segment size that  can
be created.  Shared memory segments up to 1Gb are now supported in the kernel.  This value defaults to SHMMAX.

/proc/sys/fs/file-max
This file defines a system-wide limit on the number of open files for all processes.
设置小了可能会报“out of file handles”


SEMMSL   内核参数用于控制每个信号集合的最大信号数
SEMMNS   内核参数用于控制系统范围内能使用了最大信号量数。
SEMOPM   每个semop调用所能操作的信号操作结构数组的最大大小
SEMMNI   内核参数用于控制整个系统中信号集的最大数量




SEMMSL  The maximum semaphores per semaphore set.
SEMMNS  A system-wide limit on the number of semaphores in all semaphore sets.
SEMOPM  The maximum number of operations that may be specified in a semop(2) call.
SEMMNI  A system-wide limit on the maximum number of semaphore identifiers.
 
如当oracle DB初始化参数文件中PROCESSES参数设置较大时,需要调整semaphores设置SEMMSL应该设置为服务器中各个实例中最大的PROCESSES参数+10,例如,当最大的PROCESSES参数为4000时,SEMMSL应设置为4010。
SEMMNS参数应设置为SEMMSL*SEMMNI,接上例SEMMSL为4010,SEMMNS参数应为(4010*128)=513280。
SEMOPM参数应设置与SEMMSL参数相同,接上例此处应设置为4010

shmmax指的是单个共享内存段的最大尺寸, 设置shmmax=1G,sga分配了1.2G,当启动实例的时候就分配 2 块共享内存给Oracle,一般情况下可以设置最大共享内存为物理内存的一半
sysctl -w kernel.shmmax=2147483648
# kernel parameter

运行:
/sbin/sysctl -p
使用参数马上生效


Rhel 5.3不需要下面这个步骤
可能Rhel3.X需要建/etc/profile.d/login.sh,内容:
if [ $USER = "oracle" ]; then
    if [ $SHELL = "/bin/ksh" ]; then
        ulimit -p 16384
        ulimit -n 65536
ulimit -l unlimited
    else
        ulimit -u 16384 -n 65536
ulimit -l unlimited
    fi
fi

Rhel5.X和Rhel4.X下需要:
在/etc/security/limits.conf加入

*               hard    nproc   16384
*               soft    nproc   4096
*               hard    nofile  65536
*               soft    nofile  8192
*               hard    memlock -1 
*               soft    memlock -1 


+建oracle用户环境+ 
groupadd -g 501 oinstall
groupadd -g 502 dba
useradd -m -c "Oracle software owner" -g oinstall -G oinstall,dba -u 501 oracle
mkdir /opt/oracle
mkdir /opt/oracle/products
oracle_version=10.2.0
mkdir /opt/oracle/products/$oracle_version
chown -R oracle:oinstall /opt/oracle


++.profile++
设置oracle用户环境,编辑/home/oracle/.bash_profile,添加如下内容:

对于10g或11g类似如下:

ORACLE_BASE=/opt/oracle
ORACLE_SID=oratest
ORACLE_HOME=$ORACLE_BASE/products/10.2
TNS_ADMIN=$ORACLE_HOME/network/admin

ORA_NLS10=$ORACLE_HOME/nls/data
NLS_DATE_FORMAT="YYYYMMDD HH24:MI:SS"

PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/oracm/bin:$ORACLE_HOME/OPatch
LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$ORACLE_HOME/lib:$ORACLE_HOME/ctx/lib:$ORACLE_HOME/oracm/lib
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib
SQLPATH=$ORACLE_HOME/sqlplus/admin
export ORACLE_BASE ORACLE_HOME NLS_DATE_FORMAT ORA_NLS10 ORACLE_SID PATH LD_LIBRARY_PATH CLASSPATH TNS_ADMIN SQLPATH

# ORACLE_TERM=xterm; export ORACLE_TERM
NLS_LANG=AMERICAN_AMERICA.US7ASCII; export NLS_LANG

# set open file handler Rhel5.3 not need
#ulimit -n 65536 -u 16384

# alias
alias bdump="cd $ORACLE_BASE/admin/$ORACLE_SID/bdump"
alias udump="cd $ORACLE_BASE/admin/$ORACLE_SID/udump"
alias ohome="cd $ORACLE_HOME"
alias otail='tail -f $ORACLE_BASE/admin/$ORACLE_SID/bdump/alert_$ORACLE_SID.log'
alias tf="tail -f "
alias sql='sqlplus'
alias sqln="sqlplus /nolog"

如果是oracle9i
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=/opt/oracle/products/9.2.0
export ORACLE_SID=oratest
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_OWNER=oracle
export ORACLE_TERM=xterm
export LD_ASSUME_KERNEL=2.4.1
export THREADS_FLAG=native
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export PATH=$ORACLE_HOME/bin:$PATH
export NLS_LANG=AMERICAN
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data 

+安装+
cpio –idmv < lnx_920_disk1.cpio 
cpio –idmv < lnx_920_disk2.cpio 
cpio –idmv < lnx_920_disk3.cpio 


bash ./runInstaller -ignoreSysPrereqs



  网上大都是介绍red hat 的安装,其UBUNTU的只有本站的10G的安装,本人通过5、6次安装不断积累了些技巧,希望能对大家安装ORACLE时有些启示。如果下列文件在UBUNTU下找不到,可以和我联系,或是在 RED HAT光盘里或网上找(可能有些困难),大家互相沟通交流。E-mail:wbster@gmail.com


创建用户组

Groupadd oinstall

Groupadd dba

建立ORACLE帐户

useradd oracle –g oinstall –G dba

设置密码

passwd oracle

建立安装路径

mkdir /u01

chmod 775 /u01

chown oracle:dba /u01

修改核心参数
添加以下行到 /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 = 1024 65000

更新系统, 运行:
sysctl -p

注销,以ORACLE帐户登录


设置环境变量

#复制.bash_profile 和 .bashrc 到 HOME 目录下

将以下环境变量的设置加入到HOME 目录下.bash_profile 和 .bashrc 中 (如果没有这两个文件从你其他用户目录下复制,然后改所有者)

.bash_profile文件下列注释要打开成下列方式:

if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi



+安装+
cpio –idmv < lnx_920_disk1.cpio 
cpio –idmv < lnx_920_disk2.cpio 
cpio –idmv < lnx_920_disk3.cpio 


================clusterware================
如查安装Rhel5.x时,把开发包装上后,一般只会缺以下包:
libaio-devel-0.3.106-3.2.i386.rpm
sysstat-7.0.2-3.el5.i386.rpm
unixODBC-2.2.11-7.1.i386.rpm
unixODBC-devel-2.2.11-7.1.i386.rpm

rpm -qa --queryformat "%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n" | grep package_name

/etc/sysctl.conf
kernel.sem=250 32000 100 128
kernel.shmmax=536870912
kernel.shmall=536870912
fs.file-max=65536
net.ipv4.ip_local_port_range=1024 65000
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 4194304
fs.aio-max-nr=1048576

Installing the cvuqdisk Package for Linux
如果不安装的话,在下面的文件中增加:
CRS_home/cv/admin/cvuconfig: 
CV_RAW_CHECK_ENABLED=FALSE 

创建用户:
groupadd -g 501 oinstall
useradd -c "Oracle clusterware owner" -g oinstall -G oinstall -u 502 crs


检查ssh
pgrep sshd
su - crs
/usr/bin/ssh-keygen -t rsa

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

exec /usr/bin/ssh-agent $SHELL
/usr/bin/ssh-add

groupadd -g 501 oinstall
groupadd -g 502 dba
useradd -c "Oracle software owner" -g oinstall -G oinstall,dba -u 501 oracle
useradd -u 502 -g oinstall crs
useradd -u 503 -g oinstall asm

mkdir -p  /opt/oracle/app/crs
chown -R crs:oinstall /opt/oracle/app
mkdir  /opt/oracle/app/oracle
chown oracle:oinstall /opt/oracle/app/oracle
chmod 775 /opt/oracle/app
mkdir  /opt/oracle/app/asm
chown asm:oinstall /opt/oracle/app/asm


192.168.0.30       ora1
192.168.0.32       ora1-vip
192.168.100.30     ora1-priv
192.168.0.31       ora2
192.168.0.33       ora2-vip
192.168.100.31     ora2-priv

/usr/bin/ssh-keygen -t rsa

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

/etc/security/limits.conf

oracle               soft    nproc   2047
oracle               hard    nproc   16384
oracle               soft    nofile  1024
oracle               hard    nofile  65536

crs                  soft    nproc   2047
crs                  hard    nproc   16384
crs                  soft    nofile  1024
crs                  hard    nofile  65536
  
/etc/pam.d/login 
session    required     pam_limits.so

/etc/profile
if [ $USER = "oracle" -o $USER = "crs" ]; then
        if [ $SHELL = "/bin/ksh" ]; then
              ulimit -p 16384
              ulimit -n 65536
        else
              ulimit -u 16384 -n 65536
        fi
        umask 022
fi


关闭selinux:
vi /etc/selinux/config
SELINUX=disabled

/usr/sbin/setenforce 0
如果没有关闭selinux的话:
/opt/oracle/app/crs/11.1.0/bin/ocrconfig.bin: error while loading shared libraries: /opt/oracle/app/crs/11.1.0/lib/libnnz11.so: cannot restore segment prot after reloc: Permission denied
Failed to upgrade Oracle Cluster Registry configuration






============clusterware需要的包====================
Asianux 2, Enterprise Linux 4, and Red Hat Enterprise Linux 4
 The following packages (or later versions) must be installed:

binutils-2.15.92.0.2-18
compat-libstdc++-33-3.2.3-47.3
elfutils-libelf-0.97-5
elfutils-libelf-devel-0.97-5
gcc-3.4.5-2
gcc-c++-3.4.5-2
glibc-2.3.4-2.19
glibc-common-2.3.4-2.19
glibc-devel-2.3.4-2.19
glibc-headers-2.3.4-2.19
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如当oracle DB初始化参数文件中PROCESSES参数设置较大时,需要调整semaphores设置SEMMSL应该设置为服务器中各个实例中最大的PROCESSES参数+10,例如,当最大的PROCESSES参数为4000时,SEMMSL应设置为4010。
SEMMNS参数应设置为SEMMSL*SEMMNI,接上例SEMMSL为4010,SEMMNS参数应为(4010*128)=513280。
SEMOPM参数应设置与SEMMSL参数相同,接上例此处应设置为4010
unixODBC-2.2.11
unixODBC-devel-2.2.11
 
Asianux Server 3, Enterprise Linux 5, and Red Hat Enterprise Linux 5
 The following packages (or later versions) must be installed:

binutils-2.17.50.0.6-2.el5
compat-libstdc++-33-3.2.3-61
elfutils-libelf-0.125
elfutils-libelf-devel-0.125
glibc-2.5-12
glibc-common-2.5-12
glibc-devel-2.5-12
glibc-headers-2.3.4-2
gcc-4.1.1-52
gcc-c++-4.1.1-52
libaio-0.3.106
libaio-devel-0.3.106 
libgcc-4.1.1-52
libstdc++-4.1.1 
libstdc++-devel-4.1.1-52.e15
make-3.81-1.1
sysstat-7.0.0
unixODBC-2.2.11
unixODBC-devel-2.2.11
 
SUSE 10 Packages
 The following packages (or later versions) must be installed:

binutils-2.16.91.0.5
compat-libstdc++-5.0.7
glibc-2.4-31.2
glibc-devel-2.4-31.2
gcc-4.1.0
ksh-93r-12.9
libaio-0.3.104
libaio-devel-0.3.104
libelf-0.8.5
libgcc-4.1.0
libstdc++-4.1.0
libstdc++-devel-4.1.0
make-3.80
sysstat-6.0.2
unixODBC-2.2.11
unixODBC-devel-2.2.11
 



======================使用大页面==================
对于Rhel4.x和Rhel5.X:
1.  在/etc/security/limits.conf中设置Oracle用户可以lock住的最大内存,因为大页是不会被交换出去的,所以一定是被lock住的,所以需要设置这个参数。设置方法是把下面的内容加到/etc/security/limits.conf文件中。

oracle soft memlock 20971520
oracle hard memlock 20971520
后面的20971520表示Oracle用户最多能lock住20971520 bytes的内存(既20G),实际使用时请大于SGA的值。如果oracle用户下有多个实例,这个值要大于等于所有实例SGA之和。
设置了大页,lock_sga不管设置为true还是false,实际上都是lock 。
 

2.  Set vm.nr_hugepages in /etc/sysctl.conf,这个值的单位为2M,这个值*2M的大小必须大于等于SGA的大小,如果这个值小于了SGA的值,Oracle在大页中分配不了SGA,就会到普通内存中去分配。这样就会导致Oracle使用不到大页。

在/etc/sysctl.conf设置后,再用sysctl -p生效后,如果没有足够的内存供大页分配,则实际分配的值会小于 vm.nr_hugepages的值,设置完成后请使用cat /proc/sys/vm/nr_hugepages检查实际分配的值。

注意使用了大页,就不能设置了memory_target参数了,估计原因是PGA是不能使用大页,所以PGA 内存不能在memory_target指定的内存中统一分配。


echo 2> /proc/sys/kernel/shm-use-bigpages (bigpages 在shmfs中)

echo 1> /proc/sys/kernel/shm-use-bigpages (bigpages 在sysv中)

echo 0> /proc/sys/kernel/shm-use-bigpages (没有bigpages功能)


检查/etc/sysctl.conf中是否有“vm.nr_hugepages = nnnn”的设置,
cat /proc/sys/vm/nr_hugepages是看到的值是否与/etc/sysctl.conf一致。
cat /proc/meminfo|grep HugePage看“HugePages_Total”的值是否是一个大于数据库SGA值的一个数值,如果数据库启动了“HugePages_Rsvd”也应该是一个非零值。



另一种较旧的方法:
对于+++使用bigpage+++

++++Red Hat企业版Linux(RHEL)2.1 ++++
mount -t shm shmfs -o size=3g /dev/shm
通过在/etc/fstab中添加下面一行,共享内存文件系统可以被自动挂载:
shmfs /dev/shm shm size=3g 0 0

开启大页面支持
在/boot/grub/grub.conf文件中添加bigpages=xMB到相关的内核条目后来开启大页面支持,这里的x象下面这样计算:
总SGA大小(单位G)*1024
然后围绕这个值取整百,因此一个4G大小的SGA,我们做下面的计算:
4*1024=4096=4100
因此/boot/grub/grub.conf文件条目看起来就是:
kernel /vmlinuz-2.4.9-e.40enterprise ro root=/dev/cciss/c0d0p2 bigpages=4100MB
保存后应该重启系统,然后你必须作为root用户执行下面的命令:
echo 2 > /proc/sys/kernel/shm-use-bigpages
你可以直接在/etc/sysctl.conf文件中添加一行让这个值固定下来:
kernel.shm-use-bigpages = 2

++++Red Hat企业版Linux(RHEL)3、4和5++++
挂载ramfs文件系统,并确认它对oracle是可用的
umount /dev/shm 
mount -t ramfs ramfs /dev/shm 
chown oracle:oinstall /dev/shm
将这些命令添加到/etc/rc.local文件中,和RHEL2.1的方法一样,只有高速缓存存储在这个位置。
因为Oracle会为共享池锁住共享内存,我们必须在/etc/security/limits.conf中调整memlock参数,memlock以Kb为单位进行表示的,因此对于一个2G大小的共享池,我们至少需要(2*1024*1024=2097152),如下所示:
oracle soft memlock 2097152
oracle hard memlock 2097152
实际上,最好稍微比这个数值大一点。

sysctl -w kernel.shm-use-bigpages=1

# tuning aio:
sysctl -w fs.aio-max-size=131072

所允许的并发请求的最大个数
sysctl -w fs.aio-max-nr=1048576


如要lock sga的,还需开启bigpage。编辑/etc/lilo.conf,加入:
append="bigpages=1408m"



======================== xhost ================================
xauth

阅读(2227) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~