侧边栏壁纸
博主头像
与晚风述往事博主等级

万般皆下品,唯有读书高。

  • 累计撰写 149 篇文章
  • 累计创建 29 个标签
  • 累计收到 7 条评论

目 录CONTENT

文章目录

银河麒麟V10安装Oracle 19C

与晚风述往事
2022-07-14 / 0 评论 / 0 点赞 / 190 阅读 / 4,830 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2022-07-22,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

环境说明

服务器操作系统:银河麒麟V10 SP2(Kylin Server 10 SP2 x86_64)
数据库版本:Oracle 19C(19.3.0.0.0)
SSH工具:Mobaxterm v22.1

配置初始参数

1、下载Oracle安装包

打开Oracle官网,然后下载Linux_x86_64的安装包。

image-1657705758933

2、创建用户及用户组

使用Mobaxterm工具连接到服务器后,使用root用户创建oracle所需的用户和用户组。

# 创建oinstall用户组
[root@localhost ~]# groupadd oinstall
# 创建dba用户组
[root@localhost ~]# groupadd dba
# 创建oracle并将其加入到oinstall组和dba组中
[root@localhost ~]# useradd -g oinstall -g dba -m oracle
# 设置oracle用户的登录密码
[root@localhost ~]# passwd oracle

3、创建数据库软件存储目录

用户和用户组创建好之后,创建软件存储目录,用来存储Oracle可执行文件及数据文件等。注意,此目录不能是/home/oracle用户家目录。

# 创建Oracle基目录
[root@localhost ~]# mkdir -p /u01/oracle
# 创建Oracle家目录
[root@localhost ~]# mkdir -p /u01/oracle/19.3.0
# 创建Oracle产品清单目录
[root@localhost ~]# mkdir -p /u01/oraInventory
# Oracle基目录授权给oracle用户
[root@localhost home]# chown -R oracle:oinstall /u01/oracle
# Oracle产品清单目录授权给oracle用户
[root@localhost home]# chown -R oracle:oinstall /u01/oraInventory

4、安装Oracle必须的依赖包

由于银河麒麟V10对标的应该是CentOS 8的内核,而CentOS 8与redhat完全一致,因此我们根据官方文档上介绍redhat 8所需的依赖包,来安装相应的依赖。

yum install bc binutils elfutils-libelf elfutils-libelf-devel fontconfig-devel glibc glibc-devel ksh libaio libaio-devel libXrender libX11 libXau libXi libXtst libgcc librdmacm libstdc++ libstdc++-devel libxcb libibverbs make policycoreutils policycoreutils-python-utils smartmontools sysstat

除上面的这些依赖外,还有一个libnsl依赖没在系统镜像包中。因此,我们通过访问银河麒麟的依赖包下载地址下载它,并上传至服务器中。注意,libnsl必须与glibc依赖的版本一致。

下载地址:https://update.cs2c.com.cn/NS/V10/V10SP2/os/adv/lic/base/x86_64/Packages/
image-1657764269601

# 安装libnsl依赖
[root@localhost ~]# rpm -ivh libnsl-2.28-49.p02.ky10.x86_64.rpm

5、临时关闭firewalld、禁用selinux

依赖包安装完成后,我们禁用掉firewalld和selinux。

# 关闭firewalld
[root@localhost ~]# systemctl stop firewalld.service
# 禁用firewalld自启动
[root@localhost ~]# systemctl disable firewalld.service
# 禁用selinux
[root@localhost ~]# setenforce 0
# 禁止selinux自启动
[root@localhost ~]# sed -i 's#SELINUX=.*#SELINUX=disabled#' /etc/selinux/config

6、配置内核参数

配置内核参数,避免因参数过小导致的oracle运行异常或性能问题。

[root@localhost ~]# vim /etc/sysctl.conf

这里与CentOS略有不同,银河麒麟默认会帮我们配置一些关于ipv4的参数。

fs.file-max = 6815744
fs.aio-max-nr = 1048576
kernel.shmall = 2097152
kernel.shmmax = 2147483648
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= 1048576

参数说明:

  • fs.file-max 最大打开文件数
  • kernel.shmall 共享内存的总量,8G内存设置:2097152*4k/1024/1024
  • kernel.shmmax 最大共享内存的段大小,一般设置为服务器的80%内存总大小

立即生效

[root@localhost ~]# sysctl -p

7、配置用户资源限制

配置以下参数,避免oracle用户受到系统限制,导致数据库在运行中因资源调度而报错。

[root@localhost ~]# vim /etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

参数说明:

  • oracle soft nproc 单个用户可用进程数软限制
  • oracle hard nproc 单个用户可用进程数硬限制
  • oracle soft nofile 打开文件描述符软限制
  • oracle hard nofile 打开文件描述符硬限制

