运维小白 从搭建Centos7虚机 到 安装oracle19c数据库实例(同文档)

2024年 7月 31日 30.3k 0

背景:为了自主学习oracle,我在借鉴网上许多博主的解决办法后,成功完成了从搭建Centos7虚机到安装oracle19c。详细的操作步骤如下(踩到的雷点均已解决):

以Vmware workstation新建虚拟机为例,跳过前面的傻瓜式安装。

一、编辑虚拟机设置,选取下载好的虚拟机镜像。

我的虚拟机配置如下:

运维小白 从搭建Centos7虚机 到 安装oracle19c数据库实例(同文档)-1

第一次安装启动虚拟机报错了。

运维小白 从搭建Centos7虚机 到 安装oracle19c数据库实例(同文档)-2

打开虚拟机目录,编辑.vmx文件,将scsi0.present = "TRUE"改为scsi0.present = "FALSE"。

二、打开虚拟机,操作系统初始化配置。

这里就按照大家的使用习惯选择即可。我这里选择的是中文、有桌面的系统。

运维小白 从搭建Centos7虚机 到 安装oracle19c数据库实例(同文档)-3

三、关闭相关服务。

①关闭NetworkManager.service。首先输入systemctl status NetworkManager查看NetworkManager.service的运行状态,然后输入service NetworkManager stop/systemctl stop NetworkManager来停止该服务,再次输入systemctl status NetworkManager查看服务运行状态,该服务就已停止。新建的虚拟机可输入systemctl disable NetworkManager使该服务无法开机自启。

运维小白 从搭建Centos7虚机 到 安装oracle19c数据库实例(同文档)-4

禁用原因:由于network服务和NetworkManager服务经常会出现冲突,而且一般NetworkManager会比较先启动,所以为了防止NetworkManager的启动导致我们直接配置的网络环境失效,我们需要禁用它!Centos6中,生产环境下 我们一般都是手动配置网络,以静态地址为主不需要系统的网络管理工具,往往会出现在KDE环境中,因此,我们就会将它禁用掉。Centos7后的版本兼容性会更好,也可以使用NetworkManager配置网络。

②关闭防火墙。输入以下命令以停止防火墙服务: systemctl stop firewalld,输入以下命令以禁止防火墙开机自启动: systemctl disable firewalld,确认防火墙已成功关闭。您可以通过输入以下命令来检查防火墙状态: systemctl status firewalld。

运维小白 从搭建Centos7虚机 到 安装oracle19c数据库实例(同文档)-5

禁用原因:Linux 系统使用 iptables 软件作为防火墙,默认规则并不符合我们的需求,需要清除这些规则,所以关闭防火墙然后自定义 iptables 规则。关闭防火墙可以增强虚拟机内部的网络安全性。

③关闭selinux。输入以下命令来修改selinux配置文件,vim /etc/sysconfig/selinux,将SELINUX=enforcing改为SELINUX=disabled。

输入/usr/sbin/sestatus查看selinux状态是否为disabled。

若修改未生效,可reboot或sync重启后再次查看。

运维小白 从搭建Centos7虚机 到 安装oracle19c数据库实例(同文档)-6

禁用原因: 同样 seLinux 服务也是默认启用的,系统上的一些应用程序可能不支持这种安全机制。因此需要禁用或关闭 seLinux。

四、配置虚拟机网络。

这里我选择的是NAT模式。NAT模式的核心功能是将虚拟机的内部IP地址转换成宿主机的外部IP地址。

新建虚机时,将虚拟网卡还原为默认配置,选择Vnet8虚拟网卡,网络适配器模式选为NAT模式,打开虚机后会按照DHCP的方式实现NAT模式。

若想要使用静态IP来实现NAT模式,要找到该虚机的IP地址、网关和掩码,修改配置文件vim /etc/sysconfig/network-scripts/ifcfg-ens*,

运维小白 从搭建Centos7虚机 到 安装oracle19c数据库实例(同文档)-7

将光标移到BOOTPROTO将dhcp改为static 即设置为静态ip,将ONBOOT=no 改为ONBOOT=yes表示将网卡设置为随系统一起启动,在末尾加入一下几行(示例):

运维小白 从搭建Centos7虚机 到 安装oracle19c数据库实例(同文档)-8

IPADDR=192.168.20.150(为虚机分配的静态ip)

NETMASK=225.225.225.0

GATEWAY=192.168.20.2(ip要和默认网关是同源网段)

DNS1=8.8.8.8

接下来重启网络service network restart,再测试 ping baidu.com 看是否可上外网。

运维小白 从搭建Centos7虚机 到 安装oracle19c数据库实例(同文档)-9

五、修改ssh配置文件。

案例:vim /etc/ssh/sshd_config(ssh配置文件修改)

