一、实验环境
操作系统:centos7.2
数据库版本:Oracle 12C for x86 (64位)
二、安装前准备工作
1.系统支持
Oracle 12 c:支持以下Linux版本(都是64位系,没有32位):
2.系统架构
系统架构符合Oracle12C数据库软件要求:
Red Hat Enterprise Linux 7: 3.10.0-54.0.1.el7.x86_64 or later
# uname –a
3.10.0-327.el7.x86_64
3.内存要求
最小内存:1G
推荐内存:2G或更高
# grep MemTotal /proc/meminfo
MemTotal: 8061216 kB
4.交换分区要求
物理内存:1G~2G 交换分区:物理内存的1.5倍
物理内存:2G-16G 交换分区:与物理内容大小相等
物理内存:大于16G 交换分区:16G
# grep SwapTotal /proc/meminfo
5.磁盘要求
/tmp最少1G的空间
# df -h /tmp
Filesystem Size Used Avail Use% Mounted on
tmpfs 3.9G 0 3.9G 0% /dev/shm
安装Oracle软件需要的硬盘空间
6.软件包要求
不同版本的Linux对软件包的要求会有所不同,本例安装的是Centos 7.2的版本,故以此为例,其他版本请查阅官方文档:
binutils-2.23.52.0.1-12.el7.x86_64
compat-libcap1-1.10-3.el7.x86_64
gcc-4.8.2-3.el7.x86_64
gcc-c++-4.8.2-3.el7.x86_64
glibc-2.17-36.el7.i686
glibc-2.17-36.el7.x86_64
glibc-devel-2.17-36.el7.i686
glibc-devel-2.17-36.el7.x86_64
ksh
libaio-0.3.109-9.el7.i686
libaio-0.3.109-9.el7.x86_64
libaio-devel-0.3.109-9.el7.i686
libaio-devel-0.3.109-9.el7.x86_64
libgcc-4.8.2-3.el7.i686
libgcc-4.8.2-3.el7.x86_64
libstdc++-4.8.2-3.el7.i686
libstdc++-4.8.2-3.el7.x86_64
libstdc++-devel-4.8.2-3.el7.i686
libstdc++-devel-4.8.2-3.el7.x86_64
libXi-1.7.2-1.el7.i686
libXi-1.7.2-1.el7.x86_64
libXtst-1.2.2-1.el7.i686
libXtst-1.2.2-1.el7.x86_64
make-3.82-19.el7.x86_64
sysstat-10.1.5-1.el7.x86_64
unixODBC (非官方文档要求)
xhost(非官方文档要求)
xclock(非官方文档要求)
软件包的安装可以通过YUM源的方式进行安装
三、操作系统配置修改
1.创建用户和组
oracle需要创建以下几个组和用户:
# groupadd oinstall
# groupadd dba
# useradd -g oinstall -G dba oracle
# passwd oracle
Changing password for user oracle.
New password:
BAD PASSWORD: it is based on a dictionary word
Retype new password:
passwd: all authentication tokens updated successfully.
2.设置内核参数
1)参数资源范围
按照官网的提示,需要将系统的一些参数修改在合适的范围内:
Parameter | Minimum | File |
---|---|---|
semmsl | 250 | /proc/sys/kernel/sem |
semmns | 32000 | /proc/sys/kernel/sem |
semopm | 100 | /proc/sys/kernel/sem |
semmni | 128 | /proc/sys/kernel/sem |
shmall | 40 percent of the size of physical memory in pages Note: If the server supports multiple databases, or uses alarge SGA, then set this parameter to a value that is equal to the total amount of shared memory, in 4K pages, that the system canuse at one time | /proc/sys/kernel/shmall |
shmmax | Half the size of physical memory in bytes See My Oracle Support Note 567506.1 for additional information about configuring shmmax | /proc/sys/kernel/shmmax |
shmmni | 4096 | /proc/sys/kernel/shmmni |
panic_on_oops | 1 | /proc/sys/kernel/panic_on_oops |
file-max | 6815744 | /proc/sys/fs/file-max |
ip_local_port_range | Minimum: 9000 Maximum: 65500 See the “Setting UDP and TCP Kernel Parameters Manually” section in Oracle Database Installation Guide forLinux | /proc/sys/net/ipv4/ip_local_port_range |
rmem_default | 262144 | /proc/sys/net/core/rmem_default |
rmem_max | 4194304 | /proc/sys/net/core/rmem_max |
wmem_default | 262144 | /proc/sys/net/core/wmem_default |
wmem_max | 1048576 | /proc/sys/net/core/wmem_max |
aio-max-nr | 1048576 Note: This value limits concurrent outstanding requests and should be set to avoid I/O subsystem failures. | /proc/sys/fs/aio-max-nr |
如果系统的参数值高于表中所列的值,那么可以不需要修改此参数
2)检查系统设置
通过下表所示的方法来检查系统参数的设置是否符合参数要求范围
Parameter | Command |
---|---|
semmsl, semmns, semopm, and semmni | # /sbin/sysctl -a | grep sem (This command displays the value of the semaphore parameters in the order listed.) |
shmall, shmmax, and shmmni | # /sbin/sysctl -a | grep shm |
file-max | # /sbin/sysctl -a | grep file-max |
ip_local_port_range | # /sbin/sysctl -a | grep ip_local_port_range |
rmem_default | # /sbin/sysctl -a | grep rmem_default |
rmem_max | # /sbin/sysctl -a | grep rmem_max |
wmem_default | # /sbin/sysctl -a | grep wmem_default |
wmem_max | # /sbin/sysctl -a | grep wmem_max |
3)设置系统参数
如果系统不符合上述参数,修改/etc/sysctl.conf文件,以满足参数需要(以下为数据请根据自身系统实际情况设置,如果自身的值高于前表所列值,则无需修改)
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
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
让配置生效,可不重启系统:
# /sbin/sysctl –p
这些值的设定,如果此处不知该如何设置也没关系,后期在图形界面按照进行检查时,可根据检查的提示进行修改
3.设置oracle用户资源限制
1)资源范围
检查Oracle安装用户(oracle)资源限制,下表是资源范围:
Resource Shell Limit | Resource | Soft Limit | Hard 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 |
2)检查系统设置
检查Oracle安装用户的资源范围
Resource Shell Limit | Resource | Soft Limit (KB) | Hard Limit (KB) |
---|---|---|---|
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 | at least 10240, and at most 32768 |
Maximum Locked Memory Limit | memlock | at least 90 percent of the current RAM when HugePages memory is enabled and at least 3145728 KB (3GB) when HugePages is disabled | at least 90 percent of the current RAM when HugePages memory is enabled and at least 3145728 KB (3 GB) when HugePages is disabled |
$ ulimit -Sn
1024 //参数要求at least 1024
$ ulimit -Hn
4096 //参数要求at least 65536
$ ulimit -Su
10586 //参数要求 at least 2047
$ ulimit -Hu
15086 //参数要求 at least 16384
$ ulimit -Ss
8192 //参数要求at least 10240
$ ulimit -Hs
unlimited //参数要求at least 10240, and at most 32768
3)设置资源范围
如果经过检查,发现Oracle用户的资源限制不符合要求,则可以通过/etc/security/limits.conf进行修改此范围
#vim /etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
注意:
4.创建Oracle所需的目录
Oracle软件安装需要创建以下两类文件,并且授予此类文件正确的用户、用户组和相应的权限
1)创建Oracle软件的安装目录
# mkdir -p /mount_point/app/
# chown -R oracle:oinstall /mount_point/app/
# chmod -R 775 /mount_point/app/
在本此实验中,创建的目录和授予相应的权限方式如下
# mkdir -p /u01/app
# chown -R oracle:oinstall /u01/app/
# chmod -R 775 /u01/app
2)创建Oracle的数据文件目录
一般生产环境中,会单独挂载一个磁盘充当数据文件夹,本例中/data为一个单独的挂载磁盘。
#mkdir -p /data/u02/oradata
#chown -R oracle:oinstall /data
#chmod -R 775 /data/u02/oradata
5.配置用户环境变量
设置Oracle安装用户oracle的的环境变量:
一般情况都会使用Bash shell的环境,故需修改 .bash_profile配置文件(也可以先不设置环境变量,在具体进行图形安装的时候根据安装路径进行实际设置)
$vi .bash_profile
export DISPLAY=192.168.0.88:0.0 #操作端(本机)的地址
export ORACLE_BASE=/u01/app/oracle
export ORACLE_SID=test
export ORACLE_HOME=$ORACLE_BASE/product/11.2/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export ORACLE_BASE ORACLE_HOME PATH LD_LIBRARY_PATH ORACLE_SID
修改完配置文件,需重新用oracle账户登录以使参数生效,或者直接用下述命令来生效
$source .bash_profile
$set #检查环境变量是否生效
6.其他配置
1)本地计算机打开Xmanager软件
在服务器端,设置了在192.168.0.88主机进行图形显示
export DISPLAY=192.168.0.88:0.0
故需在此IP主机打开“Xmanager – Passive”软件。
2)关闭防火墙
#iptable –F
为了不影响测试,暂时关闭系统的防火墙
3)关闭SElinux
在不重启系统的情况下,可通过如下命令将SELinux改为警告模式
#setenforce 0 #转换成警告模式—permissive
7.启动数据库安装界面
将数据库安装文件拷贝到/tmp,解压缩,生产database文件夹:
$ unzip p21419221_121020_Linux-x86-64_1of10.zip
$ unzip p21419221_121020_Linux-x86-64_2of10.zip
$ ls
database solaris.x64_11gR2_database_1of2.zip
hsperfdata_noaccess solaris.x64_11gR2_database_2of2.zip
hsperfdata_root
进入database目录,运行安装程序
$ cd database/
$ ./runInstaller
Starting Oracle Universal Installer...
Checking Temp space: must be greater than 180 MB. Actual 10060 MB Passed
Checking swap space: must be greater than 150 MB. Actual 15299 MB Passed
Checking monitor: must be configured to display at least 256 colors. Actual 16777216 Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2015-03-27_11-32-09AM. Please wait ...
此时会在打开“Xmanager – Passive”软件的主机上弹出安装界面:
四、数据库安装
配置安全更新。电子邮件可写可不写,取消下面的“我希望通过My Oracle Support接受安全更新(W)”.
可以选择第二项,只装软件,随后在安装实例,本例选择了“安装和配置数据库”,则一起进行了安装。
选择服务器类
网格安装选项。选择“单实例数据库安装”
选择高级安装
选择产品语言:
选择数据库版本(企业版)
设置安装位置,此处即为系统配置中环境变量的设置,如果之前环境变量没有设置,可以到此图形界面后,再将路径粘贴在.bash_profile下设置环境变量。
产品清单目录,如果是第一次安装,需指定安装文件的目录,在前面已经设置了目录的权限:
所以这里默认直接安装即可
如果报下图的错,则是由于/u01/app权限问题,可进行权限修改。
选择创建数据库的类型,这里选择“一般用途/事务处理”
填写数据库名和SID名称,和之前环境变量设置的内容要相符合“Create as Container database”为12C的新特性,可以建立一个容器,利于进行数据库迁移,使数据库虚拟化
配置选项:
内存选择,本例选择为自动模式
切换到“字符集”选项卡,考虑到实际数据库的中文特性,所以选择“ZHS16CBK”,请根据自己数据库的实际情况进行选择,如下图所示
数据库存储,指定文件系统类型以及数据文件的位置,这里我选择之间建立的/data/u02/oradata路径
EM默认即可,如果有云平台,可进行勾选设置
备份和恢复,本实验选择不自动备份
为了便于测试,这里使用了相同的密码
选择数据库管理员组以及数据库操作者组,这里为了方便所有组都为dba,在实际生产中,会进行分开设置,以便控制权限
进行先决条件检查,如图所以有以下几个方面出现警告
根据提示,为部分参数值设置问题,按照所提示的要求进行修改即可:编辑:/etc/sysctl.conf
完成先决条件检查,如果所有设置都符合要求,则会弹出下图:
开始安装:
安装过程中会提示用root账号运行以下两个脚本:
按照提示进行运行即可
bash-3.2# cd /u01/app/oracle/product/11.2.0/dbhome_1/
bash-3.2# sh root.sh
Running Oracle 11g root.sh script...
The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /u01/app/oracle/product/11.2.0/dbhome_
Enter the full pathname of the local bin directory: [/usr/local/bin]:
Creating /usr/local/bin directory...
Copying dbhome to /usr/local/bin ...
Copying oraenv to /usr/local/bin ...
Copying coraenv to /usr/local/bin ...
Creating /var/opt/oracle/oratab file...
Entries will be added to the /var/opt/oracle/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.