第137期 Oracle的数据生命周期管理(20240123)
数据库管理137期 2024-01-23
- 第137期 Oracle的数据生命周期管理(20240123)
 - 1 ILM
 - 2 Heat Map
 - 3 ADO
 - 4 优点
 - 5 对比
 - 总结
 
第137期 Oracle的数据生命周期管理(20240123)
作者:胖头鱼的鱼缸(尹海文)
Oracle ACE Associate: Database(Oracle与MySQL)
网思科技 DBA总监
10年数据库行业经验,现主要从事数据库服务工作
拥有OCM 11g/12c/19c、MySQL 8.0 OCP、Exadata、CDP等认证
墨天轮MVP、认证技术专家,ITPUB认证专家,OCM讲师
圈内拥有“总监”、“保安”、“国产数据库最大敌人”等称号,非著名社恐(社交恐怖分子)
公众号:胖头鱼的鱼缸;CSDN:胖头鱼的鱼缸(尹海文);墨天轮:胖头鱼的鱼缸;ITPUB:yhw1809。
除授权转载并标明出处外,均为“非法”抄袭。
上周在《2024阿里云PolarDB开发者大会》下午的“开源生态”分会场上,看到一个有趣的语句:
 
 即自动分区模式下,在超过12个月后,对应分区会被干掉(这里对PolarDB不是很熟悉,不确定是干掉还是归档还是其他操作)。周四在去Oracle北京办公室交流的时候提到了这件事情,O记诗人屈继成老师就提出,Oracle也有类似的功能,本周反蓉后也对相关的技术进行了学习。
 本期大部分内容来自于MOS文档《Information Lifecycle Management (ILM), Heat Map, Automatic Data Optimization (ADO)(Doc ID 1612385.1)》及其引申的相关内容。
1 ILM
几乎所有行业的数据量都在快速增长。数据的快速增长给IT带来了巨大的成本和性能挑战。
 尽管存储成本不断下降,但快速增长的数据量依然使存储成为大多数IT预算快速增长的主要原因。此外,数据的快速增长使其难以满足性能要求,同时在预算范围内。
 ILM,Information Lifecycle Management,信息生命周期管理,旨在根据企业当前的业务和性能需求,通过将数据存储在不同的存储和压缩层来解决这些难题。这种方法提供了优化存储以实现成本节约和最大性能的可能性。
 ILM是应用策略以在信息的整个使用寿命内对其进行有效管理的做法。ILM包括“一行”从开始到结束的每一个阶段,它包括用于使信息的业务价值与最适当、最经济高效的IT基础架构保持一致的策略、流程、操作和工具,从数据设计到最终处置。从Oracle 12c开始,可以使用自动数据优化(Automatic Data Optimization,ADO)创建策略,并根据这些策略自动执行操作,以实施ILM策略。ADO利用Heat Map收集的使用情况统计信息,通过分区、高级行压缩和混合列压缩等方式满足ILM策略要求。
2 Heat Map
Heat Map是Oracle Database 12c新增的一项功能,可在行和段级别存储系统生成的数据使用情况统计信息,这些信息可用于自动压缩和移动数据,以降低存储成本、提高性能并优化Oracle数据库存储。Heat Map和ADO结合使用,可以根据数据的使用情况自动执行压缩和存储策略。段级别的Heat Map跟踪表和分区的上次修改和访问时间;行级别Heat Map则跟踪行的修改时间。heat Map一旦启用,就会自动收集段和行级别的统计信息,这些统计信息可用于定义压缩和存储策略,这些策略将在数据的整个生命周期中自动维护。Heat Map跳过为系统任务完成的内部访问所要产生的记录即自动排除Stats Gathering、DDL或Table Redefinitions。
 通过以下SQL开启Heat Map:
ALTER SYSTEM SET HEAT_MAP = ON;
该参数默认为OFF。
 
