创建oracle用户和用户组

[root@Holmofy ~]# groupadd oinstall[root@Holmofy ~]# groupadd dba[root@Holmofy ~]# useradd -g oinstall -G dba oracle

用户创建完之后,可以使用passwd oracle命令对oracle用户的密码进行设置或修改。

如果你之前有掉坑的经历,已经添加过用户了,可以使用id oracle命令核查oracle用户是否配置完善:看Oracle是否属于oinstall和dba用户组。

创建用户完成后,后面的工作大部分就用oracle用户去完成了,需要用到root权限再切换或者使用sudo命令(sudoers需要配置,这个不是本文的内容)。

下载安装包

软件包官网下载链接如下:

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

官方提供的文档链接如下:

http://www.oracle.com/technetwork/database/enterprise-edition/documentation/index.html

注意一定要选择平台相同的安装包。如果你操作系统是64位的,下载的安装包是32位的,安装时会报交叉编译的错误信息:/lib/ld-linux.so.2: bad ELF interpreter。虽然有方法有解决方法,但是为了省去不必要的麻烦也为了程序的执行效率最好还是选择平台一致的安装包(走过的坑,你就不要再往下跳了>︿<)。

我这里选用的是x64的安装包:

使用unzip命令将其解压(直接解压就行),解压完成后会生成一个database文件夹:

解压完成后有个doc目录,该目录下有Oracle安装以及管理的各种文档(不过是英文的,而且安装文档中没有CentOS的技术支持,不过有RHEL的也一样可以照着操作):

检查硬件需求

毕竟Oracle是个大型软件,如果你的硬件给的不够,我劝你还是终止后面的步骤吧(铁定的安装失败)

1. 内存要求

至少1GB的RAM(小于1G的机器你还要它干啥)

可以使用以下命令查看内存大小:

# grep MemTotal /proc/meminfo

检查RAM与交换分区之间的要求:

RAM需要交换空间的大小1 GB和2 GB之间RAM大小的1.5倍2 GB和16 GB之间等于RAM的大小超过16 GB16 GB

使用一下命令查看交换分区大小:

shell

# grep SwapTotal /proc/meminfo

2. 硬盘要求

保证/tmp目录只要有1GB可用空间

# df -h /tmp

确定可用硬盘空间满足以下要求:

安装类型软件文件要求(GB)企业版3.95标准版3.88安装类型数据文件要求(GB)企业版1.7标准版1.5

可使用以下命令你给查看你系统可用硬盘空间

shell

# df -h

检查软件需求

1. 操作系统要求

官方文档中说11g版本Oracle安装包支持以下操作Linux发行版:

  • Asianux 2.0
  • Asianux 3.0
  • Oracle Enterprise Linux 4.0 Update 7 或更新版本
  • Oracle Enterprise Linux 5.0
  • Red Hat Enterprise Linux 4.0 Update 7 或更新版本
  • Red Hat Enterprise Linux 5.0
  • SUSE Linux Enterprise Server 10.0
  • SUSE Linux Enterprise Server 11.0

CentOS应该和RHEL一样对待,所以说这里要求并没有那么严格

2. 软件包依赖

注意这一步是重点了,安装失败很大一部分原因是包依赖的问题没有解决。

官方文档中对于RHEL5及以上版本的Linux发行版,要求需要以下的软件包(更高版本也行)

shell

binutils-2.17.50.0.6

compat-libstdc++-33-3.2.3

elfutils-libelf-0.125

elfutils-libelf-devel-0.125

elfutils-libelf-devel-static-0.125

gcc-4.1.2

gcc-c++-4.1.2

glibc-2.5-24

glibc-common-2.5

glibc-devel-2.5

glibc-headers-2.5

kernel-headers-2.6.18

ksh-20060214

libaio-0.3.106

libaio-devel-0.3.106

libgcc-4.1.2

libgomp-4.1.2

libstdc++-4.1.2

libstdc++-devel-4.1.2

make-3.81

sysstat-7.0.2

unixODBC-2.2.11

unixODBC-devel-2.2.11

