您的位置:首页 > 数据库 > Oracle

Centos6.5安装Oracle12c安装笔记

2016-03-29 21:55 549 查看
声明:本篇博文转自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 si
4000
d 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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: