一、安装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
$ 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
说明:
#提示符为root用户执行命令
$提示符为oracle用户执行命令