前言

安装oracle时,发现网上的文章总是缺少一些信息,导致安装不顺利,因为我对一些文章进行了整合,用以备忘。

Oracle安装

首先下载linux版本的oracle安装文件,然后通过XFTP上传到root文件夹下。

linux.x64_11gR2_database_1of2.zip
linux.x64_11gR2_database_2of2.zip

然后我们通过XShell连接Linux服务器,然后执行下面命令,查看Swap分区空间,不能小于2G。

grep SwapTotal /proc/meminfo

然后修改CentOS系统标识为redhat,因为redhat是Centos的正版形式,Oracle默认不支持CentOS。

vim /etc/redhat-release

清空redhat-release内的全部内容,(快捷键dd),改成redhat-7

​​​​​​​redhat-7

注:linux编辑文件可以通过vi或者vim命令打开指定位置的文件,如vi appsettings.json,然后输入i进入编辑模式,输入ese退出编辑模式,输入:进入底行,输入wq保存退出(:wq)。

然后修改sysctl.conf

vim /etc/sysctl.conf

注:如vim命令无法执行,则需要先安装,安装命令如下:

yum -y install vim*

添加以下内容:

fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
kernel.shmall = 2097152
kernel.shmmax = 2147483648
net.ipv4.ip_local_port_range = 9000 65500
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.conf.all.rp_filter = 1
net.core.rmem_default = 262144
net.core.rmem_max= 4194304
net.core.wmem_default= 262144
net.core.wmem_max= 1048576

修改完后,启用新的配置

sysctl -p

然后安装必须的软件包

yum -y install binutils compat-libstdc++-33 compat-libstdc++-33.i686 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc.i686 glibc-common glibc-devel glibc-devel.i686 glibc-headers ksh libaio libaio.i686 libaio-devel libaio-devel.i686 libgcc libgcc.i686 libstdc++ libstdc++.i686 libstdc++-devel make sysstat unixODBC unixODBC-devel

然后创建安装oracle程序用户组

groupadd oinstall #创建安装oracle程序用户组 
groupadd dba #创建DBA用户组
useradd -g dba -m oracle #创建用户oracle 并加入到dba组
usermod -a -G oinstall oracle #将用户oracle加入到oinstall组

passwd oracle #修改用户oracle的密码
id oracle #查看用户oracle的信息 

然后创建oracle目录

mkdir -p /data/oracle #创建oracle主目录
mkdir -p /data/inventory #创建oralce配置目录 
mkdir -p /data/src #创建oracle压缩包解压目录 
#修改目录权限
chown -R oracle:oinstall /data/oracle 
chown -R oracle:oinstall /data/inventory 
chown -R oracle:oinstall /data/src
#查看目录权限
ll /data

然后设置oracle用户的shell限制

vim /etc/security/limits.conf

添加内容如下:

oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

然后修改用户环境变量

vim /home/oracle/.bashrc

添加内容如下:

export PATH
export ORACLE_BASE=/data/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=orcl
export ORACLE_UNQNAME=orcl
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.AL32UTF8

然后激活/home/oracle/.bashrc

source /home/oracle/.bashrc

然后开始安装最开始上传到root文件夹下的oracle

先解压缩安装包到 /data/src/,然后给oracle用户授权

unzip linux.x64_11gR2_database_1of2.zip -d /data/src/
unzip linux.x64_11gR2_database_2of2.zip -d /data/src/
chown -R oracle:oinstall /data/src/
ll /data/src/

然后执行下面命令,修改SELINUX=disabled,关闭selinux

vim /etc/selinux/config

修改内容

SELINUX=disabled

然后重启系统

reboot

重启后,进入Oracle用户

su oracle

然后编辑数据库安装文件

vim /data/src/database/response/db_install.rsp

由于需要配置的字段比较多,并且并不是上下连续的,所以我们可以在查看模式下(按esc即可),通过【/字符串】定位字符串位置,如/oracle