有些机子并没有配置sshd的服务,故也没/etc/init.d/sshd 文件,需先下载相关依赖包。

配置依赖包参考 14安装依赖包。

sshd_config重点关注:

PermitEmptyPasswords #是否允许密码为空的用户远程登录。默认为"no"

PermitRootLogin #是否允许ssh远程登录root帐号,建议为no

ClientAliveInterval 0 #客户端连接数做限制,根据需求设置

UseDNS #指定sshd是否应该对远程主机名进行方向解析,以检查此主机名是否与其IP地址真实对应。默认值为"yes"。个人建议改成no,否则可能会导致ssh连接很慢

[root@localhost ssh]# cat sshd_config

Port 52168 #连接端口改为52168

PermitRootLogin no #不允许ssh远程登录root帐号

PermitEmptyPasswords no #不允许密码为空的用户远程登录

UseDNS no #不进行解析

运维小白 从搭建Centos7虚机 到 安装oracle19c数据库实例(同文档)-10

systemctl list-unit-files --type=service //查看服务列表

发现有名为sshd.service的服务

systemctl restart sshd.service #重启服务,使SSH服务端配置生效

亲测有效!运维小白 从搭建Centos7虚机 到 安装oracle19c数据库实例(同文档)-11

六、安装oracle:

打开Mobaxterm,建立好SSH连接后,下文便是安装oracle的详细步骤了。

七、环境准备:

查看操作系统版本的命令是:cat /etc/redhat-release

运维小白 从搭建Centos7虚机 到 安装oracle19c数据库实例(同文档)-12

上传介质。下载完成后上传到操作系统的预安装目录中。

新建一个目录命名为setupfile:mkdir -p /setupfile

运维小白 从搭建Centos7虚机 到 安装oracle19c数据库实例(同文档)-13

查看目录:ls /

运维小白 从搭建Centos7虚机 到 安装oracle19c数据库实例(同文档)-14

八、上传介质:

以root的身份在系统根目录下建立一个空目录,mkdir -p /setupfile

将安装包通过拖拽的方式,利用MobaXterm的SFTP协议将安装包拉入该目录下。

运维小白 从搭建Centos7虚机 到 安装oracle19c数据库实例(同文档)-15

九、建立用户:

建立必要的用户/用户组和目录。

运维小白 从搭建Centos7虚机 到 安装oracle19c数据库实例(同文档)-16

释义:增加用户组 组id为5001,组名称为dba,依次类推。

利用id oracle 可以看到,/usr/sbin/useradd -u 54321 -g oinstall -G

dba,asmdba,backupdba,dgdba,kmdba,racdba,oper oracle的作用是:

新建一个oracle用户,其uid为54321,主组为oinstall1附属组为dba,asmdba,backupdba,dgdba,kmdba,racdba,oper。

运维小白 从搭建Centos7虚机 到 安装oracle19c数据库实例(同文档)-17

新建用户oracle后,为其设置密码

passwd oracle 为oracle设置密码

运维小白 从搭建Centos7虚机 到 安装oracle19c数据库实例(同文档)-18

十、建立基础目录。建立数据库目录:

mkdir -p /u01/app/oracle/{oraInventory,product/19.2.0/db}

运维小白 从搭建Centos7虚机 到 安装oracle19c数据库实例(同文档)-19

递归修改子目录,子文件。

chown -R oracle:oinstall /u01

chmod -R 775 /u01

运维小白 从搭建Centos7虚机 到 安装oracle19c数据库实例(同文档)-20

十一、修改操作系统参数:

vim /etc/security/limits.conf

运维小白 从搭建Centos7虚机 到 安装oracle19c数据库实例(同文档)-21

soft nproc :单个用户可用的最大进程数量(超过会警告);

hard nproc:单个用户可用的最大进程数量(超过会报错);

soft nofile :可打开的文件描述符的最大数(超过会警告);

hard nofile :可打开的文件描述符的最大数(超过会报错);

reboot 重启后生效

十二、修改内核参数:

vim /etc/sysctl.conf。

kernel.sem = 250 32000 100 128

fs.file-max = 6815744

net.core.rmem_default = 262144

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 1048576

fs.aio-max-nr=1048576

运维小白 从搭建Centos7虚机 到 安装oracle19c数据库实例(同文档)-22

(1)kernel.sem

以kernel.sem = 250 32000 100 128为例:

250是参数semmsl的值,表示一个信号量集合中能够包含的信号量最大数目。

32000是参数semmns的值,表示系统内可允许的信号量最大数目。

100是参数semopm的值,表示单个semopm()调用在一个信号量集合上可以执行的操作数量。

128是参数semmni的值,表示系统信号量集合总数。

(2)fs.file-max

fs.file-max参数决定了系统中所允许的文件句柄最大数目,文件句柄设置代表linux系统中可以打开的文件的数量。

