尝试在CentOS Stream 8上安装Oracle Database 23c Free

首先

2023年4月,Oracle数据库23c Free(以下简称23cFree)开始提供。虽然与之前的XE类似,但XE是在正式版本发布后提供的,而这次则是先提供了Free版。

Oracle数据库23c将成为19c后的首个长期支持版本,也是首个不再支持非容器数据库的版本。

尽管尚未确定正式版的发布时间,23cFree和正式版在功能上似乎存在差异。为了了解它们的特点,我们首先进行了预先调查并尝试了安装。

之前我一直认为我不能再使用以前常用的CentOS了,但最近才知道原来可以使用CentOS Stream 8(也有9版本),所以这次我打算在CentOS Stream 8上安装23cFree。

另外,因为机缘巧合,我决定重新整理一下在CentOS Stream 8环境中安装Oracle数据库时应进行的必要设置。

请参阅以下有关23cFree的文章。

 

安装 CentOS Stream 8

关于下载和安装ISO镜像,请参考以下文章。
这次我们在Oracle VM上搭建了环境。

 

CentOS Stream 8的配置设定

在安装23cFree之前,为了保险起见,先进行预定的操作系统设置。

在CentOS Stream 8中,如果在操作系统安装时创建一个OS账号,它会自动添加到”wheel”用户组中,因此根据规范应该使用sudo进行以下设置,但为了方便起见,我们选择使用root用户进行操作。

禁用SELinux。

编辑/etc/selinux/config文件,并将SELINUX的值更改为disabled,然后重新启动操作系统。

[root@centos8stream ~]# vim /etc/selinux/config 

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
#SELINUX=enforcing
SELINUX=disabled
# SELINUXTYPE= can take one of these three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

[root@centos8stream ~]# 
[root@centos8stream ~]# reboot

禁用Firewalld

停止并禁用Firewalld。

[root@centos8stream etc]# systemctl stop firewalld
[root@centos8stream etc]# systemctl disable firewalld

修改journald的设置

我們將更改syslog的設定,使其永久保存在磁盤中。

[root@centos8stream ~]# vim /etc/systemd/journald.conf 
#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.
#
# Entries in this file show the compile time defaults.
# You can change settings by editing this file.
# Defaults can be restored by simply deleting this file.
#
# See journald.conf(5) for details.

[Journal]
Storage=persistent
#Compress=yes
#Seal=yes
#SplitMode=uid
#SyncIntervalSec=5m
RateLimitIntervalSec=0
RateLimitBurst=0
#SystemMaxUse=
#SystemKeepFree=
#SystemMaxFileSize=
#SystemMaxFiles=100
#RuntimeMaxUse=
#RuntimeKeepFree=
#RuntimeMaxFileSize=
#RuntimeMaxFiles=100
#MaxRetentionSec=
#MaxFileSec=1month
#ForwardToSyslog=no
#ForwardToKMsg=no
#ForwardToConsole=no
#ForwardToWall=yes
#TTYPath=/dev/console
#MaxLevelStore=debug
#MaxLevelSyslog=debug
#MaxLevelKMsg=notice
#MaxLevelConsole=info
#MaxLevelWall=emerg
#LineMax=48K
SystemMaxUse=1G

[root@centos8stream ~]# systemctl restart systemd-journald

NTP服务器设置

指定一个NTP服务器,并将时间同步设置为慢速模式。本次选择了jp.pool.ntp.org作为NTP服务器。

[root@centos8stream ~]# vim /etc/chrony.conf 
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#pool 2.centos.pool.ntp.org iburst
server jp.pool.ntp.org prefer iburst

# Record the rate at which the system clock gains/losses time.
driftfile /var/lib/chrony/drift

# Allow the system clock to be stepped in the first three updates
# if its offset is larger than 1 second.
makestep 1.0 3

# Enable kernel synchronization of the real-time clock (RTC).
rtcsync

# Enable hardware timestamping on all interfaces that support it.
#hwtimestamp *

# Increase the minimum number of selectable sources required to adjust
# the system clock.
#minsources 2

# Allow NTP client access from local network.
#allow 192.168.0.0/16

# Serve time even if not synchronized to a time source.
#local stratum 10

# Specify file containing keys for NTP authentication.
keyfile /etc/chrony.keys

# Get TAI-UTC offset and leap seconds from the system tz database.
leapsectz right/UTC