8、配置用户环境变量

[root@localhost ~]# vim /home/oracle/.bash_profile

新增以下参数

export ORACLE_BASE=/u01/oracle
export ORACLE_HOME=/u01/oracle/19.3.0
export ORACLE_SID=orcl
export ORACLE_TERM=xterm
export PATH=$ORACLE_BASE/bin:/usr/sbin:$PATH
export LD_LIBRARY_PATH=$ORACLE_BASE/lib:/lib:/usr/lib
export LANG=C
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

参数说明:

  • ORACLE_BASE 数据库基目录
  • ORACLE_HOME 数据库软件目录
  • ORACLE_SID 数据库SID
  • ORACLE_TERM 窗口模式安装
  • PATH 系统环境变量
  • LD_LIBRARY_PATH 链接库目录
  • LANG 避免乱码
  • NLS_LANG 客户端字符集

重加载环境变量

[root@localhost ~]# source /home/oracle/.bash_profile

9、配置X11-forwarding转发

在CentOS上X11转发是默认启动的,而在银河麒麟上,默认是关闭的,因此我们要将它打开,才能以图型界面的形式来安装。

[root@localhost ~]# vim /etc/ssh/sshd_config

将X11Forwarding值修改为yes,修改后保存并退出。

X11Forwarding yes

image-1657769500895

重启服务器

[root@localhost ~]# reboot

10、上传19C安装包并解压

将下载好的19C安装包上传到/u01目录下,然后将其解压到/u01/oracle。

# 进入/u01目录
[root@localhost ~]# cd /u01
# 解压
[root@localhost u01]# unzip LINUX.X64_193000_db_home.zip -d /u01/oracle
# 将/u01/oracle授权给oracle用户
[root@localhost u01]# chown -R oracle:oinstall /u01/oracle

安装Oracle软件

1、伪装redhat系统、调用图型界面

Oracle是不支持在银河麒麟上安装的,但由于银河麒麟也属于redhat系,我们就能伪装自己是redhat系统,从而避过Oracle的检测。注意,必须使用oracle用户连接到服务器,而不是使用su - oracle 来切换到oracle用户。

# 伪装redhat 7.6
[oracle@localhost ~]$ export CV_ASSUME_DISTID=RHEL7.6
# 进入/u01/oracle/19.3.0目录下
[oracle@localhost ~]$ cd /u01/oracle/19.3.0
# 调用图型界面
[oracle@localhost 19.3.0]$ ./runInstaller

2、选项配置

调用界面后,首先会询问你怎么安装,提供两种方式:

  • 创建并配置单实例数据库
  • 只安装软件

通常是建议选择第二个【只安装软件】,安装完软件后,我们再手动去配置监听和实例。

image-1657780391169

3、数据库安装选项

再询问安装的数据库类型,有两种类型:

  • 单实例数据库安装
  • Oracle真实应用集群(RAC)安装

如果是单实例,就选择默认选项即可;反之,则选择Oracle集群安装。

image-1657780550363

4、选择数据库版本

必须选默认选项,如果选择第二个选择,则数据库会缺少一部分功能。

image-1657780676375

5、选择安装路径

如果oracle用户变量没有配置错误,则该项会根据环境变量来显示,我们仅需要确认路径正确即可。

image-1657780850337

6、选择Inventory路径

指定产品清单目录及用户组名

image-1657780972860

7、操作系统组配置

默认,不需要做其他修改。

image-1657781143696

8、root脚本执行

Oracle在软件安装期间,会使用到root用户权限去配置一些操作。

如果想要在安装时不再弹出提示,让Oracle自动运行的话,就选中选项,然后配置root用户的密码,如此Oracle就会使用root密码自动去执行这些操作。

我这里为了演示,就不选中了。

image-1657781317128

9、总结

最后,Oracle列出配置的大概信息,如:数据库版本、Oracle base、软件位置等。

我们最后简单看一下,如果没有问题,就点击安装即可。

image-1657781707120

10、执行root脚本

这是在没有选中自动执行脚本的情况下,会弹出提示,让你手动去执行这两个shell脚本。

image-1657782155167

# root用户执行
[root@localhost ~]# /u01/oraInventory/orainstRoot.sh
# root用户执行
[root@localhost ~]# /u01/oracle/19.3.0/root.sh

image-1657782282281

11、软件安装完成

最后,Oracle数据库软件安装完成。

image-1657782327263

安装监听

1、启动网络配置助手

对于能够调用图型界面来说,肯定是启动Net配置助手更方便。

[oracle@localhost ~]$ netca

2、配置项

Net配置助手有以下选项可以配置:

  • 监听器配置
  • 命名方法配置
  • 本地网络服务名称配置
  • 目录使用配置

