一、虚拟机配置

1、 虚拟机(VBox 4.3.12)

2、 配置虚拟机网卡网络。选择host-only。VirtualBox Host-Only Network网卡IP为设置为192.168.1.100

二、安装RedHat 5.3操作系统(序列号:9f3013459b745c13)

详细过程略。注意在自己定义软件包那里选择如今配置,选取“开发工具”、“旧的开发工具”、“X工具”下全部包

三、系统环境配置

1.配置网卡

[root@zlm ~]#vim /etc/sysconfig/network-scripts/ifcfg-eth0,加入下面内容:

DEVICE=eth0

BOOTPROTO=static

BROADCAST=192.168.1.255

HWADDR=08:00:27:DA:1D:E9

IPADDR=192.168.1.199

NETMASK=255.255.255.0

NETWORK=192.168.1.0

DNS1=192.168.1.1

ONBOOT=yes



加入保存后需重新启动网络服务生效:

[root@zlm ~]# service network restart

Shutting down interface eth0:                              [  OK  ]

Shutting down loopback interface:                          [  OK  ]

Bringing up loopback interface:                            [  OK  ]

Bringing up interface eth0:                                [  OK  ]

2.改动hosts

[root@zlm ~]# vim /etc/hosts

去掉IPV6的内容。保证有127.0.0.1 localhost,在此基础上给主机另外分配一个ip地址,并取名

如,192.168.1.199  zlm

3.禁用sendmail服务,加快启动速度(可选)

[root@zlm ~]# chkconfig sendmail --list

sendmail        0:off   1:off   2:on    3:on    4:on    5:on    6:off

[root@zlm ~]# chkconfig sendmail off

[root@zlm ~]# chkconfig sendmail --list

sendmail        0:off   1:off   2:off    3:off    4:off    5:off    6:off

4.改动为默认以命令行方式启动

[root@zlm ~]# vim /etc/inittab

查找“id:3:initdefault:”这一行,将其改动为“id:5:initdefault:”后保存退出

5.验证Oracle须要的包是否已经安装

[root@zlm ~]# rpm -q gcc make binutils setarch glibc libaio libXp openmotif compat-db compat-gcc compat-gcc-c++ compat-libstdc++

gcc-4.1.2-44.el5

make-3.81-3.el5

binutils-2.17.50.0.6-9.el5

setarch-2.0-1.1

glibc-2.5-34

libaio-0.3.106-3.2

package libXp is not installed

package openmotif is not installed

package compat-db is not installed

package compat-gcc is not installed

package compat-gcc-c++ is not installed

package compat-libstdc++ is not installed

这里提示有6个包未安装。事实上仅仅仅仅是libXp、openmotif、compat-db没有被安装,显示“is not installed”。仅仅是由于搜索不到而已(少了包名的一部分),包名是全然匹配的(除版本以外)

能够用rpm来安装,也能够通过yum方式安装。yum安装须要配置yum源,配置文件在/etc/yum.repos.d/文件夹下

假设择用rpm的方式来安装。通常能够在安装盘的Server文件夹中找到所须要的包,假设安装盘找不到须要的包,能够去http://rpm.pbone.net/下载。该站点提供各种Linux系统下程序包下载。非常有用



[root@zlm ~]# mount -t iso9660 /dev/cdrom /mnt/

mount: block device /dev/cdrom is write-protected, mounting read-only

[root@zlm ~]# cd  /mnt/Server

[root@zlm Server]# rpm -ivh openmotif-2.3.1-2.el5.i386.rpm 

warning: openmotif-2.3.1-2.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186

error: Failed dependencies:

        libXp.so.6 is needed by openmotif-2.3.1-2.el5.i386



因为包之间存在依赖关系,这里提示须要先装完libXp才干装openmotif



[root@zlm Server]# rpm -ivh libXp-1.0.0-8.1.el5.i386.rpm 

warning: libXp-1.0.0-8.1.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186

Preparing...                ########################################### [100%]

   1:libXp                  ########################################### [100%]

[root@zlm Server]# rpm -ivh openmotif-2.3.1-2.el5.i386.rpm 

warning: openmotif-2.3.1-2.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186

Preparing...                ########################################### [100%]

   1:openmotif              ########################################### [100%]





