Oracle单机部署:GI安装

news2024/11/25 7:00:06

Oracle单机部署:GI安装

  • 存储配置
  • ASM磁盘空间评估
  • GI单机安装配置
  • GI图形化安装流程
  • 安装后测试

🐬 使用grid用户来安装GI。

存储配置

Oracle存储支持Oracle ASM、Oracle ACFS、本地文件系统、网络文件系统(NFS/NAS)、Oracle Memory Speed这五种方案。这里我们采用Oracle ASM。

使用ASM需要安装Oracle Grid Infrastructure(以下简称GI或Grid)。GI提供以下两种重要管理功能:

  • Oracle自动存储管理(ASM):Oracle数据库文件的卷管理器和文件系统,支持单实例和RAC架构。
  • Oracle Restart功能:负责监控和(在故障时)重启数据库实例、数据库监听器、ASM实例,支持单实例数据库和ASM实例。

ASM磁盘空间评估

为了评估ASM的存储需求,需要确定以下几个事项:

  1. 确定是否将ASM磁盘组同时用于数据库文件和恢复文件,或者仅用于数据库文件。数据库文件包括数据文件、控制文件、redo日志文件、系统参数文件和密码文件。如果在安装数据库时没有启用恢复功能,则可以在安装完成后通过修改DB_RECOVERY_FILE_DEST参数来启用快速恢复区。

  2. 选择ASM磁盘组的冗余级别(redundancy level):

  • External redundancy:Oracle ASM不管理磁盘组镜像,冗余由外部存储系统实现(比如RAID)。有效的磁盘空间等于所有磁盘空间之和。
  • Normal redundancy:Oracle ASM为每份数据文件提供一份镜像数据,有效的磁盘空间等于所有磁盘空间之和的一半。每个磁盘组至少需要两块磁盘(或者两个故障组)。
  • High redundancy:Oracle ASM为每份数据文件提供两份镜像数据,有效的磁盘空间等于所有磁盘空间之和的1/3。每个磁盘组至少需要三块磁盘(或者三个故障组)。
  • Flex redundancy:弹性冗余,可以选择为每份数据文件提供零份、一份或者两份镜像数据。每个磁盘组至少需要三块磁盘(或者三个故障组)。
  • Extended redundancy:与Flex redundancy类似,可用于Oracle扩展集群。
  1. 评估数据文件和恢复文件所需的磁盘空间总量。下面给出了non-CDB数据库在不同冗余等级时的最小存储空间需求。
冗余等级最小磁盘数量数据文件所需最小空间恢复文件所需最小空间
External12.5GB7.5GB
Normal25.2GB15.6GB
High37.6GB22.8GB
  1. 可选项:确认ASM磁盘组中的故障组(failure groups)。

在Normal冗余级别下,如果一个磁盘组中的两个故障组都连接到了同一个HBA卡(Host bus adapter),那么一旦HBA卡故障,整个磁盘组就不可用了。为避免HBA单点故障,建议使用两个HBA卡,并在创建磁盘组时,为两个故障组分别指定连接到不同HBA卡的磁盘。

  1. 如果没有合适的磁盘组,添加磁盘来创建新的磁盘组(disk group)。

添加到ASM磁盘组中的所有磁盘的容量和性能必须相同。这些磁盘的属主必须是GI的安装用户。不要将单个物理磁盘上的多个分区作为存储设备添加到ASM磁盘组中。不建议将逻辑卷作为存储设备添加到ASM磁盘组中。

GI单机安装配置

创建Oracle Base和Oracle Inventory目录:

[root@oraclehost ~]# mkdir -p /u01/app/oracle
[root@oraclehost ~]# mkdir -p /u01/app/oraInventory
[root@oraclehost ~]# chown -R oracle:oinstall /u01/app/oracle
[root@oraclehost ~]# chown -R grid:oinstall /u01/app/oraInventory
[root@oraclehost ~]# chmod -R 775 /u01/app

创建Grid Home目录,将Grid安装包拷贝到Grid家目录并解压:

[root@oraclehost ~]# mkdir -p /u01/app/oracle/product/19.0.0/grid
[root@oraclehost ~]# cp /install/LINUX.X64_193000_grid_home.zip /u01/app/oracle/product/19.0.0/grid
[root@oraclehost ~]# chown -R grid:oinstall /u01/app/oracle/product/19.0.0/grid

[root@oraclehost ~]# su - grid
[grid@oraclehost ~]$ cd /u01/app/oracle/product/19.0.0/grid
[grid@oraclehost grid]$ unzip -q LINUX.X64_193000_grid_home.zip
[grid@oraclehost grid]$ rm LINUX.X64_193000_grid_home.zip

创建Grid Base目录,用于存储ASM和Clusterware相关的诊断文件和日志:

[root@oraclehost ~]# cd /u01/app/
[root@oraclehost app]# mkdir grid
[root@oraclehost app]# chown -R grid:oinstall grid/

以root身份设置ORACLE_HOMEORACLE_BASE两个Shell变量:

[root@oraclehost ~]# set ORACLE_HOME=/u01/app/oracle/product/19.0.0/grid
[root@oraclehost ~]# set ORACLE_BASE=/tmp
[root@oraclehost ~]#
[root@oraclehost ~]# set | grep ORACLE
ORACLE_BASE=/tmp
ORACLE_HOME=/u01/app/oracle/product/19.0.0/grid

:官方文档里是通过set命令设置ORACLE_HOMEORACLE_BASE两个变量的。根据实际安装过程中的报错信息判断应该是使用export命令定义将其为环境变量。

以root身份配置ORACLE_HOMEORACLE_BASE两个环境变量:

[root@oraclehost bin]# export ORACLE_HOME=/u01/app/oracle/product/19.0.0/grid
[root@oraclehost bin]# export ORACLE_BASE=/tmp
[root@oraclehost bin]#
[root@oraclehost bin]# env | grep ORACLE
ORACLE_BASE=/tmp
ORACLE_HOME=/u01/app/oracle/product/19.0.0/grid

通过ASMCMD的afd_label命令来标记要添加到ASM的磁盘:

[root@oraclehost bin]# cd /u01/app/oracle/product/19.0.0/grid/bin
[root@oraclehost bin]# ./asmcmd afd_label DATA1 /dev/vdb --init

检查标记结果:

[root@oraclehost bin]# ./asmcmd afd_lslbl /dev/vdb
--------------------------------------------------------------------------------
Label                     Duplicate  Path
================================================================================
DATA1                                 /dev/vdb

最后一定要删除ORACLE_BASE变量:

[root@oraclehost bin]# unset ORACLE_BASE
[root@oraclehost bin]#
[root@oraclehost bin]# env | grep ORACLE
ORACLE_HOME=/u01/app/oracle/product/19.0.0/grid
[root@oraclehost bin]#
[root@oraclehost bin]# set | grep ORACLE
ORACLE_HOME=/u01/app/oracle/product/19.0.0/grid

登录到grid用户,执行gridSetup.sh脚本来启动GI安装向导:

[root@oraclehost bin]# su - grid
[grid@oraclehost ~]$ cd /u01/app/oracle/product/19.0.0/grid
[grid@oraclehost grid]$ ./gridSetup.sh
ERROR: Unable to verify the graphical display setup. This application requires X display. Make sure that xdpyinfo exist under PATH variable.

No X11 DISPLAY variable was set, but this program performed an operation which requires it.

为grid用户配置X display权限:

[root@oraclehost ~]# cp /root/.Xauthority /home/grid/
[root@oraclehost ~]# chown -R grid:oinstall /home/grid
[root@oraclehost ~]# echo $DISPLAY
localhost:10.0
[root@oraclehost ~]# su - grid
[grid@oraclehost ~]$ export DISPLAY=localhost:10.0
[grid@oraclehost ~]$ xhost +
access control disabled, clients can connect from any host

