首页 > 代码库 > centos 6 oracle 11G DB install

centos 6 oracle 11G DB install


因业务迁移,需重新部署oracle DB,此文仅作部署记录,部署文档主要参考官方文档http://docs.oracle.com/cd/E11882_01/install.112/e47689/toc.htm


概要:

    主机:OpenStack 云主机

    系统:Completing a Minimal Linux centos 6.8 x86_64

    DB:Oracle Database 11g Release 2(11.2)

    内存:2Gb

    硬盘:/dev/vda 20Gb

                /dev/vdb 30Gb

    swap:0


一 系统要求:

Oracle DB是使用图形界面进行安装的,这也就要求,系统必须支持图形界面。

注:此处做下说明,图形界面安装并不是必须的。ORACLE 同样支持命令行安装,只是貌似不能自定义安装

对于Minimal安装的Linux 默认是没有图形界面的,使用如下命令安装X Window System

#yum groupinstall -y "Desktop" "X Window System"

    其次要能远程连接到系统,这就需要openssh-server。如下命令确认,没有就安装

#rpm -qa | grep ssh
#yum install openssh-server

    确认系统防火墙允许ssh端口通过

    使用如下命令,可远程调用图形界面

#ssh -X name@example.com


二 硬件要求:

    系统必须满足以下最低硬件要求

1. 内存:

       最低: 1 GB of RAM

        推荐: 2 GB of RAM or more

通过如下命令确认内存大小

#grep MemTotal /proc/meminfo

注:下表说明了RAM和swap space 之间的关系

RAMSwap Space
1 GB < RAM < 2 GB1.5 倍RAM大小
2 GB < RAM < 16 GB等于 RAM 实际大小
RAM >16 GB16 GB

 通过如下命令确认Swap空间

#grep SwapTotal /proc/meminfo

查看可用内存和Swap

#free


自动内存管理:

Oracle 11G开始,自动内存管理特性需要更多的共享内存(/dev/shm)和文件描述符。共享内存的大小要大于每个实例的memory_max_target和memory_target的参数。如果参数设置为非零或一个不正确的大小,将导致oracle启动时报错ora-00845。

如下命令确认共享可用容量:

#df -h /dev/shm/

如遇ora-00845错误,增加/dev/shm挂载点大小。

例如:

#mount -t tmpfs shmfs -o size=7g /dev/shm

在/etc/fstab添加条目:

shmfs /dev/shm tmpfs size=7g 0

2. 系统架构:

确认系统可以运行oracle

uname -m

3. 磁盘空间:

/tmp:1Gb空闲空间

查看可用空间

df -h /tmp

注:如空闲空间不满足要求,可配置oracle用户的TMP 和TMPDIR 环境变量。

The following tables describe the disk space requirements for software files and data files for each installation type on Linux x86-64:

Installation TypeRequirement for Software Files (GB)
Enterprise Edition4.7
Standard Edition4.6


Installation TypeDisk Space for Data Files (GB)
Enterprise Edition1.7
Standard Edition1.5

如下命令确认可用磁盘空间

#df -h


显示:

oracle 11G R2 需要不低于1024*768的分辨率


确认系统版本:

#cat /proc/version
或
#lsb_release

确认内核:

#uame -r
2.6.32-573.el6.x86_64

依赖包:

Oracle Linux 6, Red Hat Enterprise Linux 6, and Asianux Server 4The following packages (or later versions) must be installed:
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)
compat-libstdc++-33-3.2.3-69.el6.i686
gcc-4.4.4-13.el6 (x86_64)
gcc-c++-4.4.4-13.el6 (x86_64)
glibc-2.12-1.7.el6 (i686)
glibc-2.12-1.7.el6 (x86_64)
glibc-devel-2.12-1.7.el6 (x86_64)
glibc-devel-2.12-1.7.el6.i686
ksh
libgcc-4.4.4-13.el6 (i686)
libgcc-4.4.4-13.el6 (x86_64)
libstdc++-4.4.4-13.el6 (x86_64)
libstdc++-4.4.4-13.el6.i686
libstdc++-devel-4.4.4-13.el6 (x86_64)
libstdc++-devel-4.4.4-13.el6.i686
libaio-0.3.107-10.el6 (x86_64)
libaio-0.3.107-10.el6.i686
libaio-devel-0.3.107-10.el6 (x86_64)
libaio-devel-0.3.107-10.el6.i686
make-3.81-19.el6
sysstat-9.0.4-11.el6 (x86_64)

如下命令确认是否安装依赖包:

#rpm -q package_name


三 准备:

创建swap分区:

因私有云主机系统默认未分配swap,需手工建立swap

