浅谈Oracle Database 19c
Oracle Database 19c是大多数客户将其升级目标定位的版本,Oracle已将稳定性作为此版本的核心目标。 在Oracle Database 19c中,开发人员专注于修复已知问题,而不是添加新功能。 这导致了数百人年的测试和数千台服务器每天24小时运行测试。这种对稳定性的关注远不止核心数据库功能; 它还涵盖了从安装程序到组成产品的实用程序和工具的技术堆栈的所有方面。 这种方法加上我们对修补过程所做的更改将大大减轻我们客户未来几年的修补负担。
在我们讨论Oracle Database 19c中的一些更改之前,重要的是要记住Oracle数据库在过去40年中一直是企业系统的基石。 在此期间,我们在客户群的指导下添加了众多功能; 其中许多功能及其实现都是业界领先的,并且在许多情况下仍然是Oracle数据库的独特之处。
当数据无法访问时,数据对企业用户没什么价值,Oracle数据库确保它始终可以访问。确保数据库在意外服务器中断后重新启动时保持一致是如此的简单。 或者通过提供灾难恢复,Oracle数据库可以提供远距离数据的同步(或异步)复制,同时使其可用于报告和备份。任何服务器中断可能产生严重影响的任务关键系统中, 几乎都能发现Oracle Real Application Clusters(RAC)数据库的存在。 RAC使客户能够将Oracle数据库扩展到非常高的吞吐量和并发性,而无需更改其应用程序。
Oracle数据库被广泛认为是业界最安全的数据存储库之一。 没有其他数据库解决方案具有强大的功能或实施深度。 无论是我们实现的简单访问控制还是将数据类型到row level。 Oracle在数据的整个生命周期中可以对数据进行加密,以确保最大限度地减少恶意访问。
在Oracle数据库19c中虽然稳定性是Oracle Database 19c的重点,但并不是说没有一些值得一提的新功能和增强功能,例如:
Automatic Indexing
自动索引目前行业没有相关经验,优化数据库性能对许多客户来说都是一个挑战。 确定表中的哪些列需要索引不仅有益于单个查询,而且可能有数千种变体需要深入了解Oracle数据库的数据模型,性能相关功能以及底层硬件。 在Oracle Database 19c中,我们引入了自动索引,它不断评估执行的SQL和基础表,以确定要创建哪些索引以及可能删除哪些索引。 它通过专家系统完成此任务,该系统验证索引可能做出的改进,并在创建之后验证所做的假设。 然后它使用强化学习来确保它不再犯同样的错误。 最重要的是,随着数据模型和访问路径的变化,Oracle Database 19c能够随着时间的推移进行调整。
Active Standby DML
Active Standby DML重定向Active Data Guard的一个流行功能是它能够利用备用数据库进行报告和备份。 使用基本Data Guard,备用数据库可以持续恢复从主数据库发送的重做信息。 虽然通过Active Data Guard是充分利用企业资源的重大改进,提高了数据库的“备用”能力,但许多报告应用程序需要能够持久保存某些数据,例如记录信息以用于审计目的。 在Oracle Database 19c中,我们现在允许用户将此类写请求发送到备用数据库。 然后将这些写入透明地重定向到主数据库并首先写入(以确保一致性),然后将更改发送回备用数据库。 此方法允许应用程序将备用数据库用于中等写入工作负载,而无需更改任何应用程序。
Hybrid Partitioned
混合分区表将较大的表分成较小的块或分区使它们更易于管理,并且可以通过仅将操作集中在它们适用的数据上来提高性能。 Oracle数据库支持多种模型,用于分区数据以及用于分区管理的在线操作。但是,随着企业数据的规模和复杂性不断增加,监管要求要求它始终保持在线状态,我们需要查看管理它的新模型。使用混合分区表,DBA现在可以像以前一样将数据分成可管理的分区,但DBA现在可以选择应该在数据库中保留哪些分区以进行快速查询和更新,以及哪些分区可以只读并存储在外部分区中。这些外部分区可以在标准文件系统内部或低成本HDFS上保留。 DBA还可以选择将数据放在基于云的对象库中,从而将表“扩展”到云端。
JSON
JSON增强功能Oracle Database 19c中对JSON支持进行了大量增量增强,从简化SQL功能到部分更新JSON文档。
Memoptimized Rowstore
Memoptimized Rowstore此功能可以从物联网(IoT)等应用程序快速将数据插入Oracle Database 19c,这些应用程序以最少的事务开销摄取小型高容量事务。 使用快速摄取功能的插入操作会临时缓冲大型池中的数据,然后以延迟的异步方式批量写入磁盘。 实现该功能是从SGA中申请了新的内存子池叫做Memoptimized Pool, 该子池又分为两个部分 Memoptimize Buffer Area(75%)和Hash Index(25%),, 后期再展开详细介绍。
Memoptimized Rowstore提供以下功能:
Fast ingest
快速摄取优化了高频率,单行数据插入数据库的处理。 Fast ingest使用large pool在将插件写入磁盘之前缓冲插件,以提高数据插入性能。
Fast lookup
快速查找可以快速从数据库中检索数据,以进行高频率查询。 快速查找在SGA中使用称为memoptimize池的单独内存区域来缓冲从表中查询的数据,从而提高查询性能,该功能在18c时引入。
Quarantine SQL Statements
Quarantine SQL Statements由于过度消耗处理器和I / O资源而由资源管理器终止的失控SQL语句,现在可以自动隔离。这可以防止这些失控的SQL语句再次执行,从而保护Oracle Database 19c免受性能下降的影响。
Real Time Statistics
实时统计(Real Time Statistics)现在查询优化器需要对表中数据的结构和组成进行详细统计,以使它们能够就如何执行复杂查询做出“最佳”决策。这样做的问题是统计收集可能是资源密集型的并且需要一段时间。对于最近的“always on”应用程序,找到运行批处理以收集此数据的窗口很困难。在Oracle Database 19c中,现在可以收集统计信息,可以像insert\delete\update数据一样实时收集统计信息。现在客户无需在优化程序所依赖的统计数据质量和为统计信息维护找到合适的时间之间做出妥协。
小结
综上所述,可以看到oracle 19c把稳定性放到了首位,解决了之前12c, 18c引入的数百个新特性存在的已知问题,是客户升级12c系列的理想版本(如果计划升级12c 18c不妨直接考虑19c), 在上个月我wechat上也有说过18C RU5 是修复了1050个已知BUG, 如果运行在之前的版本可以想象一下,很容易遇到“小惊喜”。 别外19c 同样也引入了几个新特性,尤其是在自治方面,如自动索引创建和自动问题SQL隔离, 还有在传统数据库上对于物理网IoT上所做的努力Memoptimized Rowstore。 同样如果你有安装19c 经验发现已经简便了许多,如root.sh , netca已集成。 关注我的BLOG ,后期会继续深入展开各特性。
安装SINGLE INSTTANCE 19C
$ mkdir /media/disk $ mount /dev/cdrom /media/disk $ cd /etc/yum.repos.d $ mv public-yum-ol7.repo public-yum-ol7.repo_bak $ vi public-yum-ol7.repo [oel7] name = Enterprise Linux 7.3 DVD baseurl=file:///media/disk/ gpgcheck=0 enabled=1 $ yum install oracle-database-server-12cR2-preinstall-1.0-2.el7.x86_64.rpm $ vi /etc/selinux/config SELINUX=disabled mkdir -p /u01/app/oracle/product/19.2.0/db_1 chown -R oracle:oinstall /u01 chmod -R 775 /u01 $ vi /etc/security/limits.conf oracle soft nofile 1024 oracle hard nofile 65536 oracle soft nproc 2047 oracle hard nproc 16384 oracle soft stack 10240 oracle hard stack 32768 $ passwd oracle $ su - oracle $ id oracle uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 $ vi .bash_profile export TMP=/tmp export TMPDIR=$TMP export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/19.2.0/db_1 export ORACLE_SID=anbob19c export PATH=/usr/sbin:$PATH export PATH=$ORACLE_HOME/bin:$PATH export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib # upload file to /u01/app/oracle/product/19.2.0/db_1 $ cd /u01/app/oracle/product/19.2.0/db_1 $ unzip V981623-01 oracle 19.2.zip $ ls addnode crs dbjava dmu hs jdbc md olap ords plsql rdbms sdk sqlplus utl apex css dbs drdaas install jdk mgw OPatch oss precomp relnotes slax srvm V981623-01 oracle 19.2.zip assistants ctx deinstall dv instantclient jlib network opmn oui QOpatch root.sh sqldeveloper suptools wwg bin cv demo env.ora inventory ldap nls oracore owm R runInstaller sqlj ucp xdk clone data diagnostics has javavm lib odbc ord perl racg schagent.conf sqlpatch usm $ export DISPLAY=192.168.56.1:0 $ ./runInstaller Launching Oracle Database Setup Wizard.. -- software only $ dbca -initParams "_exadata_feature_on=true" SQL> @i USERNAME INST_NAME HOST_NAME SID SERIAL# VERSION STARTED SPID OPID CPID SADDR PADDR -------------------- -------------------- ------------------------- ----- -------- ---------- -------- ---------- ----- --------------- ---------------- ---------------- SYS anbob19c localhost.localdomain 390 56967 19.0.0.0.0 20190220 2529 28 2453 0000000067081028 0000000067CFFEC8 SQL> select * from dba_auto_index_config; PARAMETER_NAME PARAMETER_VALUE LAST_MODIFIED MODIFIED_BY ---------------------------------------- ------------------------------ ------------------------------ ------------------------------ AUTO_INDEX_DEFAULT_TABLESPACE AUTO_INDEX_MODE OFF AUTO_INDEX_REPORT_RETENTION 31 AUTO_INDEX_RETENTION_FOR_AUTO 373 AUTO_INDEX_RETENTION_FOR_MANUAL AUTO_INDEX_SCHEMA AUTO_INDEX_SPACE_BUDGET 50 7 rows selected.
Refrence https://blogs.oracle.com/oracle-database/oracle-database-19c-now-available-on-oracle-exadata
目前这篇文章有1条评论(Rss)评论关闭。