目前有个这样的需求,每天晚上23点将生产库的数据备份到备份机器上,第二天备份机器的数据库可以直接使用,数据是昨天生产库的数据。(生产数据目前不多,全部数据不超过3000w条)。

由于没有接触过高深的Oracle知识,只会简单的impdp和expdp这种自带的工具,所以打算用这种自带的命令加shell脚本进行完成。

现在假设生产库ip为192.168.1.20(简称20),备份库ip为192.168.1.140(简称140)

我的设想是这样的,20机器在晚上11点进行自动备份,然后想办法将备份文件拷贝到140机器,然后140机器进行导入操作。

实现过程:

1.在140上安装nfs文件系统,将指定目录共享到20上。

2.在20上添加备份脚本使用crontab按时执行expdp语句

#!/bin/sh

ORACLE_BASE=/oracle

export ORACLE_BASE

ORACLE_HOME=$ORACLE_BASE/product/

export ORACLE_HOME

ORACLE_SID=ORCL

export ORACLE_SID

export PATH=$PATH:$ORACLE_HOME/bin

export DATA_DIR=/oracle/admin/orcl/dpdump

export LOGS_DIR=/oracle/admin/orcl/dpdump

export BAKUPTIME=`date +%Y%m%d%H`

export NLS_LANG=american_america.AL32UTF8 

echo "Starting bakup..."

echo "Bakup file path /oracle/admin/orcl/dpdump/HJXD_$BAKUPTIME.dmp"

expdp HJXD/hjxd directory=DATA_PUMP_DIR dumpfile=HJXD_$BAKUPTIME.dmp  schemas=HJXD

echo "Bakup completed."

echo "start delete 10 day before ."

find /oracle/admin/orcl/dpdump/ -mtime + -type f -name *.dmp[ab] -exec rm -f {} \;

echo "end delete 10 day before ."

3.在20上添加cron任务将备份的文件拷贝到nfs共享的目录

##!my bash

myfilepath=/oracle/admin/ORCL/dpdump/;
filename=HJXD_`date -d "1 day ago" +%Y%m%d`.dmp;
cp /oracle/admin/orcl/dpdump/$filename $myfilepath

4.140上使用cron任务将拷贝过来的nfs共享目录下面的数据文件导入140的数据库

fullexp.log

PATH=$PATH:$HOME/bin
export PATH
ORACLE_BASE=/oracle
export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/
export ORACLE_HOME
ORACLE_SID=ORCL
export ORACLE_SID
export PATH=$PATH:$ORACLE_HOME/bin sqlplus sys/ as sysdba <<EOF
@/oracle/admin/ORCL/dpdump/impdp.sql;
EOF export BAKUPTIME=`date -d "a day ago" +%Y%m%d23`;
chown oracle:oinstall /oracle/admin/ORCL/dpdump/HJXD_$BAKUPTIME.dmp;
echo "Starting impdp...";
echo "impdp file path /oracle/admin/ORCL/dpdump/HJXD_$BAKUPTIME.dmp";
impdp hjxdsas/ directory=DATA_PUMP_DIR dumpfile=HJXD_$BAKUPTIME.dmp logfile=fullexp.log remap_schema=HJXD:hjxdsas table_exists_action=replace

impdp.sql文件

drop user hjxdsas cascade;

create user hjxdsas identified by 123456
default tablespace hjxd
temporary tablespace temp; grant dba, create any trigger, drop any table, SELECT ANY table, SELECT ANY sequence, create user to hjxdsas identified by 123456;
grant connect, resource to hjxdsas;
grant exp_full_database,imp_full_database to hjxdsas;

第4步最开始的时候设置了oracle环境变量,原因是文件拷贝过来是通过root用户拷贝的(nfs要求两边操作的用户有相同的uid,20,140机器的oracle用户uid不一定一致,root用户缺少一致);包括在使用oracle用户进行cron任务执行也会发生一些错误,所以直接将oracle环境变量也设置给root,这样直接使用root进行数据导入。