V$HEAT_MAP_SEGMENT视图显示段的实时访问信息;而ALL_, DBA_和USER_HEAT_MAP_SEGMENT视图则显示用户所有可见段的最近段访问时间;而ALL_, DBA_, and USER_HEAT_MAP_SEG_HISTOGRAM则显示用户所有可见段的访问信息;DBA_HEATMAP_TOP_OBJECTS视图则显示Top 1000对象(object)的Heat Map信息;DBA_HEATMAP_TOP_TABLESPACES视图显示Top 1000表空间的Heat Map信息。
3 ADO
ADO,Automatic Data Optimization,自动数据优化,允许您创建数据压缩(智能压缩)和数据移动策略,以实现数据存储调整和压缩分层。智能压缩是指利用热图信息将压缩策略和压缩级别与实际数据使用情况相关联的能力。Oracle在维护窗口期间评估ADO策略,并使用Heat Map收集的信息来确定要执行的操作。所有ADO操作都是在后台自动执行的,不需要用户干预。ADO策略可以在段或行级别为表和表分区指定——当满足策略标准时,策略将在后台自动执行,也可以按需执行。ADO策略上的条件允许组织指定哪些条件将启动ADO操作,例如不访问数据或不修改数据,以及策略何时生效,例如,在“n”天或数月或数年不修改后,或在行或分区创建后“n”天后或数月,或包含对象的表空间满足预定义的表空间填充阈值时。您不局限于热图数据:您还可以使用PL/SQL函数创建自定义条件,扩展ADO的灵活性,使用您自己的数据来确定何时移动或压缩数据。Heat Map和ADO需要Advanced Compression Option。
 下面是MOS文档提供的一个栗子:
/* Create an example table with an ILM ADO policy */
CREATE TABLE <table name>
(PROD_ID NUMBER NOT NULL,
CUST_ID NUMBER NOT NULL,
TIME_ID DATE NOT NULL,
CHANNEL_ID NUMBER NOT NULL,
PROMO_ID NUMBER NOT NULL,
QUANTITY_SOLD NUMBER(10,2) NOT NULL,
AMOUNT_SOLD NUMBER(10,2) NOT NULL )
PARTITION BY RANGE (time_id)
( PARTITION sales_q1_2012 VALUES LESS THAN (TO_DATE('01-APR-2012','dd-MON-yyyy')),
PARTITION sales_q2_2012 VALUES LESS THAN (TO_DATE('01-JUL-2012','dd-MON-yyyy')),
PARTITION sales_q3_2012 VALUES LESS THAN (TO_DATE('01-OCT-2012','dd-MON-yyyy')),
PARTITION sales_q4_2012 VALUES LESS THAN (TO_DATE('01-JAN-2013','dd-MON-yyyy')) )
ILM ADD POLICY COMPRESS FOR ARCHIVE HIGH SEGMENT
AFTER 12 MONTHS OF NO ACCESS;/* View the existing ILM ADO polices */
SELECT SUBSTR(policy_name,1,24) POLICY_NAME, policy_type, enabled
FROM USER_ILMPOLICIES;POLICY_NAME POLICY_TYPE ENABLE
------------------------ ------------- ------
P1 DATA MOVEMENT YES
 
关于这个栗子就不做过多解释了。根据Heat Map收集的数据,再加上ADO提供的自动化策略,可以轻松地为智能压缩分层和存储分层实施ILM策略。Oracle高级压缩和Oracle分区选项结合在一起,通过更好地优化存储基础架构,提供了IT部门经济高效的信息管理,同时还保持了业务所需的性能和可扩展性。
4 优点
在数据库级别工作,不需要更改应用程序
 减少所有类型数据的磁盘空间需求
 允许您根据活动模式自动将数据移动到成本较低的存储中
 通过在高性能存储上只保留活动数据来减少查询时间
 提高最可靠存储上关键信息的可用性
更多关于ILM、Heat Map和ADO的内容可以查看官方文档Managing and Maintaining Time-Based Information (https://docs.oracle.com/en/database/oracle/oracle-database/19/vldbg/time-based-info.html#GUID-0193CE0F-4D9A-4D6F-8B19-E471DE94107C)
5 对比
相较于PolarDB提供的分区生命周期解决方案方案,Oracle的ILM提供了更加精细的数据处置方案,同时可操作对象更多、方式也更多(但也可能是我对PolarDB了解不够),可以实现对行或分区按照时间、访问、表空间用量等方式实现压缩、数据移动等操作。
 但PolarDB有一点完胜ILM,那就是SQL真心简单,易读易用易维护。
总结
通过PolarDB的分区生命周期解决,进而了解Oracle的数据生命周期管理。
 老规矩,知道写了些啥。
相关文章:
第137期 Oracle的数据生命周期管理(20240123)
数据库管理137期 2024-01-23 第137期 Oracle的数据生命周期管理(20240123)1 ILM2 Heat Map3 ADO4 优点5 对比总结 第137期 Oracle的数据生命周期管理(20240123) 作者:胖头鱼的鱼缸(尹海文) Orac…...
电脑的GPU太强了,pytorch版本跟不上,将cuda驱动进行降级
我的情况: 我买的电脑的GPU版本为rtx4060,但是装上相应的驱动后,cuda的版本为12.3,而现在pytorch中cuda安装命令的最新版本为12.1,所以我将电脑的驱动进行降级为cuda版本为10.1的。 最后成功安装cuda10.1版本的驱动 …...
1 认识微服务
1.认识微服务 随着互联网行业的发展,对服务的要求也越来越高,服务架构也从单体架构逐渐演变为现在流行的微服务架构。这些架构之间有怎样的差别呢? 1.0.学习目标 了解微服务架构的优缺点 1.1.单体架构 单体架构:将业务的所有…...
PHP+SOCKET 服务端多进程处理多客户端请求 demo
服务端 $socket socket_create(AF_INET,SOCK_STREAM,SOL_TCP); socket_bind($socket,0,95012) or die( server bind fail: . socket_strerror(socket_last_error())); socket_listen($socket,5);$child 0; //初始化子进程数 while(true){$client socket_accept($socket);$pi…...
Matplotlib笔记:安装Matplotlib+常用绘图
Matplotlib Python的2D绘图库 安装Matplotlib 打开Anaconda Prompt切换环境(默认是base,无需切换)输入命令行安装pip install -i https://pypi.tuna.tsinghua.edu.cn/simple matplotlib3.5.2 绘图 导入import matplotlib.pyplot as plt …...
Confluence6+mysql5.7安装避坑详细记录
目录 一、前言 二、下载与安装 1、版本和安装环境 2、安装数据库 3、配置数据库 4、安装confluence 三、Pj confluence 1、选择语言和产品安装 2、Pj 3、上传mysql驱动 4、重启Confluence服务继续安装 四、Confluence重启卸载方法 重启方法 方法一 方法二 卸载…...
YTM32的HSM模块在信息安全场景中的应用
YTM32的HSM模块在信息安全场景中的应用 文章目录 YTM32的HSM模块在信息安全场景中的应用引言应用场景:一点点密码学基础硬件:YTM32的信息安全子系统HCU外设模块硬件特性基本的应用操作流程,以计算AES-ECB为例硬件上对处理多块数据上的一些设计…...
时间序列大模型:TimeGPT
论文:https://arxiv.org/pdf/2310.03589.pdf TimeGPT,这是第一个用于时间序列的基础模型,能够为训练期间未见过的多样化数据集生成准确的预测。 大规模时间序列模型通过利用当代深度学习进步的能力,使精确预测和减少不确定性成为…...
CloudPanel RCE漏洞复现(CVE-2023-35885)
0x01 产品简介 CloudPanel 是一个基于 Web 的控制面板或管理界面,旨在简化云托管环境的管理。它提供了一个集中式平台,用于管理云基础架构的各个方面,包括虚拟机 (VM)、存储、网络和应用程序。 0x02 漏洞概述 由于2.3.1 之前的 CloudPanel 具有不安全的文件管理器 cook…...
WPF多值转换器
背景:实现Slider拖动可以调整rgb 单转换器:WPF中数据绑定转换器Converter-CSDN博客 在View中: <StackPanel Orientation"Vertical"><Slider x:Name"slider_R" Minimum"0" Maximum"255" Wi…...
x-cmd pkg | perl - 具有强大的文本处理能力的通用脚本语言
目录 介绍首次用户技术特点竞品进一步阅读 介绍 Perl 是一种动态弱类型编程语言。Perl 内部集成了正则表达式的功能,以及巨大的第三方代码库 CPAN;在处理文本领域,是最有竞争力的一门编程语言之一 生态系统:综合 Perl 档案网络 (CPAN) 提供了超过 25,0…...
Jedis(一)与Redis的关系
一、Jedis介绍: 1、背景: Jedis是基于Java语言的Redis的客户端,Jedis Java Redis。Redis不仅可以使用命令来操作,现在基本上主流的语言都有API支持,比如Java、C#、C、PHP、Node.js、Go等。在官方网站里有一些Java的…...
K8S--安装Nginx
原文网址:K8S--安装Nginx-CSDN博客 简介 本文介绍K8S安装Nginx的方法。 1.创建Nginx目录及配置文件 mkdir -p /work/devops/k8s/app/nginx/{config,html} 在config目录下创建nginx.conf配置文件,内容如下: # events必须要有 events {wo…...
[BUUCTF]-PWN:babyfengshui_33c3_2016解析
又是一道堆题,先看保护 关键信息是32位,没开pie 直接看ida 大致是alloc创建堆块,free释放堆块,show查看堆块内容,fill填充堆块内容 其他的都没啥关键的要讲,但alloc那里非常需要解析一下 解释如上图 再具…...
小程序系列--9.生命周期
1. 什么是生命周期? 2. 生命周期的分类 3. 什么是生命周期函数 4. 生命周期函数的分类 5. 应用的生命周期函数 6. 页面的生命周期函数...
SQL注入实战操作
一:SQl注入分类 按照注入的网页功能类型分类: 1、登入注入:表单,如登入表单,注册表单 2、cms注入:CMS逻辑:index.php首页展示内容,具有文章列表(链接具有文章id)、articles.php文 章详细页&a…...
Microsoft Remote Desktop for Mac(远程桌面连接)激活版
Microsoft Remote Desktop是一款由微软开发的远程桌面连接工具,它允许用户从另一台计算机或移动设备远程连接到Windows桌面或服务器。 以下是该软件的一些主要特点和功能: 跨平台支持:Microsoft Remote Desktop支持Windows、macOS、iOS和Andr…...
分布式日志
1 日志管理 1.1 日志管理方案 服务器数量较少时 直接登录到目标服务器捞日志查看 → 通过 rsyslog 或shell/python 等脚本实现日志搜集并集中保存到统一的日志服务器 服务器数量较多时 ELK 大型的日志系统,实现日志收集、日志存储、日志检索和分析 容器环境 …...
21.云原生之ArgoCD CICD实战(部分待补充)
云原生专栏大纲 文章目录 部署项目介绍项目结构介绍GitLab CI/CDGitLab CI/CD主要特点和功能 部署测试argocd的cd过程CICD工作流准备工作github中工作流文件创建gitlab中工作流文件创建【实操待补充】GitLab CI示例 数据加密之seale sealedBitnami Sealed Secrets介绍Bitnami …...
一文读懂JavaScript DOM节点操作(JavaScript DOM节点操作详解)
一、什么是节点 DOM模型是树状结构模型,二组成这棵树的就是一个个点,在网络术语中称之为节点。 节点是一个模型中最基本的组成单位。DOM模型是由一个个节点组成的,DOM节点也有其不同的类型。 二、节点类型 DOM节点分为5种类型:…...
<6>-MySQL表的增删查改
目录 一,create(创建表) 二,retrieve(查询表) 1,select列 2,where条件 三,update(更新表) 四,delete(删除表…...
TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案
一、TRS收益互换的本质与业务逻辑 (一)概念解析 TRS(Total Return Swap)收益互换是一种金融衍生工具,指交易双方约定在未来一定期限内,基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...
基于Docker Compose部署Java微服务项目
一. 创建根项目 根项目(父项目)主要用于依赖管理 一些需要注意的点: 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件,否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...
关于 WASM:1. WASM 基础原理
一、WASM 简介 1.1 WebAssembly 是什么? WebAssembly(WASM) 是一种能在现代浏览器中高效运行的二进制指令格式,它不是传统的编程语言,而是一种 低级字节码格式,可由高级语言(如 C、C、Rust&am…...
【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具
第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中,新增了一个本地验证码接口 /code,使用函数式路由(RouterFunction)和 Hutool 的 Circle…...
《C++ 模板》
目录 函数模板 类模板 非类型模板参数 模板特化 函数模板特化 类模板的特化 模板,就像一个模具,里面可以将不同类型的材料做成一个形状,其分为函数模板和类模板。 函数模板 函数模板可以简化函数重载的代码。格式:templa…...
Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)
引言 在人工智能飞速发展的今天,大语言模型(Large Language Models, LLMs)已成为技术领域的焦点。从智能写作到代码生成,LLM 的应用场景不断扩展,深刻改变了我们的工作和生活方式。然而,理解这些模型的内部…...
渗透实战PortSwigger靶场:lab13存储型DOM XSS详解
进来是需要留言的,先用做简单的 html 标签测试 发现面的</h1>不见了 数据包中找到了一个loadCommentsWithVulnerableEscapeHtml.js 他是把用户输入的<>进行 html 编码,输入的<>当成字符串处理回显到页面中,看来只是把用户输…...
解析两阶段提交与三阶段提交的核心差异及MySQL实现方案
引言 在分布式系统的事务处理中,如何保障跨节点数据操作的一致性始终是核心挑战。经典的两阶段提交协议(2PC)通过准备阶段与提交阶段的协调机制,以同步决策模式确保事务原子性。其改进版本三阶段提交协议(3PC…...