初次安装数据库肯定是要配置一个监听器。
image-1657782861434

3、监听器配置项

监听器也同样有4个选项:

  • 添加监听器
  • 重新配置监听器
  • 删除监听器
  • 重命名监听器

首次肯定是选择【添加监听器】。

image-1657782893837

4、配置监听器名称

为监听器指定一个名称。

image-1657782989154

5、配置监听器使用的协议

配置监听器可用的协议列表。

image-1657783021511

6、配置监听器使用的端口

配置监听器使用的端口。如果你认为默认的1521端口所有人都知道,有被攻击的可能,也可以自定义一个端口号。

image-1657783085734

7、配置其他监听器

是否需要配置另一个监听器。

image-1657783174156

8、配置完成

最后,监听器配置完成。

image-1657783218316

创建实例

1、启动数据库配置助手

同样,我们使用数据库配置助手来完成实例的创建。(严格来说,我们常说的数据库其实是实例)

[oracle@localhost ~]$ dbca

2、数据库选项

启动数据库配置助手后,首先是询问要执行哪种操作?

  • 创建数据库
  • 配置一个现有的数据库
  • 删除数据库
  • 管理模板
  • 管理插件数据库
  • Oracle RAC数据库实例管理

我们这里肯定是选择创建数据库。

image-1657783537275

3、选择创建模式

对于创建一个新的数据库,有两种选项可以选择,分别是:

  • 典型安装
  • 高级安装

我们这里选择高级安装,不建议使用典型安装,除非是测试环境。

image-1657783620648

4、选择部署类型

部署类型有三大类可以选择,分别是:

  • Oracle单实例数据库
  • Oracle 真实应用集群
    • 管理员管理
    • 策略管理
  • Oracle 真实应用集群单节点
    • 管理员管理
    • 策略管理

其次,还需要选择要部署的业务类型,有三种类型可以选择:

  • 数据仓库
  • 自定义数据库
  • 一般事务型

通常情况下,对于OLAP业务,选择数据仓库类型;对于OLTP业务,则选择一般事务型。自定义数据库适用于那种想自己修改数据库参数的场景,如修改数据库块大小。对于数据库块大小,只有自定义数据库才能修改,其他两种均不能修改。

如果不清楚业务类型,则直接默认即可,默认是一般事务型。

image-1657784175910

5、配置数据库标识符

数据库标识符需要指定全局数据库名和SID,并且还需要确定是否要创建成容器数据库。如果没有可插拔数据库的需要,则不需要选中创建成容器数据库。

image-1657784337161

6、配置存储类型

存储类型这里,有两种选项可供选择:

  • 使用模板中配置的参数
  • 自定义存储,包括存储文件系统类型、数据文件位置等

我这里直接使用模板来配置,一般事务型模板默认会将数据文件等创建在$ORACLE_BASE/目录下。

image-1657784398998

7、配置快速闪回区

快速闪回区必须指定,指定的位置及文件系统类型,可根据实际情况确定。

image-1657784754593

8、网络配置

在19C中,监听器可以直接在创建数据库时配置,不过我之前已经配置好了,就直接默认下一步,如果没有配置监听器,则可以在这里创建一个新的监听器。

image-1657784844156

9、Data Vault选项

这里配置的两个都是与安全有关的,我也没有使用过,就不再启用这两个。

image-1657784964799

10、数据库参数配置

配置数据库的参数,包括内存、数据库块大小及线程数量、字符集、连接模式、示例方案。

配置内存

19C的内存管理有三类,根据官方文档建议,在内存小于4G时,建议使用自动内存管理(Automatic Memory Management);在内存大于4G时,建议使用自动共享内存管理(Automatic Shared Memory Management);自定义内存需要非常有经验的DBA去手动配置Shared pool、Buffer cache、Java pool、Large pool和PGA大小。

由于我的内存不到4G,就使用自动内存管理去配置大小了。建议,对于只运行单实例的服务器来说,Oracle内存可以配置到服务器的80%左右,再激进点就可以配置到90%

image-1657785385536

配置Sizing

Oracle 19C的默认线程数量已经改为了300了,但对于生产环境的数据库来说还是有点低了,我们可以根据业务需要去调整大小。

对于数据库块大小,一般事务型和数据仓库型都是不能修改的,只有自定义数据库才能更改数据库块大小。注意,数据库块一旦创建,就不能再修改,想修改只能重新建库导入数据。

image-1657785817257

配置字符集

字符集有三种选项可选:

  • 使用Unicode(AL32UTF8):使用通用UTF8字符集。
  • 使用默认字符集(Use the default):此字符集是根据你的操作系统的语言设置的。
  • 从列表中选择字符集(Choose from the list of character sets):默认情况下会勾选只列出推荐的字符集,如果没有你想要的,则将下面的选项给取消勾选。

