首页 > 数据库 >Oracle表数量对数据泵备份恢复速度的影响情况

Oracle表数量对数据泵备份恢复速度的影响情况

时间:2022-09-23 18:33:21浏览次数:52  
标签:压缩 备份 清理 并行 Oracle 速度 myapp2103ora

Oracle表数量对数据泵备份恢复速度的影响情况


背景

随着公司产品交付后的时间越来越久. 
数据库的备份恢复速度会越来越慢. 最开始一直认为是因为数据量导致的.
但是最近发现, 如果只是将数据库表的量扩展, 导出速度并不会特别大的影响.
所以感觉比较奇怪:
为何运行一段时间后, 数据库备份恢复的速度会下降如此的多. 

一个现象

最近有一个项目反馈:
清理了部分没太有用的表之后, 机器的CPU占用率有了很大的降低.
想到之前同事反馈的背景里的问题. 思考既然运行时的CPU能够降低
是否也会减少备份恢复过程站时间和资源的使用. 
基于此, 准备进行一次专门的验证, 顺便总结一下并行与压缩相关的内容
需要说明的是 去年总结的并行命令存在错误. 

Oracle的EXPDP 和IMPDP 的并行度必须以文件数为核心驱动.
文件数量是并行度的基础. 如果只有一个文件, 并行度设置的在高其实也没意义.

进行验证-思路

思路:
在清理表之前进行两次备份:
1次为 不压缩不并行的导出速度. 
1次为 压缩然后并行导出的速度.

清理表之后再次执行两次备份, 验证时间. 

进行验证-命令

1. 最基础的命令: 
   最基本的导出: 
expdp 'myapp2103ora/TestBirthdayOfSon'@127.0.0.1/ora19cauto 
directory=dir schemas=myapp2103ora dumpfile=myapp2103ora_with_alltemp.dump
logfile=2022092301.log   EXCLUDE=STATISTICS
2. 加强版的命令: 
   压缩加并行:
expdp 'myapp2103ora/TestBirthdayOfSon'@127.0.0.1/ora19cauto 
directory=dir schemas=myapp2103ora 
dumpfile=myapp2103ora_with_alltemp_parallel_compression_%U.dump 
parallel=10 COMPRESSION=DATA_ONLY 
logfile=2022092302.log  EXCLUDE=STATISTICS 
# 注意可以在导出文件增加 "_%U.dump" 的后缀. 就可以根据parallel的参数进行形成多个文件.
# 注意 COMPRESSION 建议选择 DATA_ONLY 不建议使用ALL, 元数据可能会有损坏. 

执行验证-清理部分开头的表信息

begin
  for t in (select table_name tn from user_tables where table_name like 'SOMETHING%' AND LENGTH(TABLE_NAME) > 15) loop
      begin
    execute immediate 'drop table '||t.tn;
    end;        
  end loop; 
end;

执行验证-验证清理后的性能.

结论: 
清理垃圾表后并行压缩备份的速度是不清理并且不压缩不并行时间的: 1/8
清理垃圾表能够极大的提高备份的效率. 降低时间
并行和压缩也有很大的提升. 
建议不要有太多的可以清理的垃圾表. 务必要定期清理.
推断:
如果会影响备份速度, 就可能影响系统运行速度.尤其是查询系统资源视图时. 

总表数 3万5
T开头垃圾表   1万
B开头垃圾表   1.5万
其他表(业务) 1万
数据文件大小: 88G

清理垃圾表之前 不压缩 不并行备份: 40分钟 清理之后 12分钟
备份文件大小                       53G             13G   
清理垃圾表之前 压缩    并行备份:  9分钟  清理之后  5分钟
备份文件大小                       49G             12G 

标签:压缩,备份,清理,并行,Oracle,速度,myapp2103ora
From: https://www.cnblogs.com/jinanxiaolaohu/p/16723864.html

相关文章

  • Oracle中使用游标详解
    一、使用游标对于DML语句和单行selectinto,oracle自动分配隐形游标。处理select返回多行语句,可以使用显式游标。使用显示游标处理多行数据,也可使用SELECT..BULKCOLLE......
  • 2、oracle安装出现的问题
    1、问题:scott用户在安装时未解锁的问题 方案: 2、适配器错误  方案:确保勾选的服务是启动状态  3、 ......
  • 1、oracle 10g安装
                                      可以选择关闭              ......
  • HDFS基本架构与副本备份
    HDFS官方架构图,清晰明了主角色,要注意的是NameNode因为它的特性使得它是HDFS的唯一访问入口主角色辅助角色,要注意的是SecondaryNameNode不是NameNode的备份,而是它的"......
  • bug笔记_oracle_无法在源表中获得一组稳定的行
    ORA-30926:无法在源表中获得一组稳定的行原因:MergeInto语句using表的关联字段对应多个条数据,导致修改语句无法确定以哪条数据为准(关联字段重复)--修改a的column1字段为......
  • MongoDB数据库备份(mongodump)以及恢复(mongorestore)工具实践
    摘要mongodump备份工具mongodump能够在Mongodb运行时进行备份,它的工作原理是对运行的Mongodb做查询,然后将所有查到的文档写入磁盘。mongodump的参数与mongoexport的参......
  • Oracle数据库备份恢复
    数据库备份热备份(expdp/impdp导出/导入)通过expdp数据泵工具把老服务器数据导出到一个*.dmp文件中,然后在新服务器上通过impdp导入命令把dmp文件中的数据泵入到数据......
  • oracle备份数据库
    oracle备份数据库 1.连接远程数据库打开cmd执行sqlplus/nolog执行connect用户名/密码@IP:端口/服务名例:connectsystem/[email protected]:1521/ETYY2.创......
  • linux python连接oracle数据库
    最近公司要求在linux下对Mysql,Oracle进行增加用户,用户改密等操作。Mysql数据库实现起来比较简单,这个Oracle让我头疼了一阵。于是从网上查阅资料,经自己的测试以后终于成功,现......
  • 1.Oracle常用的日期函数
    1.获取某日所在周的第一天SELECTtrunc(to_date(‘2011-03-13’,‘YYYY-MM-DD’),‘iw’)FROMdual;2.获取当日所在周的第二天SELECTTO_CHAR(trunc(SYSDATE,......