# Specify directory for log files.
logdir /var/log/chrony

# Select which information is logged.
#log measurements statistics tracking

leapsecmode slew

[root@centos8stream ~]# systemctl restart chronyd

请确认和必要时更改操作系统的时区。

在安装操作系统时,我在GUI界面上将时区设置为“Asia/Tokyo”。但不知为何,实际上却变成了“America/New_York (EDT)”。因此,我需要更改操作系统的时区设置。

[root@centos8stream ~]# timedatectl status
               Local time: 火 2023-05-16 07:38:20 EDT
           Universal time: 火 2023-05-16 11:38:20 UTC
                 RTC time: 火 2023-05-16 11:38:21
                Time zone: America/New_York (EDT, -0400)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no
[root@centos8stream ~]# 
[root@centos8stream ~]# timedatectl set-timezone Asia/Tokyo
[root@centos8stream ~]# 
[root@centos8stream ~]# timedatectl status
               Local time: 火 2023-05-16 20:39:19 JST
           Universal time: 火 2023-05-16 11:39:19 UTC
                 RTC time: 火 2023-05-16 11:39:20
                Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no
[root@centos8stream ~]# 

主机设置

我会进行/etc/hosts文件的设置。

[root@centos8stream etc]# vim /etc/hosts
192.168.XXX.XXX  centos8stream
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

安装23cFree

如果要在Linux上安装正式版的Oracle,需要事先进行一些准备工作,例如创建oracle用户、oinstall等组,设置内核参数等等。但是,对于23cFree来说,只需安装两个rpm软件包,基本上就可以放心地完成安装。

可从以下网站下载用于安装的RPM。

 

从上述网站下载以下两个RPM,并将其放置在服务器上。
【RHEL和CentOS的预安装RPM】
oracle-database-preinstall-23c-1.0-0.5.el8.x86_64.rpm

【适用于Linux x64的Oracle Database 23c 免费的开发者预览版(OL8或RHEL8)】
oracle-database-free-23c-1.0-1.el8.x86_64.rpm

我已经按照以下步骤安装了23cFree和创建了数据库。

 

安装oracle-database-preinstall-23c。

它会自动安装或更新所需的Oracle软件包。

[root@centos8stream ~]# dnf localinstall oracle-database-preinstall-23c-1.0-0.5.el8.x86_64.rpm 
メタデータの期限切れの最終確認: 0:22:46 時間前の 2023年05月15日 04時41分12秒 に実施しました。
依存関係が解決しました。
======================================================================================================================================================================================
 パッケージ                                            アーキテクチャー              バージョン                                             リポジトリー                        サイズ
======================================================================================================================================================================================
インストール:
 oracle-database-preinstall-23c                        x86_64                        1.0-0.5.el8                                            @commandline                         30 k
依存関係のインストール:
 compat-openssl10                                      x86_64                        1:1.0.2o-4.el8                                         appstream                           1.1 M
 glibc-devel                                           x86_64                        2.28-225.el8                                           baseos                               83 k
 glibc-headers                                         x86_64                        2.28-225.el8                                           baseos                              488 k
 kernel-headers                                        x86_64                        4.18.0-490.el8                                         baseos                               11 M
 ksh                                                   x86_64                        20120801-257.el8                                       appstream                           929 k
 libnsl                                                x86_64                        2.28-225.el8                                           baseos                              105 k
 libxcrypt-devel                                       x86_64                        4.1.1-6.el8                                            baseos                               25 k
 lm_sensors-libs                                       x86_64                        3.4.0-23.20180522git70f7e08.el8                        baseos                               59 k
 make                                                  x86_64                        1:4.2.1-11.el8                                         baseos                              498 k
 sysstat                                               x86_64                        11.7.3-9.el8                                           appstream                           426 k

トランザクションの概要
======================================================================================================================================================================================
インストール  11 パッケージ