fs.file-max为512 乘以 processes。

如128个process,则file-max=512*128=65536。

(3)net.core.rmem_default

net.core.rmem_default参数表示套接字接收缓冲区大小的缺省值。

(4)net.core.rmem_max

net.core.rmem_max参数表示套接字接收缓冲区大小的最大值。

(5)net.core.wmem_default

net.core.wmem_default参数表示套接字发送缓冲区大小的缺省值。

(6)net.core.wmem _max

net.core.wmem _max参数表示套接字发送缓冲区大小的最大值。

(7)fs.aio-max-nr

fs.aio-max-nr参数限制并发未完成的请求,应该设置避免I/O子系统故障。

运维小白 从搭建Centos7虚机 到 安装oracle19c数据库实例(同文档)-23

使用sysctl -p验证配置是否修改成功。

十三、安装依赖包:

首先需要配置yum源,参考 配置yum源

yum install tigervnc-server tigervnc vnc vnc-server -y

yum -y install compat-libcap1 -y

yum -y install libstdc++-devel -y

yum -y install gcc-c++ -y

yum -y install ksh-20120801 -y

yum -y install glibc-devel-2.17 -y

yum -y install libaio-devel -y

yum -y install compat-libstdc++-33-3.2.3 -y

yum -y install compat-libstdc++ -y

yum install -y readline readline-devel zlib zlib-devel

运维小白 从搭建Centos7虚机 到 安装oracle19c数据库实例(同文档)-24

注:配置yum源

  1. 阿里云yum源

验证网络是否可以连接阿里云镜像

ping mirrors.aliyun.com

①备份原有源配置文件

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

②下载国内yum源配置文件到/etc/yum.repos.d/CentOS-Base.repo

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

  1. 清理yum缓存,并生成新的缓存

yum clean all

yum clean all:这个命令用于清理 YUM 缓存。执行该命令后,YUM 会删除所有已下载的包和头文件缓存,以及任何已启用的插件数据和旧的内核数据。执行这个命令可以释放磁盘空间并删除旧的缓存数据。

yum makecache

yum makecache:这个命令用于重新生成 YUM 缓存。执行该命令后,YUM 会下载软件包清单和元数据,并将其缓存到本地。这样做可以加快后续的软件包查询和安装速度。执行 yum makecache 可以确保你使用的 YUM 源中的最新软件包信息被正确地缓存,以便快速查找和安装软件包。

  1. 手动本地yum源

运维小白 从搭建Centos7虚机 到 安装oracle19c数据库实例(同文档)-25

①创建本地源文件夹:

mkdir -p /media/centos/

将iso文件手动拖拽至/setupfile下

②[root@localhost ~]# find / -name '*.iso'

/setupfile/CentOS-7-x86_64-DVD-2207-02.iso

③挂载镜像文件至指定的目录。

mount /setupfile/CentOS-7-x86_64-DVD-2207-02.iso /media/centos/

④备份原本地源。

cp -rf /etc/yum.repos.d /etc/yum.repos.d_$(date '+%Y%m%d_%H%M%S')

⑤删除默认原本地源。

