linux/windows系统oracle数据库简单冷备同步

我们有一个财务系统比较看重财务数据的安全性,同时我们拥有两套系统,一个生产环境(linux),一个应急备份环境(windows)。备份环境对生产环境实行实时备份同步,备份方式也有两种:热备冷备。oracle热备一般用oracle DG服务即可,但oracle DG服务是要另行收费的,这对于客户来说也是一笔不小的开支。于是我们采用oracle冷备的方式,基本流程是:数据库定时通过expdp方式导出,然后通过ftp传到应急备份环境,应急备份环境然后执行impdp导入,这样既可完成冷备。

一、linux oracle数据库端:

1、添加crontab定时时间

2、编写shell脚本,实现数据库导出

#!/bin/bash
yy=`date +%Y`
mm=`date +%m`
dd=`date +%d`
time=$yy$mm$dd ORACLE_BASE=/oracle/app/oracle;
export ORACLE_BASE;
ORACLE_HOME=$ORACLE_BASE/product/11.2;
export ORACLE_HOME;
PATH=$ORACLE_HOME/bin:$PATH;
export PATH; f_dmp="FDB_${time}.DMP"
f_log="_F${time}.LOG" echo "expdp ods/ods@dw1 directory=backup_db dumpfile=$f_dmp logfile=$1$f_log SCHEMAS=meta,ods,mid,app reuse_dumpfiles=y;"
echo "exporting data ..."
expdp ods/ods@dw1 directory=backup_db dumpfile=$f_dmp logfile=$$f_log SCHEMAS=meta,ods,mid,app reuse_dumpfiles=y;
echo "expdp user data success!"

二、应急备份环境使用ftp传输dmp文件,当然生产环境linux必须得支持ftp