配置本地源也非常方便。创建一个源配置文件,并加入内容



[root@zlm Server]# touch /etc/yum.repos.d/public-yum-rhel5.repo

[root@zlm Server]# vim /etc/yum.repos.d/public-yum-rhel5.repo

[rhel5]

name = Red Hat Enterprise Linux 5.3 DVD

baseurl=file:///mnt/Server/

gpgcheck=0

enabled=1



配置完以后就能够直接yum install 安装须要的包了。而包之间没有依赖限制,会自己主动把有依赖性的包安装上



[root@zlm yum.repos.d]# yum install compat-db

Loaded plugins: rhnplugin, security

This system is not registered with RHN.

RHN support will be disabled.

Setting up Install Process

Parsing package install arguments

Resolving Dependencies

--> Running transaction check

---> Package compat-db.i386 0:4.2.52-5.1 set to be updated

--> Finished Dependency Resolution





Dependencies Resolved





================================================================================

 Package             Arch           Version               Repository       Size

================================================================================

Installing:

 compat-db           i386           4.2.52-5.1            rhel5           1.7 M





Transaction Summary

================================================================================

Install      1 Package(s)         

Update       0 Package(s)         

Remove       0 Package(s)         





Total download size: 1.7 M

Is this ok [y/N]: n

Exiting on user Command

Complete!

[root@zlm yum.repos.d]#





[root@zlm yum.repos.d]# yum install compat-db compat-gcc-34 compat-gcc-34-c++ compat-libstdc++-33

Loaded plugins: rhnplugin, security

This system is not registered with RHN.

RHN support will be disabled.

Setting up Install Process

Parsing package install arguments

Package compat-db-4.2.52-5.1.i386 already installed and lazlm version

Package compat-gcc-34-3.4.6-4.i386 already installed and lazlm version

Package compat-gcc-34-c++-3.4.6-4.i386 already installed and lazlm version

Package compat-libstdc++-33-3.2.3-61.i386 already installed and lazlm version

Nothing to do

[root@zlm yum.repos.d]# 





提示compat-db、compat-gcc-34、compat-gcc-34-c++、compat-libstdc++-33这4个包已经装完了,这也就是为什么前面会列出并没有安装,由于用rpm -q查询必须全然匹配包的名字(除版本)

再次确认一下,发现须要的这几个compat包确实已经安装好了

[root@zlm yum.repos.d]#
rpm -qa |grep compat

avahi-compat-libdns_sd-0.6.16-1.el5

compat-glibc-headers-2.3.4-2.26

compat-gcc-34-3.4.6-4

compat-gcc-34-g77-3.4.6-4

compat-libstdc++-33-3.2.3-61

compat-libcom_err-1.0-7

java-1.4.2-gcj-compat-1.4.2.0-40jpp.115

compat-libf2c-34-3.4.6-4

compat-libstdc++-296-2.96-138

java-1.4.2-gcj-compat-devel-1.4.2.0-40jpp.115

java-1.4.2-gcj-compat-src-1.4.2.0-40jpp.115

compat-libgcc-296-2.96-138

compat-db-4.2.52-5.1

compat-gcc-34-c++-3.4.6-4

compat-glibc-2.3.4-2.26

[root@zlm yum.repos.d]#

注意,假设缺少libXp-1.0.0-8.1el5包,就提示下面错误:

[root@zlm database]#./runInstaller

...

Exception in thread "main" java.lang.UnsatisfiedLinkError: /tmp/OraInstall2007-09-25_10-54-49PM/jre/1.4.2/lib/i386/libawt.so: libXp.so.6: cannot open shared object file: No such file or directory

at java.lang.ClassLoader$NativeLibrary.load(Native Method)

at java.lang.ClassLoader.loadLibrary0(Unknown Source)

at java.lang.ClassLoader.loadLibrary(Unknown Source)

at java.lang.Runtime.loadLibrary0(Unknown Source)

at java.lang.System.loadLibrary(Unknown Source)

at sun.security.action.LoadLibraryAction.run(Unknown Source)

at java.security.AccessController.doPrivileged(Native Method)

at sun.awt.NativeLibLoader.loadLibraries(Unknown Source)

at sun.awt.DebugHelper.<clinit>(Unknown Source)

at java.awt.Component.<clinit>(Unknown Source)