oracle.install.option=INSTALL_DB_SWONLY        # 安装类型
ORACLE_HOSTNAME=oracle.server     # 主机名称
UNIX_GROUP_NAME=oinstall # 安装组
INVENTORY_LOCATION=/data/inventory # INVENTORY目录
SELECTED_LANGUAGES=en,zh_CN # 选择语言
ORACLE_HOME=/data/oracle/product/11.2.0/db_1 # oracle_home
ORACLE_BASE=/data/oracle # oracle_base
oracle.install.db.InstallEdition=EE # oracle版本
oracle.install.db.DBA_GROUP=dba # dba用户组
oracle.install.db.OPER_GROUP=oinstall # oper用户组
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE # 数据库类型
oracle.install.db.config.starterdb.globalDBName=orcl # globalDBName
oracle.install.db.config.starterdb.SID=orcl # SID
oracle.install.db.config.starterdb.characterSet=AL32UTF8 # 默认数据库编码
oracle.install.db.config.starterdb.memoryLimit=800 # 自动管理内存的最小内存(M)
oracle.install.db.config.starterdb.password.ALL=oracle # 设定所有数据库用户使用同一个密码
DECLINE_SECURITY_UPDATES=true # 设置安全更新

以上配置修改必须全部修改,不然会无法安装。

修改完配置进行静默安装oracle,执行命令如下

/data/src/database/runInstaller -silent -responseFile /data/src/database/response/db_install.rsp -ignorePrereq

安装oracle需要等待的时间比较长,这里需要耐心。

安装完成后,我们需要回到root用户执行命令,/data/oracle/product/11.2.0/db_1/root.sh,我们可以双击Xshell的窗口,这样我们会打开一个新的窗口,并且是root用户,因为后面还要回到oracle用户,这样就不用切换用户了。

/data/oracle/product/11.2.0/db_1/root.sh

然后再回到oracle用户,编辑监听配置文件。

vim /data/src/database/response/netca.rsp

修改内容如下

INSTALL_TYPE=""custom"" # 安装的类型
LISTENER_NUMBER=1 # 监听器数量
LISTENER_NAMES={"LISTENER"} # 监听器的名称列表
LISTENER_PROTOCOLS={"TCP;1521"} # 监听器使用的通讯协议列表
LISTENER_START=""LISTENER"" # 监听器启动的名称

然后执行以下netca.rsp,如下

/data/oracle/product/11.2.0/db_1/bin/netca /silent /responseFile /data/src/database/response/netca.rsp

然后编辑数据库实例文件

vim /data/src/database/response/dbca.rsp

编辑内容如下

RESPONSEFILE_VERSION ="11.2.0" // 版本号
OPERATION_TYPE ="createDatabase" // 操作为创建实例
GDBNAME ="orcl" // 数据库实例名
SID ="orcl" // 实例名字
TEMPLATENAME = "General_Purpose.dbc" // 建库用的模板文件
SYSPASSWORD = "oracle" // SYS管理员密码
SYSTEMPASSWORD = "oracle" // SYSTEM管理员密码
SYSMANPASSWORD= "oracle"
DBSNMPPASSWORD= "oracle"
DATAFILEDESTINATION =/data/oracle/oradata // 数据文件存放目录
RECOVERYAREADESTINATION=/data/oracle/flash_recovery_area // 恢复数据存放目录
CHARACTERSET ="AL32UTF8" // 字符集
NATIONALCHARACTERSET= "AL16UTF16" // 字符集
TOTALMEMORY ="1638" // 1638MB,物理内存2G*80%

然后静默创建数据库实例

/data/oracle/product/11.2.0/db_1/bin/dbca -silent -responseFile /data/src/database/response/dbca.rsp

然后查看下实例是否运行情况

ps -ef | grep ora_ | grep -v grep

然后修改启动和关闭实例的程序

修改启动

vim /data/oracle/product/11.2.0/db_1/bin/dbstart

修改内容

ORACLE_HOME_LISTNER=/data/oracle/product/11.2.0/db_1

修改关闭

