一、配置环境变量
1、主机名配置
代码语言:javascript复制hostnamectl set-hostname orcl19C
2、网络配置
代码语言:javascript复制nmcli connection show
nmcli connection modify ens33 ipv4.addresses 192.168.30.81/24 ipv4.gateway 192.168.30.254 ipv4.method manual autoconnect yes
nmcli connection up ens33
3、配置Hosts文件
代码语言:javascript复制[root@orcl19c ~]# cat <<EOF >>/etc/hosts
192.168.30.81 orcl19C
##OracleEnd##
EOF
4、关闭防火墙
官方建议关闭数据库主机的防火墙,如果需要开启,请根据官方文档开启需要的端口。
代码语言:javascript复制systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld
5、关闭 Selinux
代码语言:javascript复制[root@orcl19c ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
[root@orcl19c ~]# cat /etc/selinux/config
修改完 Selinux 配置文件后,需要重启主机进行生效!
6、配置 yum 源
确保虚拟机已经挂载 ISO 镜像之后,通过 mount
挂载镜像源到本地 /mnt
目录下:
[root@orcl19c ~]# mount /dev/cdrom /mnt
[root@orcl19c ~]# df -Th
配置本地 yum 文件,直接执行即可:
代码语言:javascript复制mkdir /etc/yum.repos.d/bak -p
mv /etc/yum.repos.d/* /etc/yum.repos.d/bak
cat<<EOF>/etc/yum.repos.d/local.repo
[local]
name=local
baseurl=file:///mnt
enabled=1
gpgcheck=0
EOF
yum repolist all
本地 yum 源就已经配置完成了。
7、安装依赖包
根据官方文档建议安装的依赖包,进行 yum install
安装:
yum install -y bc
binutils
compat-libcap1
compat-libstdc -33
gcc
gcc-c
elfutils-libelf
elfutils-libelf-devel
glibc
glibc-devel
ksh
libaio
libaio-devel
libgcc
libstdc
libstdc -devel
libxcb
libX11
libXau
libXi
libXtst
libXrender
libXrender-devel
make
net-tools
nfs-utils
smartmontools
sysstat
e2fsprogs
e2fsprogs-libs
fontconfig-devel
expect
unzip
openssh-clients
readline*
psmisc --skip-broken
安装过程太长,不展示了,安装完之后检查一下是否都安装成功:
代码语言:javascript复制rpm -q bc binutils compat-libcap1 compat-libstdc -33 gcc gcc-c elfutils-libelf elfutils-libelf-devel glibc glibc-devel ksh libaio libaio-devel libgcc libstdc libstdc -devel libxcb libX11 libXau libXi libXtst libXrender libXrender-devel make net-tools nfs-utils smartmontools sysstat e2fsprogs e2fsprogs-libs fontconfig-devel expect unzip openssh-clients readline
RHEL 7 需要手动安装 compat-libstdc
依赖包:
[root@orcl19c yum.repos.d]# mkdir /soft
cd /soft
rpm -ivh compat-libstdc -33-3.2.3-72.el7.x86_64.rpm
8、配置 hosts
hosts 文件单机情况下可以忽略配置,按照规范和习惯还是建议配置一下:
代码语言:javascript复制cat <<EOF >>/etc/hosts
192.168.30.81 orcl19C
EOF
9、创建用户和组
Oracle 19C 官方文档增加了几个组,我们这里都加上:
代码语言:javascript复制## 创建 oinstall dba oper 组
/usr/sbin/groupadd -g 54321 oinstall
/usr/sbin/groupadd -g 54322 dba
/usr/sbin/groupadd -g 54323 oper
/usr/sbin/groupadd -g 54324 backupdba
/usr/sbin/groupadd -g 54325 dgdba
/usr/sbin/groupadd -g 54326 kmdba
/usr/sbin/groupadd -g 54330 racdba
## 创建 oracle 用户
/usr/sbin/useradd -u 54321 -g oinstall -G dba,backupdba,dgdba,kmdba,racdba,oper oracle
## 修改 oracle 用户密码为 oracle
echo oracle | passwd --stdin oracle
## 检查 oracle 用户
id oracle
10、创建安装目录
在正式安装 Oracle 数据库之前先配置好安装目录:
代码语言:javascript复制mkdir -p /u01/app/oracle/product/19.3.0/db
mkdir -p /u01/app/oraInventory
mkdir -p /oradata
mkdir -p /archivelog
chown -R oracle:oinstall /oradata
chown -R oracle:oinstall /archivelog
chown -R oracle:oinstall /u01/app
chmod -R 775 /u01/app
11、配置 avahi-deamon
官方文档建议关闭 avahi-deamon 和 NOZEROCONF:
代码语言:javascript复制systemctl stop avahi-daemon.socket
systemctl stop avahi-daemon.service
systemctl disable avahi-daemon.service
systemctl disable avahi-daemon.socket
##关闭 NOZEROCONF
cat <<EOF >>/etc/sysconfig/network
NOZEROCONF=yes
EOF
12、关闭透明大页和 numa
官方建议关闭透明大页和 numa,有一些 BUG 是由于这两个特性导致,并且打开对数据库的性能提升不大,因此直接关闭即可。
RHEL 7 可以直接修改内核来关闭透明大页和 numa:
代码语言:javascript复制sed -i 's/quiet/quiet transparent_hugepage=never numa=off/' /etc/default/grub
grub2-mkconfig -o /boot/grub2/grub.cfg
[root@orcl19c soft]# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-1160.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-1160.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-c2f977e78ba3407b9c98e973b6274b1c
Found initrd image: /boot/initramfs-0-rescue-c2f977e78ba3407b9c98e973b6274b1c.img
done
透明大页和 numa 的配置需要重启主机生效,这里先不重启,等全部配置完之后再重启主机!
13、配置系统参数文件
根据官方文档将参数整合成一个脚本命令,直接复制下方命令执行即可:
代码语言:javascript复制DAYTIME=$(date %Y%m%d)
mv /etc/sysctl.conf /etc/sysctl.conf.${DAYTIME}
memTotal=$(grep MemTotal /proc/meminfo | awk '{print $2}')
totalMemory=$((memTotal / 2048))
shmall=$((memTotal / 4))
if [ $shmall -lt 2097152 ]; then
shmall=2097152
fi
shmmax=$((memTotal * 1024 - 1))
if [ "$shmmax" -lt 4294967295 ]; then
shmmax=4294967295
fi
cat <<EOF >/etc/sysctl.conf
##shmmal's Calculation formula: physical memory 8G:(8*1024*1024*1024)/4096=2097152
##shmmax's Calculation formula: physical memory 8G:(8/2)*1024*1024*1024 -1=4294967295
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = $shmall
kernel.shmmax = $shmmax
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
EOF
sysctl -p
14、配置系统资源限制
代码语言:javascript复制cat <<EOF >>/etc/security/limits.conf
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
oracle soft nproc 2047
oracle hard nproc 16384
oracle hard memlock 134217728
oracle soft memlock 134217728
EOF
15、配置 pam.d
代码语言:javascript复制cat <<EOF >>/etc/pam.d/login
session required pam_limits.so
session required /lib64/security/pam_limits.so
EOF
16、配置 /dev/shm
代码语言:javascript复制cp /etc/fstab /tmp/fstab
memTotal=$(grep MemTotal /proc/meminfo | awk '{print $2}')
shmTotal=$(df -k /dev/shm | awk '{print $2}' | head -n 2 | tail -n 1)
if [ "$(grep -E -c "/dev/shm" /etc/fstab)" -eq 0 ]; then
cat <<EOF >>/etc/fstab
tmpfs /dev/shm tmpfs size=${memTotal}k 0 0
EOF
mount -o remount /dev/shm
else
if [ "$shmTotal" -lt "$memTotal" ]; then
shmTotal=$memTotal
line=$(grep -n "/dev/shm" /etc/fstab | awk -F ":" '{print $1}')
sed -i "${line} d" /etc/fstab
cat <<EOF >>/etc/fstab
tmpfs /dev/shm tmpfs size=${memTotal}k 0 0
EOF
fi
mount -o remount /dev/shm
fi
17、配置用户环境变量
代码语言:javascript复制## 配置 root 用户
cat <<EOF >>/root/.bash_profile
alias so='su - oracle'
export PS1="[`whoami`@`hostname`:"'$PWD]# '
EOF
## 配置 oracle 用户
cat <<EOF >>/home/oracle/.bash_profile
umask 022
export TMP=/tmp
export TMPDIR=$TMP
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.3.0/db
export ORACLE_HOSTNAME=orcl19C
export ORACLE_TERM=xterm
export TNS_ADMIN=$ORACLE_HOME/network/admin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export ORACLE_SID=orcl
export PATH=/usr/sbin:$PATH
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH
alias sas='sqlplus / as sysdba'
export PS1="[`whoami`@`hostname`:"'$PWD]$ '
EOF
至此,Linux 操作系统的配置就完成了,重启主机确保配置没有!重启成功后检查一下 Selinux,透明大页和 numa:
代码语言:javascript复制cat /etc/selinux/config
cat /sys/kernel/mm/transparent_hugepage/enabled
cat /proc/cmdline
三、安装 Oracle 软件
从 18C 开始要求将 Database 安装包解压至 ORACLE_HOME 目录下,手动解压一下 RU 和 OPatch 补丁,用于补丁安装!
1、配置响应文件
可以看到静默安装可以使用一个响应文件 -responseFile
来进行配置,所以我们要先编辑响应文件:
## 首先需要授予 /soft 目录权限
chown -R oracle.oinstall /soft
## 连接 oracle 用户
su - oracle
cd /soft
## 配置 oracle 软件安装目录
ENV_BASE_DIR=/u01/app
## 创建响应文件
cat <<EOF >>/soft/db.rsp
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v19.0.0
oracle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=${ENV_BASE_DIR}/oraInventory
ORACLE_BASE=$ORACLE_BASE
oracle.install.db.InstallEdition=EE
oracle.install.db.OSDBA_GROUP=dba
oracle.install.db.OSOPER_GROUP=oper
oracle.install.db.OSBACKUPDBA_GROUP=backupdba
oracle.install.db.OSDGDBA_GROUP=dgdba
oracle.install.db.OSKMDBA_GROUP=kmdba
oracle.install.db.OSRACDBA_GROUP=racdba
oracle.install.db.rootconfig.executeRootScript=false
oracle.install.db.rootconfig.configMethod=
EOF
如上所示,为 Oracle 软件安装的响应文件,如需修改安装目录,只需要改变 ENV_BASE_DIR
参数值即可!
## 先授权 /soft
chown -R oracle.oinstall /soft
## 切换至 oracle 用户
su - oracle
cd /soft
[oracle@orcl19c:/soft]$ ll
total 4484356
-rw-r--r--. 1 oracle oinstall 195388 Jun 20 15:03 compat-libstdc -33-3.2.3-72.el7.x86_64.rpm
-rw-r--r-- 1 oracle oinstall 590 Jun 20 16:11 db.rsp
-rw-r--r-- 1 root root 3059705302 Jun 20 15:24 LINUX.X64_193000_db_home.zip
-rw-r--r-- 1 root root 1411305781 Jun 20 16:10 p33192793_190000_Linux-x86-64.zip
-rw-r--r-- 1 root root 120761121 Jun 20 15:24 p6880880_190000_Linux-x86-64.zip
[oracle@orcl19c:/soft]$ unzip -q LINUX.X64_193000_db_home.zip -d $ORACLE_HOME
2、RU 补丁安装
Oracle 19C 支持在安装 Oracle 软件之前就打好补丁,因此我们可以提前打 RU 补丁,更加省事快捷,不需要看 README 文档,直接安装时一个 -applyRU
参数就可以搞定!
首先,我们先解压好 OPatch 和 RU 补丁包,打补丁需要放在安装时执行:
代码语言:javascript复制## 直接静默覆盖解压 p6880880 到 ORACLE_HOME 目录,前面解压是为了给大家看 README 文档,一般都是直接解压到 ORACLE_HOME 目录下
[oracle@orcl19c:/soft]$ unzip -o -q /soft/p6880880_190000_Linux-x86-64.zip -d $ORACLE_HOME
## 检查 OPatch 版本
opatch version
## 解压 RU 补丁包
[oracle@orcl19c:/soft]$ unzip -q p33192793_190000_Linux-x86-64.zip
如上,已经成功解压好 RU 补丁和 OPatch 安装包。
3、静默安装 Oracle 软件
配置好响应文件之后,就可以开始静默安装 Oracle 软件了,并提前安装 RU 补丁,很简单的一行命令:
代码语言:javascript复制cd $ORACLE_HOME
./runInstaller -silent -force -responseFile /soft/db.rsp -ignorePrereq -waitForCompletion -applyRU /soft/33192793
以上1.2.3步骤执行过程
代码语言:javascript复制[oracle@orcl19c:/soft]$ unzip -q LINUX.X64_193000_db_home.zip -d $ORACLE_HOME
[oracle@orcl19c:/soft]$ opatch version
OPatch Version: 12.2.0.1.17
OPatch succeeded.
[oracle@orcl19c:/soft]$ unzip -o -q /soft/p6880880_190000_Linux-x86-64.zip -d $ORACLE_HOME
[oracle@orcl19c:/soft]$ opatch version
OPatch Version: 12.2.0.1.27
OPatch succeeded.
[oracle@orcl19c:/soft]$ unzip -q p33192793_190000_Linux-x86-64.zip
[oracle@orcl19c:/soft]$ cd $ORACLE_HOME
[oracle@orcl19c:/u01/app/oracle/product/19.3.0/db]$ ./runInstaller -silent -force -responseFile /soft/db.rsp -ignorePrereq -waitForCompletion -applyRU /soft/33192793
Preparing the home to patch...
Applying the patch /soft/33192793...
Successfully applied the patch.
The log can be found at: /tmp/InstallActions2022-06-20_05-25-32PM/installerPatchActions_2022-06-20_05-25-32PM.log
Launching Oracle Database Setup Wizard...
The response file for this session can be found at:
/u01/app/oracle/product/19.3.0/db/install/response/db_2022-06-20_05-25-32PM.rsp
You can find the log of this install session at:
/tmp/InstallActions2022-06-20_05-25-32PM/installActions2022-06-20_05-25-32PM.log
As a root user, execute the following script(s):
1. /u01/app/oraInventory/orainstRoot.sh
2. /u01/app/oracle/product/19.3.0/db/root.sh
Execute /u01/app/oraInventory/orainstRoot.sh on the following nodes:
[orcl19c]
Execute /u01/app/oracle/product/19.3.0/db/root.sh on the following nodes:
[orcl19c]
Successfully Setup Software.
Moved the install session logs to:
/u01/app/oraInventory/logs/InstallActions2022-06-20_05-25-32
打补丁需要等待一段时间,安装完后需要切换到 root
用户下执行以下 root.sh
脚本:
/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/19.3.0/db/root.sh
恭喜,Oracle 软件安装成功啦!
四、创建监听
静默创建监听就更简单了,netca
一行命令:
netca -silent -responsefile $ORACLE_HOME/assistants/netca/netca.rsp
## 检查监听状态
lsnrctl status
代码语言:javascript复制[oracle@orcl19c:/u01/app/oracle/product/19.3.0/db]$ netca -silent -responsefile $ORACLE_HOME/assistants/netca/netca.rsp
Parsing command line arguments:
Parameter "silent" = true
Parameter "responsefile" = /u01/app/oracle/product/19.3.0/db/assistants/netca/netca.rsp
Done parsing command line arguments.
Oracle Net Services Configuration:
Profile configuration complete.
Oracle Net Listener Startup:
Running Listener Control:
/u01/app/oracle/product/19.3.0/db/bin/lsnrctl start LISTENER
Listener Control complete.
Listener started successfully.
Listener configuration complete.
Oracle Net Services configuration successful. The exit code is 0
[oracle@orcl19c:/u01/app/oracle/product/19.3.0/db]$ lsnrctl status
LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 20-JUN-2022 17:44:34
Copyright (c) 1991, 2021, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=orcl19C)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date 20-JUN-2022 17:44:24
Uptime 0 days 0 hr. 0 min. 9 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/product/19.3.0/db/network/admin/listener.ora
Listener Log File /u01/app/oracle/diag/tnslsnr/orcl19c/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=orcl19C)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
The listener supports no services
The command completed successfully
[oracle@orcl19c:/u01/app/oracle/product/19.3.0/db]$
如上所示,即配置成功,由于还没有创建数据库实例,所以监听不到任何服务,这是正常的。
五、创建数据库实例
来吧,最后一步啦,创建数据库实例,建完库之后,咱们就完成一套数据库的完整安装了!
创建数据库实例当然也是可以用静默创建的,也是一条说简单不简单的命令,首先我们配置下关键信息:
代码语言:javascript复制## 实例名称
ORACLE_SID=orcl
## 数据文件目录
ORADATADIR=/oradata
## 归档日志目录
ARCHIVEDIR=/archivelog
## 数据库字符集
CHARACTERSET=AL32UTF8
## 国家字符集
NCHARACTERSET=AL16UTF16
## 数据库内存这里取物理内存的 50%
memTotal=$(grep MemTotal /proc/meminfo | awk '{print $2}')
totalMemory=$((memTotal / 2048))
## 是否为 CDB 模式,TRUE 或者 FALSE
ISCDB=TRUE
正式开始静默创建数据库实例:
代码语言:javascript复制dbca -silent -createDatabase
-ignorePrereqFailure
-templateName General_Purpose.dbc
-responseFile NO_VALUE
-gdbName ${ORACLE_SID}
-sid ${ORACLE_SID}
-sysPassword oracle
-systemPassword oracle
-redoLogFileSize 1024
-storageType FS
-databaseConfigType SINGLE
-datafileDestination ${ORADATADIR}
-enableArchive true
-archiveLogDest ${ARCHIVEDIR}
-characterset ${CHARACTERSET}
-nationalCharacterSet ${NCHARACTERSET}
-emConfiguration NONE
-automaticMemoryManagement false
-totalMemory ${totalMemory}
-databaseType OLTP
-createAsContainerDatabase ${ISCDB}
19C 安装比较慢,执行过程
代码语言:javascript复制[oracle@orcl19c:/u01/app/oracle/product/19.3.0/db]$ ## 实例名称
[oracle@orcl19c:/u01/app/oracle/product/19.3.0/db]$ ORACLE_SID=orcl
[oracle@orcl19c:/u01/app/oracle/product/19.3.0/db]$ ## 数据文件目录
[oracle@orcl19c:/u01/app/oracle/product/19.3.0/db]$ ORADATADIR=/oradata
[oracle@orcl19c:/u01/app/oracle/product/19.3.0/db]$ ## 归档日志目录
[oracle@orcl19c:/u01/app/oracle/product/19.3.0/db]$ ARCHIVEDIR=/archivelog
[oracle@orcl19c:/u01/app/oracle/product/19.3.0/db]$ ## 数据库字符集
[oracle@orcl19c:/u01/app/oracle/product/19.3.0/db]$ CHARACTERSET=AL32UTF8
[oracle@orcl19c:/u01/app/oracle/product/19.3.0/db]$ ## 国家字符集
[oracle@orcl19c:/u01/app/oracle/product/19.3.0/db]$ NCHARACTERSET=AL16UTF16
[oracle@orcl19c:/u01/app/oracle/product/19.3.0/db]$ ## 数据库内存这里取物理内存的 50%
[oracle@orcl19c:/u01/app/oracle/product/19.3.0/db]$ memTotal=$(grep MemTotal /proc/meminfo | awk '{print $2}')
[oracle@orcl19c:/u01/app/oracle/product/19.3.0/db]$ totalMemory=$((memTotal / 2048))
[oracle@orcl19c:/u01/app/oracle/product/19.3.0/db]$ ## 是否为 CDB 模式,TRUE 或者 FALSE
[oracle@orcl19c:/u01/app/oracle/product/19.3.0/db]$ ISCDB=TRUE
[oracle@orcl19c:/u01/app/oracle/product/19.3.0/db]$ dbca -silent -createDatabase
> -ignorePrereqFailure
> -templateName General_Purpose.dbc
> -responseFile NO_VALUE
> -gdbName ${ORACLE_SID}
> -sid ${ORACLE_SID}
> -sysPassword oracle
> -systemPassword oracle
> -redoLogFileSize 1024
> -storageType FS
> -databaseConfigType SINGLE
> -datafileDestination ${ORADATADIR}
> -enableArchive true
> -archiveLogDest ${ARCHIVEDIR}
> -characterset ${CHARACTERSET}
> -nationalCharacterSet ${NCHARACTERSET}
> -emConfiguration NONE
> -automaticMemoryManagement false
> -totalMemory ${totalMemory}
> -databaseType OLTP
> -createAsContainerDatabase ${ISCDB}
[WARNING] [DBT-06208] The 'SYS' password entered does not conform to the Oracle recommended standards.
CAUSE:
a. 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].
b.The password entered is a keyword that Oracle does not recommend to be used as password
ACTION: Specify a strong password. If required refer Oracle documentation for guidelines.
[WARNING] [DBT-06208] The 'SYSTEM' password entered does not conform to the Oracle recommended standards.
CAUSE:
a. 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].
b.The password entered is a keyword that Oracle does not recommend to be used as password
ACTION: Specify a strong password. If required refer Oracle documentation for guidelines.
Prepare for db operation
10% complete
Copying database files
40% complete
Creating and starting Oracle instance
42% complete
46% complete
52% complete
56% complete
60% complete
Completing Database Creation
66% complete
69% complete
70% complete
Executing Post Configuration Actions
100% complete
Database creation complete. For details check the logfiles at:
/u01/app/oracle/cfgtoollogs/dbca/orcl.
Database Information:
Global Database Name:orcl
System Identifier(SID):orcl
Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/orcl/orcl.log" for further details.
代码语言:javascript复制[oracle@orcl19c:/u01/app/oracle/product/19.3.0/db]$ sas
SQL*Plus: Release 19.0.0.0.0 - Production on Mon Jun 20 18:05:45 2022
Version 19.13.0.0.0
Copyright (c) 1982, 2021, Oracle. All rights reserved.
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.13.0.0.0
SQL> show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
SQL>