数据库管理-第119期 记一次迁移和性能优化(202301130)

数据库管理-第119期 记一次迁移和性能优化(202301130)

1 迁移

之前因为DV组件没有迁移成功的那个PDB,后来想着在目标端安装DV组件迁移,结果目标端装不上,而且开了SR也没看出个所以然来。只能换一个方向,尝试在源端PDB中删除DV组件,而DV组件的删除从12cR2开始就是一个老大难问题。最终根据How To Enable/Install/Uninstall Database Vault in oracle database ? (Doc ID 2112167.1),发现:

从12.2-19c,DV组件无法在CDB中被卸载
20c中也仅仅只能在PDB中卸载DV组件
注意:现在提供Patch 29890347补丁包允许在PDB中卸载DV组件

有了这个消息,即可开始查看Patch 29890347: ADW18.1CDB: DV UNINSTALL SHOULD BE ALLOWED FROM WITHIN PDBS,这个补丁包比较和一般One-off patch有一点不一样,一般补丁需要关闭数据库应用,因为大多数会去影响数据库的一些运行库文件,而这个补丁包仅仅只包含了替换SQL脚本文件:
在这里插入图片描述
对应README文件里面也没有需要关闭数据库的操作,因此直接应用补丁即可(其实就是个备份、删除、复制的操作系统层面的操作):

unzip p29890347_1913000DBRU_Generic.zip
cd 29890347
$ORACLE_HOME/OPatch/opatch apply

在这里插入图片描述
然后再在需要操作的PDB中卸载DV组件即可:

@?/rdbms/admin/dvremove.sql

脚本运行完成后检查,DV组件已被卸载:
在这里插入图片描述
到这里后续在目标端的PDB克隆迁移操作就可以一股脑的整出来了(其实以前文章有):

create pluggable database pdb_xxx from pdb_xxx@xxx_LINK;
alter pluggable database pdb_xxx open upgrade;
$ORACLE_HOME/OPatch/datapatch -verbose
@?/rdbms/admin/utl32k.sql
@?/rdbms/admin/utlrp.sql
alter pluggable database close immediate
srvctl add service -db xxdbaas -pdb PDB_XXX -service XXXDB -preferred xxdbaas1,xxdbaas2
srvctl start service -db xxdbaas -s xxxdb

2 性能优化

3点过弄完盯了一会儿就睡觉,然后9点过早上另一个业务系统打电话说他们有个需要至少每10分钟跑一次存储过程突然变慢了,之前监控是从1分钟慢慢延长到了5分钟左右,今天突然来到25-30分钟才能完成,虽然对业务本身运行影响不大,但是也带来了一些时效性的问题。没办法,强制开机,顶着沉重的眼皮开始优化。
首先检查了存储过程中涉及的3个基表的情况,统计信息没啥问题,count(*)了一下来把数据刷入Exadata存储缓存,性能没有明显提升;其次EMCC上盯一下这个存储过程,发现主要时间耗费在一个CTAS语句中,单独拎出来跑其中的select语句也很慢,因此在EMCC上把SQL Monitor弄出来并检查执行计划,从最耗时的地方开始查看:
在这里插入图片描述
而且从下面的执行计划中还多次看到在这张FM_xxx_ALL_TEMP表的耗时,与业务方沟通理清了逻辑脉络:

  1. 先用delete命令删除多张临时表,其中包含FM_xxx_ALL_TEMP
  2. 用insert select的方式向这张表插入数据
  3. 在用CTAS新建一张表(就是慢在这个地方,后续做了啥就没必要操心)

这中间就会有2个问题:

  1. delete对表操作可能会引起该表产生大量碎片,且这是个累积的过程,操作实践前面是1->5分钟的缓慢增加当达到一定量后就造成了较大的性能下降,因此建议用truncate来替代delete来清理全表数据
  2. 中间表清理重新插入数据后,统计信息大概率是异常的,因此建议在此操作步骤后添加对这张表的统计信息收集操作

