百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

linux运维正确安装oracle流程(linux安装oracle12c客户端)

mhr18 2024-09-14 05:32 30 浏览 0 评论

创建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-devel
binutils-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_64
gcc-c++-4.8.5-4.el7.x86_64
glibc-2.17-105.el7.x86_64
glibc-common-2.17-105.el7.x86_64
glibc-devel-2.17-105.el7.x86_64
glibc-headers-2.17-105.el7.x86_64
kernel-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_64
libgomp-4.8.5-4.el7.x86_64
libstdc++-4.8.5-4.el7.x86_64
libstdc++-devel-4.8.5-4.el7.x86_64
make-3.82-21.el7.x86_64
sysstat-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 = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
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 = 1048586

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

# /sbin/sysctl -p

为oracle用户添加shell配置

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

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

步骤如下:

  1. 在/etc/security/limits.conf文件,添加以下参数:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle 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
 fi
fi

创建并配置环境变量

安装路径可以自选,我这里直接在根路径下创建了一个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=/oracle
export ORACLE_HOME=/oracle/app
export ORACLE_SID=oracleSID
export 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注销后再重新登

相关推荐

使用 Docker 部署 Java 项目(通俗易懂)

前言:搜索镜像的网站(推荐):DockerDocs1、下载与配置Docker1.1docker下载(这里使用的是Ubuntu,Centos命令可能有不同)以下命令,默认不是root用户操作,...

Spring Boot 3.3.5 + CRaC:从冷启动到秒级响应的架构实践与踩坑实录

去年,我们团队负责的电商订单系统因扩容需求需在10分钟内启动200个Pod实例。当运维组按下扩容按钮时,传统SpringBoot应用的冷启动耗时(平均8.7秒)直接导致流量洪峰期出现30%的请求超时...

《github精选系列》——SpringBoot 全家桶

1简单总结1SpringBoot全家桶简介2项目简介3子项目列表4环境5运行6后续计划7问题反馈gitee地址:https://gitee.com/yidao620/springbo...

Nacos简介—1.Nacos使用简介

大纲1.Nacos的在服务注册中心+配置中心中的应用2.Nacos2.x最新版本下载与目录结构3.Nacos2.x的数据库存储与日志存储4.Nacos2.x服务端的startup.sh启动脚...

spring-ai ollama小试牛刀

序本文主要展示下spring-aiollama的使用示例pom.xml<dependency><groupId>org.springframework.ai<...

SpringCloud系列——10Spring Cloud Gateway网关

学习目标Gateway是什么?它有什么作用?Gateway中的断言使用Gateway中的过滤器使用Gateway中的路由使用第1章网关1.1网关的概念简单来说,网关就是一个网络连接到另外一个网络的...

Spring Boot 自动装配原理剖析

前言在这瞬息万变的技术领域,比了解技术的使用方法更重要的是了解其原理及应用背景。以往我们使用SpringMVC来构建一个项目需要很多基础操作:添加很多jar,配置web.xml,配置Spr...

疯了!Spring 再官宣惊天大漏洞

Spring官宣高危漏洞大家好,我是栈长。前几天爆出来的Spring漏洞,刚修复完又来?今天愚人节来了,这是和大家开玩笑吗?不是的,我也是猝不及防!这个玩笑也开的太大了!!你之前看到的这个漏洞已...

「架构师必备」基于SpringCloud的SaaS型微服务脚手架

简介基于SpringCloud(Hoxton.SR1)+SpringBoot(2.2.4.RELEASE)的SaaS型微服务脚手架,具备用户管理、资源权限管理、网关统一鉴权、Xss防跨站攻击、...

SpringCloud分布式框架&amp;分布式事务&amp;分布式锁

总结本文承接上一篇SpringCloud分布式框架实践之后,进一步实践分布式事务与分布式锁,其中分布式事务主要是基于Seata的AT模式进行强一致性,基于RocketMQ事务消息进行最终一致性,分布式...

SpringBoot全家桶:23篇博客加23个可运行项目让你对它了如指掌

SpringBoot现在已经成为Java开发领域的一颗璀璨明珠,它本身是包容万象的,可以跟各种技术集成。本项目对目前Web开发中常用的各个技术,通过和SpringBoot的集成,并且对各种技术通...

开发好物推荐12之分布式锁redisson-sb

前言springboot开发现在基本都是分布式环境,分布式环境下分布式锁的使用必不可少,主流分布式锁主要包括数据库锁,redis锁,还有zookepper实现的分布式锁,其中最实用的还是Redis分...

拥抱Kubernetes,再见了Spring Cloud

相信很多开发者在熟悉微服务工作后,才发现:以为用SpringCloud已经成功打造了微服务架构帝国,殊不知引入了k8s后,却和CloudNative的生态发展脱轨。从2013年的...

Zabbix/J监控框架和Spring框架的整合方法

Zabbix/J是一个Java版本的系统监控框架,它可以完美地兼容于Zabbix监控系统,使得开发、运维等技术人员能够对整个业务系统的基础设施、应用软件/中间件和业务逻辑进行全方位的分层监控。Spri...

SpringBoot+JWT+Shiro+Mybatis实现Restful快速开发后端脚手架

作者:lywJee来源:cnblogs.com/lywJ/p/11252064.html一、背景前后端分离已经成为互联网项目开发标准,它会为以后的大型分布式架构打下基础。SpringBoot使编码配置...

取消回复欢迎 发表评论: