前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Oracle自治数据库和自动化运维新特性与新进展

Oracle自治数据库和自动化运维新特性与新进展

作者头像
数据和云
发布2020-12-18 09:55:54
9270
发布2020-12-18 09:55:54
举报
文章被收录于专栏:数据和云数据和云

墨墨导读:数2020数据技术嘉年华于11月21日落下帷幕,大会历时两天,来自全国各地的数据领域学术精英、领袖人物、技术专家、从业者和技术爱好者相聚北京,见证了个人的快速成长、技术的迭代进步、行业的蓬勃发展、生态的融合共赢,以及市场的风云变迁。

2020数据技术嘉年华近50个PPT下载、视频回放已上传墨天轮平台,可在“数据和云”公众号回复关键词“DTC2020”获得!

本文根据 张维照 老师在 2020数据技术嘉年华 分享的主题《Oracle的自治数据库和自动化运维新特性与新进展》整理而成。

张维照:云和恩墨技术总监,Oracle ACE-A。2006年起从事数据库管理工作,2009年起从事ORACLE DBA维护工作,十余年来专注于Database 技术和架构的研究,热衷于oracle数据库故障诊断、性能优化、内部原理、新特性的学习与分享,在BLOG分享大量的学习和案例经验。从事过多套TB级省级工商、医疗、交通、人社、政府、电信运营商等行业数据库项目从业经验。个人网站 www.anbob.com

以下为正文:

近两年各类数据库百花齐放,国产及开源数据库崛起,数据库运维进入了新阶段,从上午的大会内容了解到国内大厂如腾讯、阿里、华为也在数据库中引入了自治和机器学习,很欣慰同样期待国产数据库在自治领域能够不断创新。

个人感觉商业数据库Oracle基于20多年在数据库自动化技术积累和多年基础设施(Exadata)发展,依然引领数据库智能化管理发展方向,2018年Oracle发布第一款Autonomous Database(自治数据库),实现数据库的完全自治,进入数据库自动驾驶时代。未来IT会成为一种真正的资源工具,像水、电一样方便的使用,按需申请,自动管理、自动优化、自动安全等对业务和开发带来更佳体验,无需关心后端数据库类型,亦或是不再区分OLAP和OLTP。解放过去ORACLE DBA们繁重重复的基础运维工作,转变角色做更有价值的内容。Oracle自治数据库应用目前还不是很多,本次我会分享自己在自治数据库了解及Oracle数据库在自动化运维方向的部分特性。

第一部分 Oracle自治数据库

为什么需要自治?
  • IT变化越来越复杂、规模越来越庞大、数据管理更佳复杂
  • 业务对数据库的交付敏捷、灵活、容量、安全、可用性提出更高的要求
  • 对数据库管理员能力要求更高
  • 企业关注重点有IT转向业务
自治数据库基础构成
  • Oracle 企业数据库 Oracle自治数据库基于数据库企业版多个自动化技术,如RAC, Parallel、 ADG、TDE、inmemroy、Online Patch…
  • Oracle 云基础设施 Oracle云和新一代软件定义的基础设施即服务架构适用于所有应用程序和数据库, Oracle Exadata Machine提供软硬件一体化,提供多种优化技术,计算层SQL负载下沉到存储节点、提供RDMA加大SQL的扩展能力
  • 策略驱动的自动化 自动化每个工作负载的最佳配置,云运维+机器学习,基于开发和运维经验利用机器学习和强大的知识库,实例自动优化和运维
Oracle自治数据库类型

Oracle提供了3种工作负载的数据库用于分析、交易、非关系型JSON场景的处理。

Oracle自治管理

Oracle自治数据库实现了数据库的快速交付,实现自动监控、备份、性能调估、数据库升级,对于数据库安全风险的在线修复、强制透明加密,数据的访问隔离,云服务将提供热补丁和实时调整,Bug等问题将得到及时的解决,极大可能地消除系统运行时的手动维护活动,分分钟实现一键DG创建和switchover切换演练,及透明应用转移Failover。

在自治数据中客户只关心数据:创建用户、秘钥, 数据,自动数据库提供全生命周期自动化管理,自治数据库后台并不是大量DBA而是AI, 内置MAA最佳实践、物理资源智能伸缩,自治数据库管理有用户定义策略维护任务实现更多自治。

公有云挑战

Oracle自治数据库离不开Oracle云运维,有些客户可能无法把数据存储于公有云,主要有以下原因:

  • 法律法规、
  • 延迟
  • 数据库与应用集成
  • 安全风险
混合云C@C

对于无法把数据库迁移致公有云的客户,Oracle推出了基于Exadata的混合云cloud@customer服务, Exadata存放在客户的数据库中心,同时配合远程的ORACLE云运维优势,组合Autonomous Database on Exadata Cloud@Customer环境,实现自治数据库的本地化部署。

  • 无公网暴露, 本地只需要打开TCP/443出站firewall规则
  • VPN安全加密
  • 数据存在本地,公有云无客户数据
  • 客户数据强制透明加密

Oracle自治数据库提供了更方便的数据库运维体验, 利用云弹性特性,减少过去静态根据峰值+预算购买带来硬件和软件license浪费,资源动态按实际负载分钟收费,实现数据库的Serverless化。另外集成了开发IDE环境,支持SQL、Python、 R、GO语言进行数据科学的研究。

自治时代DBA

云在很大程度上接管了系统DBA的功能,并使云中许多功能自动化,DBA正在从系统DBA角色转移到更多以应用程序为中心(App DBA)的职责。同时也意味着DBA工作范围的扩大,正如当Oracle Exadata出现时,DBA角色与系统管理员和存储管理员的角色的融合。众多的琐碎的数据库创建部署和维护任务(如监视,错误检查,定期备份/恢复,打补丁…)将不再需要。转型做领导看的见的能给企业带来价值的工作中,如架构设计、应用优化、数据生命周期管理、 数据科学等。同样对于一些场景,自治能解决问题但无法知道问题根本原因,是无法完全替代高级DBA的,云和自治数据库将释放出DBA的双手,一个DBA将轻松管理更多的数据库。相信未来几年不只是Oracle数据库, 其它国产数据库或云数据库都将引入自治改变传统DBA。

第二部分 Oracle自动化特性

Oracle数据库在近20年来在数据库自动化管理上不断创新,在性能、内存管理、健康分析、高可用、易用性投入大量的时间和新特性,并成熟稳定运行。如AWR, ASM,SPM,AUTO INDEX等广泛应用。

19c Automatic indexing

Oracle 19c引入了自动索引特性,好似一个系统专家在7*24小时分析SQL性能, 基于表列上的使用情况,以最小化影响的原则,利用oracle数据库里的特性,逐步自动创建索引,验证、性能管理,并实现长时间不使用索引的删除。

使用了哪些技术
  • Automatic SQL tuning sets
  • SQL Performance Analyzer
  • Index Visibility
  • Index Online Create
  • SQL Plan Management
  • Advanced COMPRESS e.g.
代码语言:javascript
复制
create index ANBOB.SYS_AI_XXXXXX ON ANBOB.T1(ID) TABLESPACE USERS 
          UNUSABLE INVISIBLE AUTO COMPRESS ADVANCED LOW ONLINE;  


自动索引创建 “debugging”
  • DBA[CDB]_AUTO_INDEX_VERIFICATIONS — 列出自动索引的PLAN_HASH_VALUE,和BUFFER_GETS对比等
  • DBA_AUTO_INDEX_IND_ACTIONS – 列出索引创建的时间、SQL(create ,drop ,rebuild, visible)
  • To trace file
代码语言:javascript
复制

update SMB$CONFIG set   _AUTO_INDEX_TRACE=2
-- Or --
call dbms_auto_index_internal.configure(‘_AUTO_INDEX_TRACE’,2,true,true)
代码语言:javascript
复制

从数据库提供的view 查看自动索引的创建情况,前后性能的对比和语句。

自动索引创建的错误
代码语言:javascript
复制
DBA_ADVISOR_FINDINGS
JOIN DBA_ADVISOR_EXECUTIONS USING EXECUTION_NAME
Where type=‘ERROR’

数据库提供的view 查看自动索引的创建失败的原因。

自动索引删除