合計サイズ: 15 M
ダウンロードサイズの合計: 15 M
インストール後のサイズ: 17 M
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
(1/10): sysstat-11.7.3-9.el8.x86_64.rpm                                                                                                               485 kB/s | 426 kB     00:00    
(2/10): ksh-20120801-257.el8.x86_64.rpm                                                                                                               902 kB/s | 929 kB     00:01    
(3/10): compat-openssl10-1.0.2o-4.el8.x86_64.rpm                                                                                                      1.1 MB/s | 1.1 MB     00:01    
(4/10): glibc-devel-2.28-225.el8.x86_64.rpm                                                                                                           228 kB/s |  83 kB     00:00    
(5/10): libnsl-2.28-225.el8.x86_64.rpm                                                                                                                1.2 MB/s | 105 kB     00:00    
(6/10): libxcrypt-devel-4.1.1-6.el8.x86_64.rpm                                                                                                        492 kB/s |  25 kB     00:00    
(7/10): lm_sensors-libs-3.4.0-23.20180522git70f7e08.el8.x86_64.rpm                                                                                    1.1 MB/s |  59 kB     00:00    
(8/10): glibc-headers-2.28-225.el8.x86_64.rpm                                                                                                         721 kB/s | 488 kB     00:00    
(9/10): make-4.2.1-11.el8.x86_64.rpm                                                                                                                  1.1 MB/s | 498 kB     00:00    
(10/10): kernel-headers-4.18.0-490.el8.x86_64.rpm                                                                                                     8.4 MB/s |  11 MB     00:01    
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
合計                                                                                                                                                  2.5 MB/s |  15 MB     00:05     
CentOS Stream 8 - AppStream                                                                                                                           1.5 MB/s | 1.6 kB     00:00    
GPG 鍵 XXXXXXXXXX をインポート中:
 Userid     : "CentOS (CentOS Official Signing Key) <security@centos.org>"
 Fingerprint: XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
これでよろしいですか? [y/N]: y
鍵のインポートに成功しました
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
  準備             :                                                                                                                                                              1/1 
  インストール中   : make-1:4.2.1-11.el8.x86_64                                                                                                                                  1/11 
  scriptletの実行中: make-1:4.2.1-11.el8.x86_64                                                                                                                                  1/11 
  インストール中   : compat-openssl10-1:1.0.2o-4.el8.x86_64                                                                                                                      2/11 
  scriptletの実行中: compat-openssl10-1:1.0.2o-4.el8.x86_64                                                                                                                      2/11 
  インストール中   : lm_sensors-libs-3.4.0-23.20180522git70f7e08.el8.x86_64                                                                                                      3/11 
  scriptletの実行中: lm_sensors-libs-3.4.0-23.20180522git70f7e08.el8.x86_64                                                                                                      3/11 
  インストール中   : sysstat-11.7.3-9.el8.x86_64                                                                                                                                 4/11 
  scriptletの実行中: sysstat-11.7.3-9.el8.x86_64                                                                                                                                 4/11 
  インストール中   : libnsl-2.28-225.el8.x86_64                                                                                                                                  5/11 
  インストール中   : kernel-headers-4.18.0-490.el8.x86_64                                                                                                                        6/11 
  scriptletの実行中: glibc-headers-2.28-225.el8.x86_64                                                                                                                           7/11 
  インストール中   : glibc-headers-2.28-225.el8.x86_64                                                                                                                           7/11 
  インストール中   : libxcrypt-devel-4.1.1-6.el8.x86_64                                                                                                                          8/11 
  インストール中   : glibc-devel-2.28-225.el8.x86_64                                                                                                                             9/11 
  scriptletの実行中: glibc-devel-2.28-225.el8.x86_64                                                                                                                             9/11 
  インストール中   : ksh-20120801-257.el8.x86_64                                                                                                                                10/11 
  scriptletの実行中: ksh-20120801-257.el8.x86_64                                                                                                                                10/11 
  インストール中   : oracle-database-preinstall-23c-1.0-0.5.el8.x86_64                                                                                                          11/11 
  scriptletの実行中: oracle-database-preinstall-23c-1.0-0.5.el8.x86_64                                                                                                          11/11 
  検証             : compat-openssl10-1:1.0.2o-4.el8.x86_64                                                                                                                      1/11 
  検証             : ksh-20120801-257.el8.x86_64                                                                                                                                 2/11 
  検証             : sysstat-11.7.3-9.el8.x86_64                                                                                                                                 3/11 
  検証             : glibc-devel-2.28-225.el8.x86_64                                                                                                                             4/11 
  検証             : glibc-headers-2.28-225.el8.x86_64                                                                                                                           5/11 
  検証             : kernel-headers-4.18.0-490.el8.x86_64                                                                                                                        6/11 
  検証             : libnsl-2.28-225.el8.x86_64                                                                                                                                  7/11 
  検証             : libxcrypt-devel-4.1.1-6.el8.x86_64                                                                                                                          8/11 
  検証             : lm_sensors-libs-3.4.0-23.20180522git70f7e08.el8.x86_64                                                                                                      9/11 
  検証             : make-1:4.2.1-11.el8.x86_64                                                                                                                                 10/11 
  検証             : oracle-database-preinstall-23c-1.0-0.5.el8.x86_64                                                                                                          11/11 

インストール済み:
  compat-openssl10-1:1.0.2o-4.el8.x86_64 glibc-devel-2.28-225.el8.x86_64                   glibc-headers-2.28-225.el8.x86_64  kernel-headers-4.18.0-490.el8.x86_64                  
  ksh-20120801-257.el8.x86_64            libnsl-2.28-225.el8.x86_64                        libxcrypt-devel-4.1.1-6.el8.x86_64 lm_sensors-libs-3.4.0-23.20180522git70f7e08.el8.x86_64
  make-1:4.2.1-11.el8.x86_64             oracle-database-preinstall-23c-1.0-0.5.el8.x86_64 sysstat-11.7.3-9.el8.x86_64       

完了しました!

Oracle Database Free 23c安装

23cFree的安装非常简单,只需要安装软件包即可。

[root@centos8stream ~]# dnf localinstall oracle-database-free-23c-1.0-1.el8.x86_64.rpm 
メタデータの期限切れの最終確認: 0:24:11 時間前の 2023年05月15日 04時41分12秒 に実施しました。
依存関係が解決しました。
======================================================================================================================================================================================
 パッケージ                                              アーキテクチャー                      バージョン                           リポジトリー                                サイズ
======================================================================================================================================================================================
インストール:
 oracle-database-free-23c                                x86_64                                1.0-1                                @commandline                                1.6 G

トランザクションの概要
======================================================================================================================================================================================
インストール  1 パッケージ

合計サイズ: 1.6 G
インストール後のサイズ: 5.2 G
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
  準備             :                                                                                                                                                              1/1 
  scriptletの実行中: oracle-database-free-23c-1.0-1.x86_64                                                                                                                        1/1 
  インストール中   : oracle-database-free-23c-1.0-1.x86_64                                                                                                                        1/1 
  scriptletの実行中: oracle-database-free-23c-1.0-1.x86_64                                                                                                                        1/1 
[INFO] Executing post installation scripts...
[INFO] Oracle home installed successfully and ready to be configured.
To configure Oracle Database Free, optionally modify the parameters in '/etc/sysconfig/oracle-free-23c.conf' and then run '/etc/init.d/oracle-free-23c configure' as root.

  検証             : oracle-database-free-23c-1.0-1.x86_64                                                                                                                        1/1 

インストール済み:
  oracle-database-free-23c-1.0-1.x86_64                                                                                                                                               

完了しました!

我們來檢查安裝後的狀態。

确认Oracle用户组。”

Oracle用户和用户组已经被创建好了。

[root@centos8stream etc]# id oracle
uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba),54323(oper),54324(backupdba),54325(dgdba),54326(kmdba),54330(racdba)

核心参数的确认

除了HugePage的设置外,其他设置已经被适当地设置好了。

[root@centos8stream etc]# cat sysctl.conf
# sysctl settings are defined through files in
# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
#
# Vendors settings live in /usr/lib/sysctl.d/.
# To override a whole file, create a new file with the same in
# /etc/sysctl.d/ and put new settings there. To override
# only specific settings, add a file with a lexically later
# name in /etc/sysctl.d/ and put new settings there.
#
# For more information, see sysctl.conf(5) and sysctl.d(5).

# oracle-database-preinstall-23c setting for fs.file-max is 6815744
fs.file-max = 6815744

# oracle-database-preinstall-23c setting for kernel.sem is '250 32000 100 128'
kernel.sem = 250 32000 100 128

# oracle-database-preinstall-23c setting for kernel.shmmni is 4096
kernel.shmmni = 4096

# oracle-database-preinstall-23c setting for kernel.shmall is 1073741824 on x86_64
kernel.shmall = 1073741824

# oracle-database-preinstall-23c setting for kernel.shmmax is 4398046511104 on x86_64
kernel.shmmax = 4398046511104

# oracle-database-preinstall-23c setting for kernel.panic_on_oops is 1 per Orabug 19212317
kernel.panic_on_oops = 1

# oracle-database-preinstall-23c setting for net.core.rmem_default is 262144
net.core.rmem_default = 262144

