哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验
一位上进心十足的【大数据领域博主】!
中国DBA联盟(ACDU)成员,目前服务于工业互联网
擅长主流Oracle、MySQL、PG、高斯及GP 运维开发,备份恢复,安装迁移,性能优化、故障应急处理等。
✨ 如果有对【数据库】感兴趣的【小可爱】,欢迎关注【IT邦德】
❤️❤️❤️感谢各位大可爱小可爱!❤️❤️❤️
文章目录
- 前言
- 1.23C概述
- 2.环境准备
- 3.环境配置
- ✨ 3.1 关闭防火墙
- ✨ 3.2 SELINUX关闭
- ✨ 3.3 avahi服务停止
- ✨ 3.4 host设置
- 4.yum配置
- 5.安装数据库
- 6.数据库配置
- 7.访问数据库
- 8.新特性
前言
2023年4月3日, Oracle CloudWorld Tour –甲骨文宣布推出免费版 Oracle Database 23c,本博客介绍了23C的部署及新特性
1.23C概述
2023年4月3日, Oracle CloudWorld Tour –甲骨文宣布推出免费版 Oracle Database 23c。新的Oracle Database 23c 免费版 — 开发人员版本 满足了全球开发人员和组织日益增长的访问 Oracle Database 23c“ App Simple ”中最新特性的需求。开发人员现在可以使用创新的 Oracle 数据库特性,这些特性可以简化现代数据驱动应用程序的开发,让他们为计划中的下一个长期支持版本 Oracle 数据库 23c 版本做好准备。
Oracle Database 23c 免费版——开发人员版可 作为 Docker Image、VirtualBox VM 或 Linux RPM 安装文件下载,
无需用户帐户或登录。计划很快推出 Windows 版本
官方下载地址:
https://www.oracle.com/database/technologies/free-downloads.html
2.环境准备
操作系统: Oracle Linux 8.7数据库: Oracle Database 23c Free - Developer Release安装包:OracleLinux-R8-U7-x86_64-dvd.isooracle-database-free-23c-1.0-1.el8.x86_64.rpmoracle-database-preinstall-23c-1.0-0.5.el8.x86_64Oracle Linux官方网址:https://yum.oracle.com/oracle-linux-isos.html
3.环境配置
✨ 3.1 关闭防火墙
[root@OEL8 ~]# systemctl stop firewalld.service [root@OEL8 ~]# systemctl disable firewalld.serviceRemoved /etc/systemd/system/multi-user.target.wants/firewalld.service.Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.[root@OEL8 ~]# systemctl status firewalld.service
✨ 3.2 SELINUX关闭
sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config注:更改后记得重启服务器生效[root@OEL8 ~]# /usr/sbin/sestatusSELinux status: disabled
✨ 3.3 avahi服务停止
systemctl stop avahi-daemon.socketsystemctl stop avahi-daemonsystemctl disable avahi-daemon.socketsystemctl disable avahi-daemon
✨ 3.4 host设置
[root@OEL8 ~]# cat /etc/hosts127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4::1 localhost localhost.localdomain localhost6 localhost6.localdomain6##新增ip与host的对应关系192.168.6.66 OEL8
4.yum配置
[root@OEL8 opt]# mount | grep sr0/dev/sr0 on /run/media/root/OL-8-7-0-BaseOS-x86_64 type iso9660 (ro,nosuid,nodev,relatime,nojoliet,check=s,map=n,blocksize=2048,uid=0,gid=0,dmode=500,fmode=400,iocharset=utf8,uhelper=udisks2)[root@OEL8 ~]# cd /etc/yum.repos.d[root@OEL8 yum.repos.d]# vi server.repo[AppStream]name=Linuxenable=1gpgcheck=0baseurl=file:///run/media/root/OL-8-7-0-BaseOS-x86_64/AppStream[BaseOS]name=Linuxenable=1gpgcheck=0baseurl=file:///run/media/root/OL-8-7-0-BaseOS-x86_64/BaseOS[root@OEL8 yum.repos.d]# yum repolist[root@OEL8 yum.repos.d]# yum repolistrepo idrepo nameAppStreamLinuxBaseOS Linux
5.安装数据库
1.上传安装包至 /opt目录下[root@OEL8 ~]# cd /opt[root@OEL8 opt]# ll-rw-r--r-- 1 root root 1758776440 Apr5 09:49 oracle-database-free-23c-1.0-1.el8.x86_64.rpm-rw-r--r-- 1 root root30688 Apr5 09:49 oracle-database-preinstall-23c-1.0-0.5.el8.x86_64.rpm2.安装预安装包[root@OEL8 opt]# yum -y localinstall oracle-database-preinstall-23c*3.安装数据库[root@OEL8 opt]# yum -y localinstall oracle-database-free-23c*
6.数据库配置
1.修改配置文件[root@OEL8 ~]# vi /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 assignmentLISTENER_PORT=1521# Character set of the databaseCHARSET=AL32UTF8# Database file directory# If not specified, database files are stored under Oracle base/oradataDBFILE_DEST=/app/oracle/oradata/# DB Domain nameDB_DOMAIN=23cfree# SKIP Validations, memory, spaceSKIP_VALIDATIONS=false2.创建目录、授权[root@OEL8 ~]# mkdir -p /app/oracle/oradata/FREE[root@OEL8 ~]# chmod 775 -R /app[root@OEL8 ~]# chown oracle:oinstall -R /app3.启动数据库##此处设置密码为:Orace123456[root@OEL8 ~]# /etc/init.d/oracle-free-23c configure
7.访问数据库
1.查看数据状态[root@OEL8 ~]# /etc/init.d/oracle-free-23c statusStatus of the Oracle FREE 23c service:LISTENER status: RUNNINGFREE Database status: RUNNING2.环境变量设置[oracle@OEL8 ~]$ vi .bash_profileexport ORACLE_SID=FREEexport ORACLE_BASE=/opt/oracleexport ORACLE_HOME=$ORACLE_BASE/product/23c/dbhomeFreeexport PATH=$PATH:$ORACLE_HOME/binexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/libexport CLASSPATH=$ORACLE_HOME/JRE:ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlibexport NLS_LANG="AMERICAN_AMERICA.AL32UTF8"[oracle@OEL8 ~]$ source .bash_profile3.服务器登陆数据库[oracle@OEL8 ~]$ sqlplus / as sysdba4.远程登陆数据库[oracle@OEL8 ~]$ sqlplus sys/Orace123456@192.168.6.66:1521/FREE.23cfree as sysdba
8.新特性
(1) 不带FROM子句的SELECT查询在Oracle 23c中,第一次实现了不带From子句的查询,也不需要dualSQL>ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS';Session altered.SQL> SELECT SYSDATE;SYSDATE-------------------2023-04-05 11:27:55(2) 单表支持4096列Oracle 此前版本单表支持1000列。在23c中,单表支持列数量扩展到4096列,启用这一个特性需要将兼容性参数设置为23.0.0,同时将 Max_columns设置为Extended。SQL> show parameter MAX_COLUMNS; NAME TYPEVALUE------------------------------------ ----------- ------------------------------max_columnsstringSTANDARDSQL> alter system set MAX_COLUMNS=EXTENDED scope=spfile;注:静态参数修改,需要重启数据库SQL> shu immediate;SQL> startupSQL> show parameter MAX_COLUMNS; NAME TYPEVALUE------------------------------------ ----------- ------------------------------max_columnsstringEXTENDED(3)SCHEMA级别的权限在23c之前的版本,如果针对Schema对其他用户进行授权,需要通过系统权限或对象权限分别显式地授予,这对数据库带来了额外的安全风险或复杂性。在Oracle 23中,可以对Schema进行授权,简化了之前的权限操作,grant select any table on SCHMEA GSMUSER to DIP;(4)Boolean数据类型在Oracle Database 23c中,布尔数据类型被支持create table test(name varchar2(100),flag BOOLEAN);INSERT INTO test VALUES('jeames',1);INSERT INTO test VALUES('IT',True);INSERT INTO test VALUES('hefei',1);INSERT INTO test VALUES('abc',FALSE);select name from test where flag;SQL> select name from test where flag;NAME------------jeamesIThefei(5)基于别名的GROUP BY在Oracle Database 23c中,现在支持基于别名、位置的GROUP BY,这大大简化了SQL文本和编写select extract(year FROM hire_date) as hire_year,count(*)from employeesgroup by hire_yearhaving hire_year>1985;(6)DDL的 IF EXISTS判断在Oracle Database 23c中,DDL支持通过 IF [NOT] EXISTS 判断,从而规避执行过程中的错误、异常和中断创建表时指定:CREATE TABLE IF NOT EXISTS Customers (ID NUMBER(10), Name VARCHAR2(100));删除表时指定:DROP TABLE IF EXISTS Customers;