重新运行GI安装向导来打开图形化安装界面:

[grid@oraclehost ~]$ cd /u01/app/oracle/product/19.0.0/grid
[grid@oraclehost grid]$ ./gridSetup.sh

GI图形化安装流程

  1. 选择单机安装(Standalone Server)。

在这里插入图片描述

  1. 创建ASM磁盘组:磁盘组名称这里我们指定为DATADG;由于只有一块磁盘,冗余程度选择External。在Change Discovery Path里指定扫描的磁盘路径,勾选扫描出来的磁盘(我这里是/dev/vdb)。建议勾选最下面的Configure Oracle ASM Filter Driver,如果报错不支持,则取消勾选该项。

在这里插入图片描述

  1. 为ASM实例的管理用户和监控用户设置密码。

在这里插入图片描述

  1. 为ASM选择事先创建好的管理用户组(需要事先将这些用户组设置为Grid安装用户的次要用户组)。

在这里插入图片描述

  1. 设置GI安装的Oracle Base目录。Base目录用于存放ASM和Clusterware的诊断文件和管理日志,而GI安装的Oracle Home目录则用于存放GI软件。这里我们已经事先创建了Base目录和Home目录,并将权限赋予GI安装用户。

在这里插入图片描述

  1. 指定Inventory目录(已经事先创建)。

在这里插入图片描述

  1. 在GI安装过程中,有些命令需要以root权限执行。在这一步输入root密码或者赋予GI安装用户sudo权限。

在这里插入图片描述

  1. 等待安装向导程序完成安装前的检查。

在这里插入图片描述

这里Fixable一列为Yes对应的是安装程序可以自动解决的问题,No对应的是需要手动解决的问题。

yum install -y gcc-c++.x86_64
yum install -y nfs-utils.x86_64

手动安装缺少的包后,点击Fix & Check Again自动解决其他问题。

  1. 核对安装向导检查后给出的信息。确认无误后,点击Install开始GI安装。

在这里插入图片描述

  1. 处理安装报错:[INS_20802] Oracle Net Configuration Assistant Failed。这里检查对应日志没有发现有用信息,点击Retry重试后通过。

在这里插入图片描述

  1. 处理安装报错:[INS_20802] Automatic Storage Management Configuration Assistant Failed

在这里插入图片描述

这里检查对应安装日志后,发现如下错误信息:

[root@oraclehost app]# tail -n 15 /tmp/GridSetupActions2022-12-11_03-15-05PM/gridSetupActions2022-12-11_03-15-05PM.log
INFO:  [Dec 11, 2022 4:09:42 PM] Skipping line:
INFO:  [Dec 11, 2022 4:09:42 PM] [FATAL] [DBT-30002] Disk group DATADG creation failed.
INFO:  [Dec 11, 2022 4:09:42 PM] Skipping line: [FATAL] [DBT-30002] Disk group DATADG creation failed.
INFO:  [Dec 11, 2022 4:09:42 PM] ORA-15018: diskgroup cannot be created
INFO:  [Dec 11, 2022 4:09:42 PM] Skipping line: ORA-15018: diskgroup cannot be created
INFO:  [Dec 11, 2022 4:09:42 PM] ORA-15031: disk specification '/dev/vdb' matches no disks
INFO:  [Dec 11, 2022 4:09:42 PM] Skipping line: ORA-15031: disk specification '/dev/vdb' matches no disks
INFO:  [Dec 11, 2022 4:09:42 PM] ORA-15025: could not open disk "/dev/vdb"
INFO:  [Dec 11, 2022 4:09:42 PM] Skipping line: ORA-15025: could not open disk "/dev/vdb"
INFO:  [Dec 11, 2022 4:09:42 PM] ORA-27041: unable to open file
INFO:  [Dec 11, 2022 4:09:42 PM] Skipping line: ORA-27041: unable to open file
INFO:  [Dec 11, 2022 4:09:42 PM] Skipping line:
INFO:  [Dec 11, 2022 4:09:42 PM] Skipping line:
INFO:  [Dec 11, 2022 4:09:42 PM] Skipping line:
INFO:  [Dec 11, 2022 4:09:42 PM] Completed Plugin named: asmca

