Centos6.5安装Oracle12c安装笔记

来源:互联网 发布:乐视手机4g网络不能用 编辑:程序博客网 时间:2024/05/21 15:06

声明:本篇博文转自madking的  http://blog.csdn.net/madking/article/details/39493025

结合自己安装遇到的坑给予说明 


说明:

#提示符为root用户执行命令

$提示符为oracle用户执行命令


一、安装oracle

1、创建用户组和用户

# groupadd oinstall  
# groupadd dba
# groupadd oper

# useradd -u 500 -g oinstall -G dba,oper oracle

2、根据官方文档检查并安装依赖包(http://docs.oracle.com/database/121/LTDQI/toc.htm#BABGGEBA)

rpm -q <package_name>检查包是否存在,如不存在使用yum install <package_name>进行安装。

依赖包清单如下:

binutils-2.20.51.0.2-5.11.el6 (x86_64)
compat-libcap1-1.10-1 (x86_64)
compat-libstdc++-33-3.2.3-69.el6 (x86_64)
gcc-4.4.4-13.el6 (x86_64)
gcc-c++-4.4.4-13.el6 (x86_64)
glibc-2.12-1.7.el6 (x86_64)
glibc-devel-2.12-1.7.el6 (x86_64)
ksh
libgcc-4.4.4-13.el6 (x86_64)
libstdc++-4.4.4-13.el6 (x86_64)
libstdc++-devel-4.4.4-13.el6 (x86_64)
libaio-0.3.107-10.el6 (x86_64)
libaio-0.3.107-10.el6 (i686)
libaio-devel-0.3.107-10.el6 (x86_64)
libXext-1.1 (x86_64)
libXtst-1.0.99.2 (x86_64)
libX11-1.3 (x86_64)
libXau-1.0.5 (x86_64)
libXau-1.0.5 (i686)
libxcb-1.5 (x86_64)
libXi-1.3 (x86_64)
make-3.81-19.el6
sysstat-9.0.4-11.el6 (x86_64)

3、下载并解压缩oracle安装包至指定位置

$ mkdir -p /home/oracle/orainst/12.1.0.2

$ unzip linuxamd64_12102_database_1of2.zip
$ unzip linuxamd64_12102_database_2of2.zip

oracle推荐的目录结构如下:


4、创建/etc/oraInst.loc文件,内容如下:

inventory_loc=/u01/app/oraInventory
inst_group=oinstall

# chown oracle:oinstall oraInst.loc
# chmod 664 oraInst.loc

$ mkdir -p /u01/app/oraInventory


5、配置response文件

$ cd /home/oracle/orainst/12.1.0.2/database

$ find . -name "*.rsp"

./response/db_install.rsp
./response/netca.rsp
./response/dbca.rsp

$ cp response/db_install.rsp inst.rsp

修改inst.rsp,内容如下:

oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v12.1.0
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=o12c
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/home/oracle/orainst/12.1.0.2/database/stage/products.xml
SELECTED_LANGUAGES=en
ORACLE_HOME=/u01/app/oracle/product/12.1.0.2/db_1
ORACLE_BASE=/u01/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=oper
oracle.install.db.BACKUPDBA_GROUP=dba
oracle.install.db.DGDBA_GROUP=dba
oracle.install.db.KMDBA_GROUP=dba
DECLINE_SECURITY_UPDATES=true

6、运行安装程序

$ ./runInstaller -ignorePrereq -force -silent -responseFile \
/home/oracle/orainst/12.1.0.2/database/inst.rsp

监控安装过程

$ tail -f /u01/app/oraInventory/logs/<logfile name>

7、安装成功后切换到root用户运行安装后脚本

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

二、创建数据库

1、配置系统变量

编辑/etc/oratab,确定包含下面一行

o12c:/u01/app/oracle/product/12.1.0.2/db_1:N

创建文件/etc/oraset,内容如下:

#!/bin/bash
# Sets Oracle environment variables.
# Setup: 1. Put oraset file in /etc (Linux), in /var/opt/oracle (Solaris)
#        2. Ensure /etc or /var/opt/oracle is in $PATH
# Usage: batch mode: . oraset <SID>
#        menu mode:  . oraset
#====================================================
if [ -f /etc/oratab ]; then
  OTAB=/etc/oratab
elif [ -f /var/opt/oracle/oratab ]; then
  OTAB=/var/opt/oracle/oratab
else
     echo 'oratab file not found.'
     exit
fi
#
if [ -z $1 ]; then
  SIDLIST=$(egrep -v '#|\*' ${OTAB} | cut -f1 -d:)
  # PS3 indicates the prompt to be used for the Bash select command.
  PS3='SID? '
  select sid in ${SIDLIST}; do
    if [ -n $sid ]; then
      HOLD_SID=$sid
      break
    fi
  done
else
  if egrep -v '#|\*' ${OTAB} | grep -w "${1}:">/dev/null; then
    HOLD_SID=$1
  else
    echo "SID: $1 not found in $OTAB"
  fi
  shift
fi
#
export ORACLE_SID=$HOLD_SID
export ORACLE_HOME=$(egrep -v '#|\*' $OTAB|grep -w $ORACLE_SID:|cut -f2 -d:)
export ORACLE_BASE=${ORACLE_HOME%%/product*}
export TNS_ADMIN=$ORACLE_HOME/network/admin
export ADR_BASE=$ORACLE_BASE/diag
export PATH=$PATH:$ORACLE_HOME/bin:/usr/ccs/bin:/opt/SENSsshc/bin:/etc\

编辑/etc/profile.d/custom.sh,内容如下:

. /etc/oraset o12c

2、配置init文件

创建$ORACLE_HOME/dbs/inito12c.ora文件,内容如下:

db_name=o12c
db_block_size=8192
memory_target=300M
memory_max_target=300M
processes=200
control_files=(/u01/dbfile/o12c/control01.ctl,/u02/dbfile/o12c/control02.ctl)
job_queue_processes=10
open_cursors=500
fast_start_mttr_target=500
undo_management=AUTO
undo_tablespace=UNDOTBS1
remote_login_passwordfile=EXCLUSIVE

3、建立相应目录并授权

$ mkdir -p /u01/dbfile/o12c
$ mkdir -p /u02/dbfile/o12c

$ mkdir -p /u01/oraredo/o12c
$ mkdir -p /u02/oraredo/o12c

# chown -R oracle:dba /u01
# chown -R oracle:dba /u02

4、创建数据库

$ sqlplus / as sysdba
SQL> startup nomount;

CREATE DATABASE o12c
MAXLOGFILES 16
MAXLOGMEMBERS 4
MAXDATAFILES 1024
MAXINSTANCES 1
MAXLOGHISTORY 680
CHARACTER SET AL32UTF8
DATAFILE
'/u01/dbfile/o12c/system01.dbf'
SIZE 500M REUSE
EXTENT MANAGEMENT LOCAL
UNDO TABLESPACE undotbs1 DATAFILE
'/u01/dbfile/o12c/undotbs01.dbf'
SIZE 800M
SYSAUX DATAFILE
'/u01/dbfile/o12c/sysaux01.dbf'
SIZE 500M
DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE
'/u01/dbfile/o12c/temp01.dbf'
SIZE 500M
DEFAULT TABLESPACE USERS DATAFILE
'/u01/dbfile/o12c/users01.dbf'
SIZE 20M
LOGFILE GROUP 1
('/u01/oraredo/o12c/redo01a.rdo',
'/u02/oraredo/o12c/redo01b.rdo') SIZE 50M,
GROUP 2
('/u01/oraredo/o12c/redo02a.rdo',
'/u02/oraredo/o12c/redo02b.rdo') SIZE 50M,
GROUP 3
('/u01/oraredo/o12c/redo03a.rdo',
'/u02/oraredo/o12c/redo03b.rdo') SIZE 50M
USER sys IDENTIFIED BY foo
USER system IDENTIFIED BY foo;

5、创建数据字典

SQL> @?/rdbms/admin/catalog.sql
SQL> @?/rdbms/admin/catproc.sql

执行成功后

SQL> connect system/<password>
SQL> @?/sqlplus/admin/pupbld

6、配置、启动监听 (这里注意了)

新建$TNS_ADMIN/listener.ora文件,内容如下:

LISTENER=(DESCRIPTION_LIST=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle12c)(PORT=1521)))))
SID_LIST_LISTENER=(SID_LIST=(SID_DESC=(GLOBAL_DBNAME=o12c)(ORACLE_HOME=/u01/app/oracle/product/12.1.0.2/db_1)(SID_NAME = o12c)))

注*这里的文件格式一定要严谨 不要留空格空行配置 每一条配置一行 修改成自己的参数

启动监听

$ lsnrctl start

7、通过网络连接数据库

新建$TNS_ADMIN/tnsnames.ora文件,内容如下:

o12c=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle12c)(PORT=1521))(CONNECT_DATA = (SERVICE_NAME = o12c)))

#如需再配置一个服务再用一行 类推

注*这里的文件格式一定要严谨 不要留空格空行配置 每一条配置一行 修改成自己的参数

连接数据库

$ sqlplus system/foo@o12c            //(这样执行直接可以进入sql了)

sqlplus system/foo@o12c            // (root账号下也可以直接进入了)

最后说明要在远程访问 必须看防火墙的对应端口(1521)开放  可以用 telnet ip:1521  检查一下是否可连

如果不可以连 关闭防火墙 # service iptables stop

或者 编辑 # vim/etc/sysconfig/iptables  

添加一条规则 -A INPUT -m state --state NEW -m tcp -p tcp --dport 1521 -j ACCEPT

重启防火墙 # service iptables restart

1 0
原创粉丝点击