Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2264489
  • 博文数量: 168
  • 博客积分: 6641
  • 博客等级: 准将
  • 技术积分: 1996
  • 用 户 组: 普通用户
  • 注册时间: 2007-06-02 11:49
文章存档

2020年(4)

2019年(6)

2017年(1)

2016年(3)

2015年(3)

2014年(8)

2013年(2)

2012年(12)

2011年(19)

2010年(10)

2009年(3)

2008年(17)

2007年(80)

分类: LINUX

2011-12-27 01:03:05

 
在RHEL6中安装Oracle 11g R2数据库
 
2011-10-10  TsengYia#126.com http://tsengyia.blog.chinaunix.net/  
 
##############################################################################
 
系统环境:
    RHEL 6.1 [2.6.32-131.0.15.el6.i686]
 
软件环境:
  —— 来自RHEL 6.1光盘的RPM软件包
    包组:Development tools
    包:compat-libstdc++-33、elfutils-libelf-devel、libaio-devel、sysstat、unixODBC-devel
  —— 来自RHEL 5.5光盘的RPM软件包
    ./Server/pdksh-5.2.14-36.el5.i386.rpm
  —— 从下载的Oracle 11g安装包
    linux_11gR2_database_1of2.zip
    linux_11gR2_database_2of2.zip
 
##############################################################################
 
一、准备Oracle 11g R2的安装条件
    包括软硬件配置、用户环境、软件环境等,其中RHEL 6.1中的ksh环境未能被安装程序识别,因此改用RHEL 5.5中的pdksh代替。
 
1. 内存及交换空间
    物理内存1GB以上,交换空间大约为物理内存的2倍。
 
2. 安装目录、/tmp目录
    安装目录(/opt/oracle)建议有8GB以上、/tmp目录建议有1GB以上可用空间。
 
3. 主机名、IP地址
    提前确定好,例如dbserver,完成安装以后不要再改主机名。
 
4. 需要的软件环境
 
[root@dbserver ~]# yum -y install binutils compat-libstdc++ compat-libstdc++-33 elfutils-libelf-devel gcc gcc-c++ glibc-devel glibc-headers ksh libaio-devel libstdc++-devel make sysstat unixODBC-devel
 
[root@dbserver ~]# rpm -e ksh
[root@dbserver ~]# rpm -ivh .../pdksh-5.2.14-36.el5.i386.rpm
 
[root@dbserver ~]# yum -y install java-1.6.0      //准备系统自身的Java中文环境
[root@dbserver ~]# cd /usr/lib/jvm/jre-1.6.0/lib/
[root@dbserver lib]# mv fontconfig.bfc fontconfig.bfc.origin
[root@dbserver lib]# cp fontconfig.RedHat.6.0.bfc fontconfig.bfc
 
 
5. 创建安装用户
 
[root@dbserver ~]# groupadd oinstall                     //安装组
[root@dbserver ~]# groupadd dba                          //管理组
[root@dbserver ~]# useradd -g oinstall -G dba oracle     //运行用户
[root@dbserver ~]# passwd oracle
 
[root@dbserver ~]# vi ~oracle/.bash_profile
......
umask 022
export ORACLE_BASE=/opt/oracle
export ORACLE_SID=orcl                                   //要使用的数据库实例名称
export DISPLAY=:0.0                                      //默认的显示终端号
export LANG=zh_CN.UTF-8                                  //确定要使用的语言环境
 
[root@dbserver ~]# mkdir /opt/oracle                     //创建基本目录
[root@dbserver ~]# chown -R oracle:oinstall /opt/oracle/
[root@dbserver ~]# chmod -R 775 /opt/oracle/
 
6. 调整内核及会话限制(不低于以下数值)
 
[root@dbserver ~]# vi /etc/sysctl.conf
......
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152                     //此行默认已有,确认不低于此数即可
kernel.shmmax = 536870912                   //此行默认已有,确认不低于此数即可
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
 
[root@dbserver ~]# sysctl -p
 
[root@dbserver ~]# vi /etc/pam.d/login
......
session     required    pam_limits.so
 
[root@dbserver ~]# vi /etc/security/limits.conf
oracle         soft    nproc    8192
oracle         hard    nproc    16384
oracle         soft    nofile    32768
oracle         hard    nofile    65536
 
 
 
二、安装Oracle 11g数据库
    由用户oracle启动安装脚本(在图形桌面环境执行),加载中文安装界面。如果先以root用户登入图形桌面,再su切换为oracle用户,则还应提前做好xhost授权,以便oracle用户能够使用X显示终端。
 
1. 图形化安装过程
 
[root@dbserver ~]# xhost +
access control disabled, clients can connect from any host
 
[root@dbserver ~]# cd /var/ftp/pub/
[root@dbserver pub]# unzip linux_11gR2_database_1of2.zip
[root@dbserver pub]# unzip linux_11gR2_database_2of2.zip
 
[root@dbserver pub]# su - oracle
[oracle@dbserver ~]$ cd /var/ftp/pub/database/
[oracle@dbserver database]$ ./runInstaller -jreLoc /usr/lib/jvm/jre-1.6.0
正在启动Oracle universal Installer ...
......
准备从以下地址启动Oracle Universal Installer /tmp/OraInstall2011-10-10_07-27-32PM.
请稍候...
 
 
(1)根据安装程序提示,创建和配置数据库-->服务器类-->单实例数据库安装-->典型安装-->企业版
(2)设置好管理口令,将清单目录改为/opt/oracle/oraInventory,确认后正式开始安装过程
(3)最后根据提示由root用户执行相应的安装后脚本:
        /opt/oracle/oraInventory/orainstalRoot.sh
        /opt/oracle/product/11.2.0/dbhome_1/root.sh
 
2. 确认安装结果
    在浏览器中访问,登录OEM管理平台(sys AS SYSDBA),确认orcl实例运行正常。
 
3. 优化服务运行环境
 
[root@dbserver ~]# 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
 
[root@dbserver ~]# source /etc/profile
 
[root@dbserver ~]# vi /etc/oratab                //设置orcl实例随oracle服务一起启动
orcl:/opt/oracle/product/11.2.0/dbhome_1:Y
 
[root@dbserver ~]# vi /etc/init.d/oracle         //编写oracle服务控制脚本
#!/bin/bash
#### 2011.10.10 by TsengYia ####
# chkconfig: 35 90 10
# description: Oracle Database Service Daemon.
ORCL_BASE="/opt/oracle"
ORACLE_HOME=$ORCL_BASE/product/11.2.0/dbhome_1
ORACLE_OWNER=oracle
case "$1" in
  start)
    su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/lsnrctl start"             #//启用监听器
    su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"      #//启用数据库程序
    su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/emctl start dbconsole"     #//启用OEM控制台
    ;;
  stop
    su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/emctl stop dbconsole"      #//停止OEM控制台
    su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/dbshut $ORACLE_HOME"       #//停止数据库程序
    su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/lsnrctl stop"              #//停止监听器
    ;;
  status)
    if(pgrep "tnslsnr" && netstat -anpt | grep ":1521") &> /dev/null
    then
        echo "Oracle 11g Net Listener is running."
    else
        echo "Oracle 11g Net Listener is not running."
    fi
    if(netstat -anpt | grep ":1158" && netstat -anpt | grep ":5520") &> /dev/null
    then
        echo "Oracle 11g Enterprise Manager is running."
    else
        echo "Oracle 11g Enterprise Manager is not running."
    fi
    ;;
  restart)
    $0 stop
    $0 start
    ;;
  *)
    echo "Usage: $0 {start|stop|restart|status}"
    exit 1
    ;;
esac
exit 0
 
[root@dbserver ~]# chmod +x /etc/init.d/oracle
[root@dbserver ~]# chkconfig --add oracle
 
 
 
三、Oracle 11g的基础操作
 
1. 使用sqlplus命令行工具
 
[root@dbserver ~]# sqlplus sys AS SYSDBA
Enter password:                             //输入管理口令
......
SQL> HELP INDEX;
@        COPY        PAUSE        SHUTDOWN
@@        DEFINE        PRINT        SPOOL
......
COMPUTE        LIST        SET         XQUERY
CONNECT        PASSWORD    SHOW
SQL> SHOW USER;
USER is "SYS"
 
2. 使用expdp进行逻辑备份(导出)
 
[root@dbserver ~]# mkdir /opt/mydbbackup                //创建备份目录
[root@dbserver ~]# chown oracle:oinstall /opt/mydbbackup
[root@dbserver ~]# sqlplus sys AS SYSDBA
......
SQL> CREATE DIRECTORY dmpdir AS '/opt/mydbbackup';      //定义备份位置
Directory created.
SQL> GRANT read,write ON DIRECTORY dmpdir TO sysman;    //授权备份用户
Grant succeeded.
 
[root@dbserver ~]# expdp sysman DIRECTORY=dmpdir DUMPFILE=orcl20111011.dmp
[root@dbserver ~]# ls -lh /opt/mydbbackup/orcl20111011.dmp
-rw-r-----  1  oracle  oinstall  51M  10月 11 13:24  /opt/mydbbackup/orcl20111011.dmp
 
3. 使用impdp进行逻辑恢复(导入,目标库最好已为空)
 
[root@dbserver ~]# impdp sysman DIRECTORY=dmpdir DUMPFILE=orcl20111011.dmp REUSE_DATAFILES=Y TABLE_EXISTS_ACTION=REPLACE
 
4. ......
 
 
##############################################################################

阅读(2768) | 评论(3) | 转发(1) |
给主人留下些什么吧!~~

一路狂笑2012-02-24 21:07:29

的确如此,多谢指正~~

一路狂笑2012-02-24 20:49:40

飞哥2005: [root@dbserver ~]# vi /etc/init.d/oracle         //编写oracle服务控制脚本
#!/bin/bash
#### 2011.10.10 by TsengYia ####
# chkconfig 35 90 10少了个:.....
的确如此,多谢指正

飞哥20052012-02-24 16:57:44

[root@dbserver ~]# vi /etc/init.d/oracle         //编写oracle服务控制脚本
#!/bin/bash
#### 2011.10.10 by TsengYia ####
# chkconfig 35 90 10少了个: 应该是#chkconfig: 35 90 10