1.创建2G大小的swap分区

#dd if=/dev/zero of=/mnt/swap bs=1M count=2048

2.设置swap分区文件

#mkswap /mnt/swap

3.启用swap分区

#swapon /mnt/swap

4.设置开机挂载swap分区

#echo "/mnt/swap swap swap defaults 0 0" >> /etc/fstab



安装依赖包

sudo yum install binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33.i686 gcc gcc-c++ glibc glibc-devel glibc-devel.i686 ksh libgcc \ 
libstdc++ libstdc++.i686 libstdc++-devel libstdc++-devel.i686 libaio libaio.i686 libaio-devel libaio-devel.i686 make sysstat unixODBC.i686 unixODBC-devel


调整内核参数

以下kernel 值是满足oracle运行的最小值,如在生产系统,建议调整这些值优化系统。关于内核参数信息,请查看操作系统文件

1.编辑/etc/sysctl.conf 文件,修改以下参数值

fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 4294967295
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

2.更新kernel 当前值

#/sbin/sysctl -p

3.确认kernel 值更新

#/sbin/sysctl -a

4.更新kernel 参数值后,重启系统或运行命令,让/etc/sysctl.conf 的修改立即生效

集群共享磁盘验证 cvuqdisk包,这里使用本地目录做为数据目录,对cvuqdisk不做说明


主机名解析:

1.查看主机名

#cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=dev-oracle.novalocal
NOZEROCONF=yes

2.编辑/etc/hosts 文件,增加如下一行

127.0.0.1 dev-oracle.novalocal

3.确认主机名解析成功

