Install and Create a Database
Overview
• 本章讲述如何安装oracle数据库软件和创建
  一个数据库. 在安装oracle时, 默认会选择安
  装一个数据库, 这里为了演示选择仅安装数
  据库软件, 在之后将会演示如何创建一个数
  据库;
• 章节使用的操作系统是oel5.5x64, 数据库版
  本是11gR2, 所有的操作均在virtualbox虚拟
  机完成. 如何使用virtualbox? 参考linux基础
  之《2, Installation》
Pre-requirement
• 安装oracle数据库之前需要安装如下包(root):
  binutils compat-libstdc++-33 elfutils-libelf
  elfutils-libelf-devel gcc gcc-c++ glibc
  glibc-common glibc-devel glibc-headers
  ksh libaio libaio-devel libgcc libstdc++
  libstdc++-devel make sysstat unixODBC
  unixODBC-devel
这些包都可以在系统安装介质中找到, 可以使
用安装介质建立一个本地yum源进行安装.
Users & Groups
• 安装oracle数据库需要创建相应的系统用户和
  组, 这里创建了oracle用户和oinstall/dba组, 如
  下(root):
  groupadd oinstall
  groupadd dba
  useradd -g oinstall -G dba oracle
• 将/opt/oracle设置为数据库的安装目录, oracle
  用户对该目录需要有可写权限, 如下(root):
  mkdir /opt/oracle
  chown -R oracle:oinstall /opt/oracle
Configure oracle user
• 在安装数据库之前, 需要配置ORACLE_BASE,
  ORACLE_HOME等环境变量, 这些变量配置在
  oracle用户的初始化文件~/.bash_profile中, 如下
  (oracle):
 ORACLE_BASE=/opt/oracle; export ORACLE_BASE
 ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1; export
 ORACLE_HOME
 ORACLE_SID=ocpdemo; export ORACLE_SID
 PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH; export PATH
 LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export
 LD_LIBRARY_PATH
 配置完成之后重新登录oracle用户.
Installation
• 进入安装介质解压后的目录, 首先切换到root用户, 执行:
  xhost local:oracle
  切换为oracle用户, 执行:
  ./runInstaller
  就可以看到GUI安装界面
  了, 如右. 这里选择不设置
  email地址.
Installation
• 选择仅安装数据库软件:




• 选择单示例安装方式,
  非集群
Installation
• 产品语言选择English, 数据库选择企业版本,
  如下:
Installation
• 安装位置. 这里会读取刚才配置的
  ORACLE_BASE和ORACLE_HOME环境变量的
  值, 如下:
Installation
• 设置oracle inventory目录, 该目录用于存储
  oracle产品的安装文件; 切换为root用户, 执
  行如下命令:
 mkdir /opt/oraInventory
 chown oracle:oinstall
    /opt/oraInventory/
Installation
• 指定操作系统数据库管理员(dba)用户组 和
  数据库操作员用户组; 如果系统用户属于系
  统管理员组则可以用sysdba的身份登录:
Installation
•   内核参数, 系统oracle用户资源限制设置.
•   内核参数设置, 切换到root用户, 修改/etc/sysctl.conf, 添加:
    kernel.sem = 250 32000 100 128
    fs.file-max = 6815744
    fs.aio-max-nr = 1048576
    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
    然后运行如下命令, 使修改生效:
    sysctl -p
•   oracle用户资源限制
    修改/etc/security/limits.conf文件添加:
    oracle soft nproc 2047
    oracle hard nproc 16384
    oracle soft nofile 1024
    oracle hard nofile 65536
Installation
• 接下来是summary 和 安装界面
Installation
• 安装过程中提示需要使用root用户执行指定
  的shell脚本, 如下:
              切换到root用户执行:
              sh /opt/oraInventory/orainstRoot.sh
              sh /opt/oracle/product/11.2.0/dbhome_1/root.sh
Creating a database
                 - Overview
