Oracle官方提供了安装好的Oracle 19c虚拟机,打包成ova文件。可以使用这个文件建立一个oracle 19c的学习环境。

下载Oracle官方的虚拟机(OVA文件)

Oracle官方提供了ova文件创建虚拟机,其中安装好Oracle 19c 的ova完的下载地址是:https://www.oracle.com/database/technologies/databaseappdev-vm.html

ova和ovf区别 怎么转换 ova是什么格式文件_数据库

ova和ovf区别 怎么转换 ova是什么格式文件_oracle_02

使用OVA文件创建新的虚拟机

可以使用Oracle提供的OVA在VirtualBox上创建虚拟机。在VirtualBox中选择File 再选择 Import Appliance ,然后选择前面下载的ova文件,如下图:

ova和ovf区别 怎么转换 ova是什么格式文件_SQL_03


接着出现配置界面:

ova和ovf区别 怎么转换 ova是什么格式文件_SQL_04


这里的配置可以修改,我把2GB的内存改成了4GB。然后点击import,同意协议后导入:

ova和ovf区别 怎么转换 ova是什么格式文件_学习_05

导入后启动虚拟机,增加了一个bridge的网卡:

ova和ovf区别 怎么转换 ova是什么格式文件_SQL_06


登录oracle用户,密码也是oracle,配置网络:

ova和ovf区别 怎么转换 ova是什么格式文件_ova和ovf区别 怎么转换_07

检查环境

看看Oracle为我们提供的虚拟机的环境:

[oracle@localhost network-scripts]$ chkconfig --list oracle

注:该输出结果只显示 SysV 服务,并不包含
原生 systemd 服务。SysV 配置数据
可能被原生 systemd 配置覆盖。要列出 systemd 服务,请执行 'systemctl list-unit-files'。查看在具体 target 启用的服务请执行
      'systemctl list-dependencies [target]'。oracle           0:关  1:关  2:开  3:开  4:开  5:开  6:关

可以看到多了一个oracle的服务,这样一开机oracle数据库就启动了,这个服务的管理脚本是/etc/rc.d/init.d/oracle文件。
查看一个oracle工具用到的配置文件:

[oracle@localhost ~]$ cat /etc/oratab
...
orclcdb:/u01/app/oracle/product/version/db_1:Y

发现已经有了一个sid为orclcdb的实例。

检查一下oracle用户的环境变量,发现居然没有配置:

[oracle@localhost ~]$ env|grep -i oracle
USER=oracle
MAIL=/var/spool/mail/oracle
PATH=/home/oracle/Desktop/Database_Track/coffeeshop:/home/oracle/java/jdk1.8.0_201/bin:/home/oracle/bin:/home/oracle/sqlcl/bin:/home/oracle/sqldeveloper:/home/oracle/datamodeler:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/oracle/sqlcl/bin:/home/oracle/sqldeveloper:/home/oracle/bin:/home/oracle/.local/bin:/home/oracle/bin
PWD=/home/oracle
JAVA_HOME=/home/oracle/java/jdk1.8.0_201
HOME=/home/oracle
LOGNAME=oracle
XDG_DATA_DIRS=/home/oracle/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share

手工增加下面的配置到.bash_profile文件中:

export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/version/db_1
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export PATH=$PATH:$ORACLE_HOME/bin:$JAVA_HOME/bin
export ORACLE_SID=orclcdb
export PATH=$JAVA_HOME/bin:$ORACLE_HOME/bin:$PATH

检查监听的状态:

[oracle@localhost ~]$ lsnrctl status

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 16-MAR-2022 01:59:51

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

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date                16-MAR-2022 09:42:48
Uptime                    496 days 18 hr. 44 min. 56 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Default Service           orclcdb
Listener Parameter File   /u01/app/oracle/product/version/db_1/network/admin/listener.ora
Listener Log File         /u01/app/oracle/diag/tnslsnr/localhost/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=0.0.0.0)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=8081))(Presentation=HTTP)(Session=RAW))
Services Summary...
Service "86b637b62fdf7a65e053f706e80a27ca" has 1 instance(s).
  Instance "orclcdb", status READY, has 1 handler(s) for this service...
Service "8a34def16cd55c76e0530100007f040c" has 1 instance(s).
  Instance "orclcdb", status READY, has 1 handler(s) for this service...
Service "orcl" has 1 instance(s).
  Instance "orclcdb", status READY, has 1 handler(s) for this service...
Service "orclcdb" has 2 instance(s).
  Instance "orclcdb", status UNKNOWN, has 1 handler(s) for this service...
  Instance "orclcdb", status READY, has 1 handler(s) for this service...
Service "orclcdbXDB" has 1 instance(s).
  Instance "orclcdb", status READY, has 1 handler(s) for this service...
The command completed successfully

使用操作系统认证登录sqlplus,居然登录失败:

[oracle@localhost ~]$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Wed Mar 16 01:59:59 2022
Version 19.3.0.0.0

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

ERROR:
ORA-01017: invalid username/password; logon denied

检查一下TWO_TASK环境变量的设置,果然是设置了TWO_TASK,取消设置后就可以使用操作系统认证登录了:

[oracle@localhost ~]$ echo $TWO_TASK
ORCL
[oracle@localhost ~]$ unset TWO_TASK
[oracle@localhost ~]$ echo $TWO_TASK

[oracle@localhost ~]$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Wed Mar 16 02:06:56 2022
Version 19.3.0.0.0

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


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

SQL>

TWO_TASK设置了默认的服务名连接,例如下面的连接使用了TWO_TASK指定的服务:

[oracle@localhost ~]$ sqlplus oracleace/oracleace 

SQL*Plus: Release 19.0.0.0.0 - Production on Wed Mar 16 02:11:42 2022
Version 19.3.0.0.0

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


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

SQL>