#ping -c 3 dev-oracle.novalocal
PING dev-oracle.novalocal (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.109 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.109 ms
64 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.054 ms


关闭transparent_hugepage

linux 6 transparent_hugepage是默认启用的。内存动态分配的问题,可能导致内存分配延迟。因此oracle建议禁用transparent_hugepage,避免性能问题。

Red Hat Linux kernels:

#cat /sys/kernel/mm/redhat_transparent_hugepage/enabled

Other kernels

#cat /sys/kernel/mm/transparent_hugepage/enabled

如下的输出,代表启用

[always] madvise never

禁用transparent_hugepage

在kernel 引导文件/etc/grub.conf 添加一下条目

transparent_hugepage=never

如:

title CentOS (2.6.32-642.4.2.el6.x86_64)
    root (hd0,0)
    kernel /boot/vmlinuz-2.6.32-642.4.2.el6.x86_64 ro     root=UUID=4b816de7-ec12-431c-a571-5f3d828bf0e1 rd_NO_LUKS rd_NO_LVM     LANG=en_US.UTF-8 rd_NO_MD console=ttyS0,115200 SYSFONT=latarcyrheb-sun16     crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet     transparent_hugepage=never
    initrd /boot/initramfs-2.6.32-642.4.2.el6.x86_64.img

重启系统生效


创建系统用户和组

角色权限分离:

Oracle建议创建一个拥有软件安装权限的所有者。

创建单独的用户和独立的操作提同权限的组

dba

    第一次在系统上安装Oracle 数据库,必须创建此组。此组辨别操作系统用户有管理数据库的权限(sysdba privilege)

oper

    这是一个可选组。如果想创建一个有限的数据库管理权限,创建此组。

创建角色分离的组和用户:

创建oinstall组

#groupadd oinstall

创建dba组

#groupadd -g 502 dba

创建per组

groupadd -g 503 oper


创建软件所有者用户

1. 创建一个Oracle用户

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

2. 设置用户密码

#passwd oracle


检查安装用户的资源限制:

参考以下推荐范围值

Resource Shell LimitResourceSoft LimitHard Limit

Open file descriptors

nofile

at least 1024

at least 65536

Number of processes available to a single user

nproc

at least 2047

at least 16384

Size of the stack segment of the process

stack

at least 10240 KB

at least 10240 KB, and at most 32768 KB


1.使用安装用户登录

2.检查文件描述符、软硬限制。确保结果在推荐范围内

$ ulimit -Sn
1024
$ ulimit -Hn
65536

3.检查用户进程数限制。确保结果在推荐范围内

$ ulimit -Su
2047
$ ulimit -Hu
16384

4.检查堆栈设置。确保在推荐范围内

$ ulimit -Ss
10240
$ ulimit -Hs
32768

编辑 /etc/security/limits.conf 在文件尾增加如下参数,可调限制

*         soft    nofile        65535
*        hard    nofile        65535
oracle        soft    nproc        2047
oracle        hard    nproc        16384
oracle        soft    stack        10240


创建目录

使用root用户登录

创建Oracle 根目录

这里是用户目录,根据用户名设定的,如果你的用户名为ora,那就将oracle替换成ora

#mkdir -p /data/app/oracle
#chown -R oracle:oinstall /data/app/oracle
#chmod -R 775 /data/app/oracle


创建数据库文件目录(用于自动存储)

#mkdir /data/oradata
#chown oracle:oinstall /data/oradata
#chmod 775 /data/oradata

创建恢复文件目录(快速恢复,用于自动存储)

#mkdir /data/fast_recovery_area
#chown oracle:oinstall /data/fast_recovery_area
#chmod 775 /data/fast_recovery_area


设置语言

$export LANG=en_US.UTF-8

使用英文语言安装,以防出现乱码问题

或下载中文字库zysong.ttf  放到/usr/share/fonts/zh_CN/TrueType 目录下,即可使用中文语言安装

$export LANG=zh_CN.UTF-8


设置用户环境

此环境变量可在数据库安装完成并建立数据库实例后设置


ORACLE_BASE:为数据库用户根目录

ORACLE_HOME:为实际数据库软件安装目录

ORACLE_SID:为实际数据库实例名称


$vim ~/.bash_profile
PATH=$PATH:$HOME/bin

export PATH
umask 022
export ORACLE_BASE=/data/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_SID=orcl


四 安装oracle

通过使用ssh -X  开启远程窗口调用支持以oracle用户连接服务器

执行数据库安装脚本

$./runInstaller
Starting Oracle Universal Installer...

Checking Temp space: must be greater than 120 MB.   Actual 10608 MB    Passed
Checking swap space: must be greater than 150 MB.   Actual 2047 MB    Passed
Checking monitor: must be configured to display at least 256 colors.    Actual 16777216    Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2016-09-12_08-22-04PM. 
Please wait ...

客户端会弹出图形安装界面,按照图形界面提示,一步步安装。

注意,安装方式有两种选择

一种是安装并配置数据库,另一种是仅安装数据库。本案例选择默认安装并配置数据库

两种安装方式没有太大区别,图形界面均有说明

选择仅安装数据库,安装后可执行 `dbca` 命令调用图形界面创建数据库,`netca`命令调用图形界面创建监听,具体可参见此链接后半部分http://dengqsintyt.iteye.com/blog/1991930/


取消勾选,下一步 没有购买oracle支持,就全部为空

技术分享

yes 继续

技术分享


默认 创建并配置数据库

技术分享


选择服务器类

技术分享


单实例模式

技术分享


高级安装模式

技术分享


默认语言

技术分享


默认选择企业版

技术分享


Oracle Base: 选择oracle 根目录

Software Location:选择软件安装目录

技术分享


默认为 通用/事物处理

技术分享


数据库名及服务名。配置用户环境时的ORACLE_SID 要与此相同

技术分享


开启自动内存管理

技术分享


设置编码为UTF8

技术分享



启用Oracle 企业管理控制台OEM

技术分享


选择数据库文件目录,选择之前建立的数据库文件目录/data/oradata

技术分享


自动备份设置,生产环境建议开启,选择之前建立的快速恢复目录/data/fast_recovery_area

技术分享


设置数据库用户和密码,可为每个用户设置独立的密码,也可选择下面的Use the same password for all accounts 使用统一的密码

技术分享


选择授权组,一般默认即可,如果之前创建了oper组,则OSOPER 应该选择oper组

技术分享


检查安装要求,确认相关包已安装,可选择“Ignore All“直接忽略,否则不能继续。这里显示缺少包是因为版本的问题

技术分享


安装结束后,会弹出如下窗口,点击红色圈可重新设置用户密码

技术分享

技术分享


最后会弹出如下窗口,使用root 用户执行两个脚本

技术分享


# /bin/sh /data/app/oraInventory/orainstRoot.sh
Changing permissions of /data/app/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.
Changing groupname of /data/app/oraInventory to oinstall.
The execution of the script is complete.
# /bin/sh /data/app/oracle/product/11.2.0/dbhome_2/root.sh
Running Oracle 11g root.sh script...
The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /data/app/oracle/product/11.2.0/dbhome_2
Enter the full pathname of the local bin directory: [/usr/local/bin]: 
   Copying dbhome to /usr/local/bin ...
   Copying oraenv to /usr/local/bin ...
   Copying coraenv to /usr/local/bin ...
Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.
Finished product-specific root actions.

安装到此全部结束


如何将oracle加入系统服务,可参考之前一篇文档http://morrowind.blog.51cto.com/1181631/1696145


本文出自 “morrowind” 博客,请务必保留此出处http://morrowind.blog.51cto.com/1181631/1852768

centos 6 oracle 11G DB install