一个不重要的数据库,备份是用expdp导出,然后上传到ftp服务器上面。上周这个主机宕机了,要在别的数据库恢复,发现报如下错误:

ORA-39001: invalid argument value
ORA-39000: bad dump file specification
ORA-31619: invalid dump file "/xxx/xxx/xxx.dmp"

然后查了一下资料,出现这种情况,一般是导出数据库的版本和导入数据库的版本不一致导致的,然后查看导出文件的版本

strings xxxxx.dmp|head -n 10
#xxxx.dmp为导出文件
"SYS"."SYS_EXPORT_FULL_01"
x86_64/Linux 2.4.xx
tsurbob
AL32UTF8
11.02.00.04.00
001:001:000001:000001

根据上面的信息,可以看到导出文件是11204的,也没有问题。

在查资料,有写到ftp上传的时候可以使用ascll和binary两种方式。使用ascll可能会导致文件变化

这时候机器也修好了,测试了一个文件的上传,发现上传到主机的文件的md5值和本地的md5值完全不一样,测试使用二进制上传后,md5相同,可以确定是上传方式导致的

修改后的脚本:

#!/bin/bash
source ~/.bash_profile #########################################################
echo 'Start Time ------------>' `date`
day=`date +%Y%m%d%H%M`
flag=0
for db in {DB01,DB02,DB03}
do
export ORACLE_SID=$db
echo "#################${ORACLE_SID} is expdpping###############"
expdp "'/ as sysdba'" directory=EXP_SCHEMABAK_TOFTP dumpfile="$db"_schemabak_"$day".dmp logfile="$db"_schemabak_"$day"
.log full=y content=metadata_only
echo "#################${ORACLE_SID} have done##################"
let flag+=1
done
echo "#################expdp total:${flag}######################"
########################################################
echo '------ftp and delete-------'`date` cd /oradata01/expdata/schema_bak
find ./ -name "*.dmp" -mtime +6 -exec rm -rf {} \;
find ./ -name "*.log" -mtime +6 -exec rm -rf {} \;
ftp -niv <<EOF
open XXX.XXX.XXX.XXX
user USERNAME PASSWORD
binary
cd /Data/zz_dmp/backfor89/
mput *_schemabak_$day.dmp
quit
EOF
echo 'End Time ---------------->'`date`

在ftp上传块中加入binary,显示制定上传方式为二进制。mput可以上传多个文件,put只能上传单个文件。

ftp设置二进制上传的更多相关文章

  1. 通过Ftp put命令上传导致文件损坏的解决办法

    通过Linux命令行向在一台Windows FTP服务器上传文件.然后在另一台Windows客户机登录FTP服务器下载,但是下载后的文件大小变了,exe文件错误了不能正确执行.刻意打包的文件(.rar ...

  2. 通过JMeter来测试Quick Easy FTP Server的上传与下载性能

    FTP性能测试 1.1背景说明 本测试选用的是一个小型的FTP服务器软件:Quick Easy FTP Server.Quick Easy FTP Server是一个全中文的FTP服务器软件,反应迅速 ...

  3. python使用ftplib模块实现FTP文件的上传下载

    python已经默认安装了ftplib模块,用其中的FTP类可以实现FTP文件的上传下载 FTP文件上传下载 # coding:utf8 from ftplib import FTP def uplo ...

  4. 【ABAP系列】SAP ABAP 实现FTP的文件上传与下载

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP 实现FTP的文 ...

  5. java实现ftp文件的上传与下载

    最近在做ftp文件的上传与下载,基于此,整理了一下资料.本来想采用java自带的方法,可是看了一下jdk1.6与1.7的实现方法有点区别,于是采用了Apache下的框架实现的... 1.首先引用3个包 ...

  6. IIS 7 中设置文件上传大小的方法

    在IIS 6.0中设置文件上传大小的方法,就是配置如下节点: <system.web> <httpRuntime maxRequestLength="1918200&quo ...

  7. <实训|第四天>Linux下的vim你真的掌握了吗?附上ftp远程命令上传。

    期待已久的linux运维.oracle"培训班"终于开班了,我从已经开始长期四个半月的linux运维.oracle培训,每天白天我会好好学习,晚上回来我会努力更新教程,包括今天学到 ...

  8. linux 下ftp几种上传和下载方式

    1. ftp自动登录批量下载文件. 复制代码代码如下: #####从ftp服务器上的/home/data 到 本地的/home/databackup#####!/bin/bashftp -n<& ...

  9. C#实现FTP文件的上传、下载功能、新建目录以及文件的删除

    本来这篇博文应该在上周就完成的,可无奈,最近工作比较忙,没有时间写,所以推迟到了今天.可悲的是,今天也没有太多的时间,所以决定给大家贴出源码,不做详细的分析说明,如果有不懂的,可以给我留言,我们共同讨 ...

随机推荐

  1. [日常摸鱼]bzoj1257余数之和

    题意:输入$k,n$,求$\sum_{i=1}^n k \mod i$ $k \mod i=k-i*\lfloor \frac{k}{i} \rfloor $,$n$个$k$直接求和,后面那个东西像比 ...

  2. [从源码学设计]蚂蚁金服SOFARegistry 之 自动调节间隔周期性任务

    [从源码学设计]蚂蚁金服SOFARegistry 之 自动调节间隔周期性任务 目录 [从源码学设计]蚂蚁金服SOFARegistry 之 自动调节间隔周期性任务 0x00 摘要 0x01 业务领域 0 ...

  3. Python炫技操作:五种Python 转义表示法

    1. 为什么要有转义? ASCII 表中一共有 128 个字符.这里面有我们非常熟悉的字母.数字.标点符号,这些都可以从我们的键盘中输出.除此之外,还有一些非常特殊的字符,这些字符,我通常很难用键盘上 ...

  4. 【学习笔记】分布式追踪Tracing

    在软件工程中,Tracing指使用特定的日志记录程序的执行信息,与之相近的还有两个概念,它们分别是Logging和Metrics. Logging:用于记录离散的事件,包含程序执行到某一点或某一阶段的 ...

  5. EF5中使用UnitOfWork

    前言 每次提交数据库都会打开一个连接,造成结果是:多个连接无法共用一个数据库级别的事务,也就无法保证数据的原子性.一致性. 解决办法是:在ObjectContext的CRUD操作基础上再包装一层,提供 ...

  6. 2.k8sPod、控制器、service

    一.Pod生命周期 Pod是k8s中最小的管理单元(逻辑上存在,实际不存在),是一组容器的集合 同一个Pod中的容器共享网络和存储(通过pause容器实现),由一个统一的IP向集群内部提供服务 Pod ...

  7. [Python] iupdatable包使用说明

    iudatable包是我对常用函数进行的封装后发布的一个python包. 安装 iupdatable 包 pip install iupdatable 更新 iupdatable 包 pip inst ...

  8. 开发规范(三)数据库 By 阿里

    建表规约 索引规约 SQL语句 ORM映射

  9. 动态SQL基本语句用法

    1.if语句 如果empno不为空,则在WHERE参数后加上AND empno = #{empno},这里有1=1所以即使empno为null,WHERE后面也不会报错. 映射文件 <selec ...

  10. [leetcode]207. Course Schedule课程表

    在一个有向图中,每次找到一个没有前驱节点的节点(也就是入度为0的节点),然后把它指向其他节点的边都去掉,重复这个过程(BFS),直到所有节点已被找到,或者没有符合条件的节点(如果图中有环存在). /* ...