基于Cent os7安装部署oracle 12c数据库

oracle数据库是一个相对庞大的应用软件,对服务器的系统类型,内存和交换分区、硬盘空间、内核参数、软件环境、用户环境等都有相应的要求。只有知足了必备的条件,才能确保oracle 12c安装成功,运行稳定。html

部署oracle 12c对系统的要求:linux

  • 防火墙须要放行相关流量,oracle默认端口号是5500;
  • SELinux必须关闭;
  • 内核选择3.10及以上版本;
  • 物理内存;必须高于1G,交换空间,当物理内存为1~2G 时,交换分区为物理内存的1.5\~2倍,当物理内存为2\~16G时,交换分区与物理内存大小同样就能够,当物理内存超过16G时,交换分区使用16GB就好了。
  • 至少须要20GB的磁盘空间,若是不单独给oracle建立分区,那么至少要保证根分区有15GB的可用磁盘空间

1、安装oracle 12c前准备

以上基本是硬件的要求,接下来开始为了能够部署oracle,还须要修改软件方面的参数。c++

先下载oracle的安装程序吧,我这里提供了一个oracle 12c的安装文件百度网盘连接,是oracle 12c的版本,也能够去oracle中文官方网站,它支持oracle安装文件的免费下载(须要注册帐号,最新的版本是oracle 19c),找到所需的版本下载使用便可,我这里就安装12c了。sql

安装oracle数据库前,要求规划好主机名和IP。服务器的主机名、IP地址也应提早肯定无误,一旦oracle数据库安装完成,建议不要再修改主机名,不然会致使数据库启动失败。通常须要执行如下操做:数据库

[root@localhost ~]# hostnamectl set-hostname oracle       #修改主机名,并写入配置文件
[root@localhost ~]# bash          #使主机名生效
[root@oracle ~]# echo "192.168.1.1 oracle" >> /etc/hosts    #将本机主机名及IP对应写入/etc/hosts文件,以便解析
#也能够经过DNS来解析,这里为了省事
[root@oracle ~]# tail -1 /etc/hosts     #确认已添加
192.168.1.1 oracle

oracle 12c的安装过程是在图形界面中进行,所以建议使用带有GNOME中文桌面环境的centos服务器,软件开发工具固然也是必不可少的,可使用yum安装系统盘中的必要的软件环境,具体以下:express

[root@oracle ~]# mount /dev/cdrom /media         #挂载系统盘
#如下是配置本地yum源
[root@oracle yum.repos.d]# cd /etc/yum.repos.d/
[root@oracle yum.repos.d]# mkdir /yum.repo.bak
[root@oracle yum.repos.d]# mv * /yum.repo.bak/
[root@oracle yum.repos.d]# vim system.repo           #写入如下内容

[oracle]
baseurl=file:///media
gpgcheck=0
[root@oracle yum.repos.d]# yum clean all            #清除yum缓存
[root@oracle yum.repos.d]# cd
#如下是安装一些开发工具
[root@oracle ~]# yum  -y  install  binutils compat-libcap1 compat-libstdc++-33  gcc gcc-c++  glibc  glibc-devel ksh  libaio  libaio-devel       libgcc  libstdc++  libstdc++-devel libXi  libXtst  make  sysstat       unixODBC  unixODBC-devel
[root@oracle ~]# vim /etc/sysctl.conf  #调整内核参数,主要是内存调度、端口范围、打开文件数、I/O请求等相关设置
                ..........................#省略部份内容
#在文件末尾写入如下参数
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
[root@oracle ~]# sysctl -p          #从新加载配置文件,确保输出的信息没有报错
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
[root@oracle ~]# groupadd -g 54321 oinstall          #建立安装组
[root@oracle ~]# groupadd -g 54322 dba          #建立管理组
[root@oracle ~]# useradd -u 54321 -g oinstall -G dba oracle      #建立运行用户
[root@oracle ~]# echo "123.comf" |  passwd --stdin oracle        #为该用户设置密码
[root@oracle ~]# mkdir -p /u01/app/oracle          #建立基本目录
[root@oracle ~]# chown -R oracle:oinstall /u01/app/     #更改属组
[root@oracle ~]# chmod -R 755 /u01/app/oracle/      #更改权限
[root@oracle ~]# vim /home/oracle/.bash_profile      #调整oracle用户的环境变量
             ........................#省略部份内容
