Oracle
10g对硬件环境的要求
物理内存
基本- 512MB
推荐- 1024MB
内存交换分区相对于物理内存的比例
物理内存1024MB~2048MB - 150%
物理内存2049MB~8192MB - 100%
物理内存大于8192MB - 75%
磁盘空间
/tmp目录所在的分区至少要有400MB空闲磁盘空间。
根据安装类型,安装Oracle服务器软件的分区至少要有1.5GB到3.5GB的空闲磁盘空间。1.2GB磁盘空间用于数据库预配置文件系统存储(可选)
Oracle
10g对软件环境的要求
操作系统
Red
Hat Enterprise Linux AS/ES 3.0 (Update 4 or later)
Red
Hat Linux 4.0
SUSE
Linux Enterprise Server 9.0 with SP 2 or later
Asianux
1.0
Asianux
2.0
软件包
X11相关的库(软件包名视操作系统而定,故不一一列出)
gcc (版本至少为2.96-124)
make
(版本至少为3.79)
binutils
(版本至少为2.11)
openmotif
(版本至少为2.1.30)
setarch
(版本至少为1.3)
compat-db
(版本至少为4.0.14.5)
compat-gcc
(版本至少为7.3-2.96.122)
compat-gcc-c++
(版本至少为7.3-2.96.122)
compat-libstdc++
(版本至少为7.3-2.96.122)
compat-libstdc++-devel
(版本至少为7.3-2.96.122)
sysstat
(版本至少为5.0.5-1)
libaio
(版本至少为0.3.103-3)
libaio-devel
(版本至少为0.3.103-3)
如果要卸载Oracle,只须运行
$./runInstaller
-silent -deinstall -removeallfiles -removeAllPatches
"REMOVE_HOMES={$ORACLE_HOME}" -responseFile
平台:OWLinux 3.6
1、oracle所依赖的包:
rpm -q --qf '%{name}-%{version}-%{release} (%{arch})\n' binutils
compat-db gcc gcc-c++ glibc glibc-common libstdc++ libstdc++-devel make sysstat
libaio
如果是在64位的环境下安装64位的oracle,则需要注意:glibc, libstdc++-, libstdc++-devel, libaio这4个包,是32位和64位的包都需要安装
2、修改内核参数
在/etc/sysctl.conf文件中添加下述参数设定:
kernel.shmmax =
2147483648
kernel.shmmni = 4096
kernel.shmall =
2097152
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_max =
16777216
net.core.wmem_default
= 266960
几个内核参数的含义说明如下:
参数
推荐值
说明
shmmax
64bit操作系统,Physical MEM*1024*1024*1024
32bit操作系统,4G*1024*1024*1024 =4294967295
用于定义单个共享内存段的最大值,shmmax设置应该足够大,能在一个共享内存段下容纳下整个的SGA ,设置的过低可能会导致需要创建多个共享内存段,这样可能导致系统性能的下降
shmmni
4096
共享内存段的最大数量
shmall
至少ceil(shmmax/PAGE_SIZE)
Linux共享内存页大小为4KB,共享内
存段的大小都是共享内存页大小的整数倍。
sem
250 32000 100 128
信号量;顺序:SEMMSL, SEMMNS, SEMOPM, SEMMNI
SEMMSL
最小250;对于processes参数设置较大的系统建议设置为processes+10
每个信号量set中信号量最大个数
SEMMNS
至少32000;
SEMMSL * SEMMNI
linux系统中信号量最大个数
SEMOPM
至少100;或者等于SEMMSL
semop系统调用允许的信号量最大个数
SEMMNI
最少128
linux系统信号量set最大个数
修改后执行下列命令使得内核改变生效:
sysctl -p
在/etc/security/limits.conf中,添加
oracle soft nofile
65536
oracle hard nofile
65536
oracle soft nproc
16384
oracle hard nproc
16384
3、
groupadd oinstall
groupadd dba
useradd -g dba -G oinstall
-d /oracle -s /bin/bash oracle
passwd oracle
修改oracle目录的own
mkdir /oracle
chown -R oracle:dba /oracle
修改/oracle/.bash_profile文件,添加下列内容:
ORACLE_BASE=/oracle
export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/10.2.0
export ORACLE_HOME
NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export NLS_LANG
ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export ORA_NLS33
ORACLE_SID=uccms
export ORACLE_SID
LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/network/lib:$LD_LIBRARY_PATH
export
LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/product/jlib:$ORACLE_HOME/jlib:$ORACLE_HOME/jre
export CLASSPATH
PATH=$ORACLE_HOME/bin:$PATH:/bin:/usr/bin:/usr/local/bin
export PATH
LANG=en
export LANG
4、编辑安装需要的应答文件
静默模式(Silent)安装必须指定一个应答文件来完成安装过程所须的各类参数。
在Oracle安装目录的response子目录里有enterprise.rsp有enterprise.rsp、standard.rsp和custom.rsp三个应答文件,分别对应企业版、标准版和定制的安装。
以enterprise.rsp为例,用任意的文本编辑器打它,修改以下这些项目的值。
ORACLE_HOME Oracle服务器的主目录位置,必须是绝对路径。
ORACLE_HOME_NAME Oracle服务器的名称,必须以字母开头。
COMPONENT_LANGUAGES Oracle服务器支持的语言,默认只有英语,可以添加多个语言。
s_nameForDBAGrp用于Oracle系统管理的linux用户组名,该组的用户拥有管理Oracle服务器的权限,在本例中设置为oradba。
s_nameForOPERGrp用于Oracle数据库常规操作的linux用户组名,该组的用户拥有常规操作Oracle数据库的权限,在本例中设置为oracle。
n_configurationOption安装类型(1为在安装后创建数据库,2为安装后创建一个自动存储管理实例,3为只安装服务器软件),在本例中选择3。
其它项目用默认值即可,也可以根据自己的须要进行修改。
注:如果Oracle从光盘安装,必须先将应答文件复制到硬盘上,才能修改。
5、静默安装
./runInstaller
-ignoreSysPrereqs -silent -responseFile absolute_path
Please
run the script '/oracle/oraInventory/orainstRoot.sh' with root privileges
The following
configuration scripts /oracle/10g/root.sh need to be executed as root for
configuring the system
让Oracle运行为服务
创建文件/etc/init.d/oracle,输入下列内容
#!/bin/sh
#
export
ORACLE_HOME=服务器主目录的绝对路径>
export
ORACLE_HOME_LISTNER=$ORACLE_HOME
export
ORACLE=oracle
.
/etc/init.d/functions
export
PATH=${PATH}:$ORACLE_HOME/bin
start()
{
daemon --user $ORACLE
$ORACLE_HOME/bin/dbstart
daemon --user $ORACLE
"$ORACLE_HOME_LISTNER/bin/lsnrctl start"
}
stop()
{
daemon --user $ORACLE
"$ORACLE_HOME_LISTNER/bin/lsnrctl stop"
daemon --user $ORACLE
$ORACLE_HOME/bin/dbshut
}
case
$1 in
'start')
start
RETVAL=$?
;;
'stop')
stop
RETVAL=$?
;;
'restart')
stop
start
RETVAL=$?
;;
*)
echo "usage: $0
{start|stop|restart}"
exit
;;
esac
#
exit
然后将这个文件赋予可执行的权限,运行
chmod
a+x /etc/init.d/oracle
让Oracle的服务在Linux启动时自动运行
ln -s
/etc/init.d/oracle /etc/rc.d/rc3.d/S99oracle
ln -s
/etc/init.d/oracle /etc/rc.d/rc5.d/S99oracle
这样就可以用service来启动和停止Oracle了。
备注:
Oracle
10g在一些Linux系统下安装可能会被中断,在安装日志文件
$ORACLE_HOME/install/make.log
里可以看见以下错误信息
/bin/sed:
-e expression #1, char 7: unterminated `s' command
要解决这个问题就必须编辑文件gennttab。
先解压Oracle安装目录下的stage/Components/oracle.network.rsf/10.2.0.1.0/1/DataFiles/filegroup6.jar,可以用以下方法之一进行解压
用jar解压:jar -xf filegroup6.jar bin/gennttab
用unzip解压:unzip filegroup6.jar bin/gennttab
再用文本编辑器(例如vi)打开解压出来的gennttab,将以下内容
LIB=`$ECHO
${TtoLIB} | $SED 's/ /\\
/g' |
$GREP "^${T}:" | $AWK -F: '{print $2}'`
INI=`$ECHO
${TtoINI} | $SED 's/ /\\
/g' |
$GREP "^${T}:" | $AWK -F: '{print $2}'`
BAS=`$ECHO
${TtoBAS} | $SED 's/ /\\
/g' |
$GREP "^${T}:" | $AWK -F: '{print $2}'`
改为
LIB=`$ECHO
${TtoLIB} | $SED 's/ /\n/g' | $GREP "^${T}:" | $AWK -F:
$2}'`
INI=`$ECHO
${TtoINI} | $SED 's/ /\n/g' | $GREP "^${T}:" | $AWK -F:
$2}'`
BAS=`$ECHO
${TtoBAS} | $SED 's/ /\n/g' | $GREP "^${T}:" | $AWK -F:
$2}'`
保存后再用将gennttab更新到filegroup6.jar里面,可以用以下方法之一进行更新
用jar更新:jar -uvf filegroup6.jar bin/gennttab
用zip更新:zip -vu filegroup6.jar bin/gennttab
如果出现:SEVERE:OUI-10029:您指定了非空目录来安装此产品。建议您指定空目录或新建一个目录。但是,如果该目录包含操作系统生成的文件或子目录(例如lost+found),您可以选择忽略此消息。
在不加-force参数的时候会有这样的报错,修改后正常
[oracle@localhost
database]$ ./runInstaller -silent -force -responseFile
/usr/app/oracle/install/database/response/enterprise.rsp