Oracle数据库是一个相对庞大的应用软件,对服务器的系统类型、内存、交换分区、硬盘空间、软件环境、用户环境、内核参数、进程会话限制等都有着相应的要求,只有满足了这些必备的条件,才能确保Oracle 11g安装成功、运行稳定。
一、准备安装条件
1、系统配置要求
cat /etc/redhat-release
grep MemTotal /proc/meminfo
grep SwapTotal /proc/meminfo
df -hT /
hostname
vi /etc/hosts
192.168.4.254 tangxiaoyang tangxiaoyang.domain.com
ifconfig
2、软件环境要求
①开发工具
yum -y install binutils compat-libstdc++-33 compat-libstdc++ elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-devel glibc-headers libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel
②安装pdksh软件包
rpm -ivh /root/pdksh-5.2.14-36.el5.i386.rpm
③安装java-1.6.0软件包并进行调整,以支持中文界面安装
yum -y install java-1.6.0
cd /usr/lib/jvm/jre-1.6.0/lib/
mv fontconfig.bfc fontconfig.bfc.bak ------备份默认字体配置
cp fontconfig.RedHat.6.0.bfc fontconfig.bfc ----拷贝RHEL6的字体配置
3、用户环境要求
①创建运行用户oracle、安装组oinstall、管理组dba及存放Oracle程序的基本目录
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
passwd oracle
mkdir /opt/oracle
chown -R oracle:oinstall /opt/oracle
chmod -R 775 /opt/oracle/
②调整oracle用户的环境配置
vi /home/oracle/.bash_profile
umask 022 -----文件权限掩码
export ORACLE_BASE=/opt/oracle -----定义基本目录
export ORACLE_SID=orcl -----定义数据库实例名
export DISPLAY=:0.0 -----默认的显示终端号
export.UTF-8 -----安装界面的语言类型
③由于当前图形环境是以root登陆的,因此还需允许oracle用户能访问使用图形终端
xhost +oracle@localhost
注:xhost是用来控制X server访问权限的命令
中文界面有时会因缺少字体、字体配置不当等导致界面乱码,此时可改为en_US.UTF-8
4、内核及会话要求
①调整内核参数,包括内存调试、端口范围、打开文件数、I/O请求等设置
vi /etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
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 = 1048586
sysctl –p
②调整进程会话限制,加大打开的进程数及进程使用的文件数
vi /etc/pam.d/login
session required pam_limits.so ---启用pam_limits认证模块
vi /etc/security/limits.conf
oracle soft nproc 8192
oracle hard nproc 16384
oracle soft nofile 32768
oracle hard nofile 65536
----分别为进程数软限制、硬限制,文件数软限制、硬限制
二、安装Oracle 11g
放入Oracle 11g的安装光盘,并将其挂载到/mnt/iso目录
1、以oracle用户登陆图形桌面环境并安装,添加-jreLoc选项指定jre的位置
/mnt/iso/database/runInstaller -jreLoc /usr/lib/jvm/jre-1.6.0
在如下界面中指定安装选项,并为用户指定管理密码
将清单目录修改为/opt/oracle/oralnventory,使oracle用户有写入清单信息的权限
安装过程
Oracle典型的安装设置
基本目录:/opt/oracle/
软件位置:/opt/oracle/product/11.2.0/dbhome_1/
数据库位置:/opt/oracle/oradata/
产品清单:/opt/oracle/oraInventory/
2、运行脚本进行初始化
安装完成后会弹出“执行配置脚本”对话框,根据提示切换为root用户并执行相应脚本
su - root
/opt/oracle/oraInventory/orainstRoot.sh
/opt/oracle/product/11.2.0/dbhome_1/root.sh
访问OEM企业管理器平台并对Oracle数据库进行管理,用户名sys,连接身份SYSDBA
https://y2:1158/em/或https://192.168.4.254:1158/em/
登陆成功后可以看到OEM管理控制台,并可对其进行管理
3、优化调整环境配置
vi /etc/profile -----添加如下内容
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_OWNER=oracle
export ORACLE_SID=orcl
export ORACLE_TERM=xterm
export PATH=$PATH:$ORACLE_HOME/bin
source /etc/profile -----source命令可使配置文件立即生效
修改/etc/oratab配置文件,以便运行dbstart时自动启用数据库实例
vi /etc/oratab
orcl:/opt/oracle/product/11.2.0/dbhome_1:Y ----将末尾的N改为Y
使用sqlplus命令访问Oracle数据库
sqlplus sys/orcl AS SYSDBA
SQL>
help index; -----查看支持的指令列表
show user; -----查看当前登陆的用户名称
三、Oracle基本管理
1、基本服务组件
lsnrctl:监听器程序,用来提供数据库访问,默认端口TCP 1521
dbstart、dbshut:数据库控制程序,用来启动、停止数据库实例
emctl:管理器控制工具,用来开启或关闭OEM平台,默认通过1158端口提供HTTPS访问
注:①lsnrctl status ------查看监听器状态
②emctl stop dbconsole ------关闭OEM管理控制台
③dbshut $ORACLE_HOME ------停止数据库实例
④dbstart $ORACLE_HOME ------启动数据库实例
2、添加Oracle服务
vi /etc/init.d/oracle
chmod a+x /etc/init.d/oracle
chkconfig --add oracle
chkconfig --list oracle
service oracle status
service oracle restart
四、备份与恢复
1、配置备份目录
创建备份目录并将其作为expdp的备份目录,授权备份用户sysman允许写入备份文件
mkdir /opt/mydbbackup
chown oracle:oinstall /opt/mydbbackup/
sqlplus sys/orcl AS SYSDBA
create directory dmpdir as '/opt/mydbbackup';
grant read,write on directory dmpdir to sysman;
2、备份数据
expdp sysman directory=dmpdir dumpfile=orcl20130126.dmp
----directory参数指定Oracle管理的备份位置
----dumpfile参数指定备份文件名称
ls –lh /opt/mydbbackup/
3、恢复数据
impdp sysman directory=dmpdir dumpfile=orcl20130126.dmp reuse_datafiles=y table_exists_action=replace
----reuse_datafiles=y表示重用原有的数据文件 ----table_exists_action=replace表示覆盖已存在的表