#写入如下内容
umask  022
ORACLE_BASE=/u01/app/oracle         #定义基本目录
ORACLE_HOME=/u01/app/oracle/product/12.2.0/dbhome_1/    #定义安装家目录
ORACLE_SID=orcl    #定义数据库实例名称
NLS_LANG="SIMPLIFIED CHINESE_CHINA".UTF8     #肯定使用何种语言环境
PATH=$PATH:$ORACLE_HOME/bin
LANG=zh_CN.UTF-8
export PATH LANG NLS_LANG ORACLE_BASE ORACLE_HOME ORACLE_SID
export  DISPLAY=:0.0

oracle用户资源限制要求
进程会话限制能够采用pam_limits认证模块来实现,经过修改登陆程序login的PAM设置以启用该认证,而后修改/etc/security/limits.conf文件,使用户oracle可以打开的进程数、进程使用的文件数加大。以下:vim

[root@oracle ~]# vim /etc/pam.d/login           #修改PAM设置以便启用该认证
           ......................#省略部份内容
#在末尾写入如下两行:
session   required  /lib/security/pam_limits.so
session   required  pam_limits.so
[root@oracle ~]# 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软堆栈限制
[root@oracle ~]# vim /etc/profile      #添加以下内容到该文件末尾
           ......................#省略部份内容
#在文件末尾写入如下内容:
if  [  $USER  = "oracle" ];then
        if [ $SHELL = "/bin/ksh"  ];then
                ulimit  -p  16384
                ulimit   -n  65536
        else
                ulimit  -u  16384  -n  65536

        fi
fi

不配置oracle用户资源的限制,也不会影响到oracle数据库的成功安装,可是,如有糟糕的SQL语句对服务器的资源无限占用,致使长时间对用户请求无响应,则建议提早限制oracle用户资源。centos

准备工做至此就完成了,须要重启系统,重启以后,最好再次检查以前的配置是否生效。建议不要作临时配置。浏览器

2、安装oracle 12c过程

[root@oracle ~]# mkdir /tmp/abc         #建立目录,/tmp目录下,oracle用户才能够读取到
[root@oracle ~]# mount /dev/cdrom /media         #挂载我提供的oracle光盘镜像文件
[root@oracle ~]# ls /media/             #确认oracle文件存在
linuxx64_12201_database.zip
[root@oracle ~]# cd /tmp/abc          #切换至/tmp/abc/目录下
[root@oracle abc]# cp /media/linuxx64_12201_database.zip .  #将安装文件复制到当前目录下,文件有点大,请耐心等待
[root@oracle abc]# unzip linuxx64_12201_database.zip    #解压该安装文件

oracle 12c的安装主要经过runInstaller脚本进行,访问网页welcome.html能够查看产品手册,其中包括产品说明、发行注记、安装指南等文档,为咱们提供了极为丰富的帮助信息。缓存

全部前置条件准备好之后,就能够正式开始安装了,若是当前的图形桌面环境是以其余用户的身份(如root)登陆的,则还应添加受权以容许oracle使用图形终端。例如:“xhost + oracle@localhost”表示容许用户oracle从本机访问,执行“xhost +”表示取消全部限制。

以用户oracle的身份登陆到centos 的图形桌面环境,启动database目录下的runInstaller脚本文件,具体操做以下(若安装oracle 19c则须要将存放oracle 19c的目录下都更改属主为oracle,如解压出来的oracle安装文件都位于/tmp/abc目录下,那么须要执行命令:chown -R oracle /tmp/abc,以便更改它的属主,不然会报错,这里安装的oracle 12c就不会出现这个问题。):

[root@oracle ~]# xhost +          #必定要以root用户在图形环境中操做
[root@oracle ~]# su - oracle     #切换至oracle用户
[oracle@oracle ~]$ cd /tmp/abc/database/         #切换至刚才解压出来的oracle安装文件目录
[oracle@oracle database]$ ./runInstaller  #执行脚本进行安装,执行该脚本后,就会启动oracle图形化的安装程序