• 创建数据库服务器(database server)分为三个步骤:
  1, 创建数据库实例(instance), 这一步骤在之前已经完成;
  2, 创建数据库文件包括参数文件, 控制文件, 密码文件, 相关
  的表空间文件等;
  3, 创建数据字典对象(data dictionary objects);
  4, 创建数据库字典视图(data dictionary views);
• 需要准确区分oracle实例和数据库的概念, 实例指的是内存
  和一系列的系统进程, 数据库指的是相关的数据库文件; 创
  建oracle数据库的过程本质上是创建相关的数据库文件, 包
  括:
  –   数据库参数文件和(可选)密码文件;
  –   控制文件(control files);
  –   表空间数据文件, SYSTEM/SYSAUX表空间;
  –   重做日志文件(redo log files);
  –   回滚日志文件(undo log files);
Creating a database
            - Database files
• 创建一个oracle数据库具体包含以下步骤:
 – 创建一个参数文件, 并使用该参数文件启动数据库
   实例;
 – 执行create database命令, 该命令会生成空间文件,
   重做日志文件, SYSTEM/SYSAUX表空间数据文件等,
   此阶段会创建数据字典对象;
 – 运行SQL脚本生成数据字典视图和相关的PL/SQL包,
   脚本文件位于ORACLE_HOME/rdbms/admin目录下;
 – 运行SQL脚本生成其他的数据库对象供相关的应用
   使用, 比如Oracle Enterprise Database Control等;
 可以使用两种方式来执行上面的步骤, 一是使dbca工
 具(Database Configuration Assistant), 另一种方式是手
 动执行; 在使用dbca创建数据库之前, 先使用netca
 (Network Configuration Assistant)配置oracle监听器.
Creating a database
          - Database Listener
• Oracle监听器用于监听连接数据库服务的请
  求, 使用Network Configuration Assistant配置
  监听器. 以oracle用户登录后运行netca命令,
  如下:
Creating a database
      - Database Listener
• 设置监听器命令, 协议以及端口等信息, 如下:
Creating a database
             - DBCA
• 以oracle用户登录, 运行dbca命令, 如下:
Creating a database
           - DBCA
• 选择数据库类型为事务处理类型, SID设置为
  安装数据库时指定的ocpdemo, 如下:
Creating a database
           - DBCA
• 配置企业管理器和管理员用户的密码, 这里
  统一设置密码为manager:
Creating a database
              - DBCA
• 配置存储, 这里选择文件系统作为存储类型, 使用默认的路
  径存放数据库文件; 禁用flash recovery, 如下:
Creating a database
            - DBCA
• 对内存, 数据块大小, 进程数, 字符集, 连接模
  式等进行配置,字符集设置为utf-8其它均选
  择默认. 如下:
Creating a database
             - DBCA
• 查看数据库相关文件的位置, 比如表空间文
  件, redo/undo文件等; 确认创建, 如下:
Register Oracle Listener as
                                    System Service
       • 添加一个系统服务启动和关闭oracle数据库监听器, 首先在/etc/init.d目
         录下创建脚本文件oralsnr, 如下:
                                                           ;;
# Startup for Oracle listener                                   'stop')
#                                                                  if [ -f $ORACLE_HOME/bin/lsnrctl ] ; then
# chkconfig: 2345 20 80                                                echo "Shutting down Oracle listener."
# description: Startup for Oracle listener                             su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/lsnrctl stop >/dev/null 2>&1"
                                                           &
ORACLE_HOME=/opt/oracle/product/11.2.0/dbhome_1                      fi
ORACLE_OWNER=oracle                                             ;;
                                                                *)
case "$1" in                                                 echo "Usage: /etc/init.d/oralsnr { start | stop }"
  'start')                                                ;;
     if [ -f $ORACLE_HOME/bin/lsnrctl ] ; then         esac
         echo "Starting Oracle listener."              exit 0
         su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/lsnrctl start >/dev/null 2>&1" &
     fi


       • 需要注意:
         1, 红色部分两行是必须的否则chkconfig不支持;
         2, 使用Unix换行符;
         3, 文件必须有可执行权限.
         接下来使用chkconfig --add oralsnr命令添加该系统服务.