vim /data/oracle/product/11.2.0/db_1/bin/dbshut

修改内容

ORACLE_HOME_LISTNER=/data/oracle/product/11.2.0/db_1

然后修改/etc/oratab

vim /etc/oratab

修改内容,将orcl:/data/oracle/product/11.2.0:N修改为orcl:/data/oracle/product/11.2.0:Y。

dbstart和dbshut 这2个脚本在执行时会检查/etc/oratab 文件里的配置,为Y时才能继续执行。

orcl:/data/oracle/product/11.2.0:Y

然后启动oracle实例

/data/oracle/product/11.2.0/db_1/bin/dbstart

然后回到root用户,设置开机启动Oracle,可以刚刚打开的窗口中操作。

编辑rc.local,执行命令如下

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

在文件最后追加以下内容:

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

然后我们可以在oracle用户窗口输入以下命令,进入oracle数据库

sqlplus / as sysdba

然后执行个查询命令如下:

select status from v$instance

到此oracle就安装成功了。

但我们需要远程连接这个oracle,我们还需要修改listener.ora和tnsnames.ora文件。

我们通过可以XFTP找到这俩文件,右键用记事本编辑,如下图:

编辑内容如下。

listener.ora:

# listener.ora Network Configuration File: /data/oracle/product/11.2.0/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools. LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = ORCL)
(SID_NAME = orcl)
(ORACLE_HOME = /data/oracle/product/11.2.0/db_1)
)
)
ADR_BASE_LISTENER = /data/oracle

注:SID_LIST_LISTENER是将oracle实例的一些信息静态注册到服务中用的,缺少这远程不可连接。

tnsnames.ora:

# tnsnames.ora Network Configuration File: /data/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools. ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)

这两个文件内容修改后,关闭oracle的监听服务,再启动就可以远程连接了。

注:文档编辑的格式一旦错误也会导致监听服务无法启动。

lsnrctl stop #关闭监听 在oracle用户下执行
lsnrctl start #启动监听 在oracle用户下执行

如果还无法远程,则可能是防火墙原因,防火墙管理命令如下:

systemctl status firewalld #查看防火墙状态
systemctl stop firewalld #暂时关闭防火墙
systemctl disable firewalld #永久关闭防火墙
systemctl start firewalld #打开防火墙

然后我们再用PLSQL就可以连接oracle了,如果PLSQL连接不上,可以先检查client\network\ADMIN\tnsnames.ora,看看配置是否正确。

参考配置如下

ORCL@192.168.1.100 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)

----------------------------------------------------------------------------------------------------

到此,CentOS7下安装Oracle11就介绍完了。

----------------------------------------------------------------------------------------------------

注:此文章为原创,任何形式的转载都请联系作者获得授权并注明出处!
若您觉得这篇文章还不错,请点击下方的【推荐】,非常感谢!

https://www.cnblogs.com/kiba/articles/16837139.html

