1 准备

CentOS 5.6企业版 oracle11g fs 安装。安装环境为vmware虚拟机。另外,本安装文档非常简洁,但关键步骤都指出来了,其他的都是默认选择,遇到不知该如何选择的操作或者问题时,多想一想,则能学到更多东西。

1.1 CentOS 5.6系统安装

Ø 在windows上使用vmware安装一台虚拟机,安装ISO为CentOS-5.6-i386-bin-DVD.iso. vm选择操作系统类型的时候,选择red hat 企业版 5.5

Ø 网络模式选择host-only,这是最不容易出问题的一种模式

Ø 设置ip地址(setup)

Ø 设置主机名、修改/etc/hosts,设置主机名和Ip的对应关系

1.1.1 安装注意事项

在网络模式中,如果机器没有连接外部网络,包括局域网,那么选择桥接并且配置静态IP的情况下,可能会遇到在虚拟机外面ping 不通虚拟机的情况。在这种情况下使用host-only方式连接,就没有问题。

在安装的过程中,要关闭防火墙。遇到访问不通的网络问题时,注意查看防火墙是否关闭。

安装过程中需要注意的几个点

Ø 安装的位置

Ø oracle的组件的选择,否有特殊选择

Ø 字符集,要用哪种字符集

Ø 库数据存放位置

1.1.2 分区大小

centos yum 安装ncurses 5 centos5.6安装_数据库

centos yum 安装ncurses 5 centos5.6安装_操作系统_02

centos yum 安装ncurses 5 centos5.6安装_oracle_03

1.1.3 IP配置

centos yum 安装ncurses 5 centos5.6安装_操作系统_04

centos yum 安装ncurses 5 centos5.6安装_运维_05

1.1.4 自定义软件

centos yum 安装ncurses 5 centos5.6安装_操作系统_06

centos yum 安装ncurses 5 centos5.6安装_操作系统_07

centos yum 安装ncurses 5 centos5.6安装_SQL_08

centos yum 安装ncurses 5 centos5.6安装_oracle_09

centos yum 安装ncurses 5 centos5.6安装_运维_10

服务、虚拟化、集群中的软件包都不需要选。语言选择支持中文。

1.2 安装辅助工具rlwrap

tar -xzvf rlwrap-0.37.tar.gz

cd rlwrap-0.37

./configure

make

make install

然后在环境变量中添加以下内容,可以解决回退的问题。

alias sqlplus="rlwrap sqlplus"

alias rman="rlwrap rman"

1.3 其他小知识

查看桌面上的文件

ll Desktop/

2 检测

2.1 内存

free查看内存,也没运行什么服务,内存就不够用了。

centos yum 安装ncurses 5 centos5.6安装_数据库_11

重启再次查看,可用内存充足了。

[root@study ~]# free -m

total used free shared buffers cached

Mem: 2201 385 1815 0 31 284

-/+ buffers/cache: 69 2131

Swap: 6000 0 6000

但基于第一次出现的情况,以及机器总内存8G的配置,分给虚拟机内存3G。