# oracle-database-preinstall-23c setting for net.core.rmem_max is 4194304
net.core.rmem_max = 4194304

# oracle-database-preinstall-23c setting for net.core.wmem_default is 262144
net.core.wmem_default = 262144

# oracle-database-preinstall-23c setting for net.core.wmem_max is 1048576
net.core.wmem_max = 1048576

# oracle-database-preinstall-23c setting for net.ipv4.conf.all.rp_filter is 2
net.ipv4.conf.all.rp_filter = 2

# oracle-database-preinstall-23c setting for fs.aio-max-nr is 1048576
fs.aio-max-nr = 1048576

# oracle-database-preinstall-23c setting for net.ipv4.ip_local_port_range is 9000 65500
net.ipv4.ip_local_port_range = 9000 65500

[root@centos8stream etc]#

在23cFree中,默认情况下会进行SGA_TARGET和PGA_AGGREGATE_TARGET的内存设置,因此在创建数据库之后,根据需要可以进行HugePages的设置(非必需)。

如果要指定HugePages,需要在/etc/sysctl.conf中指定”vm.nr_hugepages”的值并添加。指定的值会根据SGA_TARGET的值而变化。
(计算公式)
vm.nr_hugepages = (SGA_TARGET的值(MB) + 50MB) / hugepagesize = (SGA_TARGET的值(MB) + 50MB) / 2
在23cFree中,SGA_TARGET指定为536M,所以如果要进行HugePages设置,需要在vm.nr_hugepages中指定293。
vm.nr_hugepages = 293另外,还需要在/etc/security/limits.conf中指定memlock(包括soft和hard两种值)并添加。指定的值会根据SGA_TARGET的值而变化。
(计算公式)
memlock = (SGA_TARGET的值(MB) + 50MB + 10MB) * 1024 (KB)
在23cFree中,memlock需要指定为(536+50+10)*1024=610304。
oracle soft memlock 610304
oracle hard memlock 610304

请提供以下文本的中文译文:

/etc/security/limits.conf的配置。

在19c中,除了HugePages相关的设置外,还需要以下设置,但在安装23cFree后,这些设置仍未被添加。

oracle           soft    nproc           2047
oracle           hard    nproc           16384
oracle           soft    nofile          1024
oracle           hard    nofile          65536
oracle           soft    stack           10240
oracle           hard    stack           32768

登录的/etc/pam.d/login配置

在19c版本中,已经添加了以下设置,但在安装23c Free之后,并没有添加这些设置。

session    required     pam_limits.so

/etc/profile的配置

我在19c中添加了以下配置,但在安装23cFree后,配置并没有被添加进来。

if [ $USER = "oracle" ]; then
    if [ $SHELL = "/bin/ksh" ]; then
        ulimit -p 16384
        ulimit -n 65536
    else
        ulimit -u 16384 -n 65536
    fi
    umask 022
fi

透明大页设置

透明巨页已经配置好了。

[root@centos8stream etc]# cat /sys/kernel/mm/transparent_hugepage/enabled 
always madvise [never]
[root@centos8stream etc]# 
[root@centos8stream etc]# cat /sys/kernel/mm/transparent_hugepage/defrag 
always defer defer+madvise madvise [never]
在RHEL的情况下,需要注意透明大页面设置时的路径是不同的。
(RHEL的情况下)
/sys/kernel/mm/redhat_transparent_hugepage/enabled
/sys/kernel/mm/redhat_transparent_hugepage/defrag

我想在正式版本发布后重新确认上述操作系统设置周边的情况。

创建数据库

安装23cFree后,以root用户执行/etc/init.d/oracle-free-23c configure命令,将创建数据库。

我认为基本默认设置就可以了,但如果你想更改侦听器端口或数据库字符集之类的内容,你可以先编辑/etc/sysconfig/oracle-free-23c.conf文件,然后执行/etc/init.d/oracle-free-23c configure命令。

[root@centos8stream etc]# cat /etc/sysconfig/oracle-free-23c.conf
#This is a configuration file to setup the Oracle Database. 
#It is used when running '/etc/init.d/oracle-free-23c configure'.

# LISTENER PORT used Database listener, Leave empty for automatic port assignment
LISTENER_PORT=

# Character set of the database
CHARSET=AL32UTF8

# Database file directory
# If not specified, database files are stored under Oracle base/oradata
DBFILE_DEST=