看上去是GI安装用户没有访问ASM磁盘的权限。将/dev/vdb的属主修改为GI安装用户:

[root@oraclehost app]# ll /dev/vdb
brw-rw---- 1 root disk 253, 16 Dec 11 14:16 /dev/vdb
[root@oraclehost app]#
[root@oraclehost app]# chown grid:oinstall /dev/vdb
[root@oraclehost app]# ll /dev/vdb
brw-rw---- 1 oracle oinstall 253, 16 Dec 11 14:16 /dev/vdb
  1. 安装完成。

在这里插入图片描述

安装后测试

登录用户,定义环境变量:

[root@oraclehost ~]# su - grid
[grid@oraclehost ~]$ env | grep ORACLE
[grid@oraclehost ~]$ echo 'export ORACLE_SID=+ASM' >> .bash_profile
[grid@oraclehost ~]$ echo 'export ORACLE_HOME=/u01/app/oracle/product/19.0.0/grid' >> .bash_profile
[grid@oraclehost ~]$ echo 'export PATH=$ORACLE_HOME/bin:$PATH' >> .bash_profile
[grid@oraclehost ~]$ . ./.bash_profile
[grid@oraclehost ~]$ 
[grid@oraclehost ~]$ env | grep ORACLE
ORACLE_SID=+ASM
ORACLE_HOME=/u01/app/oracle/product/19.0.0/grid

执行ASMCMD命令来列出磁盘组:

[grid@oraclehost ~]$ asmcmd lsdg
State    Type    Rebal  Sector  Logical_Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Voting_files  Name
MOUNTED  EXTERN  N         512             512   4096  4194304     81920    81820                0           81820              0             N  DATADG/

如果是在阿里云服务器中安装的GI,利用自定义镜像新建实例后由于磁盘发生变化,lsdg命令的输出可能不会显示任何结果。我们可以检查磁盘的属主后重新挂载磁盘组:

# 修改磁盘属组
[root@oraclehost app]# chown grid:oinstall /dev/vdb

[root@oraclehost app]# su - grid
[grid@oraclehost ~]$ env | grep ORACLE

# 挂载磁盘组DATADG
[grid@oraclehost ~]$ asmcmd mount DATADG

# 检查磁盘组和ASM磁盘
[grid@oraclehost ~]$ asmcmd lsdg
[grid@oraclehost ~]$ asmcmd lsdsk

References
【1】https://docs.oracle.com/en/database/oracle/oracle-database/19/ladbi/disk_space_requirements_for_oracle_asm.html#GUID-DE737EEE-A352-4DC3-BB85-8CADE800E6C1
【2】https://docs.oracle.com/en/database/oracle/oracle-database/19/ladbi/installing-oracle-grid-infrastructure-for-a-standalone-server-with-a-new-database-installation.html#GUID-0B1CEE8C-C893-46AA-8A6A-7B5FAAEC72B3
【3】https://docs.oracle.com/en/database/oracle/oracle-database/19/ladbi/disk_space_requirements_for_oracle_asm.html#GUID-DE737EEE-A352-4DC3-BB85-8CADE800E6C1
【4】https://docs.oracle.com/en/database/oracle/oracle-database/19/ladbi/installing-oracle-grid-infrastructure-for-a-standalone-server-with-a-new-database-installation.html#GUID-0B1CEE8C-C893-46AA-8A6A-7B5FAAEC72B3
【5】https://docs.oracle.com/en/database/oracle/oracle-database/19/ladbi/testing-the-oracle-automatic-storage-management-installation.html#GUID-125CBE93-C37C-46B6-A3AD-03D8AD210EFD
【6】https://docs.oracle.com/en/database/oracle/oracle-database/19/cwlin/about-the-oracle-home-directory-for-oracle-grid-infrastrucrure.html#GUID-C07AF84D-F2E4-41F0-9205-64BAA61C0111
【7】https://docs.oracle.com/en/database/oracle/oracle-database/19/cwlin/about-the-oracle-base-directory-for-the-grid-user.html#GUID-A36535B4-EB3C-44C9-A973-8BAFCAA2F2D6
【8】https://docs.oracle.com/en/database/oracle/oracle-database/19/ostmg/asmcmd-diskgroup-commands.html#GUID-7D948582-EA82-48D3-A797-392D3B82A0AD
【9】https://docs.oracle.com/en/database/oracle/oracle-database/19/ladbi/configuring-oracle-asm-disk-groups-manually-using-oracle-asmca.html#GUID-F1A4AB04-EB12-49F2-896D-7719F877DFDD

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/84287.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