2.2 磁盘
[root@study ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 30G 5.7G 22G 21% /
/dev/sda1 122M 12M 104M 10% /boot
tmpfs 1.5G 0 1.5G 0% /dev/shm
2.3 安装oracle依赖的软件包

从oracle的官方文档查阅得知,oracle 11g在linux5.5上依赖以下安装包

The following are the list of packages required for Oracle Database 11g Release 2 (11.2):
The following or later version of packages for Asianux 3, Oracle Enterprise Linux 5, and Red Hat Enterprise Linux 5 should be installed:
binutils-2.17.50.0.6
compat-libstdc++-33-3.2.3
elfutils-libelf-0.125
elfutils-libelf-devel-0.125
elfutils-libelf-devel-static-0.125
gcc-4.1.2
gcc-c++-4.1.2
glibc-2.5-24
glibc-common-2.5
glibc-devel-2.5
glibc-headers-2.5
kernel-headers-2.6.18
ksh-20060214
libaio-0.3.106
libaio-devel-0.3.106
libgcc-4.1.2
libgomp-4.1.2
libstdc++-4.1.2
libstdc++-devel-4.1.2
make-3.81
sysstat-7.0.2
unixODBC-2.2.11
unixODBC-devel-2.2.11

经查找,该CentOS 5.6版本的Linux有以下几个软件包没有安装,需要安装:

libaio-devel
sysstat
unixODBC-devel
rpm -ivh libaio-devel-0.3.106-5.i386.rpm
rpm -ivh sysstat-7.0.2-3.el5_5.1.i386.rpm
rpm -ivh unixODBC-2.2.11-7.1.i386.rpm
rpm -ivh unixODBC-devel-2.2.11-7.1.i386.rpm

以下这个安装包Oracle需要,但不安装也可以

rpm -ivh pdksh-5.2.14-36.el5.i386.rpm

也可以将以上所需软件包放入一个文件夹,进入文件夹,执行以下命令进行安装:

rpm -ivh *.rpm

2.4 创建用户和组

创建组与用户

groupadd oinstall

groupadd dba

useradd -g oinstall -G dba oracle

创建密码

passwd oracle

id oracle

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

AIX上创建密码后需要登录一次

2.5 创建目录

产品安装目录

mkdir -p /u01/oracle

chown -R oracle:oinstall /u01

chmod -R 755 /u01

创建库目录

mkdir /oradata

chown -R oracle:oinstall /oradata

chmod -R 755 /oradata

库目录一般需要安装在单独的硬盘上,这里从简处理了。

2.6 修改oracle环境变量
$ ll -a
total 40
drwx------ 4 oracle oinstall 4096 Oct 31 14:09 .
drwxr-xr-x 3 root root 4096 Oct 31 14:09 ..
-rw-r--r-- 1 oracle oinstall 33 Oct 31 14:09 .bash_logout
-rw-r--r-- 1 oracle oinstall 176 Oct 31 14:09 .bash_profile
-rw-r--r-- 1 oracle oinstall 124 Oct 31 14:09 .bashrc
-rw-r--r-- 1 oracle oinstall 515 Oct 31 14:09 .emacs
drwxr-xr-x 3 oracle oinstall 4096 Oct 31 14:09 .kde
drwxr-xr-x 4 oracle oinstall 4096 Oct 31 14:09 .mozilla
-rw-r--r-- 1 oracle oinstall 658 Oct 31 14:09 .zshrc
vi .bash_profile
export ORACLE_SID=orcl
export ORACLE_BASE=/u01
export ORACLE_HOME=$ORACLE_BASE/oracle
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
stty erase ^h
alias sqlplus="rlwrap sqlplus"
alias rman="rlwrap rman"
. ./.bash_profile

重启计算机,以oracle身份登录

确认环境变量

echo $ORACLE_BASE

echo $ORACLE_HOME

echo $ORACLE_SID

echo $PATH

echo $LD_LIBRARY_PATH

2.7 上传软件

以oracle身份上传软件

Linux_11gR2_Database_1of2.zip

Linux_11gR2_Database_2of2.zip

2.8 配置参数
2.8.1 vi /etc/sysctl.conf

在/etc/sysctl.conf添加以下内容,并sysctl -p 使其生效

vi /etc/sysctl.conf
# sysctl -p
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 4294967295
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
2.8.2 vi /etc/security/limits.conf

在/etc/security/limits.conf 文件中添加

oracle soft nofile 1024

oracle hard nofile 65536

oracle soft nproc 2048

oracle hard nproc 16384

oracle soft stack 10240

2.8.3 修改pam文件

vi /etc/pam.d/login

添加下面一行

session required pam_limits.so

这句话会使 vi /etc/security/limits.conf中添加的限制生效

2.8.4 修改profile文件
vi /etc/profile
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384
ulimit -n 65536
fi
fi
source /etc/profile
2.8.5 关闭不需要的服务
chkconfig autofs off
chkconfig acpid off
chkconfig sendmail off
chkconfig cups-config-daemon off
chkconfig xfs off
chkconfig lm_sensors off
chkconfig gpm off
chkconfig cpuspeed off
chkconfig nfslock off
chkconfig ip6tables off
chkconfig rpcidmapd off
chkconfig sendmail off
chkconfig rpcgssd off
chkconfig ntpd off
/sbin/service ntpd stop
mv /etc/ntp.conf /etc/ntp.conf.bak

3 安装oracle rdbms

安装前拍一个快照,安装失败后恢复快照可以再次安装;也可以尝试后面的删除操作。

3.1 安装图示

安装前重新执行一遍环境变量

./runInstaller

基本上按默认的下一步进行操作即可。

3.2 netca

netca

下一步到最后即可。

4 安装db

新挂载一个64G的动态磁盘,用于备份恢复以及闪回等。

mkfs.ext3 /dev/sdb

mkdir /orabak

mount /dev/sdb /orabak

chown -R oracle:dba /orabak/

vi /etc/fstabl

/dev/sdb /orabak ext3 defaults 0 0

实际上,库应该放到单独的磁盘上,不过,用于练习的库增长不大,倒不太影响系统。

而闪回则增长非常快,绝对会超出你的想象,必须特殊处理。所以另外挂一块磁,就算硬盘满了,还不影响系统的启动。

用oracle登录,执行以下命令

dbca

本次安装不只是在安装过程中就开启了em,而且也开启了闪回以及归档,并专门指定闪回以及归档的目录。其他的下一步即可。

如果安装遇到目录不正确的问题,输入一个oracle可访问的目录即可。

centos yum 安装ncurses 5 centos5.6安装_数据库_12

安装成功。

安装完成后,可以删除/tmp下的文件

rm -rf /tmp/*

5 删除oracle

删除操作小心处理,删除后数据库就得重新安装了。

5.1 操作

安装目录、库

/tmp下的.oracle与Ora*
/var/tmp/.oracle
/etc/ora*
/etc/inittab

Ø 删除/u01下的目录

Ø rm -rf /tmp/.oracle

Ø rm -rf /tmp/Ora*

Ø rm -rf /etc/ora*

Ø rm -rf /var/tmp/.oracle

Ø vi /etc/inittab 清除Oracle相关配置

Ø userdel -r grid

Ø userdel -r oracle

Ø 清除参数配置

6 备份

6.1 参数文件
SQL> show parameter spfile;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string /u01/oracle/dbs/spfileorcl.ora
SQL>
SQL>
SQL>
SQL> create pfile from spfile;
File created.
6.2 查看归档及闪回

查看归档、闪回是否开启

SQL> select log_mode,flashback_on from v$database;
LOG_MODE FLASHBACK_ON
------------ ------------------
ARCHIVELOG NO

归档目录

SQL> show parameter arch
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_1 string LOCATION=/orabak/arch

闪回目录

SQL> show parameter recover
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string /orabak/rec
db_recovery_file_dest_size big integer 3852M
recovery_parallelism integer 0
6.3 简单rman全备

字符集(由于是备份在服务器上,就设置服务器与数据库字符集一致)

查看该视图确定数据库字符集nls_database_parameters

设置服务器字符集

export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

切归档

SQL> alter system archive log current;

SQL> /

SQL> /

rman备份

rman target /

backup full database tag 'full1' include current controlfile format '/orabak/rman/full_%d_%T_%s_%p' plus archivelog format '/orabak/arch/arch_%d_%T_%s_%p' delete all input;

到此有了一份全备,一不小心把数据库弄坏起不来了,可以使用全备恢复。

7 可能遇到错误或者问题及解决方案

7.1 ORA-03113: end-of-file on communication channel

在dbca安装过程中发生该错误,这个错误的原因可能有很多种,大概可以理解为oracle服务器与客户的连接断了。如果百分之百确认安装操作没有问题,也就是说不是Oracle本身安装操作的问题,那么就是与系统有关。

尝试以下解决方案

关闭虚拟机,重启电脑。

进入oracle用户,查看监听

lsnrctl status 监听已启动

sqlplus / as sysdba 能够进入

切换到oracle用户

dbca 重新安装。

安装成功