在CentOS7下安装Oracle11教程的更多相关文章

  1. Linux安装配置Redis,CentOS7下安装Redis教程

    1.下载Redis wget https://download.redis.io/releases/redis-3.0.4.tar.gz 2 . 解压Redis .tar.gz 3 . 编译安装Red ...

  2. centos7 下安装mysql教程

    最近要在centos服务器上配置环境,在部署mysql的时候,碰到各种各样的问题,网上博客文章也是有各种坑,目前发现一个比较好的博客: https://blog.csdn.net/xiaomojun/ ...

  3. docker(一) Centos7下安装docker

    docker(一) Centos7下安装dockerdocker(二) windows10下安装dockerdocker(三) 镜像和容器常用命令 docker(四) 使用Dockerfile构建镜像 ...

  4. CentOS7 下 安装 supervisor以及使用

    CentOS7 下 安装 supervisor 以及使用 手动安装 [注] linux环境必须安装 python 1.获取supervisor包:[https://pypi.python.org/py ...

  5. Linux CentOs7 下安装 redis

    Linux CentOs7 下安装 redis 请将以下命令放入linux命令行中运行 如果安装过程前没有安装GCC请先安装  命令如下 $ yum install gcc-c++ $ wget ht ...

  6. Centos7下安装配置Redsocks

    Redsocks是一个开源的网络程序,代码依赖开源的libevent网络库.Redsocks允许你将所有TCP连接重定向到SOCKS或HTTPS代理,比如Shadowsocks(Centos7下安装配 ...

  7. CentOS7下安装SVN服务端

    CentOS7下安装SVN服务 1. yum命令即可方便的完成安装# sudo yum install subversion 测试安装是否成功:# svnserve --version 更改svn的默 ...

  8. centOS7下安装GUI图形界面

    1.如何在centOS7下安装GUI图形界面 当你安装centOS7服务器版本的时候,系统默认是不会安装GUI的图形界面程序,这个需要手动安装CentOS7 Gnome GUI包. 2.在系统下使用命 ...

  9. CentOS7下安装MySQL并配置远程连接

    一.CentOS7下安装MySQL数据库 CentOS7默认的安装包里面已经没有 MySQL-Server安装包了,远程镜像中也没有了. 默认的是MariaDB (MySQL的一个分支,开发这个分支的 ...

随机推荐

  1. Codeforces Round #604 (Div. 2) -D

    Problem - D - Codeforces 题意 : 有 a 个0,b个1,c个2,d个3,构成一个序列,使得每两个数字之间的差值为1 题解: 就是以四种数字分别为起点,暴力模拟 #includ ...

  2. 第五十二篇:webpack的loader(三) -url-loader (图片的loader)

    好家伙, 1.什么是base64? 图片的 base64 编码就是可以将一副图片数据编码成一串字符串,使用该字符串代替图像地址. 这样做有什么意义呢?我们知道,我们所看到的网页上的每一个图片,都是需要 ...

  3. const修饰符总结

    1.什么是const? const就是constant的缩写,意思是"恒定不变的",它是定义只读变量的关键字,或者说const是定义常变量的关键字,常类型的变量或对象的值是不能被更 ...

  4. Linux虚拟机快捷键大全

    转发请注明原作者! 图形化命令框快捷键 Ctrl-Shift-t 创建标签页 Ctrl-Shift-w 关闭标签页 Ctrl-Shift-n 创建新窗口 Ctrl-Shift-q 关闭新窗口 Ctrl ...

  5. Java 监控直播流rtsp协议转rtmp、hls、httpflv协议返回浏览器

    Java 监控直播流rtsp协议转rtmp.hls.httpflv协议返回浏览器 目录 需求背景: 一:了解音视频流协议: 二:方案一 rtsp 转rtmp 1.下载nginx + nginx-rtm ...

  6. 洛谷P7112 行列式求值

    行列式求值 这是一个让你掉头发的模板题 行列式的定义 行列式 (\(\texttt{Determinant}\)) 是一个函数定义,取值是一个标量. 对一个 \(n\times n\) 的矩阵 \(A ...

  7. Java 流处理之收集器

    Java 流(Stream)处理操作完成之后,我们可以收集这个流中的元素,使之汇聚成一个最终结果.这个结果可以是一个对象,也可以是一个集合,甚至可以是一个基本类型数据. 以记录 Record 为例: ...

  8. js中new的原理

    面向对象 在了解new的原理之前,先简单地了解一下构造函数和对象. js可以通过构造函数创建对象: function Test() { } var t = new Test(); 构造函数的首字母大写 ...

  9. Openstack neutron:目录

    为什么? 最近一直在学习SDN方面的知识,本着"最好的学习就是分享"的精神,记录下本系列的文章,尝试更好地去理解SDN这一正当红的技术. 如何? SDN领域现在已经充斥了大量的公司 ...

  10. 查询参数: Query Parameters

    官方文档地址: https://fastapi.tiangolo.com/zh/tutorial/query-params/ # -*- coding: UTF-8 -*- from fastapi ...