你可以使用以下命令查看上面这些软件包的版本是否大于等于上面的要求:

# rpm -q binutils compat-libstdc++ elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers kernel-headers ksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel

如果符合都符合要求就没啥问题了,如果出现有未安装的软件包,比如我出现的这种情况:

[root@localhost ~]# rpm -q binutils compat-libstdc++ elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers kernel-headers ksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-develbinutils-2.23.52.0.1-55.el7.x86_64未安装软件包 compat-libstdc++ elfutils-libelf-0.163-3.el7.x86_64未安装软件包 elfutils-libelf-devel 未安装软件包 elfutils-libelf-devel-static gcc-4.8.5-4.el7.x86_64gcc-c++-4.8.5-4.el7.x86_64glibc-2.17-105.el7.x86_64glibc-common-2.17-105.el7.x86_64glibc-devel-2.17-105.el7.x86_64glibc-headers-2.17-105.el7.x86_64kernel-headers-3.10.0-327.el7.x86_64未安装软件包 ksh libaio-0.3.109-13.el7.x86_64未安装软件包 libaio-devel libgcc-4.8.5-4.el7.x86_64libgomp-4.8.5-4.el7.x86_64libstdc++-4.8.5-4.el7.x86_64libstdc++-devel-4.8.5-4.el7.x86_64make-3.82-21.el7.x86_64sysstat-10.1.5-7.el7.x86_64未安装软件包 unixODBC 未安装软件包 unixODBC-devel 

我的建议是使用yum把这些软件包都更新一遍:

# yum install binutils compat-libstdc++ elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers kernel-headers ksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel

配置内核参数

以下命令都需要root用户权限执行

如果安装Oracle用于生产的话,内核参数是一个很重要的优化系统性能的配置项,比如配置信号量,I/O,共享内存等参数配置,这个建议参考官方文档进行详细配置,官方文档对这方面有很详细的说明。如果你和我一样只是安装个Oracle用来学习那只需要使用官方文档中建议的最低配置就行。具体可以在/etc/sysctl.conf文件中,添加以下内核参数:

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

为使上述配置生效而不重启系统,执行如下命令

# /sbin/sysctl -p

为oracle用户添加shell配置

为了提高Oracle软件性能,需要为Oracle用户添加以下shell配置:

Shell Limit在limits.conf中的项硬限制打开文件描述符的最大数量nofile65536单个用户可用的最大进程数nproc16384进程堆栈段的最大大小stack10240

步骤如下:

  1. 在/etc/security/limits.conf文件,添加以下参数:
oracle soft nproc 2047oracle hard nproc 16384oracle soft nofile 1024oracle hard nofile 65536
  1. 在/etc/pam.d/login文件中添加一行:
session required pam_limits.so
  1. 在/etc/profile文件添加以下脚本:
if [ $USER = "oracle" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fifi

创建并配置环境变量

安装路径可以自选,我这里直接在根路径下创建了一个oracle目录,如果用于生产建议不要这么干,不方便以后的扩展。

注意权限

[root@localhost /]# mkdir /oracle/app[root@localhost /]# chown -R oracle:oinstall /oracle[root@localhost /]# chmod -R 775 /oracle

配置oracle用户环境变量:

1、使用su - oracle命令切换为oracle用户登录

2、使用任意文本编辑器打开Shell启动脚本,如:

vi .bash_profile

3、添加如下环境变量:

export ORACLE_BASE=/oracleexport ORACLE_HOME=/oracle/appexport ORACLE_SID=oracleSIDexport PATH=$ORACLE_HOME/bin:$PATH

开始正式安装

进入到之前解压的安装包,运行runInstaller脚本开始安装

注意:一定要使用oracle用户登录图形界面,否则运行runInstaller会报错显示错误(因为后面使用图形化界面安装的,需要权限去运行图形界面程序)。

如果你弹出了以下界面,那么恭喜你离成功只有一半的距离了。

1、第一步用来配置更新以及技术支持的,把勾去掉直接下一步就行

2、 配置安装选项,这三个选项分别表示:①创建并配置一个新数据库,适用于新安装数据库的用户;②只安装数据库软件,适用于已有Oracle数据库数据用于数据迁移的;③升级已有数据库,适用于将老数据库升级成新数据库的用户。毫无疑问这里选择第一个选项。

3、第三步配置桌面版还是服务器版,桌面版是最小化配置,这里为了练习选择服务器版的配置。

4、第四步分布式网格配置,这里选择单实例服务器配置,如果要配置分布式服务的话可以参考前面说的安装文档,里面有详细的分布式服务安装过程。

5、这个我们为了达到练手的目的选择高级安装(典型安装基本都已经帮我们配置好了,有啥挑战性)

6、选择语言,这里我选择英文和简体中文。

7、第七步选择数据库版本,这里选择企业版

8、选择安装路径,这个已经在环境变量里配置过了

9、这个Inventory Directory目录用于记录Oracle的清单信息的,清单信息中包括Oracle的安装路径等信息。这里我选择在oracle的家目录下建一个目录存放这些安装信息。

10、第十步用于创建数据库的类型:

  • 通用/事务处理:专为一般用途或交互较多的应用程序而设计。
  • 数据仓库:对数据存储应用程序进行优化。

这里选择通用的就行。

11、配置数据库名,和Oracle服务ID号

注意数据库名一定要记住,以后进行程序开发会用到这个数据库名

12、十二步,这里需要配置一下字符集,将字符集设置成UTF-8,其他的不用修改(如果有特殊需求可以参考文档来配置)。

13、这一步用来配置系统信息邮件通知的,可以跳过

14、这一步用于配置数据存储的(数据文件存储位置),这里我们把数据存储在/oracle/oradata目录下。

15、十五步用于配置数据备份,这里我们只是用来学习不需要自动备份,实际生产肯定是要做备份的。

16、十六步配置账号密码,这里我将所有的默认用户统一使用相同的密码(如果密码太简单可能会报错,需要大小写数字都包含,需要精心设计一个密码)。

注意密码不能忘了,不管是数据库管理还是软件开发都会用到这个密码。

17、这一步用于配置数据库用户组的,只要安装前的配置工作完成了,这一步可以直接使用默认的。

18、这一步会检测交换分区大小、内核参数以及依赖包是否安装。只要前面准备工作都完成了,下面的错误可以直接忽略(比如它要求的软件包,我们的版本实际上比它要求的还高,所以这里的报错没必要理会它)。

19、这一步是对前面所有配置的一个总结,我们可以直接点击完成

20、只要前面的配置没问题,我们就可以安心的等待安装成功了

21、安装完成后,弹出下面这个界面,我们点击password management对数据库用户的密码进行一些配置

22、配置数据库用户密码

这里叫你运行使用root用户运行两个脚本,运行一下就可以了。

安装成功,此处应有掌声。

使用SQLplus查询scott表进行测试

如果SQLplus命令找不到,注意看一下环境变量是否配置正确,然后将oracle注销后再重新登

_linux运维正确安装oracle流程相关推荐

  1. vmware linux 黑屏_Linux运维遇到的基本问题解决大全

    一.运维概述与系统安装 问题1:虚拟机提示"Intel VT-x处于禁用状态 实现思路:重启电脑按快捷键进入BIOS -> 启用Intel VT-x -> 重启计算机 -> ...

  2. oracle最新版本是多少_运维日记|关于Oracle的补丁你需要知道的事

    各位新朋友-记得先点蓝字关注我哦- 之前一起熟悉了Oracle数据库的软件版本,服务周期,今天我们一起来了解下,Oracle发布的基础版本之上,常说的补丁到底是什么,有什么分类,经历了怎样的迭代. c ...

  3. 一个运维项目的大概流程,附带20种运维开发工具

    项目前期 产品模型-开发-测试(安全)-上线 立项: 初期: 1)需要的服务器(物理机,虚拟机),数据库,环境,带宽 2) 项目运维的部署方案(也为了后期方便新人的操作) ,比如环境规划(具备一定的扩 ...

  4. python linux运维教程 推荐_Linux 运维入门到跑路书单推荐

    一.基础入门 <鸟哥的Linux私房菜基础学习篇>:最具知名度的Linux入门书<鸟哥的Linux私房菜基础学习篇>,全面而详细地介绍了Linux操作系统.鸟哥的Linux私房 ...

  5. linux mysql运维_Linux运维常用的 MySQL基础命令

    # MySQL基础命令 ------------- ### 创建MySQL库,授权. >create database mysqldb character set utf8; >grant ...

  6. php调取 zabbix实时数据_Linux运维必知的Zabbix故障排错实战

    从0开始解决线上Zabbix监控平台故障 (1)学习Linux技术,后期从事Linux运维方面的工作,作为运维人员最主要的工作职责之一:保障企业门户网站.业务系统.数据库.服务器高效稳定的运行,一旦有 ...

  7. 自动化运维之 安装部署 Ansible 服务

    Ansible 概述 由于互联网的快速发展导致产品更新换代速度逐渐加快,运维人员每天都要进行大量的维护操作,仍旧按照传统方式进行维护使得工作效率低下.这是,部署自动化运维就可以尽可能的安全.高效地完成 ...

  8. mysql中间件是运维工作内容_linux运维工作的七项内容

    一,[基础运维检查] 或叫 例行检查 或叫 例行巡检 mail cacti 1.理解例行检查列表的内容.检查项的含义以及可能引发的问题. 2.按照例行检查表,定期检查系统状态,发现异常立即通报并推进解 ...

  9. linux yum自动挂载_Linux运维——升级系统相关漏洞

    说明:最近公司漏扫部门扫出来一大批的漏洞,包括系统层.中间件层.以及应用层漏洞,今天先给大家分享下Linux系统层漏洞修复方案(OpenSSL.ssh.NTP等),请看下面! 一.上传升级包: 二.配 ...

最新文章

  1. Python测试框架pytest(05)fixture - error和failed、fixture实例化、多个fixture
  2. android-学习1 配置环境
  3. python圆的半径计算圆的周长列表_python计算圆周长、面积、球体体积并画出圆
  4. 获取IOS应用的子目录
  5. Codeforces 723D. Lakes in Berland
  6. 微信 小程序 canvas
  7. 使用java实现面向对象编程第二章_java面向对象编程——第二章 java基础语法
  8. 过年战胜熊孩子骚扰的终极攻略,拿走不谢!
  9. Aop_AspectJ实现
  10. 智能SQL优化工具--SQL Optimizer for SQL Server(帮助提升数据库应用程序性能,最大程度地自动优化你的SQL语句 )...
  11. python 邮箱验证_在Django中进行用户注册和邮箱验证的方法
  12. C++中的向量vector
  13. 良心推荐:12个免费学习网站,赶紧收藏
  14. 中国伸缩式起重机行业市场供需与战略研究报告
  15. [200127] Java类初始化与实例初始化 - Thinking in Java学习日志
  16. docker安装redis无法启动: The container name “/ly-redis“ is already in use by container
  17. [技术发展-22]:网络与通信技术的应用与发展快速概览-2- 通信技术
  18. argc和argv的说明
  19. 推荐一款图片放大不失真的软件-PhotoZoom
  20. Java 正则中的(.*?)vs(.*)

热门文章

  1. 一文带你了解卷积神经网络基础,建议收藏
  2. 百度阿里华为资深AI工程师薪资一览,有多大能力拿多少钱
  3. Excel中将一个表格的数据关联到另一个表格
  4. 我的第一个VUE示例
  5. K近邻算法(KNN)原理小结
  6. 撩课-Java面试宝典-第十二篇
  7. 第24讲 | 比特币专题(一)历史与货币
  8. Ubuntu 18.04缺少libgconf-2.so.4
  9. CSS入门之引用、选择器、属性(六分之三)
  10. 蚂蚁金服 CTO 程立登台新加坡 Money 20/20 Asia,传递技术让世界更平等的愿景