1、基本环境
服务器:64位、16核CPU、384G内存、16T硬盘
操作系统:CentOS 7.4
Oracle版本:12c (版本号12.1.0.2.0)
2、安装必要的软件包
查看rpm包是否安装:rpm -qa | grep 名称
rpm -ivh compat-libcap1-1.10-7.el7.x86_64.rpm
rpm -ivh compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm
rpm -ivh libmpc-1.0.1-3.el7.x86_64.rpm
rpm -ivh cpp-4.8.5-16.el7.x86_64.rpm
rpm -ivh gcc-4.8.5-16.el7.x86_64.rpm
rpm -ivh libstdc++-devel-4.8.5-16.el7.x86_64.rpm
rpm -ivh gcc-c++-4.8.5-16.el7.x86_64.rpm
rpm -ivh ksh-20120801-34.el7.x86_64.rpm
rpm -ivh libaio-devel-0.3.109-13.el7.x86_64.rpm
3、创建oracle用户
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
passwd oracle (注意需要输入两遍密码)
4、创建oracle和oradata目录
1)创建安装目录
mkdir -p /u01/app/oracle
chown -R oracle:dba /u01/
chmod -R 775 /u01/
mkdir -p /u01/app/oraInventory
chown -R oracle:oinstall /u01/app/oraInventory
chmod -R 775 /u01/app/oraInventory
2)创建表空间目录和权限
mkdir -p /data/oradata/
chown -R oracle:dba /data/oradata/
chmod -R 775 /data/oradata/
chown -R oracle:dba /home/oracle/
chmod -R 775 /home/oracle/
5、关闭selinux防火墙
输入命令:
setenforce 0
getenforce
setenforce是Linux的selinux防火墙配置命令,执行setenforce 0 表示关闭selinux防火墙。
setenforce命令是单词set(设置)和enforce(执行)连写,另一个命令getenforce可查看selinux的状态。
getenforce可能返回结果有三种:Enforcing、Permissive 和 Disabled。Disabled 代表 SELinux 被禁用,Permissive 代表仅记录安全警告但不阻止可疑行为,Enforcing 代表记录警告且阻止可疑行为。
setenforce [ Enforcing | Permissive | 1 | 0 ]
该命令可以立刻改变 SELinux 运行状态,在 Enforcing 和 Permissive 之间切换,结果保持至关机。一个典型的用途是看看到底是不是 SELinux 导致某个服务或者程序无法运行。若是在 setenforce 0 之后服务或者程序依然无法运行,那么就可以肯定不是 SELinux 导致的。
若是想要永久变更系统 SELinux 运行环境,可以通过更改配置文件 /etc/sysconfig/selinux 实现。注意当从 Disabled 切换到 Permissive 或者 Enforcing 模式后需要重启计算机并为整个文件系统重新创建安全标签(touch /.autorelabel && reboot)。
vi /etc/selinux/config
需要注释掉SELINUX=enforcing和SELINUXTYPE=targeted;并添加SELINUX=disabled。
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
# SELINUX=enforcing
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
# targeted - Targeted processes are protected,
# mls - Multi Level Security protection.
# SELINUXTYPE=targeted
6、修改内核参数
(参考:http://www.cnblogs.com/dkblog/archive/2011/09/06/2168721.html)
修改前最后先备份一下/etc/sysctl.conf,以防万一。
备份文件:cp /etc/sysctl.conf /etc/sysctl.conf.bak
vi /etc/sysctl.conf
在文件末尾添加:
kernel.shmmax = 408021893120
kernel.shmall = 99614720
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 = 16777216
net.core.wmem_default = 262144
net.core.wmem_max = 16777216
fs.aio-max-nr = 1048576
fs.file-max = 6815744
备注:上述红色数字是以380G内存计算而来。
如果以252G内存计算,那么
kernel.shmmax = 270582939648
kernel.shmall = 66060288
如果以7.5G内存计算,那么
kernel.shmmax = 8053063680
kernel.shmall = 1966080
使配置的内核参数生效,使用sysctl -p命令
sysctl -p
7、修改oracle用户限制
vi /etc/security/limits.conf
在文件末尾添加:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 2047
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
8、修改/etc/pam.d/login
vi /etc/pam.d/login
在文件末尾添加:
session required pam_limits.so
session required /lib64/security/pam_limits.so
9、更改安装所有者的ulimit设置
(Linux下增大可打开文件描述符的最大数)
vi /etc/profile
在文件末尾添加:
if [ /$USER = "oracle" ]; then
if [ /$SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
10、设置oracle用户环境变量,SID与数据库服务名称一致
(切换到oracle用户)
su oracle
cd ~
vi .bash_profile
在文件末尾添加:
export TMP=/tmp
export TMPDIR=/tmp
export ORACLE_UNQNAME=orcl
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/12.1.0/dbhome_1
export ORACLE_SID=orcl
export PATH=${PATH}:$HOME/bin:$ORACLE_HOME/bin:/usr/sbin:/usr/bin:/usr/local/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
使用source命令是环境变量生效:
source .bash_profile
11、安装Oracle12c数据库
11.1、通过Xshell、Xmanager远程进入Oracle数据库安装界面
1)安装Xshell和Xmanager软件
2)设置Xshell
3)输入命令: echo $DISPLAY #查看当前连接的显示器
DISPLAY环境变量格式如下host:NumA.NumB, host指Xserver所在的主机主机名或者ip地址, 图形将显示在这一机器上, 可以是启动了图形界面的Linux/Unix机器, 也可以是安装了Exceed, X-Deep/32等Windows平台运行的Xserver的Windows机器. 如果Host为空, 则表示Xserver运行于本机, 并且图形程序(Xclient)使用unix socket方式连接到Xserver, 而不是TCP方式. 使用TCP方式连接时, NumA为连接的端口减去6000的值, 如果NumA为0, 则表示连接到6000端口; 使用unix socket方式连接时则表示连接的unix socket的路径, 如果为0, 则表示连接到/tmp/.X11-unix/X0 . NumB则几乎总是0.
如果不修改此设置则无法显示图形界面。
输入命令: export DISPLAY=xx.xx.xx.xx:0.0
其中xx.xx.xx.xx是运行xshell客户端的ip地址,0.0标识客户端的第1个显示器。
4)输入命令: export LANG=en_US
此选项是设置当前使用的语言,否则oracle的安装界面会出现乱码。
5)打开本机的软件:Xmanager – Passive
6)通过Xshell、Xmanager远程进入Oracle数据库安装界面
创建文件夹:mkdir -p /data/software/
将Oracle数据库安装包,通过Xftp软件拷贝至/data/software/文件夹下,并通过unzip命令解压安装包。
cd /data/software/
chown -R oracle:dba /data/software/
chmod -R 775 /data/software/
unzip linuxamd64_12102_database_1of2.zip ; unzip linuxamd64_12102_database_2of2.zip
/data/software/database/runInstaller
连续选择“是(Y)”
远程进入Oracle数据库安装界面,如下:
11.2、安装Oracle数据库
图中重叠部分如下图所示:
用Xshell重新开一个窗口,切换到root管理员帐号,并运行手机号码买卖平台地图图片上的命令。
/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/12.1.0/dbhome_1/root.sh
运行命令之后,点击图片上的OK。
安装完毕!
11.3、重启Oracle监听服务
遇到问题:
使用plsql连接数据库服务器:“ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务”
解决办法:
1.修改vi /u01/app/oracle/product/12.1.0/dbhome_1/network/admin/listener.ora中的localhost改为192.168.78.130
2.修改vi /u01/app/oracle/product/12.1.0/dbhome_1/network/admin/tnsnames.ora中的localhost 改为192.168.78.130
3.修改后,重启oracle,监听,并注册,就可以远程连接数据库了。
具体操作步骤如下:
通过Xshell软件,用oracle用户登录linux。
lsnrctl stop #先关闭监听服务
lsnrctl start #开启监听服务
lsnrctl status #查看监听状态
sqlplus / as sysdba #登入数据库
shutdown immediate; #立即关闭数据库服务
startup; #开启数据库服务
alter system register; #注册
exit #退出数据库
其它命令:
启动数据库:startup mount;
打开数据库:alter database open;
上述两个命令等效等于startup;