利用Oracle自带的impdp和expdp进行简单备份的更多相关文章

  1. 关于oracle数据库备份还原-impdp,expdp

    初始化: -- 创建表空间 CREATE TABLESPACE 表空间名 DATAFILE '文件名.dat' SIZE 100M AUTOEXTEND ON NEXT 10M MAXSIZE UNL ...

  2. 利用Oracle分析函数row_number和sys_connect_by_path实现多行数据合并为一行

    emo场景,以oracle自带库中的表emp为例: select ename,deptno from emp order by deptno; ENAME DEPTNO CLARK 10 KING 1 ...

  3. Oracle基础 数据泵导出/导入Expdp/impdp(转)

    一.EXPDP和IMPDP使用说明 Oracle Database 10g引入了最新的数据泵(Data Dump)技术,数据泵导出导入(EXPDP和IMPDP)的作用 1)实现逻辑备份和逻辑恢复. 2 ...

  4. 利用jdk自带的运行监控工具JConsole观察分析Java程序的运行

    利用jdk自带的运行监控工具JConsole观察分析Java程序的运行 原文链接 一.JConsole是什么 从Java 5开始 引入了 JConsole.JConsole 是一个内置 Java 性能 ...

  5. 利用 Oracle EM 企业管理器 进行oracle SQL的优化(自动生成索引)

    利用 Oracle EM 企业管理器 进行oracle SQL的优化(自动生成索引) ##应用情景 项目中有大量的SQL,尤其是涉及到统计报表时,表关联比较多,当初开发建表时也没搞好索引关联的,上线后 ...

  6. 介绍Oracle自带的一些ASM维护工具 (kfod/kfed/amdu)

    1.前言 ASM(Automatic Storage Management)是Oracle主推的一种面向Oracle的存储解决方式,它是一个管理卷组或者文件系统的软件.眼下已经被RAC环境广泛使用,可 ...

  7. 【ASM】介绍Oracle自带的一些ASM维护工具 (kfod/kfed/amdu)

    转自:http://blog.csdn.net/wenzhongyan/article/details/47043253 非常感谢作者的文章,很有价值!至此转载,非常感谢 1.前言 ASM(Autom ...

  8. 利用Oracle RUEI+EM12c进行应用的“端到端”性能诊断

    概述 我们知道,影响一个B/S应用性能的因素,粗略地说,有以下几个大的环节: 1. 客户端环节 2. 网络环节(可能包括WAN和LAN) 3. 应用及中间层环节 4. 数据库层环节 能够对各个环节的问 ...

  9. 利用Oracle创建表空间和用户

    本文仅用于学习交流,商业用途请支持正版!转载请注明:http://www.cnblogs.com/mxbs/p/6217152.html 第一步,创建表空间 以SYS/sys账户和SYSDBA身份登录 ...

随机推荐

  1. Arduino利用TimerOne库产生固定频率和占空比的方波

    TimerOne地址: https://code.google.com/archive/p/arduino-timerone/downloads ex: #include "TimerOne ...

  2. The requested operation has failed apache

    在安装apache后, 启动apache时提示The requested operation has failed错误: 通过一排除 cd apache 安装的Bin目录cmd如下秘密(双引号中的内容 ...

  3. Python 文件操作函数

    这个博客是 Building powerful image classification models using very little data 的前期准备,用于把图片数据按照教程指示放到规定的文 ...

  4. python 获取html源代码里标签之间的文本用get_text()

    例: 输出<span class="w-txt">分享</span>中的文本"分享" contents = bsObj.find_all ...

  5. winfrom 限制文本框小数点后两位

    private void numWeight_KeyPress(object sender, KeyPressEventArgs e) { if (char.IsNumber(e.KeyChar) | ...

  6. HTML5 3D爱心动画 晚来的七夕礼物

    在线演示源码下载 这么好看的HTML5爱心动画,我们当然要把源代码分享给大家,下面是小编整理的源代码,主要是HTML代码和CSS代码. HTML代码: <div class=’heart3d’& ...

  7. ajax 页面加载

    大体说说思路,不上代码了: 1.点击加载更多-> ajax向后台传参(当前页page,必须有默认1,其他需要的参数...) 2.后台接收 -> 查询数据 处理形成 json数据 给前台 3 ...

  8. 安装Adobe系列时遇到的问题解决

    安装错误,错误摘要如下: Exit Code: 6 Please see specific errors below for troubleshooting. For example, ERROR: ...

  9. 关于js的keycode13

    一个form 里面只有一个input的时候  触发keydown 之类的事件  表单会在你的动作之外再次提交一次.并且 字段使用的是input的id  而不是name  可以在form上加一个onsu ...

  10. P1382 光棍组织

    我现在TMD连dfs都不会写了 原题: MM 虽然一辈子只要一个,但是也得早点解决.于是,n 个光棍们自发组成了一个光棍组织(ruffian organization,By Wind 乱译).现在,光 ...