银河麒麟 V10 安装 Oracle 19C 详细步骤 支持远程维护 技术支持
环境说明
服务器操作系统:银河麒麟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的安装包。
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/
安装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:ORACLEBASE/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
重启服务器
[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、选项配置
调用界面后,首先会询问你怎么安装,提供两种方式:
创建并配置单实例数据库
只安装软件
通常是建议选择第二个【只安装软件】,安装完软件后,我们再手动去配置监听和实例。
3、数据库安装选项
再询问安装的数据库类型,有两种类型:
单实例数据库安装
Oracle真实应用集群(RAC)安装
如果是单实例,就选择默认选项即可;反之,则选择Oracle集群安装。
4、选择数据库版本
必须选默认选项,如果选择第二个选择,则数据库会缺少一部分功能。
5、选择安装路径
如果oracle用户变量没有配置错误,则该项会根据环境变量来显示,我们仅需要确认路径正确即可。
6、选择Inventory路径
指定产品清单目录及用户组名
7、操作系统组配置
默认,不需要做其他修改。
8、root脚本执行
Oracle在软件安装期间,会使用到root用户权限去配置一些操作。
如果想要在安装时不再弹出提示,让Oracle自动运行的话,就选中选项,然后配置root用户的密码,如此Oracle就会使用root密码自动去执行这些操作。
我这里为了演示,就不选中了。
9、总结
最后,Oracle列出配置的大概信息,如:数据库版本、Oracle base、软件位置等。
我们最后简单看一下,如果没有问题,就点击安装即可。
10、执行root脚本
这是在没有选中自动执行脚本的情况下,会弹出提示,让你手动去执行这两个shell脚本。
root用户执行
[root@localhost ~]# /u01/oraInventory/orainstRoot.sh
root用户执行
[root@localhost ~]# /u01/oracle/19.3.0/root.sh
11、软件安装完成
最后,Oracle数据库软件安装完成。
安装监听
1、启动网络配置助手
对于能够调用图型界面来说,肯定是启动Net配置助手更方便。
[oracle@localhost ~]$ netca
2、配置项
Net配置助手有以下选项可以配置:
监听器配置
命名方法配置
目录使用配置
初次安装数据库肯定是要配置一个监听器。
3、监听器配置项
监听器也同样有4个选项:
添加监听器
重新配置监听器
删除监听器
重命名监听器
首次肯定是选择【添加监听器】。
4、配置监听器名称
为监听器指定一个名称。
5、配置监听器使用的协议
配置监听器可用的协议列表。
6、配置监听器使用的端口
配置监听器使用的端口。如果你认为默认的1521端口所有人都知道,有被攻击的可能,也可以自定义一个端口号。
7、配置其他监听器
是否需要配置另一个监听器。
8、配置完成
最后,监听器配置完成。
创建实例
1、启动数据库配置助手
同样,我们使用数据库配置助手来完成实例的创建。(严格来说,我们常说的数据库其实是实例)
[oracle@localhost ~]$ dbca
2、数据库选项
启动数据库配置助手后,首先是询问要执行哪种操作?
创建数据库
配置一个现有的数据库
删除数据库
管理模板
管理插件数据库
Oracle RAC数据库实例管理
我们这里肯定是选择创建数据库。
3、选择创建模式
对于创建一个新的数据库,有两种选项可以选择,分别是:
典型安装
高级安装
我们这里选择高级安装,不建议使用典型安装,除非是测试环境。
4、选择部署类型
部署类型有三大类可以选择,分别是:
Oracle单实例数据库
Oracle 真实应用集群
管理员管理
策略管理
Oracle 真实应用集群单节点
管理员管理
策略管理
其次,还需要选择要部署的业务类型,有三种类型可以选择:
数据仓库
自定义数据库
一般事务型
通常情况下,对于OLAP业务,选择数据仓库类型;对于OLTP业务,则选择一般事务型。自定义数据库适用于那种想自己修改数据库参数的场景,如修改数据库块大小。对于数据库块大小,只有自定义数据库才能修改,其他两种均不能修改。
如果不清楚业务类型,则直接默认即可,默认是一般事务型。
5、配置数据库标识符
数据库标识符需要指定全局数据库名和SID,并且还需要确定是否要创建成容器数据库。如果没有可插拔数据库的需要,则不需要选中创建成容器数据库。
6、配置存储类型
存储类型这里,有两种选项可供选择:
使用模板中配置的参数
自定义存储,包括存储文件系统类型、数据文件位置等
我这里直接使用模板来配置,一般事务型模板默认会将数据文件等创建在$ORACLE_BASE/目录下。
7、配置快速闪回区
快速闪回区必须指定,指定的位置及文件系统类型,可根据实际情况确定。
8、网络配置
在19C中,监听器可以直接在创建数据库时配置,不过我之前已经配置好了,就直接默认下一步,如果没有配置监听器,则可以在这里创建一个新的监听器。
9、Data Vault选项
这里配置的两个都是与安全有关的,我也没有使用过,就不再启用这两个。
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%
配置Sizing
Oracle 19C的默认线程数量已经改为了300了,但对于生产环境的数据库来说还是有点低了,我们可以根据业务需要去调整大小。
对于数据库块大小,一般事务型和数据仓库型都是不能修改的,只有自定义数据库才能更改数据库块大小。注意,数据库块一旦创建,就不能再修改,想修改只能重新建库导入数据。
配置字符集
字符集有三种选项可选:
使用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):默认即可
非必要,这三个选项默认即可。
配置连接模式
Oracle数据库有两种连接模式,分别是:
专用服务器模式(Dedicated Server Mode):对于每个客户端连接,数据库都会分配一个资源,专门为该客户端服务。
共享服务器模式(Shared Server Mode):数据库分配一个资源池,几个客户连接会共享这些资源池。使用共享服务器模式时,还需要指定启动实例时要创建的服务器进程数。
建议先预估连接此数据库的客户端情况,如果客户端的连接数量很少,每次连接的时间长,则使用专用服务器模式;如果客户端的连接数量很多,使用共享服务器模式,能够高效的利用系统资源。
配置示例方案
Oracle提供了示例用户,可以根据需求去选择,如果选中,则可能会占用一定空间。对于测试环境可以选中,生产环境不勾选。
11、配置管理选项
这里有两种管理方式可以配置,分别是:
配置Enterprise Manager(EM) database express
注册Enterprise Manager(EM) cloud control
不建议使用Enterprise Manager去管理数据库,浪费性能,管理也一般。如需使用管理软件,建议配置Enterprise Manager cloud control。
12、配置用户凭证
配置用户凭证有两种方法可选择,分别是:
SYS和SYSTEM使用不同的密码
SYS和SYSTEM使用相同的密码
根据实际需要去选择。
13、配置创建选项
配置创建数据库选项,可以配置以下功能:
在数据库创建后自动执行的脚本
保存成数据库模板
生成数据库创建脚本
所有初始化参数修改
14、总结
列出之前步骤配置的参数,让我们再次确认一遍。
15、安装完成
至此,实例创建完成。
配置自启动
数据库安装完毕后,在服务器重启,还需要每次手动启动实例和监听。为了避免这种事情,我们还需要配置Oracle的自启动。
1、修改oratab文件
此文件是由oracle数据库软件安装时执行的root.sh脚本创建的文件,并由数据库创建助手更新。它的参数规则是:
ORACLE_SID:ORACLESID:ORACLE_HOME:
冒号用作字段终止符,第一个字段是系统标识符,第二个字段是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
原因:先决条件检查会报此错误归根结底还是银河麒麟系统不是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
原因:glibc在2.28版本以后不再提供libpthread_nonshared.a文件,而Oracle安装则需要用到此文件,因此报错。
解决办法:从CentOS上或其他服务器上拷贝libpthread_nonshared.a到/usr/lib64目录中,然后重新解压一遍安装包并授权,再清除oraInventory目录下的所有文件,最后重新调用图型界面安装。
如果不想拷贝,我这里也提供已经拷贝过的文件。下载链接:libpthread_nonshared.a