接下来的操做基本就是在图形化窗口上进行操做了,以下:

执行runInstaller脚本后打开的窗口以下:
一、
在这里插入图片描述
二、
在这里插入图片描述

三、
在这里插入图片描述
四、在这里插入图片描述

五、在这里插入图片描述
六、
在这里插入图片描述
七、
在这里插入图片描述

八、在这里插入图片描述

九、
在这里插入图片描述

十、
在这里插入图片描述

十一、
在这里插入图片描述

十二、
在这里插入图片描述

1三、
在这里插入图片描述
1四、在安装过程当中,会提示让使用root身份,执行下面的两个脚本,此时,切换一个工做区,使用root登陆,将脚本名复制过去执行如下,便可!以下:

在这里插入图片描述

1五、使用root身份执行上面图中提示的脚本:

[root@oracle ~]# /u01/app/oraInventory/orainstRoot.sh
[root@oracle ~]# /u01/app/oracle/product/12.2.0/dbhome_1/root.sh  
#执行第二个脚本时,会有两次交互界面,第一次直接按回车键便可;
#第二次是要安装oracle跟踪文件分析器,可直接回车,也可输入“yes”进行安装

1六、
在这里插入图片描述
1七、安装成功,关闭便可
在这里插入图片描述

安装完成后,能够经过https://oracle服务器IP:5500/em ,实现访问EM(Enterprise Manager,企业管理器)database Express 平台,以便对oracle 12c的数据库进行简单管理,但访问EM database express平台,须要flase的支持。我这里使用的Windows客户端直接访问的(安装了flase),若使用Linux自带的火狐浏览器,能够下载我提供的Linux中的flase player插件,是个rpm格式的,直接执行命令rpm -ivh进行安装便可。

登陆页面以下:
在这里插入图片描述
上图中提到的密码,就是在下面这个过程当中定义的口令:
在这里插入图片描述

登陆后的界面以下:
在这里插入图片描述

关于这个管理界面,就很少作介绍了,自行研究便可。

3、关于oracle的命令行界面操做

使用sqlplus命令能够在命令行界面访问oracle数据库,可是登陆到数据库后,不可使用上下键翻历史命令,若是想要解决,能够进行如下操做。

一、下载我提供的tar.gz软件包
二、挂载系统盘,而后执行如下命令:

[root@oracle ~]# yum -y install ncurses* readline*    #安装依赖包
[root@oracle abc]# tar -zxvf rlwrap-0.30.tar.gz     #解压我提供的tar包
[root@oracle abc]# cd rlwrap-0.30/             #进入解压后的目录
[root@oracle rlwrap-0.30]# ./configure && make && make install       #编译安装
[root@oracle ~]# vim /home/oracle/.bash_profile  #配置oracle用户的环境变量,以便方便使用rlwrap命令
#通过以上配置,执行rlwrap + 原命令登陆到oracle数据库,即可以使用上下键翻历史命令了
[root@oracle ~]# su - oracle           #切换到oracle用户,才能够登陆到oracle数据库
上一次登陆:三 9月 25 16:46:42 CST 2019
[oracle@oracle ~]$ rlwrap sqlplus / as sysdba     #登陆数据库

在上面的登陆数据库命令中,是实现了sys以sysdba的身份链接到本机的oracle数据库,sys用户是oracle的最高管理员,以sys用户登陆的时候通常要加上as sysdba,而其余用户则不须要,若以其余用户身份登陆oracle数据库,能够执行命令:“[oracle@oracle ~]$ sqlplus system/oracle

进入SQL环境后的简单操做(在SQL>模式下,不区分大小写):

SQL> help index           #查看支持的指令列表
SQL> show user            #查看当前的用户

4、oracle 12c数据库的建立

若是在安装oracle产品时不建立数据库,那么要使用oracle系统就必须先建立数据库。若是在安装oracle时选择创建数据库,也能够再建立第二个数据库(不过为了使oracle数据库充分利用系统资源,建议一个服务器上只建立一个数据库)。
建立数据库的方法有两种:经过图形化界面,或者采用“CREATE DATABASE”命令,这里说一下图形化界面建立数据库的方法:

[oracle@oracle database]$ dbca          #以oracle身份运行命令dbca,会弹出一个窗口

若是没有弹出窗口,能够参考前面的步骤,以root用户运行“xhost +”命令,再以oracle身份运行“export DISPLAY=:0.0”命令。

执行命令后会弹出如下窗口:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

5、oracle 数据库的启动与关闭

oracle数据库的启动与关闭是平常工做之一。对于大多数oracle DBA来讲,启动和关闭oracle数据库最经常使用的方式是在命令行方式下执行。

一、启动、关闭oracle数据库

要启动和关闭数据库,必需要以具备oracle管理员权限的用户登陆,一般以具备SYSDBA权限的用户登陆。

(1)数据库的启动

启动一个数据库须要三个步骤:①启动oracle实例(非装载阶段);②由实例装载数据库(装载阶段);③打开数据库(打开阶段)。

在startup命令中,可使用不一样的选项来控制数据库的不一样启动步骤。

1)startup nomount(该命令不经常使用)
nomount选项仅仅启动一个oracle实例,读取init.ora初始化参数文件、启动后台进程、初始化SGA。当实例启动后,系统将显示一个SGA内存结构和大小的列表,以下:

[oracle@oracle ~]$ rlwrap sqlplus / as sysdba       #进入oracle数据库
SQL> startup nomount             #执行该命令
ORACLE 例程已经启动。

Total System Global Area 1593835520 bytes
Fixed Size          8793256 bytes
Variable Size        1023411032 bytes
Database Buffers      553648128 bytes
Redo Buffers            7983104 bytes

2)startup mount(某些时候会用到该命令)
startup mount 命令启动实例而且装载数据库,可是没有打开数据库。oracle系统读取控制文件中关于数据文件和重作日志文件的内容,但并不打开该文件。这种打开方式常在数据库维护操做中使用,如对数据文件的改名、改变重作日志及打开归档模式等。在这种打开方式下,除了能够看到SGA系统列表之外,系统还会给出“数据库装载完毕”的提示。

SQL> alter database mount; #因为上面已经执行了startup nomount命令,因此再更改它的状态,就须要使用该命令

3)startup(正常时使用的命令)
startup命令完成启动实例,装载数据库和打开数据库三个步骤。此时,数据库使数据文件和重作日志文件在线,一般还会请求一个或者多个回滚段;系统除了能够看到前面startup mount 方式下的全部提示外,还会给出一个“数据库已经打开”的提示;数据库系统处于正常的工做状态,能够接收用户的请求。

若是采用startup nomount或者startup mount的数据库打开方式,必须采用alter database命令来执行装载或打开数据库的操做。

前面两条命令都执行过了(startup nomount和alter database mount),因此这里再执行下面命令,数据库就能够说是正确启动完成了。以下:

SQL> alter database open;             #执行该命令

正常来讲,能够直接使用下面一条命令来正常启动数据库,以下:

SQL> startup           #在数据库关闭状态下执行该命令,数据库会依次启动、装载、打开。
ORACLE 例程已经启动。

Total System Global Area 1593835520 bytes
Fixed Size          8793256 bytes
Variable Size        1023411032 bytes
Database Buffers      553648128 bytes
Redo Buffers            7983104 bytes
数据库装载完毕。
数据库已经打开。

二、数据库的关闭

对于数据库的关闭,有四种不一样的关闭选项。
1)shutdown normal
shutdown normal是shutdown命令的默认选项。也就是说,若是用户发出shutdown命令,即执行shutdown normal命令。
发出该命令后,任何新的链接都将再也不容许链接到数据库。在数据库关闭以前,oracle将等待目前链接的全部用户都从数据库中退出后才开始关闭数据库。采用这种方式关闭数据库,在下一次启动时不须要进行任何的实例恢复。但须要注意的是,采用这种方式时,也许关闭一个数据库须要几天或更长的时间。

