Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系型数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的 适应高吞吐量的数据库解决方案。

环境配置

1、安装centos6.5操作系统

物理内存不少于1G

硬盘可以空间不少于5G

swap分区空间不少于2G

支持256色以上显卡

cpu主频不小于550mHZ

2、下载安装包oracle11g_r2_x64的oracle版本

http://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-linx8664soft-100572.html

3、配置hosts文件

格式:ip    主机名

4、配置yum源

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo 

rpm -Uvh http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm

yum clean all  && yum makecache

5、关闭selinux

sed -i  7s/enforcing/disabled/g  /etc/selinux/config

reboot


安装部署

1、安装oracle依赖包关系

yum install binutils compat-libcap1 compat-libstdc++ compat-libstdc++ gcc gcc-c++ glibc glibc-devel ksh libgcc libstdc++ libaio libaio-devel make sysstat unixODBC unixODBC-devel -y

 

2、修改内核参数

  内核参数调整体现在/etc/sysctl.conf文件中。主要包括对内存调度、端口范围、打开文件数、I/O请求等相关的一些设置,相关数值不可低于安装要求。修改完毕后通过执行sysctl–p命令使新配置立即生效。

vim /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       

3、修改内核限制参数

  vim /etc/security/limits.conf

   oracle soft nproc 2047

   oracle hard nproc 16384

   oracle soft nofile 1024

   oracle hard nofile 65536

第1行是设置进程数软限制;

第2行是设置进程数硬限制;

第3行是设置文件数软限制;

第4行是设置文件数硬限制


4、创建oracle帐号和组

    groupadd oinstall

    groupadd dba

    useradd -g oinstall -G dba oracle


5、创建相关数据库目录

    mkdir /u01

    mkdir /u01/app

    mkdir -p /u01/app/oracle/oradata         //存放数据库的数据目录

    mkdir -p /u01/app/oracle/oradata_back    //存放数据库备份文件

   

    chmod -R 775 /u01/app

 

6、修改oracle环境变量

   vim /etc/proile (文件最后加入)

     export TMP=/tmp

     export TMPDIR=$TMP

     export ORACLE_BASE=/u01/app/oracle

     export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1

     export ORACLE_SID=ora11

     export ORACLE_TERM=xterm

     export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH

     export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib

     export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

 

7、oracle资源限制,不配置也不会影响oracle数据库的成功安装,但是考虑到若有糟糕的sql语句对服务器资源的无限占用,导致长时间对用户请求无响应,建议提前限制oracle用户资源。

 

vim /etc/profile

if [ $USER = "oracle" ] ;then

if [ $SHELL = "/bin/ksh" ];then

ulimit -p 16384

ulimit -n 65536

else

ulimit -u 16384 -n 65536

fi

fi

 

