一、环境准备

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. eventEmitter

    wade-mac:fin_server_invest mac$ node > var events =require('events') undefined > var eventEmit ...

  2. JS字符串和正则总结

    trim功能:去除字符串开始和结尾的空格. 中间空格不去掉~ 对输入字符串的处理,多输要先清除开头结尾空格,再处理 IE8不支持trim()方法. String总结:所有API都无法修改原字符串,都会 ...

  3. LG5901 【模板】欧拉定理

    题意 题目描述 给你三个正整数,$a,m,b$,你需要求: $a^b \mod m$ 输入输出格式 输入格式: 一行三个整数,$a,m,b$ 输出格式: 一个整数表示答案 输入输出样例 输入样例#1: ...

  4. 高性能kv存储之Redis、Redis Cluster、Pika:如何应对4000亿的日访问量?

    一.背景介绍 随着360公司业务发展,业务使用kv存储的需求越来越大.为了应对kv存储需求爆发式的增长和多使用场景的需求,360web平台部致力于打造一个全方位,适用于多场景需求的kv解决方案.目前, ...

  5. java.lang.NoClassDefFoundError: org/apache/jute/CsvOutputArchive

    1. 问题 看到上面的错误 你怎么想? 包冲突?我这里不是.项目用到了zookeeper,这个类是zookeeper的核心包里的类. 控制台一直打印这个错误 但是项目不影响使用,奇怪! 2. 解决办法 ...

  6. SpringBoot2

    2018.3月Spring Boot2.0发布,是Spring Boot1.0发布4年之后第一次重大修订.Spring Boot2.0版本经历了 17 个月的开发,有 215 个不同的使用者提供了超过 ...

  7. koa 学习资料

    koa 学习资料 学习资料 地址 koa 中文版 https://koa.bootcss.com/

  8. django报错解决:Invalid HTTP_HOST header: 'xxx.com'. You may need to add u'xxx.com' to ALLOWED_HOSTS.

    django版本:1.11.15 使用uwsgi+nginx运行django程序,出现报错,报错为:Invalid HTTP_HOST header: 'xxx.com:82'. You may ne ...

  9. linux shell创建目录、遍历子目录

    1.创建目录 代码1: #!/bin/bash#如果没有tmp_dir目录则创建static_dir="/web/fyunw.com/static"if [ ! -d $staic ...

  10. Scrapy 爬虫日志中出现Forbidden by robots.txt

    爬取汽车之家数据的时候,日志中一直没有任何报错,开始一直不知道什么原因导致的,后来细细阅读了下日志发现日志提示“Forbidden by robots.txt”,Scrapy 设置文件中如果把ROBO ...