# DB Domain name
DB_DOMAIN=

# SKIP Validations, memory, space
SKIP_VALIDATIONS=false

创建数据库

使用根用户执行/etc/init.d/oracle-free-23c configure命令时,会询问SYS、SYSTEM、PDBADMIN用户的密码,设置后将开始创建CDB和PDB(一个)。

[root@centos8stream ~]# /etc/init.d/oracle-free-23c configure
Specify a password to be used for database accounts. Oracle recommends that the password entered should be at least 8 characters in length, contain at least 1 uppercase character, 1 lower case character and 1 digit [0-9]. Note that the same password will be used for SYS, SYSTEM and PDBADMIN accounts:
Confirm the password:
Configuring Oracle Listener.
Listener configuration succeeded.
Configuring Oracle Database FREE.
SYSユーザー・パスワードを入力してください: 
************
SYSTEMユーザー・パスワードを入力してください: 
************
PDBADMINユーザー・パスワードを入力してください: 
***************
DB操作の準備
7%完了
データベース・ファイルのコピー中
29%完了
Oracleインスタンスの作成および起動中
30%完了
33%完了
36%完了
39%完了
43%完了
データベース作成の完了
47%完了
49%完了
50%完了
プラガブル・データベースの作成
54%完了
71%完了
構成後アクションの実行
93%完了
カスタム・スクリプトを実行中
100%完了
データベースの作成が完了しました。詳細は、次の場所にあるログ・ファイルを参照してください:
/opt/oracle/cfgtoollogs/dbca/FREE
データベース情報:
グローバル・データベース名:FREE
システム識別子(SID):FREE
詳細はログ・ファイル"/opt/oracle/cfgtoollogs/dbca/FREE/FREE.log"を参照してください。

Connect to Oracle Database using one of the connect strings:
     Pluggable database: centos8stream/FREEPDB1
     Multitenant container database: centos8stream
[root@centos8stream ~]#

当完成后,SID(CDB):FREE,PDB:FREEPDB1将会被创建。

安装rlwrap

为了在SQL*Plus中使用历史功能,需要安装rlwrap。为了安装rlwrap,需要先安装EPEL仓库。

# dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

接下来安装rlwrap。

# dnf install rlwrap

设定环境变量

切换到Oracle用户并将环境变量设置如下。

# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=$ORACLE_BASE/product/23c/dbhomeFree
export PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_SID=FREE
export NLS_LANG=Japanese_Japan.AL32UTF8
#export ORAENV_ASK=NO
alias sqlplus='rlwrap sqlplus'

以SYS用户登录到CDB并进行初始设置。

连接到CDB和PDB,并修改审计设置和默认概要文件。另外,设置PDB自动启动(保存状态)。

[oracle@centos8stream ~]$ sqlplus / as sysdba
SQL*Plus: Release 23.0.0.0.0 - Developer-Release on  5 15 05:47:18 2023
Version 23.2.0.0.0
Copyright (c) 1982, 2023, Oracle.  All rights reserved.

Oracle Database 23c Free, Release 23.0.0.0.0 - Developer-Release
Version 23.2.0.0.0
に接続されました。
SQL> 
SQL> noaudit all;
noaudit all privileges;
noaudit exempt access policy;

ALTER PROFILE DEFAULT LIMIT
FAILED_LOGIN_ATTEMPTS 10
PASSWORD_LIFE_TIME UNLIMITED
PASSWORD_GRACE_TIME UNLIMITED
PASSWORD_LOCK_TIME UNLIMITED
PASSWORD_REUSE_TIME UNLIMITED
PASSWORD_REUSE_MAX UNLIMITED;

監査取消しが成功しました。

SQL>
SQL> sho pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 FREEPDB1                       READ WRITE NO
SQL> 
SQL> alter session set container=FREEPDB1;

セッションが変更されました。

SQL> 
SQL> show con_name

CON_NAME
------------------------------
FREEPDB1
SQL> 

SQL> alter pluggable database FREEPDB1 save state;

プラガブル・データベースが変更されました。

SQL> 
SQL> noaudit all;
noaudit all privileges;
noaudit exempt access policy;

ALTER PROFILE DEFAULT LIMIT
FAILED_LOGIN_ATTEMPTS 10
PASSWORD_LIFE_TIME UNLIMITED
PASSWORD_GRACE_TIME UNLIMITED
PASSWORD_LOCK_TIME UNLIMITED
PASSWORD_REUSE_TIME UNLIMITED
PASSWORD_REUSE_MAX UNLIMITED;