在业务方根据建议完成操作后,涉及存储过程的执行时间立即从25-30分钟下降至了40秒不到,比以前“正常”时候速度还要快一些。至此优化完成。(这里还要感谢Oracle RWP团队的董志平老师的支持)

总结

老规矩,知道写了些啥。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/212073.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

go elasticsearch 测试实例

// 查询列表数据 func QueryOperateList(ctx context.Context, esClient *elastic.Client, index string, pageNum, pageSize int, start, end int64, execSql string, list []interface{}, operateAccount string, operateAddr string, maxRows, minRows int, dbAddr, namespa…

在re:Invent大会上,上汽海外出行选择亚马逊云科技为其提供智能网联解决方案

亚马逊云科技在re:Invent 2023上宣布,中国最大的汽车制造商之一、《财富》世界500强企业上汽集团旗下的上汽海外出行科技有限公司(以下简称“上汽海外出行”)已选择亚马逊云科技为重要云服务供应商,为出海的自主品牌汽车构建领先的…

解决webpack打包生成gz格式css/js文件没法在nginx使用的问题--全网唯一正确

本文绝对是全网解决这个问题唯一正确的文章,没有之一! 很多人都说开启nginx gzip压缩,这些人完全是胡说八道!你们到底懂不懂叫gzip压缩啊?! 不信你就试试,如果css/js只有gz文件,ng…

Linux 系统渗透提权-Server2204-(解析)

B-3:Linux 系统渗透提权 任务环境说明: 服务器场景:Server2204(关闭链接) 用户名:hacker 密码:123456 1.使用渗透机对服务器信息收集,并将服务器中 SSH 服务端口号作为 flag 提 交; Flag:2283/tcp

Angular 由一个bug说起之三:为什么时不时出现额外的水平/垂直滚动条?怎样能更好的防止它的出现?

目录: 什么是单元溢出 控制滚动条出现的属性 怎样能减少意外的滚动条出现 一、什么是单元溢出 在说到这个问题之前我们先简单阐述一下视图窗口(Viewport)和视图内容(View Content) 视图窗口简单来说就是呈现内容的视口,浏览器就是一个窗口&#xff…

论ChatGPT让程序员提升效率—掌握时代工具风口修炼之道【文末送书-02】

文章目录 一.论ChatGPT让程序员提升效率—掌握时代工具风口修炼之道二.ChatGPT在代码编写中的应用2.1 快速解决问题:2.2 优化代码结构:2.3 ChatGPT的学习过程2.4 ChatGPT的自定义训练 三.文末推荐与福利免费包邮送出4本!3.2领书方式 一.论Cha…

RflySim | 姿态控制器设计实验二

本实验的目的是让多旋翼的姿态能够跟随我们给定的期望姿态,姿态控制器的好坏直接决定了多旋翼能否平稳飞行。 RflySim| 姿态控制器设计实验二 01 基础实验 1.复现四旋翼飞行器的Simulink仿真,分析控制分配器的作用; 2.记录姿态的阶跃响应&a…

GWAS power的计算

import math import numpy as np import pandas as pd from matplotlib import pyplot as plt from scipy.special import chdtri from collections import defaultdict %matplotlib inline对于GWAS中power值(statistical power)的计算,用自己…

unity 2d 入门 飞翔小鸟 下坠功能且碰到地面要停止 刚体 胶囊碰撞器 (四)

1、实现对象要受重力 在对应的图层添加刚体 改成持续 2、设置胶囊碰撞器并设置水平方向 3、地面添加盒状碰撞器 运行则能看到小鸟下坠并落到地面上

二叉树题目:翻转二叉树以匹配前序遍历

