前言:
近期对openeuler有点兴趣,顺带在做个开发数据仓项目,那就正好安装个环境做个调测,做个记录放上来做个备录给到大家参考。
openEuler 24.03 LTS:四大升级, 首个AI原生开源操作系统正式发布 openEuler 已支持x86、Arm、SW64、RISC-V、LoongArch 多处理器架构,逐步扩展 PowerPC等更多芯片架构支持,持续完善多样性算力生态体验。
openEuler 社区面向场景化的 SIG 不断组建,推动 openEuler应用边界从最初的服务器场景,逐步拓展到云计算、边缘计算、嵌入式等更多场景。
Oracle19c:
进一步增强了自动化功能,并提供了更好的性能和安全性。这个版本在自动化、性能和安全性方面进行了重大改进,以满足现代企业对数据库的高要求。
环境
常规系统,官网度娘搜索即可下载测试学习
IOS:openEuler_24.03_LTS
下载:
1、https://www.openeuler.org/zh/download/archive/
2、https://mirror.sjtu.edu.cn/openeuler/openEuler-24.03-LTS/ISO/x86_64/openEuler-24.03-LTS-x86_64-dvd.isoSQL:Oracle Database 19c for Linux x86-64
一、安装操作系统环境openEuler_24.03_LTS
安装部署参考之前文章:http://t.csdnimg.cn/cxBIl
1.1基础环境配置—完成系统主机名/IP/时区、关防火墙和SELinux、更换阿里云源\Update、安装图形界面vnc服务等
【查看/修改主机名】
hostname
vi /etc/hostname
【查看/修改IP】
ip address
vi /etc/sysconfig/network-scripts/ifcfg-ens33
【关闭防火墙】
systemctl stop firewalld #关闭防火墙
systemctl disable firewalld #取消开机启动-禁用防火墙
firewall-cmd --reload #重启防火墙,生效配置
【关闭SELinux】
setenforce 0 #临时
# 永久关闭
vi /etc/selinux/config
SELINUX=enforcing
更改为
SELINUX=disabled
或
sed -i 's/enforcing/disabled/' /etc/selinux/config
【查看/修改时区】
date
yum install -y ntpdate #同步安装ntp时间服务器
ntpdate -u ntp.aliyun.com #同步系统时间与网络时间
【更换源】
# 查看官方源
ll /etc/yum.repos.d/
# 备份原始的 openEuler.repo文件
cp /etc/yum.repos.d/openEuler.repo /etc/yum.repos.d/openEuler.repo.bak
# 更换阿里云源
sed -i 's|http://repo.openeuler.org/|https://mirrors.aliyun.com/openeuler/|g' /etc/yum.repos.d/openEuler.repo
【验证是否更换成功update】
dnf update -y
二、Oracle下载安装包获取
本次采取RPM 包安装方式,无需用到桌面图形化、配置监听等,非常便捷,最终和oracle19c所倡导的自治数据库不谋而和,基本上实现了一键安装。
2.1 rpm包下载链接:
https://www.oracle.com/cn/database/technologies/oracle-database-software-downloads.html
https://www.oracle.com/cn/database/technologies/oracle19c-linux-downloads.html
Oracle Database 19c for Linux x86-64
选择好需要的版本下载,使用Oracle账号登录,当然也可以找其他正规渠道下载如各大云镜像仓download
2.2 下载preinstall.rpm
[root@openeuler24-232 data]# curl -o oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
三、系统环境参数设置
3.1 利用脚本来配置环境参数,也可以按照以下脚本内容手动执行进行参数设置,因我之前已配置寄出环境所以很多我已注释。
备注:hosts文件中的ip及主机名称换成自己server 属性即可
3.2 创建脚本
[root@openeuler24-232 data]# vim system_configure.sh
-----------------
#!/bin/bash
#1关闭防火墙
#systemctl stop firewalld
#systemctl disable firewalld
#2 关闭selinux
# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
# setenforce 0
#3 修改主机名
# hostnamectl set-hostname oracledb
#4 编辑hosts文件
# echo "192.168.10.232 openeuler24-232" >> /etc/hosts
-----------------
#5 安装依赖
# 下载openEuler没有的两个包
wget https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/compat-libcap1-1.10-7.el7.x86_64.rpm
wget https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm
rpm -vih compat-libcap1-1.10-7.el7.x86_64.rpm compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm
# 环境依赖
dnf install -y bc binutils elfutils-libelf elfutils-libelf-devel fontconfig-devel glibc glibc-devel ksh libaio libaio-devel libXrender libX11 libXau libXi libXtst libgcc libnsl librdmacm libstdc++ libstdc++-devel libxcb libibverbs make policycoreutils policycoreutils-python-utils smartmontools sysstat psmisc xorg-x11-utils lsof libnsl libnsl2 vim net-tools openssl-devel unixODBC unixODBC-devel libXrender-devel libXtst-devel librdmacm-devel xorg-x11-utils nfs-utils tigervnc-server
#6 修改linux内核文件
echo '
kernel.shmmax = 7730941132
kernel.shmall = 1887436
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
fs.file-max = 6815744
net.ipv4.tcp_max_tw_buckets = 6000
net.ipv4.ip_local_port_range = 9000 65500
net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_tw_reuse = 1
#net.core.somaxconn = 262144
net.core.netdev_max_backlog = 262144
net.ipv4.tcp_max_orphans = 262144
net.ipv4.tcp_max_syn_backlog = 262144
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_fin_timeout = 1
net.ipv4.tcp_keepalive_time = 30
net.ipv4.tcp_keepalive_probes = 6
net.ipv4.tcp_keepalive_intvl = 5
net.ipv4.tcp_timestamps = 0
fs.aio-max-nr = 1048576
net.ipv4.conf.all.rp_filter = 2
net.ipv4.conf.default.rp_filter = 2' >> /etc/sysctl.conf
sysctl -p
#7 修改linux限制文件
echo '
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384
oracle soft stack 10240
oracle hard stack 32768
oracle hard memlock 134217728
oracle soft memlock 134217728' >> /etc/security/limits.conf
#8 修改/etc/pam.d/login文件
echo '
session required pam_limits.so' >> /etc/pam.d/login
#9 修改环境变量
echo '
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi' >> /etc/profile
source /etc/profile
-----------------
3.3 执行脚本
[root@openeuler24-232 data]# bash system_configure.sh
四、安装oracle
4.1 安装preinstall.rpm
通过yum的localinstall,解决依赖包问题,安装完之后会自动创建oracle用户以及组,以及系统参数,当然用rpm -ivh安装也可以
[root@openeuler24-232 data]# yum -y localinstall oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
4.2 安装oracle 19c rpm软件包
[root@openeuler24-232 data]# rpm -ivh oracle-database-ee-19c-1.0-1.x86_64.rpm
4.3 修改oracle用户密码
[root@openeuler24-232 opt]# id oracle
[root@openeuler24-232 opt]# passwd oracle
4.4 dbca之前修改数据库配置参数
修改sid以及是否开启cdb
[root@openeuler24-232 ~]# vim /etc/init.d/oracledb_ORCLCDB-19c
export ORACLE_HOME=/opt/oracle/product/19c/dbhome_1
export ORACLE_VERSION=19c
export ORACLE_SID=orcl
export TEMPLATE_NAME=General_Purpose.dbc
export CHARSET=ZHS16GBK
export PDB_NAME=orcl
export LISTENER_NAME=LISTENER
export NUMBER_OF_PDBS=1
export CREATE_AS_CDB=false ## 此条必修改
4.5 创建新配置文件
[root@openeuler24-232 ~]# cp /etc/sysconfig/oracledb_ORCLCDB-19c.conf /etc/sysconfig/oracledb_orcl-19c.conf
备注:此配置文件命名方法为oracledb_$ORACLE_SID-19c.conf,需要注意sid
4.6 监听端口、数据文件等配置,可保持默认
[root@openeuler24-232 ~]# vim /etc/sysconfig/oracledb_ORCLCDB-19c.conf
------------
# LISTENER_PORT: Database listener
LISTENER_PORT=1521
# ORACLE_DATA_LOCATION: Database oradata location
ORACLE_DATA_LOCATION=/opt/oracle/oradata
# EM_EXPRESS_PORT: Oracle EM Express listener
EM_EXPRESS_PORT=5500
------------
4.7 相关文件夹创建及授权
[root@openeuler24-232 ~]# mkdir /opt/oracle/archivelog
[root@openeuler24-232 ~]# chown -R oracle:oinstall /opt/oracle/archivelog/
[root@openeuler24-232 ~]# chmod -R 755 /opt/oracle/archivelog/
[root@openeuler24-232 ~]# mkdir /opt/oracle/oradata
[root@openeuler24-232 ~]# chown -R oracle:oinstall /opt/oracle/oradata/
[root@openeuler24-232 ~]# chmod -R 755 /opt/oracle/oradata/
4.8 初始化创建实例
[root@openeuler24-232 ~]# /etc/init.d/oracledb_ORCLCDB-19c configure
报错1:未配置数据库
The Oracle Database is not configured. Unable to read the configuration file '/etc/sysconfig/oracledb_orcl-19c.conf'
解决方案:参考上述4.5 创建新配置文件
[root@openeuler24-232 ~]# cp /etc/sysconfig/oracledb_ORCLCDB-19c.conf /etc/sysconfig/oracledb_orcl-19c.conf
`备注:此配置文件命名方法为oracledb_$ORACLE_SID-19c.conf,需要注意sid`
报错2:java.library.path系统变量无效或缺少此变量。请为java.library.path设置正确值并重试操作。
解决方案是缺少库libnsl,执行命令安装
[root@openeuler24-232 ~]# yum install -y libnsl.x86_64
# 继续创建实例
[root@openeuler24-232 ~]# /etc/init.d/oracledb_ORCLCDB-19c configure
Configuring Oracle Database orcl.
准备执行数据库操作
已完成 10%
复制数据库文件
无法访问文件 "/etc/oratab"。
已完成 40%
正在创建并启动 Oracle 实例
已完成 42%
已完成 46%
已完成 50%
已完成 54%
已完成 60%
正在进行数据库创建
已完成 66%
已完成 70%
执行配置后操作
已完成 100%
数据库创建完成。有关详细信息, 请查看以下位置的日志文件:
/opt/oracle/cfgtoollogs/dbca/orcl。
数据库信息:
全局数据库名:orcl
系统标识符 (SID):orcl
有关详细信息, 请参阅日志文件 "/opt/oracle/cfgtoollogs/dbca/orcl/orcl.log"。
Database configuration completed successfully. The passwords were auto generated, you must change them by connecting to the database using 'sqlplus / as sysdba' as the oracle user.
数据库配置成功完成。密码是自动生成的,您必须以oracle用户使用'sqlplus / as sysdba'连接到数据库来更改密码。
五、测试数据库连接
5.1 修改 oracle用户环境变量
# 切换到oracle用户
[root@openeuler24-232 ~]# su - oracle
[oracle@oracledb ~]# vim ~/.bash_profile
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_SID=orcl
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19c/dbhome_1
export INVENTORY_LOCATION=/opt/oracle/oraInventory
export TNS_ADMIN=$ORACLE_HOME/network/admin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
# export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8"
export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"
export PATH=$ORACLE_HOME/bin:/bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin:$PATH:$HOME/bin
umask 022
[oracle@oracledb ~]# source ~/.bash_profile
5.2 查看监听状态
[oracle@oracledb ~]# lsnrctl status
LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 20-SEP-2024 17:34:25
Copyright (c) 1991, 2019, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=openeuler24-232)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date 20-SEP-2024 17:16:03
Uptime 0 days 0 hr. 18 min. 22 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /opt/oracle/product/19c/dbhome_1/network/admin/listener.ora
Listener Log File /opt/oracle/diag/tnslsnr/openeuler24-232/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=openeuler24-232)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=openeuler24-232)(PORT=5500))(Security=(my_wallet_directory=/opt/oracle/admin/orcl/xdb_wallet))(Presentation=HTTP)(Session=RAW))
Services Summary...
Service "orcl" has 1 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service...
Service "orclXDB" has 1 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service...
The command completed successfully
5.3 连接数据库
[oracle@oracledb ~]# sqlplus / as sysdba
SQL> show pdbs; #列出所有PDB
SQL> select instance_name from v$instance; #获取当前实例名称
SQL> select userenv('language') from dual; #数据库服务端的字符集
SQL> select name from v$datafile; #查询表空间文件存储位置
SQL> show parameter control; #查询控制文件的多元化
# 创建表
SQL> create table test232(ID number PRIMARY KEY,NAME varchar2(10) ,SEX varchar2(10),AGE number);
# 插入表测试数据
SQL> insert into test232 values ('3','小一','男','30');
# 查询表数据
SQL> select * from test232;