批处理实现最简化数据自动备份

最近一直在考虑oracle数据自动备份到本地的问题,也找机会当面向大牛请教过,得到了一堆关于DG、GG、RAC、DBLINK、ARCHLOG等方面的建议,还有个哥们直接建议我用redis实现。

但因为受服务器配置和网络带宽的限制,以上方法实现起来较繁琐,且有一定的学习成本(毕竟新技术发展太快,早就跟不上潮流了),而且nosql实现起来可能还需要进行二次开发来实现数据库的读写。

磨蹭了大半个月,终于决定还是选择自己最熟悉的批处理来实现异步备份到本地

思路如上图示:

数据库改造,将大表按天建立表分区

服务端定时exp前三天(天数自定)的表分区

将表分区压缩后放到ftp目录下(压缩比10%,相比其他同步方式可以节省90%的网络资源)

本地定时(自测服务端任务延时30分钟即可,需根据实际情况定)通过ftp方式下载指定压缩包到本地,解压后使用imp导入表分区

技术点:

表名及分区名为三天前日期,批处理不直接支持对date进行加减天数的操作,使用sqlplus运行固定脚本spool到文本1,然后typefind 输出唯一行到文本2,利用for/f 读取文本2获取日期参数到变量,exp时文件名直接调用日期变量即可;

批处理中for/f 读取多列文本时,只能定义首列变量名(单字符)如%i,默认第二列赋值到变量%j,依次递增;

exp导出时因为11G的延迟段特性,当同一大表某一表分区中无数据时会出现exp00003错误,无法对分区表直接使用ALTER TABLE XXX ALLOCATE EXTENT和ALTER TABLE XXX PARTITION XX ALLOCATE EXTENT的方式分配段信息,需要直接使用insert into为每个表分区插入一条数据,变相实现分配段的功能。

以上,在测试环境测试通过。

本文来自企鹅号 - 老柴的学习笔记媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏FreeBuf

OOB(out of band)分析系列之DNS渗漏

前言 SQL注入作为最老的漏洞之一,它的价值随着整个web的发展从来没有过时,足以证明它的地位和价值。 我和很多人聊过这个漏洞,发现很多人对这个漏洞的了解只是拿...

3876
来自专栏电光石火

PHP中HTTP防盗链技术

 盗链是指服务提供商自己不提供服务的内容,通过技术手段绕过其它有利益的最终用户界面(如广告),直接在自己的网站上向最终用户提供其它服务提供商的服务内容,骗取...

2745
来自专栏阿杜的世界

JVM源码分析之perfData文件的创建

看泉子的一篇文章:JVM源码分析之Jstat工具原理完全解读 - 你假笨 里提到了两个JVM参数,可以控制perfdata文件是否共享,引用泉子对这两个参数的解...

1631
来自专栏猿人谷

多核环境下cache line的测试

前阵子接触到一道关于数组内部链表(多用于内存池技术)的数据结构的题, 这种数据结构能够比普通链表在cache中更容易命中, 理由很简单, 就是因为其在地址上是连...

2099
来自专栏smartguys

流程控制引擎组件化

在较大规模的业务系统中经常会有这样的模块,它按照一定的业务流程调用其它模块来实现一定的业务逻辑,我们姑且称之为流程引擎。这里称之为引擎有两层含义,一、突显其在...

2302
来自专栏程序员八阿哥

王老板Python面试(2): 常见的Python爬虫面试题,让你轻松拿offer!

有些自学爬虫(python)的同学因为没有经历过专业面试,所以在找工作之前难免有些抓不住重点。即便掌握技术熟练,却因为发挥不好而错失工作机会。今天就和大家分享几...

1181
来自专栏申龙斌的程序人生

零基础学编程039:生成群文章目录(2)

每个月的月底,“分享与成长群”要汇总所有成员的原创文章,这次我改用了水滴微信平台把数据采集到一个电子表格文件中。在《零基础学编程019:生成群文章目录》这一节里...

2928
来自专栏二进制文集

思维导图学《Mongo 官方文档》

本文是对 Mongo 官方文档粗略的总结,并没有涉及到很深的细节(细节还是直接看官方文档吧)。我认为 Mongo 有重要的就 3 点:

1163
来自专栏IT米粉

数据库的使用你可能忽略了这些

数据库的管理是一个非常专业的事情,对数据库的调优、监控一般是由数据库工程师完成,但是开发人员也经常与数据库打交道,即使是简单的增删改查也是有很多窍门,这里,一起...

2925
来自专栏张狗蛋的技术之路

数据库内部存储结构探索

 本文是左耳耗子推荐的Medium上的一篇关于MySQL的文章Some study on database storage internals,本人觉得文章十分...

2642

扫码关注云+社区