2)shutdown immediate
shutdown immediate是经常使用的一种关闭数据库的方式。若即想很快地关闭数据库,又想让数据库“干净”的关闭,则常采用这种方式。

发出该命令后,当前正在被oracle处理的SQL语句当即中断,系统中任何没有提交的事务所有回滚。若是系统中存在一个很长的未提交的事务,那么采用这种方式关闭数据库也须要一段时间(该事务回滚时间)。系统不会等待链接到数据库的全部用户退出系统,而会强行回滚当前全部的活动事务,而后断开全部的链接用户。

3)shutdown transactional
shutdown transactional 命令经常使用来计划关闭数据库,它会等待当前链接到系统且正在活动的事务执行完毕,运行该命令后,任何新的链接和事务都是不容许的。它全部活动的事务执行完成后,数据库将以和shutdown immediate一样的方式关闭数据库。

4)shutdown abort
shutdown abort是关闭数据库方式的最后选择,是在没有任何办法关闭数据库的状况下不得不采用的方式,通常不要采用。在下列状况出现时能够考虑采用这种方式关闭数据库。

  • 数据库处于一种非正常工做状态,不能用shutdown normal或shutdown immediate命令关闭数据库;
  • 须要当即关闭数据库;
  • 在启动数据库实例时遇到问题。

    发出该命令后,全部正在运行的SQL语句将当即停止,全部未提交的事务将不回滚,oracle也不等待目前链接到数据库的用户退出系统;下一次启动数据库时须要实例恢复,所以,下一次启动可能比平时须要更多的时间。

在关闭数据库时最好使用shutdown immediate方式,由于这种方式安全且相对较快。不是万不得已不要使用shutdown abort 方式,由于这种方式会形成数据丢失,而且恢复数据库也须要较长时间。

三、启动、关闭oracle监听进程

当oracle数据库实例启动完成后,为了使客户端用户能链接到oracle实例,DBA还须要在oracle所在的服务器上使用lsnrctl命令启动监听进程。若是数据库实例关闭,通常也要关闭监听进程。

1)启动监听

启动监听是oracle用户在操做系统下执行的命令,能够直接在lsnrctl后加参数,也可在该命令提示符后进行操做,具体以下:

[oracle@oracle ~]$ lsnrctl              #执行该命令

LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 25-9月 -2019 21:59:04

Copyright (c) 1991, 2016, Oracle.  All rights reserved.

欢迎来到LSNRCTL, 请键入"help"以得到信息。

LSNRCTL> start          #启动监听
启动/u01/app/oracle/product/12.2.0/dbhome_1//bin/tnslsnr: 请稍候...

TNSLSNR for Linux: Version 12.2.0.1.0 - Production
系统参数文件为/u01/app/oracle/product/12.2.0/dbhome_1/network/admin/listener.ora
写入/u01/app/oracle/diag/tnslsnr/oracle/listener/alert/log.xml的日志信息
监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle)(PORT=1521)))
监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))

正在链接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle)(PORT=1521)))
LISTENER 的 STATUS
------------------------
别名                      LISTENER
版本                      TNSLSNR for Linux: Version 12.2.0.1.0 - Production
启动日期                  25-9月 -2019 21:59:12
正常运行时间              0 天 0 小时 0 分 0 秒
跟踪级别                  off
安全性                    ON: Local OS Authentication
SNMP                      OFF
监听程序参数文件          /u01/app/oracle/product/12.2.0/dbhome_1/network/admin/listener.ora
监听程序日志文件          /u01/app/oracle/diag/tnslsnr/oracle/listener/alert/log.xml
监听端点概要...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
监听程序不支持服务
命令执行成功

也能够直接使用如下命令“来启动监听:

[oracle@oracle ~]$ lsnrctl start         #启动监听

2)关闭监听

[oracle@oracle ~]$ lsnrctl stop         #关闭监听

LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 25-9月 -2019 22:00:31

Copyright (c) 1991, 2016, Oracle.  All rights reserved.

正在链接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle)(PORT=1521)))
命令执行成功

———————— 本文至此结束,感谢阅读 ————————

相关文章
相关标签/搜索