建议字符集根据实际需要选择AL32UTF8和ZHS16GBK两种。如果你确定你的数据库中不会存储像维语、韩语等这种文字,则可以使用ZHS16GBK字符集,否则,请使用AL32UTF8。

除此之外,还有三个选项要配置:

  • 国家字符集(National Character Set):此字符集只限制NVARCHAR2类型的字段,换句话说,上面设置的字符集不会影响到NVARCHAR2字段。
  • 默认语言(Default Language):默认即可
  • 默认领土(Default Territory):默认即可

非必要,这三个选项默认即可。

image-1657785882749

配置连接模式

Oracle数据库有两种连接模式,分别是:

  • 专用服务器模式(Dedicated Server Mode):对于每个客户端连接,数据库都会分配一个资源,专门为该客户端服务。
  • 共享服务器模式(Shared Server Mode):数据库分配一个资源池,几个客户连接会共享这些资源池。使用共享服务器模式时,还需要指定启动实例时要创建的服务器进程数。

建议先预估连接此数据库的客户端情况,如果客户端的连接数量很少,每次连接的时间长,则使用专用服务器模式;如果客户端的连接数量很多,使用共享服务器模式,能够高效的利用系统资源。

image-1657786136725

配置示例方案

Oracle提供了示例用户,可以根据需求去选择,如果选中,则可能会占用一定空间。对于测试环境可以选中,生产环境不勾选。

image-1657786297898

11、配置管理选项

这里有两种管理方式可以配置,分别是:

  • 配置Enterprise Manager(EM) database express
  • 注册Enterprise Manager(EM) cloud control

不建议使用Enterprise Manager去管理数据库,浪费性能,管理也一般。如需使用管理软件,建议配置Enterprise Manager cloud control。

image-1657786422213

12、配置用户凭证

配置用户凭证有两种方法可选择,分别是:

  • SYS和SYSTEM使用不同的密码
  • SYS和SYSTEM使用相同的密码

根据实际需要去选择。

image-1657786543157

13、配置创建选项

配置创建数据库选项,可以配置以下功能:

  • 在数据库创建后自动执行的脚本
  • 保存成数据库模板
  • 生成数据库创建脚本
  • 所有初始化参数修改

image-1657786689340

14、总结

列出之前步骤配置的参数,让我们再次确认一遍。

image-1657786881416

15、安装完成

至此,实例创建完成。
image-1657787431409

配置自启动

数据库安装完毕后,在服务器重启,还需要每次手动启动实例和监听。为了避免这种事情,我们还需要配置Oracle的自启动。

1、修改oratab文件

此文件是由oracle数据库软件安装时执行的root.sh脚本创建的文件,并由数据库创建助手更新。它的参数规则是:
$ORACLE_SID:$ORACLE_HOME:<N|Y>
冒号用作字段终止符,第一个字段是系统标识符,第二个字段是Oracle主目录,第三个字段控制dbstart是否能随服务器启动而启动。

[root@localhost ~]# vim /etc/oratab

将最后一个冒号后面的N,修改为Y。多个实例的情况下,就修改多行即可。

orcl:/u01/oracle/19.3.0:Y

2、配置rc.local文件

[root@localhost ~]# vim /etc/rc.d/rc.local

在最后新增两行命令,新增后,保存并退出。

su oracle -lc "/u01/oracle/19.3.0/bin/lsnrctl start"
su oracle -lc /u01/oracle/19.3.0/bin/dbstart

3、授权

[root@localhost ~]# chmod +x /etc/rc.d/rc.local

至此,Oracle实例的自启动就配置完毕了,可以自行重启测试。

错误

1、PRVG-0282:failed to retrieve the operating system distribution ID

image-1657779003919

原因:先决条件检查会报此错误归根结底还是银河麒麟系统不是Oracle官方的支持操作系统,当Oracle检测到当前操作系统不在支持列表内,就会禁止安装。

解决办法:在安装之前先通过参数将操作系统伪装成redhat,来达到欺骗Oracle软件的目的。

[oracle@localhost ~]$ export CV_ASSUME_DISTID=RHEL7.6

2、Error in invoking target ‘libasmclntsh19.ohso libasmperl19.ohso client_sharedlib’ of makefile

image-1657779439714

原因:glibc在2.28版本以后不再提供libpthread_nonshared.a文件,而Oracle安装则需要用到此文件,因此报错。

解决办法:从CentOS上或其他服务器上拷贝libpthread_nonshared.a到/usr/lib64目录中,然后重新解压一遍安装包并授权,再清除oraInventory目录下的所有文件,最后重新调用图型界面安装。

如果不想拷贝,我这里也提供已经拷贝过的文件。下载链接:libpthread_nonshared.a

0

评论区