監査取消しが成功しました。

听众状态确认

[oracle@centos8stream ~]$ lsnrctl status

LSNRCTL for Linux: Version 23.0.0.0.0 - Developer-Release on 15-5月 -2023 06:57:30

Copyright (c) 1991, 2023, Oracle.  All rights reserved.

(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=centos8stream)(PORT=1521)))に接続中
リスナーのステータス
------------------------
別名                      LISTENER
バージョン                TNSLSNR for Linux: Version 23.0.0.0.0 - Developer-Release
開始日                    15-5月 -2023 05:19:22
稼働時間                  0 日 1 時間 38 分 8 秒
トレース・レベル          off
セキュリティ              ON: Local OS Authentication
SNMP                      OFF
デフォルト・サービス           FREE
パラメータ・ファイル      /opt/oracle/product/23c/dbhomeFree/network/admin/listener.ora
ログ・ファイル            /opt/oracle/diag/tnslsnr/centos8stream/listener/alert/log.xml
リスニング・エンドポイントのサマリー...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=centos8stream)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
サービスのサマリー...
サービス"FREE"には、1件のインスタンスがあります。
  インスタンス"FREE"、状態READYには、このサービスに対する1件のハンドラがあります...
サービス"FREEXDB"には、1件のインスタンスがあります。
  インスタンス"FREE"、状態READYには、このサービスに対する1件のハンドラがあります...
サービス"fbb91781d7412d32e053750aa8c0ea4a"には、1件のインスタンスがあります。
  インスタンス"FREE"、状態READYには、このサービスに対する1件のハンドラがあります...
サービス"freepdb1"には、1件のインスタンスがあります。
  インスタンス"FREE"、状態READYには、このサービスに対する1件のハンドラがあります...
コマンドは正常に終了しました。

在中国,只需要一种选择来用中文释义以下内容:
SQL*Plus的设置

以下是SQL*Plus中用于设置编辑器等的配置示例。

[oracle@centos8stream ~]$ cat $ORACLE_HOME/sqlplus/admin/glogin.sql
--
-- Copyright (c) 1988, 2005, Oracle.  All Rights Reserved.
--
-- NAME
--   glogin.sql
--
-- DESCRIPTION
--   SQL*Plus global login "site profile" file
--
--   Add any SQL*Plus commands here that are to be executed when a
--   user starts SQL*Plus, or uses the SQL*Plus CONNECT command.
--
-- USAGE
--   This script is automatically run
--
show con_name
set pages 100
set lines 200

define _EDITOR = vim

配置tnsnames.ora文件

我将添加PDB的设置。以下是设置示例。

# tnsnames.ora Network Configuration File: /opt/oracle/product/23c/dbhomeFree/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

FREE =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = centos8stream)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = FREE)
    )
  )

LISTENER_FREE =
  (ADDRESS = (PROTOCOL = TCP)(HOST = centos8stream)(PORT = 1521))


FREEPDB1 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = centos8stream)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = FREEPDB1)
    )
  )

只要在tnsnames.ora进行设置后,能够成功连接到PDB就可以了。

[oracle@centos8stream ~]$ sqlplus sys@freepdb1 as sysdba

SQL*Plus: Release 23.0.0.0.0 - Developer-Release on  5 16 07:18:30 2023
Version 23.2.0.0.0

Copyright (c) 1982, 2023, Oracle.  All rights reserved.

パスワードを入力してください: 


Oracle Database 23c Free, Release 23.0.0.0.0 - Developer-Release
Version 23.2.0.0.0
に接続されました。

CON_NAME
------------------------------
FREEPDB1
SQL>

自动启动和停止设置

使用root用户编辑/etc/oratab文件,并将末尾为”N”的部分更改为”Y”。

[root@centos8stream etc]# vim /etc/oratab
#
# This file is used by ORACLE utilities.  It is created by root.sh
# and updated by either Database Configuration Assistant while creating
# a database or ASM Configuration Assistant while creating ASM instance.