@echo off
SET P_YEAR=%date:~,%
SET P_MONTH=%date:~,%
SET P_DAY=%date:~,%
SET P_DATE=%P_YEAR%%P_MONTH%%P_DAY%
echo oracle> autoftp.txt
echo oracle>> autoftp.txt
echo prompt>>autoftp.txt
echo bin>> autoftp.txt
echo get /home/oracle/FDB_%P_DATE%.DMP D:\data_backup\db\DB_%P_DATE%.DMP>> autoftp.txt
echo get /home/oracle/_F%P_DATE%.LOG D:\data_backup\db\_F%P_DATE%.log>> autoftp.txt
echo mdel /home/oracle/*.DMP>>autoftp.txt
echo mdel /home/oracle/_F*.LOG>>autoftp.txt
echo bye>> autoftp.txt
ftp -s:"autoftp.txt" 127.0.0.1(IP地址) exit

ftp一般使用ftp -s ftp.txt文本的方式执行ftp操作,以上操作先根据当前时段生成对应的ftp.txt文本

oracle
oracle
prompt
bin
get /home/oracle/FDB_20140729.DMP D:\data_backup\db\DB_20140729.DMP
get /home/oracle/_F20140729.LOG D:\data_backup\db\_F20140729.log
mdel /home/oracle/*.DMP
mdel /home/oracle/_F*.LOG
bye
get /home/oracle/*.dmp C:\20141119.DMP

三、dmp文件既然传输到windows系统中了,就可以使用impdp来进行导入操作了,导入操作当然也要用windows的定时服务来启动

@echo off
REM
REM SET P_YEAR=%date:~,%
SET P_MONTH=%date:~,%
SET P_DAY=%date:~,%
SET P_DATE=%P_YEAR%%P_MONTH%%P_DAY%
impdp ods/ods@dw directory=backup_db dumpfile=DB_%P_DATE%.dmp SCHEMAS=meta,ods,mid,app table_exists_action=REPLACE
pause

这种方式有几个明显的缺点:

1、exp导出,导入对数据库性能会有一定的影响

2、数据库不能实时同步,对于数据同步要求高和数据安全性高的自然不适用

3、导出传输导入,时间点需要错开,这个时间点不好控制

linux/windows系统oracle数据库简单冷备同步的更多相关文章

  1. 虚拟Linux系统使用Windows系统oracle数据库

    前提:本地oracle数据库能正常使用. 数据库:oracle 11g 虚拟机:VMware_workstation_full_12.5.2 本机系统:Windows 7 旗舰版 虚拟机系统:open ...

  2. Linux & windows 应用服务器&Oracle数据库服务器备份

    Linux篇 tomcat启动加入开机启动项   vi /etc/rc.d/rc.local service iptables stop /usr/local/tomcat/bgyappserv01/ ...

  3. windows下plsql连接linux下的oracle数据库

    windows下plsql连接linux下的oracle数据库 经过多方查找,终于找到解决办法,特此记录下来,共享之. PL/SQL Develorper:目前未发现可以在Linux系统中安装的版本. ...

  4. ORACLE 数据库简单测试

    ORACLE 数据库简单测试 操作系统:Windows 7 – ORACLE:oracle database 10.2.0.4 一.目的 测试 启动监听程序.数据库  非同一个用户的情况,用户是否可以 ...

  5. linux/Windows系统如何安装PHP-openssl扩展

    今天倒腾了半天公司的OA办公系统,原来现在很多的smtp服务器是需要ssl方式加密的,而支持ssl需要php加载openssl扩展.所以本文我们将和大家一起分享如何在linux/Windows系统下安 ...

  6. 连接Linux服务器操作Oracle数据库

    连接Linux服务器操作Oracle数据库   由于项目已经上线,现场的数据库服务器不允许直接用Oracle的客户端plsqldev.exe来连接,只能通过Linux服务器的命令来操作. 以下是用Se ...

  7. plsql 连接 虚拟机Linux下的Oracle数据库 失败

    plsql 连接 虚拟机Linux下的Oracle数据库 失败2017年09月09日 09:10:23 守望dfdfdf 阅读数:187 标签: oraclelinux 更多个人分类: 工具 软件编辑 ...

  8. windows下oracle数据库报错ORA-12705解决方法

    转自:http://blog.sina.com.cn/s/blog_16eaf6b940102x66q.html 有个朋友,他们那边windows虚拟机重启后,数据库不能起来报错ORA-12705无法 ...

  9. linux下重启oracle数据库

    如何在linux下重启oracle数据库 | 浏览:3930 | 更新:2013-09-18 19:33 1 2 3 4 5 6 分步阅读 在实际工作项目中,有时候会遇到需要对oracle数据库进行重 ...

随机推荐

  1. web测试用例表(自用)

    自己留着用,第一次搞这么个东西.虽然简单却很实用. 模块名               备注 开发人员   版本号             用例作者   设计时间             测试类型 功 ...

  2. Linux Kernel Schduler History And Centos7.2's Kernel Resource Analysis

    本文分为概述.历史.el7.2代码架构图解三部分. 解决的问题: a.Kernel调度发展过程: b.以架构图的方式,详解el7.2具体调度实现.内核线程模型.调度时间片计算,以及探究整个Kernel ...

  3. aggregate 和 treeAggregate 的对比

    1.定义 [aggregate] /** * Aggregate the elements of each partition, and then the results for all the pa ...

  4. BZOJ1997 [Hnoi2010]Planar (2-sat)

    题意:给你一个哈密顿图,判断是不是平面图 思路:先找出哈密顿图来.哈密顿回路可以看成一个环,把边集划分成两个集合,一个在环内,一个在外.如果有两条相交边在环内,则一定不是平面图,所以默认两条相交边,转 ...

  5. linux Grant 添加 MySql 用户

    Grant 添加 MySql 用户 2009-04-03 14:40 我安装的版本: mysql> select version();+------------+| version()   |+ ...

  6. java 小结2 多态问题和容器介绍

    面向对象这个东西,其实我们一直是不是都没有感觉到自己在用,以后我一定要用用.以前学c#时候认真的看过一次,最近一直研究java.随便再看看. 多态问题: 在java中多态分为(1)编译时多态和(2)运 ...

  7. 问题-Delphi编译时提示缺少delphi自己的单元文件

    问题现象:在编译工程是,提示缺少DELPHI自己的很多单元. 问题原因:这可能是因为手动误删除,或是第三方控件安装时误删除DELPHI自己的目录引起的(如果说错了,希望高人指点). 问题处理: 方法一 ...

  8. __FILE__,__LINE__,FUNCTION__

    __FILE__,__LINE__,FUNCTION__实现代码跟踪调试 ( linux 下c语言编程 ) 先看下简单的初始代码:注意其编译运行后的结果. root@xuanfei-desktop:~ ...

  9. A Tour of Go Pointers

    Go has pointers, but no pointer arithmetic. Struct fields can be accessed through a struct pointer. ...

  10. [置顶] 漫谈SOA(面向服务架构)

    面向服务架构的思想在整个软件的架构中已经不是什么新鲜的东西.我简单的认为服务化是模块化的延伸,所以服务化有着和模块化类似的优点和缺点.这里不再讨论这些服务定义服务与服务之间的通信协议(像WSDL等等) ...