Linux安装Oracle12c操作手册

2020-07-08 00:00:00 数据库 命令 服务 安装 监听

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、修改内核参数

(参考:cnblogs.com/dkblog/arch

修改前后先备份一下/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;


查看日志位置:show parameter background_dump;

12、参考资料

1)LINUX7(CentOS7)上安装Oracle 12C

blog.csdn.net/huangyanl


2)linux 内存管理——内核的shmall 和shmmax 参数

cnblogs.com/dkblog/arch


3)解决windows7无法连接CentOS7系统中oracle问题:ORA-12514 TNS 监听程序当前无法识别连接描述符中请求的服务

cnblogs.com/nichoc/p/64

相关文章