Linux下安装oracle的简要步骤笔记
时间:2010-08-31 来源:osdba
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:[email protected]
创建用户组
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
+需要安装的包+
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:[email protected]
创建用户组
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
相关阅读 更多 +