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 分区大小
1.1.3 IP配置
1.1.4 自定义软件
服务、虚拟化、集群中的软件包都不需要选。语言选择支持中文。
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查看内存,也没运行什么服务,内存就不够用了。
重启再次查看,可用内存充足了。
[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可访问的目录即可。
安装成功。
安装完成后,可以删除/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 重新安装。
安装成功