一、环境准备

1、正确无误的CentOS 7系统环境

虚拟机要求:

内存至少2G

处理器至少2个

根分区要大于20G(安装oracle很占空间,空闲空间要足够)

2、正确的JDK环境

CentOS 7安装JDK:https://www.cnblogs.com/djlsunshine/p/10164680.html

3、Oracle11g安装包

下载地址:

https://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html

下载完成:

二、  安装前准备

1、创建oracle数据库的系统用户和用户组

创建用户组oinstall和dba

# groupadd oinstall

# groupadd dba

创建oracle用户,并加入到oinstall和dba用户组

# useradd -g oinstall -G dba -m oracle

-g:指定用户所属的群组
-G:指定用户所属的附加群组
-m:自动建立用户的登入目录

设置oracle用户的登录密码

# passwd oracle

查看新建的oracle用户

# id oracle

2、创建oracle数据库安装目录

创建安装目录

# mkdir -p /usr/oracle

配置文件目录

# mkdir -p /usr/oraInventory

软件包解压目录

# mkdir -p /usr/orapackage

设置目录所有者为oinstall用户组的oracle用户

# chown -R oracle:oinstall /usr/oracle

# chown -R oracle:oinstall /usr/oraInventory

# chown -R oracle:oinstall /usr/orapackage

3、安装包准备

把安装包上传到Linux中

剪切到创建好的oracle安装包目录

# mv linux.x64_11gR2_database_1of2.zip /usr/orapackage/

# mv linux.x64_11gR2_database_2of2.zip /usr/orapackage/

解压到当前目录

# unzip linux.x64_11gR2_database_1of2.zip

# unzip linux.x64_11gR2_database_2of2.zip

4、修改OS系统标识

oracle默认不支持CentOS系统安装,修改文件 /etc/RedHat-release

查看版本信息

# cat /proc/version

# cat /etc/redhat-release

# vi /etc/redhat-release

修改为redhat-7

# cat /etc/redhat-release

5、安装oracle数据库所需要的软件包

参考官网:

https://docs.oracle.com/cd/E11882_01/install.112/e47689/pre_install.htm

Oracle Linux 7 and Red Hat Enterprise Linux 7

The following packages (or later versions) must be installed:

binutils-2.23.52.0.-.el7.x86_64
compat-libcap1-1.10-.el7.x86_64
compat-libstdc++--3.2.-.el7.i686
compat-libstdc++--3.2.-.el7.x86_64
gcc-4.8.-.el7.x86_64
gcc-c++-4.8.-.el7.x86_64
glibc-2.17-.el7.i686
glibc-2.17-.el7.x86_64
glibc-devel-2.17-.el7.i686
glibc-devel-2.17-.el7.x86_64
ksh
libaio-0.3.-.el7.i686
libaio-0.3.-.el7.x86_64
libaio-devel-0.3.-.el7.i686
libaio-devel-0.3.-.el7.x86_64
libgcc-4.8.-.el7.i686
libgcc-4.8.-.el7.x86_64
libstdc++-4.8.-.el7.i686
libstdc++-4.8.-.el7.x86_64
libstdc++-devel-4.8.-.el7.i686
libstdc++-devel-4.8.-.el7.x86_64
libXi-1.7.-.el7.i686
libXi-1.7.-.el7.x86_64
libXtst-1.2.-.el7.i686
libXtst-1.2.-.el7.x86_64
make-3.82-.el7.x86_64
sysstat-10.1.-.el7.x86_64

To use ODBC on Linux x86-64, the following additional ODBC RPMs are required:

On Oracle Linux 7, and Red Hat Enterprise Linux 7:

unixODBC-2.3.-.el7.x86_64 or later
unixODBC-2.3.-.el7.i686 or later
unixODBC-devel-2.3.-.el7.x86_64 or later
unixODBC-devel-2.3.-.el7.i686 or later

安装所需安装包

[root@localhost ~]# yum -y install binutils compat-libcap1 compat-libstdc++- compat-libstdc++-*i686 compat-libstdc++-*.devel compat-libstdc++- compat-libstdc++-*.devel gcc gcc-c++ glibc glibc*.i686 glibc-devel glibc-devel*.i686 ksh libaio libaio*.i686 libaio-devel libaio-devel*.devel libgcc libgcc*.i686 libstdc++ libstdc++*.i686 libstdc++-devel libstdc++-devel*.devel libXi libXi*.i686 libXtst libXtst*.i686 make sysstat unixODBC unixODBC*.i686 unixODBC-devel unixODBC-devel*.i686

检测是否31个包都有安装(版本号只能大于规定的版本,不能小于)

[root@localhost ~]# rpm -q binutils compat-libcap1 compat-libstdc++- gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst  make sysstat  unixODBC unixODBC-devel

注意:我安装的时候并没有把全部的装上,有些安装包的源和包不好找,而且在网上自己下的话,软件的依赖性不好解决。我只安装成功了18个包,所以后期安装oracle的时候报错,但不影响。

6、关闭防火墙、关闭selinux

# systemctl stop firewalld

# vi /etc/selinux/config

设置临时生效

# setenforce 0

7、修改内核参数

# vi /etc/sysctl.conf

# System default settings live in /usr/lib/sysctl.d/-system.conf.
# To override those settings, enter new settings here, or in an /etc/sysctl.d/<name>.conf file
#
# For more information, see sysctl.conf() and sysctl.d().
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.conf.all.rp_filter = 1
fs.file-max = 6815744 #设置一个进程可以打开的最大打开文件数
fs.aio-max-nr = 1048576 #限制未完成的并发请求,避免I/O系统故障
kernel.shmall = 2097152 #共享内存的总量,应不小于shmmax/page_size缺省值就是2097152
kernel.shmmax = 2147483648 #最大共享内存的段大小,不小于物理内存的一半
kernel.shmmni = 4096 #整个系统共享内存端的最大数
kernel.sem = 250 32000 100 128 #设置的信号量
net.ipv4.ip_local_port_range = 9000 65500 #可使用的IPv4端口范围
net.core.rmem_default = 262144 #默认接收缓冲区大小
net.core.rmem_max= 4194304 #接收缓冲区最大值
net.core.wmem_default= 262144 #默认的发送缓冲区大小
net.core.wmem_max= 1048576 #发送缓冲区最大值

使配置参数生效

# sysctl -p

8、设置用户限制,提高软件运行性能

# vi /etc/security/limits.conf

在最后几行添加如下内容

oracle soft nproc
oracle hard nproc
oracle soft nofile
oracle hard nofile
oracle soft stack
oracle hard stack

9、配置用户的环境变量

# vi /home/oracle/.bash_profile

添加如下内容

export ORACLE_BASE=/usr/oracle                            #oracl安装目录
export ORACLE_HOME=$ORACLE_BASE/product/11.2./db_1 #oracle路径
export ORACLE_SID=orcl #oracle启动数据库实例名
export ORACLE_TERM=xterm #xterm窗口模式安装
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH #添加系统环境变量
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib #添加系统环境变量
export LANG=C #防止安装过程出现乱码
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK #设置Oracle客户端字符集,必须与Oracle客户端安装时设置的字符集保持一致。有的是设为AL32UTF8,根据需要自行设定。

使配置生效

# source /home/oracle/.bash_profile

三、oracle安装

1、使用Oracle账户登录

2、为了防止安装时提示框出错无法显示,启动安装时添加本地JDK路径

$ vi + /etc/profile

执行命令开始安装

$ cd /usr/orapackage/database/

$ ls

$ ./runInstaller -jreLoc /usr/java/jdk1.8

3、安装界面安装流程

去除选中,不自动接收Oracle的安全更新,next。

第一项为企业级应用

第二项只安装数据库

第三项为升级现有数据库

第一项为桌面类:一般适用于台式机和笔记本,包含最小数据库和最低配置要求,安装时只有基本选项。

第二项为服务类:适用于服务器,例如,它会向您提供数据中心和用于支持企业级的应用程序。

选择要执行的数据库安装类型

单实例数据库安装

重迭集群数据库安装

选择典型安装

会自动根据配置的环境变量获取路径,设置orcl用户的密码,确认密码

输入的密码不符合oracle推荐的标准,不要管,直接点击yes

默认选择

这几个系统报错是因为现有的包的版本比检测要高,忽略即可

到summer过程,若有需要可以保存一下文件,然后点击Finish

当安装进度达到68%时,会出现如下图所示报错

解决办法:

查找安装目录下该文件:/usr/oracle/product/11.2.0/db_1/ctx/lib/ins_ctx.mk

# vi /usr/oracle/product/11.2.0/db_1/ctx/lib/ins_ctx.mk

修改如下文件内容(11行左右)

ctxhx: $(CTXHXOBJ)
$(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK)
修改为:
ctxhx: $(CTXHXOBJ)
-static $(LINK_CTXHX) $(CTXHXOBJ)$(INSO_LINK) /usr/lib64/libc.a

保存(:wq)后,点击Retry继续安装

有如下图所示报错

打开此安装目录下文件:/usr/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk

# vi /usr/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk

修改如下内容(190行左右)

$(MK_EMAGENT_NMECTL)
修改为
$(MK_EMAGENT_NMECTL) -lnnz11

保存(:wq)后,点击continue继续安装

漫长的等待过程……

点击OK

打开控制端,以root权限执行所示两个脚本

# sh /usr/oraInventory/orainstRoot.sh

# sh /usr/oracle/product/11.2.0/db_1/root.sh

点击OK,安装完成,关闭界面

4、创建Oracle监听

$ netca

在oracle用户的图形界面oracle用户中,新开启一个终端,直接输入命令netca会弹出如下界面:

创建监听服务(充当oracle服务器,让别的oracle客户端连接本oracle服务器)

监听名随便起

选择监听器协议,默认TCP,点击Next

配置监听端口,默认1521,点击Next

然后弹出这个,大概意思是:

使用另一个端口号:

为该侦听器提供的信息目前正由该计算机上的另一个侦听器使用

您可以按原样继续进行配置,但在冲突解决之前无法启动此侦听器。您想继续进行配置吗?

换一个端口号

配置完成,提示是否增加另外的监听器,选择No,点击Next

有两个监听可选,默认和刚刚创建的监听

点击Finish结束配置程序,命令行界面会提示配置的信息并将新的监听器启动

详情请参考:

https://jingyan.baidu.com/article/47a29f24442f65c0142399c2.html

监听器的启动和停止

lsnrctl start LISTENER            #启动名为LISTENER的监听器
lsnrctl stop LISTENER #关闭名为LISTENER的监听器

查看监听器运行状态

lsnrctl status LISTENER           #查看名为LISTENER的监听器的运行状态

$ lsnrctl status djl

查看所有监听运行状态

$ lsnrctl status

查看监听文件

$ cat /usr/oracle/product/11.2.0/db_1/network/admin/listener.ora

# listener.ora Network Configuration File: /usr/oracle/product/11.2./db_1/network/admin/listener.ora
# Generated by Oracle configuration tools. ADR_BASE_DJL = /usr/oracle LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = ))
)
) ADR_BASE_LISTENER = /usr/oracle DJL =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = ))
)
)

$ cd /usr/oracle/product/11.2.0/db_1/network/admin/

$ cat listener.ora

# listener.ora Network Configuration File: /usr/oracle/product/11.2./db_1/network/admin/listener.ora
# Generated by Oracle configuration tools. ADR_BASE_DJL = /usr/oracle LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = ))
)
) ADR_BASE_LISTENER = /usr/oracle DJL =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = ))
)
)

$ cat sqlnet.ora

# sqlnet.ora Network Configuration File: /usr/oracle/product/11.2./db_1/network/admin/sqlnet.ora
# Generated by Oracle configuration tools. NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT) ADR_BASE = /usr/oracle

5、安装oracle数据库实例

$ dbca

选择创建一个新的数据库,即新的实例

默认为普通的事务数据库,点击Next

填写数据库实例名(填写数据的全局名称和数据库id)

已经默认创建的数据库实例名为orcl

设置密码,所有用户使用同一密码,点击Next

点击yes(密码设置的太简单了,不符合oracle要求规范,是否继续)

选择用本地的数据文件模版地址,点击Next

设置数据恢复路径,默认,点击next

设置创建实例方案表空间,可以不创建,点击Next

设置数据库内存,若作为服务器数据库设置为70%

设置连接数,默认为150,根据需要设置

设置字符集,选择与安装Oracle时的设置相同的字符集,ZHS16GBK。如果Oracle用的字符集为AL32UTF8,就选择AL32UTF8。当然,如果这里字符集选错了,安装好了也是可以修改的,只是稍有麻烦。

设置连接类型,共享内存或者独享内存,也可以默认,点击Next

选择Generate Database Creation Scripts(生成数据库创建脚本),可以为手工建库脚本提供参考

点击Finish,完成创建

可保存,也可不保存

创建数据库,创建完成后点击Exist退出。又是一个漫长等待的过程……

6、创建表空间和用户授权

(1)、连接数据库

$ sqlplus / as sysdba

(2)、创建数据库表空间

语法:
create tablespace 表空间名
datafile ‘物理地址(相当于文件路径)’
size初始大小(单位M)
autoextend on next每次自增的大小(单位M)
maxsize unlimited (此关键字用于不限制表空间大小)

SQL> create tablespace test1_teblespace
datafile '/usr/oracle/oradata/orcl/test1_teblespace.dbf'
size 500M
autoextend on next 100M
maxsize unlimited;

(3)、创建用户并指定表空间

语法:
create user 用户名 identified by 口令[即密码] default tablespace 表空间名;

SQL> create user test1 identified by test1 default tablespace test1_teblespace;

(4)、给用户授予权限

语法:
grant 权限1, 权限2, 权限3…… to 用户名

SQL> grant connect,resource,dba to test1;

(5)、删除表空间

语法:
drop tablespace 表空间名 including contents and datafiles cascade constraints;

SQL> drop tablespace test1_teblespace including contents and datafiles cascade constraints;

including contents   删除表空间中的内容,如果删除表空间之前表空间中有内容,而未加此参数,表空间无法删除。
including datafiles 删除表空间中的数据文件
cascade constraints 同时删除表空间中表的外键参照

(6)、删除用户

语法:
drop user 用户名 cascade;
最后这个级联特别有用(删除用户以及所有关联的数据库对象)

SQL> drop user test1 cascade;

四、  设置数据库自启动

方法一:

1、安装好Oracle数据库后: 执行 dbstart和dbshut

$ dbshut

$ dbstart

错误原因:dbstart和dbshut脚本文件中ORACLE_HOME_LISTNER的设置有问题

分别打开两个文件修改如下内容

ORACLE_HOME_LISTNER=$
修改为:
ORACLE_HOME_LISTNER=$ORACLE_HOME

$ vim $ORACLE_HOME/bin/dbstart

$ vi $ORACLE_HOME/bin/dbshut

修改后保存退出,问题解决

2、Linux启动时自动启动Oracle监听和实例

第一步:修改/etc/oratab文件

找到:   orcl:/usr/oracle/product/11.2./db_1:N
修改为: orcl:/usr/oracle/product/11.2./db_1:Y
(这个路径跟安装路径有关,$ORACLE_SID:$ORACLE_HOME:<N|Y>)

$ vi /etc/oratab

第二步:把lsnrctl start和dbstart添加到rc.local文件中:

root权限执行

# vi /etc/rc.d/rc.local

添加:

su - oracle -lc "/usr/oracle/product/11.2.0/db_1/bin/lsnrctl start"
su - oracle -lc "/usr/oracle/product/11.2.0/db_1/bin/dbstart"

说明:

第一行为开机启动数据库监听服务,第二行为开机启动数据库。(路径跟安装路径相关)。

注意:CentOs7中/etc/rc.d/rc.local不会开机执行,需添加执行权限。

查看/etc/rc.d/rc.local的权限

# ll /etc/rc.d/rc.local

添加执行权限

# chmod +x /etc/rc.d/rc.local

3、重启电脑后查看是否自启动成功

# reboot

查看监听是否自启动成功

$ lsnrctl status LISTENER

查看Oracle服务状态

$ ps -aux | grep oracle

4、oracle的启动或关闭管理

启动

$ dbstart

关闭

$ dbshut

CentOS 7安装Oracle 11gR2以及设置自启动(2)

https://www.cnblogs.com/djlsunshine/p/10201170.html

参考博客

CentOS 7安装Oracle 11gR2以及设置自启动

https://www.cnblogs.com/VoiceOfDreams/p/8308601.html

CentOS 7安装Oracle 11gR2以及设置自启动(1)的更多相关文章

  1. CentOS 7安装Oracle 11gR2以及设置自启动(2)

    6.创建表空间和用户授权 (1).连接数据库 $ sqlplus / as sysdba (2).创建数据库表空间 语法: create tablespace 表空间名 datafile ‘物理地址( ...

  2. CentOS 7安装Oracle 11gR2以及设置自启动

    一.环境准备 1.正确无误的CentOS 7系统环境 CentOS 7安装:http://www.cnblogs.com/VoiceOfDreams/p/8043958.html 2.正确的JDK环境 ...

  3. CentOS 7 安装Oracle 11gR2

    概述 Oracle 在Linux和window上的安装不太一样,公司又是Linux系统上的Oracle,实在没辙,研究下Linux下Oracle的使用,oracle默认不支持CentOS系统安装,所以 ...

  4. CentOS静默安装Oracle 11gR2(x64)

    环境 OS: CentOS 7.4; hosts: L134; IP: 192.168.1.134 DB: linux.x64_11gR2_database 安装依赖包 yum install -y ...

  5. CentOS 6安装Oracle 11gR2数据库

    1.安装环境--- 操作系统:CentOS release 6.8 (Final) oracle:Oracle Database 11g Enterprise Edition Release 11.2 ...

  6. Centos 6下安装Oracle 11gR2

    一.安装环境 CentOS release 6.7 (Final) Oracle Database 11g Release 2 二.安装前准备 #修改主机名 修改/etc/sysconfig/netw ...

  7. CentOS 7 安装 Oracle 11.2.0.4

    一.安装环境 CentOS Linux release 7.2.1511 (Core) Oracle Database 11g Release 2 (11.2.0.4) 二.安装前准备 2.1 修改主 ...

  8. CentOS 7 之安装 Oracle 11gR2

    一.准备工作 1.下载Oracle安装包:linux.x64_11gR2_database_1of2.zip 和 linux.x64_11gR2_database_2of2.zip ,可以下载到本地, ...

  9. CentOS安装Oracle 11gR2(x64)

    本文主要步骤是参考:https://www.linuxidc.com/Linux/2014-02/97374.htm 后来自己加入了一些安装过程中遇到的问题和解决方法.使用图形界面安装Oracle已经 ...

随机推荐

  1. STM32F4的sct文件理解

    原文地址http://blog.sina.com.cn/s/blog_898f36590100ya2l.html ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ...

  2. 《DSP using MATLAB》Problem 6.22

    代码: %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ %% Output In ...

  3. draw graph

    http://www.icl.pku.edu.cn/member/yujs/bsdfiles/html/mpost.htmlUNIX下绘图面面观 http://www.tug.org/metapost ...

  4. myBatis框架的配置部分

    第一步:导包. 第二步:配置部分(第一部分) <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE ...

  5. LeetCode - Kth Largest Element in a Stream

    Design a class to find the kth largest element in a stream. Note that it is the kth largest element ...

  6. GoLand tool tips

    goland format code (on save ) preference -> tool -> file watcher  then ,select go fmt 2, highl ...

  7. xencenter如何安装系统

    首先点击增加服务器 输入xenserver的ip和用户名以及密码 添加资源池,注意下面那个add new server也要指定一个server,例如刚刚创建的那个 还要搞一个存储的,注意iso要选择s ...

  8. ASP.NET MVC中有四种过滤器类型

    在ASP.NET MVC中有四种过滤器类型

  9. Grid Virtual Server 和 网格计算

    Grid Virtual Server 的 Virtual Server 源于 LVS (Linux Virtual Server) , LVS 的意思就是把 多个 Linux 服务器 联合起来构成一 ...

  10. ubuntu 14上安装mysql离线包

    1.下载mysql在linux下离线安装包文件:wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.33-linux-glibc2. ...