文章目录 题目标题和出处难度题目描述要求示例数据范围 解法思路和算法代码复杂度分析 题目 标题和出处 标题:翻转二叉树以匹配前序遍历 出处:971. 翻转二叉树以匹配前序遍历 难度 5 级 题目描述 要求 给定一个二叉树的根结点 root \texttt{roo…

Redis--13--缓存一致性问题

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 缓存一致性问题1、先更新缓存,再更新DB方案二:先更新DB,再更新缓存方案三:先删缓存,再写数据库推荐1&…

【c】杨辉三角

下面介绍两种方法 1.利用上面性质的第五条&#xff0c;我们可以求各行各列的组合数 2.利用上面性质的第7条&#xff0c;我们可以用数组完成 下面附上代码 1. #include<stdio.h> void fact(int n ,int m )//求组合数 {long long int sum11;long long int sum21;int a…

C#中GDI+图形图像技术(Graphics类、Pen类、Brush类)

目录 一、创建Graphics对象 1.创建Pen对象 2.创建Brush对象 &#xff08;1&#xff09;SolidBrush类 &#xff08;2&#xff09;HatchBrush类 ​​​​​​​&#xff08;3&#xff09;LinerGradientBrush类 用户界面上的窗体和控件非常有用&#xff0c;且引人注目&#…

家政小程序源码,师傅竞价接单

家政预约上门服务小程序开发方案&#xff0c;php开发语言&#xff0c;前端是uniapp&#xff0c;有成品源码&#xff0c;可以二开&#xff0c;可以定制。 一家政小程序用户端功能&#xff1a;服务分类、在线预约、在线下单。 师傅端&#xff1a;在线接单&#xff0c;竞价&…

zabbix分布式监控平台从IPV4切换到IPV6之监控主机切换

现在有一套监控了海量服务器的zabbix分布式监控平台需整体在线从IPV4切换到IPV6&#xff0c;不能影响其原有的定制监控及视图。本文讲解了切换的第一步--监控主机切换。 一、zabbix分布式监控平台平台架构 本套zabbix分布式监控平台是一个多代理服务器分布式部署的典型传统架构…

rocketMQ介绍

作用 流量削峰系统解耦 功能 普通消息 同步消息异步消息事务消息顺序消息延迟消息订阅与发布消息过滤消息消费重试死信队列...... 架构设计 1个broker是1台实例每个broker都有从节点&#xff0c;便于做故障转移每个broker对应一个文件&#xff0c;存储数据&#xff1f;还是…

基于单片机设计的自动门控制系统

一、前言 自动门控制系统是一种智能化的应用&#xff0c;能够根据人体接近信号自动完成门的打开和关闭操作。在传统的门控系统中&#xff0c;通常需要人手动进行门的开启和关闭&#xff0c;不仅费时费力&#xff0c;还不够智能高效。 本项目采用了STC89C52作为主控芯片&#…

【高数:1 映射与函数】

【高数&#xff1a;1 映射与函数】 例2.1 绝对值函数例2.2 符号函数例2.3 反函数表示例2.4 双曲正弦sinh&#xff0c;双曲余弦cosh&#xff0c;双曲正切tanh 参考书籍&#xff1a;毕文斌, 毛悦悦. Python漫游数学王国[M]. 北京&#xff1a;清华大学出版社&#xff0c;2022. 例2…

1.1美术理论基础

一、光影 物体呈现在人们眼前的时候&#xff0c;不同的受光面其明暗变化以及物体的影子。 1.什么是黑白灰 在美术中黑白灰指亮面、灰面、暗面&#xff0c;属于素描的三大面&#xff0c;主要体验一个物体的整体寿光过程。普遍存在于各种艺术和设计领域。黑白灰作品的出现&#x…

一文搞懂系列——你真的了解如何生成动态库了吗?

引言 动态库的编译&#xff0c;这有什么难度&#xff0c;这不是手到擒来的事情吗&#xff1f;无非不就是&#xff1a; gcc -FPIC -shared -o libxxx.so *.o *.c 我若是提出这些需求场景&#xff0c;阁下又如何应对呢&#xff1f; 动态库A依赖其他部分提供的能力。但是却不…