四、为Oracle 10g配置Linux

1.检查主机配置(10g要求1G以上内存。11g为1.5G)

--内存

[root@zlm ~]# grep MemTotal /proc/meminfo

MemTotal:      1035244 kB



--磁盘

[root@zlm ~]# df -h

Filesystem            Size  Used Avail Use% Mounted on

/dev/mapper/VolGroup00-LogVol00

                      7.7G  2.7G  4.6G  37% /

/dev/sda1              99M   12M   82M  13% /boot

tmpfs                 506M     0  506M   0% /dev/shm

/dev/hdc              2.9G  2.9G     0 100% /mnt

2.创建oracle用户和用户组

[root@zlm ~]# groupadd oinstall

[root@zlm ~]# groupadd dba

[root@zlm ~]# useradd -g oinstall -G dba oracle

3.查看oracle用户信息并创建password

[root@zlm ~]# id oracle

uid=500(oracle) gid=500(oinstall) groups=500(oinstall),501(dba)



[root@zlm ~]# passwd oracle

Changing password for user oracle.

New UNIX password: 

BAD PASSWORD: it is based on a dictionary word

Retype new UNIX password: 

passwd: all authentication tokens updated successfully.

4.创建安装文件夹和数据存放文件夹

[root@zlm ~]# mkdir -p /u01/app/oracle/product/10.2.0/db_1

[root@zlm ~]# chown -R oracle:oinstall /u01

[root@zlm ~]# chmod -R 775 /u01

5.配置Linux内核

[root@zlm ~]# cat >> /etc/sysctl.conf << EOF

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

net.core.rmem_default = 262144

net.core.rmem_max = 262144

net.core.wmem_default = 262144

net.core.wmem_max = 262144

EOF



Linux主要内核參数说明:

kernel.shmmax = 2147483648 --该參数定义了共享内存段的最大尺寸(以字节为单位)

SHMMAX available physical memory Defines the maximum allowable size of one shared memory  segment. The  SHMMAX setting should belarge
enough to hold the entire SGA in one shared memory segment.A low setting can cause creation of multiple shared memory segments which may lead to performance degradation.

shmmax是核心參数中最重要的參数之中的一个。用于定义单个共享内存段的最大值。shmmax设置应该足够大。能在一个共享内存段下容纳下整个的SGA,设置的过低可能会导致须要创建多个共享内存段,这样可能导致系统性能的下降。

shmmax不过在共享内存段被创建的时候用来比較的一个数字,当共享内存段被一个进程(Process)创建,操作系统检查是否被要求的共享内存段的值大于shmmax的值,假设是。那么将会抛出一个错误。这个时候系统会创建另外的一个或多个共享内存段满足进程的需求。

一般来说,共享内存段个数和系统性能没有太直接的关系。也不会对性能产生太大的影响。但Steve Adams在他的小冊子中说过,在实例启动以及ServerProcess创建的时候,多个小的共享内存段可能会导致当时轻微的系统性能的减少(在启动的时候须要去创建多个虚拟地址段,在进程创建的时候要让进程对多个段进行“识别”,会有一些影响),可是其它时候都不会有影响。这意味着假设你的程序不是常常Create
Processes(以及Destroy Them),性能方面就不是考虑的问题。

当然Oralce的建议是希望一个大的共享内存段能容纳整个SGA。其值应>=sag_max_size初始化參数的大小,还要不小于物理内存的一半。这样在不论什么时候都不会有甚至轻微的性能下降的隐患。

Oracle安装文档建议32bit Linux系统设置shmmax为32 bit最大的限制值(setting shmmax to the 32-bit number limit),也就是4G

所以一般来说,1-4G 的物理内存,直接设置shmmax为最大物理内存就可以。那么SGA肯定在一个共享内存段中,32 bit Linux系统物理内存大于4G的设置为4G就可以。总之。32 bit的Linux操作系统,一般设置shmmax
>= SGA(32 bit 系统是否支持到1.7G以上SGA 须要注意),缺省为32M,假设是64 bit的Linux操作系统,shmmax设置为>SGA_MAX_SIZE就可以。

ipcs -sa 能够看到共享内存段个数