Startup and Connect
• 使用oracle系统账户登录后以sysdba身份登
  录数据库, 运行:
  sqlplus / as sysdba
  然后运行startup就可以启动数据库服务器了.
• 通常而言会使用plsql developer作为客户端
  连接oracle, 配置tns名称如下:
  OCPDEMO=
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.56.200)(PORT=1521))
(CONNECT_DATA=(SID=ocpdemo)))

2, OCP - installing and creating a database

  • 1.
  • 2.
    Overview • 本章讲述如何安装oracle数据库软件和创建 一个数据库. 在安装oracle时, 默认会选择安 装一个数据库, 这里为了演示选择仅安装数 据库软件, 在之后将会演示如何创建一个数 据库; • 章节使用的操作系统是oel5.5x64, 数据库版 本是11gR2, 所有的操作均在virtualbox虚拟 机完成. 如何使用virtualbox? 参考linux基础 之《2, Installation》
  • 3.
    Pre-requirement • 安装oracle数据库之前需要安装如下包(root): binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel 这些包都可以在系统安装介质中找到, 可以使 用安装介质建立一个本地yum源进行安装.
  • 4.
    Users & Groups •安装oracle数据库需要创建相应的系统用户和 组, 这里创建了oracle用户和oinstall/dba组, 如 下(root): groupadd oinstall groupadd dba useradd -g oinstall -G dba oracle • 将/opt/oracle设置为数据库的安装目录, oracle 用户对该目录需要有可写权限, 如下(root): mkdir /opt/oracle chown -R oracle:oinstall /opt/oracle
  • 5.
    Configure oracle user •在安装数据库之前, 需要配置ORACLE_BASE, ORACLE_HOME等环境变量, 这些变量配置在 oracle用户的初始化文件~/.bash_profile中, 如下 (oracle): ORACLE_BASE=/opt/oracle; export ORACLE_BASE ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1; export ORACLE_HOME ORACLE_SID=ocpdemo; export ORACLE_SID PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH; export PATH LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH 配置完成之后重新登录oracle用户.
  • 6.
    Installation • 进入安装介质解压后的目录, 首先切换到root用户,执行: xhost local:oracle 切换为oracle用户, 执行: ./runInstaller 就可以看到GUI安装界面 了, 如右. 这里选择不设置 email地址.
  • 7.
  • 8.
  • 9.
    Installation • 安装位置. 这里会读取刚才配置的 ORACLE_BASE和ORACLE_HOME环境变量的 值, 如下:
  • 10.
    Installation • 设置oracle inventory目录,该目录用于存储 oracle产品的安装文件; 切换为root用户, 执 行如下命令: mkdir /opt/oraInventory chown oracle:oinstall /opt/oraInventory/
  • 11.
    Installation • 指定操作系统数据库管理员(dba)用户组 和 数据库操作员用户组; 如果系统用户属于系 统管理员组则可以用sysdba的身份登录:
  • 12.
    Installation • 内核参数, 系统oracle用户资源限制设置. • 内核参数设置, 切换到root用户, 修改/etc/sysctl.conf, 添加: kernel.sem = 250 32000 100 128 fs.file-max = 6815744 fs.aio-max-nr = 1048576 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 然后运行如下命令, 使修改生效: sysctl -p • oracle用户资源限制 修改/etc/security/limits.conf文件添加: oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536
  • 13.
  • 14.
    Installation • 安装过程中提示需要使用root用户执行指定 的shell脚本, 如下: 切换到root用户执行: sh /opt/oraInventory/orainstRoot.sh sh /opt/oracle/product/11.2.0/dbhome_1/root.sh
  • 15.
    Creating a database - Overview • 创建数据库服务器(database server)分为三个步骤: 1, 创建数据库实例(instance), 这一步骤在之前已经完成; 2, 创建数据库文件包括参数文件, 控制文件, 密码文件, 相关 的表空间文件等; 3, 创建数据字典对象(data dictionary objects); 4, 创建数据库字典视图(data dictionary views); • 需要准确区分oracle实例和数据库的概念, 实例指的是内存 和一系列的系统进程, 数据库指的是相关的数据库文件; 创 建oracle数据库的过程本质上是创建相关的数据库文件, 包 括: – 数据库参数文件和(可选)密码文件; – 控制文件(control files); – 表空间数据文件, SYSTEM/SYSAUX表空间; – 重做日志文件(redo log files); – 回滚日志文件(undo log files);
  • 16.
    Creating a database - Database files • 创建一个oracle数据库具体包含以下步骤: – 创建一个参数文件, 并使用该参数文件启动数据库 实例; – 执行create database命令, 该命令会生成空间文件, 重做日志文件, SYSTEM/SYSAUX表空间数据文件等, 此阶段会创建数据字典对象; – 运行SQL脚本生成数据字典视图和相关的PL/SQL包, 脚本文件位于ORACLE_HOME/rdbms/admin目录下; – 运行SQL脚本生成其他的数据库对象供相关的应用 使用, 比如Oracle Enterprise Database Control等; 可以使用两种方式来执行上面的步骤, 一是使dbca工 具(Database Configuration Assistant), 另一种方式是手 动执行; 在使用dbca创建数据库之前, 先使用netca (Network Configuration Assistant)配置oracle监听器.
  • 17.
    Creating a database - Database Listener • Oracle监听器用于监听连接数据库服务的请 求, 使用Network Configuration Assistant配置 监听器. 以oracle用户登录后运行netca命令, 如下:
  • 18.
    Creating a database - Database Listener • 设置监听器命令, 协议以及端口等信息, 如下:
  • 19.
    Creating a database - DBCA • 以oracle用户登录, 运行dbca命令, 如下:
  • 20.
    Creating a database - DBCA • 选择数据库类型为事务处理类型, SID设置为 安装数据库时指定的ocpdemo, 如下:
  • 21.
    Creating a database - DBCA • 配置企业管理器和管理员用户的密码, 这里 统一设置密码为manager:
  • 22.
    Creating a database - DBCA • 配置存储, 这里选择文件系统作为存储类型, 使用默认的路 径存放数据库文件; 禁用flash recovery, 如下:
  • 23.
    Creating a database - DBCA • 对内存, 数据块大小, 进程数, 字符集, 连接模 式等进行配置,字符集设置为utf-8其它均选 择默认. 如下:
  • 24.
    Creating a database - DBCA • 查看数据库相关文件的位置, 比如表空间文 件, redo/undo文件等; 确认创建, 如下:
  • 25.
    Register Oracle Listeneras System Service • 添加一个系统服务启动和关闭oracle数据库监听器, 首先在/etc/init.d目 录下创建脚本文件oralsnr, 如下: ;; # Startup for Oracle listener 'stop') # if [ -f $ORACLE_HOME/bin/lsnrctl ] ; then # chkconfig: 2345 20 80 echo "Shutting down Oracle listener." # description: Startup for Oracle listener su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/lsnrctl stop >/dev/null 2>&1" & ORACLE_HOME=/opt/oracle/product/11.2.0/dbhome_1 fi ORACLE_OWNER=oracle ;; *) case "$1" in echo "Usage: /etc/init.d/oralsnr { start | stop }" 'start') ;; if [ -f $ORACLE_HOME/bin/lsnrctl ] ; then esac echo "Starting Oracle listener." exit 0 su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/lsnrctl start >/dev/null 2>&1" & fi • 需要注意: 1, 红色部分两行是必须的否则chkconfig不支持; 2, 使用Unix换行符; 3, 文件必须有可执行权限. 接下来使用chkconfig --add oralsnr命令添加该系统服务.
  • 26.
    Startup and Connect •使用oracle系统账户登录后以sysdba身份登 录数据库, 运行: sqlplus / as sysdba 然后运行startup就可以启动数据库服务器了. • 通常而言会使用plsql developer作为客户端 连接oracle, 配置tns名称如下: OCPDEMO= (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.56.200)(PORT=1521)) (CONNECT_DATA=(SID=ocpdemo)))