# A colon, ':', is used as the field terminator.  A new line terminates
# the entry.  Lines beginning with a pound sign, '#', are comments.
#
# Entries are of the form:
#   $ORACLE_SID:$ORACLE_HOME:<N|Y>:
#
# The first and second fields are the system identifier and home
# directory of the database respectively.  The third field indicates
# to the dbstart utility that the database should , "Y", or should not,
# "N", be brought up at system boot time.
#
# Multiple entries with the same $ORACLE_SID are not allowed.
#
#
FREE:/opt/oracle/product/23c/dbhomeFree:Y ←ここをNからYに変更

接下来,创建以下Unit文件,并将其放置在/etc/systemd/system目录中。

[root@centos8stream system]# cat oracle.service 
[Unit]
Description=Oracle Database Server
After=syslog.target network.target

[Service]
Type=forking
ExecStart=/opt/oracle/product/23c/dbhomeFree/bin/dbstart /opt/oracle/product/23c/dbhomeFree
ExecStop=/opt/oracle/product/23c/dbhomeFree/bin/dbshut /opt/oracle/product/23c/dbhomeFree
User=oracle
Group=oinstall

[Install]
WantedBy=multi-user.target

随后,我们将启用oracle.service。

[root@centos8stream system]# systemctl enable oracle
Created symlink /etc/systemd/system/multi-user.target.wants/oracle.service → /etc/systemd/system/oracle.service.
[root@centos8stream system]#
[root@centos8stream system]# systemctl is-enabled oracle
enabled

警报日志、监听器日志

默认情况下,输出如下所示。

アラートログ:/opt/oracle/diag/rdbms/free/FREE/trace/alert_FREE.log
リスナーログ:/opt/oracle/diag/tnslsnr/(host名)/listener/trace/listener.log

数据文件创建的位置

默认情况下,它是在下面创建的。

中国发展银行的数据库文件
[oracle@centos8stream FREE]$ pwd
/opt/oracle/oradata/FREE
[oracle@centos8stream FREE]$ ll
合計 2486340
drwxr-x--- 2 oracle oinstall        104  5月 15 18:30 FREEPDB1
-rw-r----- 1 oracle oinstall   18759680  5月 17 16:21 control01.ctl
-rw-r----- 1 oracle oinstall   18759680  5月 17 16:21 control02.ctl
drwxr-x--- 2 oracle oinstall         85  5月 15 18:22 pdbseed
-rw-r----- 1 oracle oinstall  209715712  5月 17 10:59 redo01.log
-rw-r----- 1 oracle oinstall  209715712  5月 17 16:20 redo02.log
-rw-r----- 1 oracle oinstall  209715712  5月 17 10:59 redo03.log
-rw-r----- 1 oracle oinstall  618668032  5月 17 16:19 sysaux01.dbf
-rw-r----- 1 oracle oinstall 1216356352  5月 17 16:19 system01.dbf
-rw-r----- 1 oracle oinstall   20979712  5月 17 11:02 temp01.dbf
-rw-r----- 1 oracle oinstall   36708352  5月 17 16:19 undotbs01.dbf
-rw-r----- 1 oracle oinstall    5251072  5月 17 10:59 users01.dbf
[oracle@centos8stream FREE]$
PDB数据库文件
[oracle@centos8stream FREEPDB1]$ pwd
/opt/oracle/oradata/FREE/FREEPDB1
[oracle@centos8stream FREEPDB1]$ ll
合計 744728
-rw-r----- 1 oracle oinstall 346038272  5月 17 16:19 sysaux01.dbf
-rw-r----- 1 oracle oinstall 304095232  5月 17 16:19 system01.dbf
-rw-r----- 1 oracle oinstall  20979712  5月 17 11:00 temp01.dbf
-rw-r----- 1 oracle oinstall 104865792  5月 17 16:19 undotbs01.dbf
-rw-r----- 1 oracle oinstall   5251072  5月 17 10:59 users01.dbf
[oracle@centos8stream FREEPDB1]$

其他

据23c的新功能,似乎可以通过指定dual的SQL语句来执行select语句,而无需编写from子句。

SQL> select dbtimezone;

DBTIME
------
+00:00

SQL> select to_char(sysdate,'YYYY/MM/DD HH24:MI:SS');

TO_CHAR(SYSDATE,'YY
-------------------
2023/05/17 16:28:15

SQL>

我想在正式版发布后或其他时候,额外确认一下有关23c功能变更和初始参数变更等方面的内容。

最后

我尝试在CentOS Stream 8上安装Oracle Database 23c Free,并大致确认了操作系统设置等方面的差异。

广告
将在 10 秒后关闭
bannerAds