oracle默认不允许人为删除AI索引, 如果想不使用AI索引:

  • init参数或sql opt_param hint “_optimizer_use_auto_indexes”=OFF
  • 关闭AUTO INDEX 功能
  • drop tablespace xxx(AI索引所在的表空间) including contents;
  • 修改index基表 (不受支持的,不要在生产环境做)

Drop secondary indexes,用于手动清理表上的索引,可以删除pk,uk,fk外索引

代码语言:javascript
复制
SQL> exec sys.dbms_auto_index.drop_secondary_indexes('SCOTT','EMP');

19c Automatic Hugepage(No THP)

HugePage 是Linux平台上oracle最佳实践建议的配置,USE_LARGE_PAGES是Oracle共享内存使用大页相关的参数。

USE_LARGE_PAGES有效值

  • True: 默认值,如果操作系统分配hugepage可用,尝试使用hugepage
  • False: 不使用hugepage
  • Only: 如是hugepage不能用于整个实例所需要共享内存,将启动失败
  • Auto: 一种可能值,12.2 如果可能使用在启动时尝试调用linux kernel增加hugepages
  • Auto-only: auto+ only 19c引入,Exadata环境默认值

测试

1. 当前系统并未配置hugepage

代码语言:javascript
复制
[root@oel7db1 ~]# cat /proc/meminfo
MemTotal:        3765384 kB
MemFree:         3557852 kB
MemAvailable:    3623672 kB
Buffers:            2108 kB
Cached:           107400 kB
SwapCached:            0 kB
Shmem:              8704 kB
Slab:              28048 kB
SReclaimable:      15932 kB
PageTables:         4432 kB
...
CmaFree:               0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0


2. 禁用AMM(AMM不支持hugepage), 配置use_large_pages=auto_only
代码语言:javascript
复制
SQL> alter system set use_large_pages=AUTO_ONLY scope=spfile;
System altered.

SQL> shut immediate;

SQL> startup mount
ORACLE instance started.

Total System Global Area  700445640 bytes
Fixed Size                  9139144 bytes
Variable Size             419430400 bytes
Database Buffers          268435456 bytes
Redo Buffers                3440640 bytes
Database mounted.

3. 观察DB ALERT LOG,显示使用了HUGEPAGE

代码语言:javascript
复制
Starting ORACLE instance (normal) (OS id: 3567)
****************************************************
 Sys-V shared memory will be used for creating SGA
 ****************************************************
DISM started, OS id=3579
*******************************************************Dump of system resources acquired for SHARED GLOBAL AREA (SGA)
 Per process system memlock (soft) limit = 128G
 Expected per process system memlock (soft) limit to lock
 instance MAX SHARED GLOBAL AREA (SGA) into memory: 672M
 Available system pagesizes:
  4K, 2048K
 Supported system pagesize(s):
  PAGESIZE  AVAILABLE_PAGES  EXPECTED_PAGES  ALLOCATED_PAGES  ERROR(s)
     2048K              336             336             336        NONE
 Reason for not supporting certain system pagesizes:
  4K - Large pagesizes only 
*******************************************************

已自动使用上了HUGEPAGES, 并且大小几乎是我们配置的SGA大小。

4. 检查OS

代码语言:javascript
复制
$cat /proc/meminfo
MemTotal: 3765384 kB
MemFree: 2246868 kB
MemAvailable: 2721796 kB
Buffers: 2108 kB
Cached: 515388 kB
Shmem: 8800 kB
HardwareCorrupted: 0 kB
AnonHugePages: 0 kB
ShmemHugePages: 0 kB
ShmemPmdMapped: 0 kB
CmaTotal: 0 kB
CmaFree: 0 kB
 HugePages_Total: 336
 HugePages_Free: 3
 HugePages_Rsvd: 3
 HugePages_Surp: 0
 Hugepagesize: 2048 kB

$sysctl -a|grep page
vm.hugepages_treat_as_movable = 0
vm.nr_hugepages = 336 
vm.nr_hugepages_mempolicy = 336
vm.nr_overcommit_hugepages = 0
vm.page-cluster = 3

[oracle@oel7db1 dbs]$ cat /etc/sysctl.conf |grep page
[oracle@oel7db1 dbs]$

[oracle@oel7db1 ~]$ ps -ef|grep 3579|grep -v grep
root      3579     1  0 08:19 ?        00:00:00 ora_dism_anbob19c

[oracle@oel7db1 ~]$ ls -l `which oradism`
-rwsr-x--- 1 root oinstall 147848 Apr 17  2019 /u01/app/oracle/product/19.2.0/db_1/bin/oradism

只是通过修改数据库参数,OS内核自动修改了vm.nr_hugepages配置hugepage,但是并未改变参数文件/etc/sysctl.conf的配置,重启操作系统hugepage将会释放或只按/etc/sysctl.conf指定的大小。实际是有oradism 进程扩展了linux kenel 的hugepage个数,该进程是root的属主,原来是应用于SunOS平台的动态内存管理。另外如果启动时linux 预分配的hugepages够db实例使用,实例启动时也不会启动oradism。

20c Auto Machine Learning

我们正处于机器学习应用程序引领的一场革命的中间,机器学习+大数据创造无限可能。成功的机器学习应用不是拥有最好的算法,而是拥有更多的数据!

借助Oracle机器学习,Oracle可以将算法转移到数据中。Oracle在数据所在的数据库内运行机器学习。这种方法最大程度地减少或消除了数据移动,实现了可伸缩性,保留了数据安全性,并加快了模型部署时间。Oracle提供了机器学习算法的并行数据库内实现,并与领先的开源环境R和Python集成。Oracle机器学习可提供企业规模的数据科学项目所需的性能,可伸缩性和自动化,包括本地部署和云计算。

Oracle Python机器学习(OML4Py)引入了一项新功能,称为AutoML,该功能包括自动模型选择,功能选择和超参数调整。AutoML采用元学习或使用机器学习来指导机器学习过程。“自动模型选择”可识别可实现最高模型质量并能够更快找到最佳模型的算法。“自动特征选择”通过识别对指定分类或回归目标最具预测性的特征来减少特征数量。“自动调参”避免了手动或详尽的搜索技术,这可以显着提高模型的准确性,同时使繁琐的工作不再需要人工探索。

自动化机器学习是Oracle Advanced Analytics中的一项新功能,它可以自动执行这些步骤,从而以快速且可扩展的方式生成准确的模型。这种自动化不仅提高了数据科学家的工作效率,而且在AutoML的情况下减少了总体计算机时间,而且还使非专业用户可以利用机器学习,不需要了解机器学习过程的各个方面。

小结

多年来,Oracle已将数据库演化为“聚合数据库”,数据科学是一项团队运动,因此Oracle机器学习支持SQL(OML4SQL),R集成(OML4R)和(即将推出)Python集成(OML4Py)。Oracle机器学习还通过Oracle自治数据库和Oracle Data Miner的拖放式UI(SQL Developer扩展)提供了Oracle Machine Learning Notebooks (基于Zeppelin)。嵌入式Python执行,可从SQL部署Python脚本。借助Oracle的融合数据库和30多种嵌入式机器学习算法,您可以更轻松地在整个企业中分发新的见解和预测,甚至可以构建“预测性”应用程序。

墨天轮原文链接:https://www.modb.pro/db/41690

PPT下载:https://www.modb.pro/doc/6902

视频回放:https://www.modb.pro/video/3091(复制到浏览器中打开或者点击“阅读原文”)

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-12-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据和云 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第一部分 Oracle自治数据库
    • 为什么需要自治?
      • 自治数据库基础构成
        • Oracle自治数据库类型
          • Oracle自治管理
            • 公有云挑战
              • 混合云C@C
                • 自治时代DBA
                • 第二部分 Oracle自动化特性
                  • 19c Automatic indexing
                    • 使用了哪些技术
                    • 自动索引创建的错误
                    • 自动索引删除
                  • 19c Automatic Hugepage(No THP)
                    • 20c Auto Machine Learning
                    • 小结
                    相关产品与服务
                    数据库智能管家 DBbrain
                    数据库智能管家(TencentDB for DBbrain,DBbrain)是腾讯云推出的一款为用户提供数据库性能、安全、管理等功能的数据库自治云服务。DBbrain 利用机器学习、大数据手段、专家经验引擎快速复制资深数据库管理员的成熟经验,将大量传统人工的数据库运维工作智能化,服务于云上和云下企业,有效保障数据库服务的安全、稳定及高效运行。
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档