在11g中,假设SGA_TARGET设置了详细的值。那么共享内存段的个数会比设置SGA_TARGET=0。即採用MEMORY_TARGET參数值来管理SGA时用的共享内存段数要多。理论上讲,更少得内存段对于性能来说是要好一些的,所以11g也推荐设置MEMORY_TARGET參数来自己主动化管理SGA

kernel.shmmni = 4096 --设置系统范围内共享内存段的最大数量

shmmni 内核參数是共享内存段的最大数量(注意这个參数是shmmni,而shmmin 表示内存段最小大小 )。shmmni
缺省值4096 。此值也是在系统中能够启动的Oracle实例的最大数量,通常不须要更改。由于显然在生产环境下。一个server上同一时候启动的实例个数达不到这个数量。

kernel.shmall = 2097152 --表示系统随意时刻能够分配的全部共享内存段的总和的最大值(以页为单位)。

kernel.shmall 參数是控制共享内存页数。

Linux共享内存页大小为4KB,共享内存段的大小都是共享内存页大小的整数倍。一个共享内存段的最大大小是16G,那么须要共享内存页数是16GB/4KB=16777216KB/4KB=4194304(页),也就是64
bit系统下16GB物理内存,设置kernel.shmall = 4194304才符合要求(差点儿是原来设置2097152的两倍)。这时能够将shmmax參数调整到16G了,同一时候能够改动SGA_MAX_SIZE 和SGA_TARGET为12G(75%左右,当然也能够是2G~14G 等,还要协调PGA參数及OS等其它内存使用,不能设置太满。比方16G)。

其值应不小于shmmax/page_size,缺省值就是2097152,假设server上执行的全部实例的SGA总和不超过8GB(通常系统可分配的共享内存的和最大值为8GB)。通常不须要改动。反之,仅仅有SGA用到的实际内存超过8G。才须要调大该參数,否则採用默认值kernel.shmall
= 2097152就可以。

kernel.sem = 250 32000100 128--表示设置的信号量(共享内存时,内存数据交互时会产生信号量)

fs.file-max = 65536--表示一个进程能够打开的文件句柄的最大数量

net.ipv4.ip_local_port_range = 1024 65000--专用server模式下与用户进程通信时分配给用户的端口区间

net.core.rmem_default = 262144--默认接收缓冲区大小

net.core.rmem_max = 262144--接收缓冲区最大值

net.core.wmem_default = 262144--默认的发送缓冲区大小

net.core.wmem_max = 262144--发送缓冲区最大值

以上四个值的设置是Oracle安装时推荐的(应在安装完后把最大值改为524288)

6. 使Linux内核设置生效

[root@zlm ~]# /sbin/sysctl -p

net.ipv4.ip_forward = 0

net.ipv4.conf.default.rp_filter = 1

net.ipv4.conf.default.accept_source_route = 0

kernel.sysrq = 0

kernel.core_uses_pid = 1

net.ipv4.tcp_syncookies = 1

kernel.msgmnb = 65536

kernel.msgmax = 65536

kernel.shmmax = 4294967295

kernel.shmall = 268435456

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

net.core.rmem_default = 262144

net.core.rmem_max = 262144

net.core.wmem_default = 262144

net.core.wmem_max = 262144

7.设置shell限制

[root@zlm ~]# cat >> /etc/security/limits.conf << EOF

oracle       soft    nproc   2047

oracle       hard    nproc   16384

oracle       soft    nofile  1024

oracle       hard    nofile  65536

EOF





[root@zlm ~]# cat >> /etc/pam.d/login <<EOF

session    required     /lib/security/pam_limits.so

EOF

8.关闭防火墙

[root@zlm ~]# cat >> /etc/selinux/config << EOF

SELINUX=disabled

EOF

[root@zlm ~]# getenforce

Disabled

9.改动版本(RHEL5.3无需做此步骤)

由于Oracle 10g官方仅仅支持到RHEL5为止,所以须要在root用户下执行

[root@zlm ~]# vim /etc/redhat-release

将 Red Hat Enterprise Linux Server release 6 (Tikanga) 改为Red Hat Enterprise Linux Server release 5 (Tikanga)

10. 配置oracle用户环境变量

[root@zlm ~]# vim /home/oracle/.bash_profile

# Get the aliases and functions

if [ -f ~/.bashrc ]; then

        . ~/.bashrc

fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH

export TMP=/tmp

export TMPDIR=$TMP

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1

export ORACLE_SID=ora10g

export ORACLE_TERM=xterm

export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib

export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

unset USERNAME

umask 22

umask用于指定在建立文件时预设的权限掩码。权限掩码是由3个八进制的数字所组成,将现有的存取权限减掉权限掩码后。就可以产生建立文件时预设的权限。

设要生成的文件以-rw-r--r--这种权限字出现,即真实权限用八进制表示为644,则被666基数减得022,022即掩码。

使用umask 022。

注意:033效果与022一样。如果使用033掩码进行设置,则真实权限应为633即-rw-r-xr-x。但前提规定文件不生成x位,所以文件的权限终于将以rw-r--r--出现。

设要生成的文件夹权限以drwxr-xr-x这种权限字出现,即真实权限用八进制表示为755。则被基数为777的权限字相减后,得掩码022。

则使用umask 022进行设置。

总结

1. 文件基数为666,文件夹为777。即文件无设x位。文件夹可设x位。

2. chmod设哪个位,哪个位就有权限。而umask是设哪个位,则哪个位上就没权限。

12.使环境变量生效

[root@zlm ~]# source /home/oracle/.bash_profile

或者

[root@zlm ~]# . /home/oracle/.bash_profile

或者

[root@zlm ~]# su - oracle

[oracle@zlm ~]# exit





五、安装Oracle 10g数据库(推荐使用Xmanager的Xshell来安装)

1.将软件包copy到/tmp文件夹下,推荐使用Xmanager的Xftp

2.解压软件包

[root@zlm ~]# cd /tmp

[root@zlm tmp]# tar -zxvf 10201_database_linux32.tar.gz

[root@zlm tmp]# unzip 10201_database_linux32

[root@zlm tmp]# chown –R oracle:oinstall /tmp/database

[root@zlm tmp]# chmod –R 775 /tmp/database

[root@zlm tmp]# export DISPLAY=:0.0

[root@zlm tmp]# xhost +

access control disabled, clients can connect from any host

[root@zlm tmp]# su – oracle

[oracle@zlm ~]# cd /tmp/database

[oracle@zlm ~]# ./runInstaller

3.安装过程(略)

安装完毕之后,再以root用户运行两个脚本就能够了

# /u01/app/oracle/oraInventory/orainstRoot.sh  --指定oraInventory文件夹的全部者和权限

# /u01/app/oracle/product/10.2.0/db_1/root.sh  --copy三个脚本到/usr/local/bin文件夹下(coraenv、oraenv、dbhome)

注意是root用户运行,而不是oracle用户

[root@zlm ~]# /u01/app/oracle/oraInventory/orainstRoot.sh 

Changing permissions of /u01/app/oracle/oraInventory to 770.

Changing groupname of /u01/app/oracle/oraInventory to oinstall.

The execution of the script is complete

[root@zlm ~]# /u01/app/oracle/product/10.2.0/db_1/root.sh

Running Oracle10 root.sh script...





The following environment variables are set as:

    ORACLE_OWNER= oracle

    ORACLE_HOME=  /u01/app/oracle/product/10.2.0/db_1





Enter the full pathname of the local bin directory: [/usr/local/bin]: 

   Copying dbhome to /usr/local/bin ...

   Copying oraenv to /usr/local/bin ...

   Copying coraenv to /usr/local/bin ...









Creating /etc/oratab file...

Entries will be added to the /etc/oratab file as needed by

Database Configuration Assistant when a database is created

Finished running generic part of root.sh script.

Now product-specific root actions will be performed.

[root@zlm ~]# 





4.验证组建是否成功安装



(1)切换到oracle用户进入SQL操作界面:

Sqlplus / as sysdba 或 sqlplus / nolog

SQL>



(2)查看能否够进入Web管理界面(OEM)

运行命令:emctl status dbconsole

启动web界面:emctl start dbconsole

停止web界面:emctl stop dbconsole

默认安装完oracle之后就已经启动OEM



在浏览器输入下面地址能够分别进入OEM和iSQL*Plus

http://zlm:1158/em



iSQL*Plus URL:

http://zlm:5560/isqlplus



iSQL*Plus DBA URL:

http://zlm:5560/isqlplus/dba

05-07 15:55