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. 开始同时在cnblog和BAE上写博客

    研究生第一学期已过一半,开始理论学习,当然不能忘了实践学习. \[\frac{{ - b \pm \sqrt {{b^2} - 4ac} }}{{2a}}\]  

  2. Storm系列(五)架构分析之Nimbus启动过程

    启动流程图   mk-assignments 功能:对当前集群中所有Topology进行新一轮的任务调度. 实现源码路径: \apache-storm-0.9.4\storm-core\src\clj ...

  3. scala学习笔记(四)样本类与模式匹配

    访问修饰符 格式:private[x]或protected[x],x指某个所属包.类或单例对象,表示被修饰的类(或方法.单例对象),在X域中公开,在x域范围内都可以访问: private[包名]:在该 ...

  4. [一]初识Poi

    示例代码: package com.lxl.poi; import java.io.FileOutputStream; import org.apache.poi.hssf.usermodel.HSS ...

  5. [USACO10MAR]伟大的奶牛聚集

    [USACO10MAR]伟大的奶牛聚集 Bessie正在计划一年一度的奶牛大集会,来自全国各地的奶牛将来参加这一次集会.当然,她会选择最方便的地点来举办这次集会. 每个奶牛居住在 N(1<=N& ...

  6. Hadoop权威指南(中文版,第2版)【分享】

    下载地址 Hadoop权威指南(中文版,第2版) http://download.csdn.net/download/u011000529/5726789 (友情提示:请点击右下的 “联通下载” 或者 ...

  7. 正则表达式_matches(Regex)

    [0-9a-zA-Z.%+-] 匹配中括号中的 0-9 或者 a-z 或者 A-Z 或者 . 或者 % 或者 + 或者 - $p = "111,222,333"$p -match ...

  8. MySQL启动和关闭服务命令

    MySQL启动和关闭服务命令 1.启动服务命令 net start mysql 2.关闭服务命令 net stop mysql

  9. Android - Shared Preference (分享首选项) 具体解释

    Shared Preference (分享首选项) 具体解释 本文地址: http://blog.csdn.net/caroline_wendy/article/details/24454963 Sh ...

  10. Android中滑屏初探 ---- scrollTo 以及 scrollBy方法使用说明

    今天给大家介绍下Android中滑屏功能的一个基本实现过程以及原理初探,最后给大家重点讲解View视图中scrollTo 与 scrollBy这两个函数的区别 . 首先 ,我们必须明白在Android ...