1、 安装环境及相关要求
System: CentOS 5.6
Oracle version: Oracle10g
基本需求:
物理内存大小: 至少1G,检查命令:# grep MemTotal /proc/meminfo
swap: 大小为内存2倍, 检查命令:# grep SwapTotal /proc/meminfo
tmp: 大于400M,检查命令:# df –k /tmp
oracle安装目录: 至少3G, 检查命令:# df -lh
检查系统架构:# grep "model name" /proc/cpuinfo
检查Linux版本:# more /etc/issue
检测Linux内核:# uname –r
Oracle安装目录: /apps (该用例安装目录)
2、 准备安装
1)、解压安装文件:
# unzip 10201_database_linux32.zip
2)、安装依赖包
binutils
compat-libstdc++-33
elfutils-libelf
elfutils-libelf-devel
glibc
glibc-common
glibc-devel
gcc
gcc-c++
libaio
libaio-devel
libgcc
libstdc++
libstdc++-devel
make
sysstat
unixODBC
unixODBC-devel
libXp
可通过以下命令查看是否安装,例如:
# rpm –qa | grep binutils
如果不存在,可以逐一安装,也可以采用以下方式安装:
# yum –y install binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel glibc glibc-common glibc-devel gcc gcc-c++ libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel libXp
3、 修改内核参数
# vi /etc/sysctl.conf
在该文件中添加以下内容:
#oracle settings
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
修改完毕后,执行以下命令使配置文件生效:
# sysctl –p
4、 修改/etc/security/limits.conf
# vi /etc/security/limits.conf
在该文件中添加以下内容:
#oracle settings
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
5、 修改/etc/pam.d/login
# vi /etc/pam.d/login
在该文件中添加以下内容:
#oracle settings
session required /lib/security/pam_limits.so
6、 修改/etc/selinux/config
# vi /etc/selinux/config
更改以下内容:
SELINUX=disabled
7、 修改/etc/redhat-release
# vi /etc/redhat-release
将该文件内容更改为:
redhat-4
8、 创建相关用户
# groupadd oinstall
# groupadd dba
# useradd –g oinstall –G dba oracle
# passwd oracle
9、 创建安装目录并赋予权限
# mkdir –p /apps/oracle/product
# chown –R oracle:oinstall /apps/
10、 配置oracle环境变量
切换至oracle用户
# su – oracle
修改.bash_profile文件
$ vi .bash_profile
在该文件中添加以下内容:
#oracle settings
umask 022
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_BASE=/apps/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORACLE_SID=ORCL
export ORACLE_TERM=xterm
export TNS_ADMIN=$ORACLE_HOME/network/admin
export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jre:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
11、 进入界面模式,开始安装
打开终端,输入以下命令:
# xhost +
# xhost + localhost
切换至oracle用户
# su – oracle
进入安装文件目录,开始安装:
$ ./runInstaller
最后一步需要执行以下脚本:
/apps/oracle/oraInventory/orainstRoot.sh
/apps/oracle/product/10.2.0/db_1/root.sh
以root身份登录执行即可。
12、 启动数据库
打开终端使用oracle用户登录
$ sqlplus / as sysdba
SQL> startup
Errors 1:
ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/apps/oracle/product/10.2.0/db_1/dbs/initORCL.ora'
执行以下操作:
$ cp /apps/oracle/admin/orcl/pfile/init.ora.4152011153029 $ORACLE_HOME/dbs/initORCL.ora
Errors 2:
ORA-01102: cannot mount database in EXCLUSIVE mode
执行以下操作:
以root身份登录:
$ su – root
# cd /apps/oracle/product/10.2.0/db_1/dbs
# fuser –u lkORCL
# fuser –k lkORCL
然后换回oracle用户,重新执行startup
SQL> startup
如果启动后,显示的内容如下,则表示正确:
ORACLE instance started.
Total System Global Area 285212672 bytes
Fixed Size 1218992 bytes
Variable Size 92276304 bytes
Database Buffers 188743680 bytes
Redo Buffers 2973696 bytes
Database mounted.
Database opened.
13、 修改数据库字符集
以oracle用户登录
$ sqlplus system/system as sysdba
SQL> shutdown immediate
SQL> startup mount
SQL> alter system enable restricted session;
SQL> alter system set JOB_QUEUE_PROCESSES=0;
SQL> alter system set AQ_TM_PROCESSES=0;
SQL> alter database open;
SQL> alter database character set internal_use ZHS16GBK;
SQL> shutdown immediate
SQL> startup
其中ZHS16GBK是修改后的字符集编码
可以使用以下语句查询当前数据库的字符集编码:
select userenv('language') from dual;
14、 Oracle服务开机启动
1)、修改/etc/oratab文件
$ vi /etc/oratab
将以下内容:
orcl:/apps/oracle/product/10.2.0/db_1:N
改为:
orcl:/apps/oracle/product/10.2.0/db_1:Y
2)、修改$ORACLE_HOME/bin/dbstart文件
$ cd $ORACLE_HOME/bin
$ vi dbstart
将以下内容:
ORACLE_HOME_LISTNER=/ade/vikrkuma_new/oracle
更改为:
ORACLE_HOME_LISTNER=$ORACLE_HOME
3)、测试dbstart和dbshut是否能正常使用
切换至oracle用户,并执行命令
# su – oracle ---
$ cd $ORACLE_HOME/bin
$ dbstart
查看启动日志文件,是否有错误:
Errors 1:
logger: Can't find init file for Database instance "orcl".
logger: Error: Database instance "orcl" NOT started.
查看$ORACLE_HOME/dbs目录下是否存在spfileorcl.ora,确保大小写正确。
4)、编写脚本
切换至root用户,并创建oracle文件
$ su – root
# cd /etc/init.d
# vi oracle
在该文件中加入以下内容:
#!/bin/bash # # chkconfig: 2345 80 05 # description: Oracle 10g Server # /etc/init.d/oracle # # Run-level Startup script for the Oracle Instance, Listener, and # Web Interface
export ORACLE_BASE=/apps/oracle export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1 export ORACLE_SID=ORCL
ORA_OWNR="oracle"
# if the executables do not exist -- display error
if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ] then echo "Oracle startup: cannot start" exit 1 fi # depending on parameter -- startup, shutdown, restart # of the instance and listener or usage display
case "$1" in start) # Oracle listener and instance startup echo -n "Starting Oracle: " su $ORA_OWNR -c "$ORACLE_HOME/bin/dbstart" touch /var/lock/oracle echo "OK" ;; stop) # Oracle listener and instance shutdown echo -n "Shutdown Oracle: " su $ORA_OWNR -c "$ORACLE_HOME/bin/dbshut" rm -f /var/lock/oracle echo "OK" ;; reload|restart) $0 stop $0 start ;; *) echo "Usage: `basename $0` start|stop|restart|reload" exit 1 esac exit 0
|
给该文件赋予权限,并加入到服务项
# chmod 755 oracle
# chkconfig –-add oracle
启动服务
# service oracle start
停止服务
# service oracle stop
15、 开放1521端口
修改/etc/sysconfig/iptables
# vi /etc/sysconfig/iptables
在该文件中添加以下内容:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 1521 -j ACCEPT
重启系统
# reboot