rm -rf /etc/yum.repos.d/*

⑥配置本地源,创建Media.repo文件。

vi /etc/yum.repos.d/Media.repo

⑦配置如下内容:

[iso]

name=Media

baseurl=file:///media/centos/

gpgcheck=0

enabled=1

按ESC。输入:wq保存完成编写,且完成本地源的配置。

⑧加载本地yum源&测试

# 清除yum缓存

yum clean all

# 缓存本地yum源

yum makecache

# 测试yum本地源

yum list

相比于网址的yum源,本地yum源下载速度更快,但也存在着本地yum不全的问题。

对于安装oracle来说,本人更推荐本地yum源(所需的依赖包本地yum源都有)。

十四、配置oracle环境变量(很容易出现中文双引号,记得修改成英文双引号):

su – oracle 切换到oracle用户

vim .bash_profile 编写oracle用户的环境变量

export PATH

ORACLE_SID=o19c;export ORACLE_SID

ORACLE_UNQNAME=o19c1;export ORACLE_UNQNAME

ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE

ORACLE_HOME=$ORACLE_BASE/product/19.3.0/db; export ORACLE_HOME

NLS_DATE_FORMAT=”YYYY:MM:DDHH24:MI:SS”; export NLS_DATE_FORMAT

NLS_LANG=”SIMPLIFIED CHINESE_CHINA.AL32UTF8”; export NLS_LANG

TNS_ADMIN=$ORACLE_HOME/network/admin; export TNS_ADMIN

ORA_NLS11=$ORACLE_HOME/nls/data; export ORA_NLS11

PATH=.:$JAVA_HOME/bin:${PATH}:$HOME/bin:$ORACLE_HOME/bin:$ORA_CRS_HOME/bin

PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin

export PATH

LD_LIBRARY_PATH=$ORACLE_HOME/lib

LD_LIBRARY_PATH=LD_LIBRARY_PATH:$ORACLE_HOME/oracm/lib

LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib

export LD_LIBRARY_PATH

CLASSPATH=$ORACLE_HOME/JRE

CLASSPATH=CLASSPATH:ORACLE_HOME/jlib

CLASSPATH=CLASSPATH:ORACLE_HOME/rdbms/jlib

CLASSPATH=CLASSPATH:ORACLE_HOME/network/jlib

export CLASSPATH

export TEMP=/tmp

export TMPDIR=/tmp

umask 000

#alias s=’rlwrap sqlplus / as sysdba’

#alias sqlplus=’rlwrap sqlplus’

在安装依赖前,先注释掉

在配环境变量的时候注意要按照自己的安装路径来写。

source .bash_profile 启用oracle环境配置

利用env查看oracle环境配置是否成功

运维小白 从搭建Centos7虚机 到 安装oracle19c数据库实例(同文档)-26

十五、解压安装文件zip到/u01/app/oracle/product/19.3.0/db,并且对解压文件授权:

我犯了一个低级错误:unzip不能识别带空格的名字

运维小白 从搭建Centos7虚机 到 安装oracle19c数据库实例(同文档)-27

我的方向却反了,我以为unzip不能解压大文件,故去寻找其他解压方法。

实际上,将oracle压缩包重命名(不带空格,如Oracle1.zip),即可直接解压。

cd /u01/app/oracle/product/19.3.0/db 切换到安装包所在的文件夹下:

unzip Oracle1.zip 解压安装包

chown oracle:oinstall -R * 给所有的解压文件赋权。

十六、服务器安装图形界面:

这里我采用了导师建议的方法,利用MobaXterm实现服务器安装图形化界面。

运维小白 从搭建Centos7虚机 到 安装oracle19c数据库实例(同文档)-28

在我本机上:su – oracle

export DISPLAY=192.168.1.195:0.0

/u01/app/oracle/product/19.2.0/db/runInstaller

运维小白 从搭建Centos7虚机 到 安装oracle19c数据库实例(同文档)-29

十七、图形界面安装oracle:

安装Oracle数据库

  1. 选择创建并配置单实例数据库

运维小白 从搭建Centos7虚机 到 安装oracle19c数据库实例(同文档)-30

2.选择server class(服务器类)

运维小白 从搭建Centos7虚机 到 安装oracle19c数据库实例(同文档)-31

3.选择企业版

运维小白 从搭建Centos7虚机 到 安装oracle19c数据库实例(同文档)-32

4.这里前面都配好了

运维小白 从搭建Centos7虚机 到 安装oracle19c数据库实例(同文档)-33

5.

运维小白 从搭建Centos7虚机 到 安装oracle19c数据库实例(同文档)-34

6.选择OLTP

运维小白 从搭建Centos7虚机 到 安装oracle19c数据库实例(同文档)-35

7.默认下一步(依照着oracle环境变量定义数据库名字)

运维小白 从搭建Centos7虚机 到 安装oracle19c数据库实例(同文档)-36

8.可以保持默认的内存参数

运维小白 从搭建Centos7虚机 到 安装oracle19c数据库实例(同文档)-37

9.这里我的内存不够大了,所以换到了其他位置。(我在mnt/data重新挂载了一块硬盘)

运维小白 从搭建Centos7虚机 到 安装oracle19c数据库实例(同文档)-38

10.

运维小白 从搭建Centos7虚机 到 安装oracle19c数据库实例(同文档)-39

11.启用恢复

运维小白 从搭建Centos7虚机 到 安装oracle19c数据库实例(同文档)-40

问题:之前环境变量里配置的路径容量不足

解决办法:新加硬盘,重新挂载/mnt/data,将oracle安到这里

12.选择统一用户名密码。

运维小白 从搭建Centos7虚机 到 安装oracle19c数据库实例(同文档)-41

13.默认权限

运维小白 从搭建Centos7虚机 到 安装oracle19c数据库实例(同文档)-42

14.最后一步输入操作系统root的密码

运维小白 从搭建Centos7虚机 到 安装oracle19c数据库实例(同文档)-43

15.根据检查结果做相应的调整

运维小白 从搭建Centos7虚机 到 安装oracle19c数据库实例(同文档)-44

警告消除后,重新安装即可。

十八、启动数据库实例:

运维小白 从搭建Centos7虚机 到 安装oracle19c数据库实例(同文档)-45

sqlplus / as sysdba 使用 sqlplus 登录连接数据库

startup startup 启动数据库实例

select status from v$instance; 查看数据库实例状态

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论