RK3588平台开发系列讲解(RTC篇)RTC的使用

平台内核版本安卓版本RK3588Linux 5.10Android 12文章目录 一、RTC简介二、HYM8563驱动配置2.1、设备树配置2.1、驱动代码三、RTC的使用3.1、SYSFS接口3.2、PROCFS接口3.3、IOCTL接口沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇将介绍RK3588平台RTC驱动及使用方…

玩以太坊链上项目的必备技能(基本类型转换以及推断-Solidity之旅六)

基本类型之间的转换 熟悉过其他编程语言的您,对基本类型之间的转换并不陌生吧!当然,这基本类型进行转换可分为隐式转换和显示转换。 隐式转换 Solidity 支持隐式转换,通过编译器自动进行转换,而不要开发人员的干涉&…

信道估计算法误码率仿真,对比不同导频长度,对比不同信道估计算法包括CS-OMP,LS,MMSE

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 所谓信道估计,就是从接收数据中将假定的某个信道模型的模型参数出来的过程。如果信道是线性的话,那么信道估计就是对系统冲激响应进行估计。 CS-OMP 正则正交匹配追踪(Re…

分布式操作系统 - 5.分布式命名管理

文章目录1.基本概念2.非结构化命名管理2.1 简单的实体定位方法:广播和多播方法(1)广播方法(broadcast)(2)多播方法(multicast)(3)问题&#xff1a…

图形API学习工程(30):尝试使用panorama来代替Cubemap作为全景图

工程GIT地址:https://gitee.com/yaksue/yaksue-graphics 前言 为了能得到全方位的光照数据,我之前学习了使用CubeMap作为全景图。CubeMap包含六张贴图对应了上下左右前后六个方向的数据。但是最近在下载全景图的资源时,看到很多并非是CubeM…

Python基于Django的毕业设计论文提交过程管理系统

项目介绍 在各学校的教学过程中,django过程管理系统是一项非常重要的事情。随着计算机多媒体技术的发展和网络的普及。采用当前流行的B/S模式以及3层架构的设计思想通过Python技术来开发此系统的目的是建立一个配合网络环境的django过程管理系统的平台,这…

c#入门-访问基类成员

调用基类构造器 在构建派生类前,会首先构建出完整的基类。 即便是派生类无权访问的成员,也会存在。 因此才能保证派生类能完全地当作基类来使用。 因此,在执行派生类的构造器前,首先需要先调用基类的构造器。 而如果基类没有&am…

017 | 精准扶贫视野下非遗传承的研究与启示——以三峡皮影为例 | 大学生创新训练项目申请书 | 极致技术工厂

(一)研究目的 百年党建视域下,全面建成小康社会的历史目标已成功达成,但东西部经济发展的不平衡、不平均依旧是新时代发展中亟需解决的问题。坚持党的领导,响应西部大开发的战略号召,本团队深入探访于2018…

S2SH药膳馆会员管理系统计算机专业毕业论文java毕业设计开题报告

💖💖更多项目资源,最下方联系我们✨✨✨✨✨✨ 目录 Java项目介绍 资料获取 Java项目介绍 计算机毕业设计java毕设之S2SH药膳馆会员管理系统-IT实战营_哔哩哔哩_bilibili项目资料网址: http://itzygogogo.com软件下载地址:http://itzygog…

基于jsp+mysql+ssm足球新闻发布网站-计算机毕业设计

项目介绍 同完成整个足球新闻发布系统的设计开发。系统实现的功能主要包括:前台浏览足球新闻的功能;后台用户在成功登录该系统的后台时,可以对用户、足球新闻类别、足球新闻、留言进行添加、修改和删除等功能;以及对用户名密码等…

Arthas(Java 应用诊断利器)

文章目录Arthas使用背景Arthas(阿尔萨斯)能做什么?Arthas Spring Boot StarterArthas Arthas 是由Alibaba开源的Java监控诊断工具,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情…

Pytorch中的损失函数

L1损失函数:又称,L1 范数损失、最小绝对值偏差(LAD)、最小绝对值误差(LAE) MAE也是指L1损失函数。 把目标值 yi 与模型输出(估计值) f(xi) 做绝对值得到的误差。 通常用于回归任务、…

uniapp实战仿写网易云音乐(二)—promise接口请求的封装和主页功能的实现,组件封装

文章目录前言promise请求接口的封装主入口功能的实现:推荐歌单模块新碟新歌模块精选视频模块最后前言 本篇文章继续完成上篇文章的部分,主要实现prromise接口的封装和首页主入口的实现 promise请求接口的封装 在上篇文章中请求我们是这样写的&#xf…

(详细及解决方法)关于Vue.prototype中定义的变量不是响应式

目录 一、背景 二、原因 三、解决方法 四、扩展 当时第一眼看到下面的图,就想这个不会是写错了吧,咋还能这样写,在这里我承认,我以前说话确实很大声了 一、背景 在项目中需要将全局变量存放到Vue的实例对象上面 Vue.protot…

【历史上的今天】12 月 13 日:时代杂志将“你”评为年度人物;苹果发布 AirPods;互联网传出欧洲

整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来。 今天是 2022 年 12 月 13 日,国家公祭日。从 2014 年开始,12 月 13 日被定为缅怀先烈的国家公祭日,网站也会在这一天变为全灰色&#xff0c…

墙裂推荐c++的学习网站(OJ)

目录 墙裂推荐OJ 墙裂推荐学习软件 墙裂推荐线上编辑器 墙裂推荐OJ 要想学好c,更好的OJ少不了啊!!! 为了让诸多小白们有更好的学习测试环境,特此准备了一下几个OJ, 1.Openjudge 网站: OpenJudge openjudge网站中储存着大量的题目,而且还提前帮你们把板块分好了,就问你们…

[Java] HashMap是如何实现的?扩容机制是什么?树化机制知道吗?结合源码带你理解HashMap的原理。

文章目录前言HashMap是什么?Map接口散列表(HashTable)HashMap的扩容机制扩容机制?扩谁的容?HashMap的容量(Capacity)属性HashMap的扩容因子(load factor)属性HashMap的树…

【js逆向基础】crypto 之 hash和hmac

▒ 目录 ▒🛫 导读需求开发环境1️⃣ hash对象创建Hash常见方法例封装成 stream 实例封装成管道流(piped stream)2️⃣ hmac对象创建Hmac常见方法例封装成 stream 实例封装成管道流(piped stream)🛬 文章小结📖 参考资…

mysql学习---流程控制函数(条件判断)case when ,if使用

文章目录流程控制函数流程控制函数的介绍流程函数的使用流程控制函数 流程控制函数的介绍 if(value,value1,value2) 解释:如果value的结果为true ,返回value1,否则返回value2 例如: select if(1>0,正确,错误) ->正确ifnull(value1,val…

Babel快速入门

一、简介 Babel是一个广泛使用的转码器,可以将ES6代码转为ES5代码,从而在现有环境执行执行。 这意味着,你可以现在就用 ES6 编写程序,而不用担心现有环境是否支持。 二、安装 安装命令行转码工具 Babel提供babel-cli工具&#xff…