8、解压oracle二进制包至/opt目录下  (解压的目录默认名为database

cp -rv  /root/linux.x86* /opt    

unzip linux.x64_11gR2_database_1of2.zip

unzip linux.x64_11gR2_database_2of2.zip

 

9、修改配置文件并进行拷贝

解压oracle文件,进入response目录下
#cp * /etc
#vi /etc/db_install.rsp

配置文件设置--->http://blog.chinaunix.net/uid-23886490-id-3565908.html

 

修改安装Oracle软件的响应文件vim /etc/db_install.rsp

oracle.install.option=INSTALL_DB_SWONLY     //安装类型,只装数据库软件

ORACLE_HOSTNAME=test               //主机名称(hostname查询)

UNIX_GROUP_NAME=oinstall             // 安装组

INVENTORY_LOCATION=/opt/oracle/oraInventory  //INVENTORY目录(不填就是默认值)

SELECTED_LANGUAGES=en,zh_CN,zh_TW        // 选择语言

ORACLE_HOME=/opt/oracle/product/11.2.0/db_1   // oracle_home

ORACLE_BASE=/opt/oracle             // oracle_base

oracle.install.db.InstallEdition=EE      // oracle版本

oracle.install.db.isCustomInstall=false     //自定义安装,否,使用默认组件

oracle.install.db.DBA_GROUP=dba          //dba用户组

oracle.install.db.OPER_GROUP=oinstall      //oper用户组

oracle.install.db.config.starterdb.type=GENERAL_PURPOSE   //数据库类型

oracle.install.db.config.starterdb.globalDBName=orcl     //globalDBName

oracle.install.db.config.starterdb.SID=orcl  //SID

oracle.install.db.config.starterdb.memoryLimit=81920    //自动管理内存的内存(M)

oracle.install.db.config.starterdb.password.ALL=oracle  //设定所有数据库用户使用同一个密码

SECURITY_UPDATES_VIA_MYORACLESUPPORT=false(手动写了false)

DECLINE_SECURITY_UPDATES=true      //设置安全更新(貌似是有bug,这个一定要选true,否则会无限提醒邮件地址有问题,终止安装。PS:不管地址对不对)


10,执行脚本   提醒:切换至oracle用户

       #/u01/app/oracle/oraInventory/orainstRoot.sh

       #/u01/app/oracle/product/11.2.0/db_1/root.sh

 

 

11,静默配置监听     提醒:切换至oracle用户

    netca /silent /responsefile /etc/netca.rsp

    备注: netca命令是oracle提供的命令,如果显示找不到命令请检查环境变量

   

 

12,通过netstat -tlnp 命令查看监听地址      提醒:切换至oracle用户

    tcp  0   0 :::1521        :::*      LISTEN      5477/tnslsnr   

 

 

13,静默建立新库   提醒:切换至oracle用户 (如果一下各参数在/etc/dbca.rsp文件中    重复出现,可以全改)

    修改/etc/dbca.rsp,设置如下:

     RESPONSEFILE_VERSION = "11.2.0"  //不能更改

     OPERATION_TYPE = "createDatabase"

     GDBNAME = "orcl"  //全局数据库的名字=SID+主机域名

     SID = "orcl"    //对应的实例名字

     TEMPLATENAME = "General_Purpose.dbc" //建库用的模板文件

     SYSPASSWORD = "123456"   //SYS管理员密码

     SYSTEMPASSWORD = "123456"  //SYSTEM管理员密码

     DATAFILEDESTINATION = /u01/app/oracle/oradata //数据文件存放目录

     RECOVERYAREADESTINATION=/u01/app/oracle/oradata_back //恢复数据存放目录

     CHARACTERSET = "UTF-8"   //字符集,重要!!! 建库后一般不能更改

     TOTALMEMORY = "5120"    //oracle内存5120MB

 

 

14,静默建库命令如下 dbcaoracle命令,如果提示命令找不到,检查环境变量)

    dbca -silent -responseFile /etc/dbca.rsp

      数据库信息:

      全局数据库名:

      系统标识符 (SID):   如有相关显示  则表明成功

 

 

15,检查oracle进程状态

    ps -ef | grep ora_ | grep -v grep

    lsnrctl status  (lsnrctl是oracle命令)

 

 

16,登录数据库  提醒:切换至oracle用户

    sqlplus / as sysdba

 

17,修改oracle启动配置文件

完成oracle11g数据库的安装后,相关服务器会自动启用,但并不表示下次开机后oracle服务器仍然可用。下面将介绍oracle的基本服务组件,以及如何编写服务脚本来控制oracle数据库系统的自动运行。

根据上面的安装过程,oracle11g的数据库软件将安装在变量ORACLE_HOME所北定的位置。例如/opt/oracle/product/11.2.0/dbhome_1/,而各种服务器组件程序(也包括sqlplus命令)正是位于其中的bin子目录下。

Oracle11g数据库的基本服务组件如下所述:(注:oracle服务组件最好以oracle用户身份运行如:su - oracle)

lsnrctl:监听器程序,用来提供数据库访问,默认监听TCP 1521端口。

dbstart、dbshut:数据库控制程序,用来启动、停止数据库实例。

emctl:管理器控制工具,用来控制OEM平台的开启与关闭,OEM平台通过1158端口提供HTTPS访问,5520端口提供TCP访问。

为了方便执行oracle11g的服务组件程序,建议对所有用户的环境配置作进一步的优化调整、补充PATH路径、oracle终端类型等变量设置。除此以外,还应该修改/etc/oratab配置文件,以便运行dbstart时自动启用数据库实例。

 

$vim /etc/oratab

    racl:/u01/app/oracle/product/11.2.0/db_1:Y  //把“N”改成“Y”

    这样就可以通过dbstart 启动此实例,也可以通过dbshut关闭此实例了。

    $ dbshut /u01/app/oracle/product/11.2.0/db_1/

    Processing Database instance "hello": log file     /u01/app/oracle/product/11.2.0/db_1/shutdown.log

    此时所有oracle的进程关闭,监听器也停止。

    $dbstart /u01/app/oracle/product/11.2.0/db_1/

    Processing Database instance "hello": log file     /u01/app/oracle/product/11.2.0/db_1/startup.log

    此时监听器工作,hello实例运行,再次查看监听器状态。