oracle 自动备份dmp文件

oracle数据库自动备份实现效果

  1. 使用oracle exp命令导出dmp格式文件;
  2. 使用7z命令行自动压缩dmp文件,减少存储空间;
  3. 使用Windows定时任务自动备份,并且定时删除N天之前的备份;

备份bat命令

@echo off
rem **********************配置开始**********************
rem 连接oracle ip 端口 数据库名
set sid=127.0.0.1:1521/ORCL
rem 连接oracle的用户名
set username=ORCL
rem 连接oracle的密码
set password=123
rem 备份文件的文件夹 例如(D:\bak)
set bak_path=D:\bak
rem 7za.exe压缩文件路径
set rar_path=D:\bak\7za.exe
rem **********************配置结束**********************
set connect=%username%/%password%@%sid%
echo 删除7天前的备分文件和日志7z文件
forfiles /p %bak_path% /m *.dmp /d -7 /c "cmd /c del @path"
forfiles /p %bak_path% /m *.log /d -7 /c "cmd /c del @path"
forfiles /p %bak_path% /m *.7z /d -7 /c "cmd /c del @path"

echo 开始备份
rem  如果备份文件夹不存在则创建
if not exist "%bak_path%"          mkdir "%bak_path%"
set filename=oraclebak%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%
set filepath=%bak_path%\%filename%
rem 执行 exp 导出命令
exp %connect% file=%filepath%.dmp owner=%username% log=%filepath%.log INDEXES=y grants=y constraints=y compress=y

rem 如果存在7za.exe 则执行压缩,不存在直接退出
if exist %rar_path% (

%rar_path% a %filepath%.7z %filepath%.dmp %filepath%.log
rem 压缩后删除dmp文件
if errorlevel 0 (
del  %filepath%.dmp
del  %filepath%.log
)
) else (echo 压缩文件不存在,dmp不压缩
exit)

exit 

将上方文本保存成bat文件,新建windows计划任务定时执行bat命令,实现定时备份。

时间: 2024-10-10 20:41:47

oracle 自动备份dmp文件的相关文章

Bat脚本学习-6:Oracle自动备份还原脚本

这次注释没写多少,先跳过一些吧 ::2.数据库过期备份删除 echo. echo. echo 二.正在清除过期的备份文件-- REM wscript.echo是vbs语法,相当于alert REM >是特殊字符,所以放在 for 命令里面需要使用转义符号^>,包括^&也是转义的& REM //Nologo屏弊输出:Prevent logo display: No banner will be shown at execution time for /f "tokens

Oracle自动备份脚本的实现

问题描述: Oracle自动备份脚本的实现. 错误提示1: Message file RMAN.msb not found Verify that Oracle_HOME is set properly ...... 错误原因: 自动执行的不能够识别相应的命令,需要在自动备份脚本中显式的声明Oracle的环境变量. 错误提示2: standard in must be a tty ...... 错误原因: 不能在cron使用su或者管道等操作,必须将su命令移动到相关的shell脚本中. 错误提

oracle 自动备份

一个优秀的oracle 自动备份脚本(exp for windws) 作者:朱晓凯 时间: 2011-5-12 一.脚本内容 set mydate=%DATE:~0,10% exp system/[email protected] full=y  file=d:\ora_bak\data\hzic_%date%.dmp log=d:\ora_bak\log\hzic-log_%mydate%.log forfiles /p "D:\ora_bak\data" /s /m *.* /d 

Oracle RMAN 备份控制文件/恢复控制文件

--备份控制文件 rman target / RMAN> startup RMAN> configure controlfile autobackup on; --启动自动备份 RMAN> show CONTROLFILE AUTOBACKUP;  --显示是否自动备份控制文件 RMAN> configure controlfile autobackup format for device type disk to '/backup/%F'; --设置控制文件备份路径 RMAN&g

Bat脚本学习-4:Oracle自动备份还原脚本

从同事那弄到一份Oracle自动备份还原的脚本,看上去很强大,苦在bat语法不熟,查了半天文档,先弄明白了一小段 @echo off REM 在批处理中,我们可以用setloacl ENABLEDELAYEDEXPANSION这个命令来启用"延迟环境变量扩展" REM 在我们启用了"延迟环境变量扩展"后,当CMD在解释涵有嵌套格式的命令时,他会把嵌套的命令一条一条的先执行一次,然后再进行匹配操作 REM 这样我们的赋值操作就会完成.并且再"延迟环境变量扩展

关于Oracle字符集在dmp文件导入导出中的乱码影响

Oracle 在进行dmp备份和还原的时候,服务器端字符集和客户端字符集会对这个过程有较大影响,特别是数据表中存储了中文.存储过程中使用了中文编码(注释)的时候,如果没有处理好字符集的问题,在进行还原的时候就会遇到问题,我所遇到过的问题有一下几种: 1:导入后数据表中存储的中文字符成了乱码: 2:导入后存储过程中的中文字符成了乱码: 3:导入时,提示某些存储过程不存在,报IMP-00098 INTERNAL ERROR:impccr2错误: 其中问题1出现的原因是源数据库使用的字符集和你现在导入

Linux下Oracle自动备份脚本

#!/bin/bash export ORACLE_HOME=/usr/local/instantclient_11_2export PATH=$ORACLE_HOME:$PATHexport TNS_ADMIN=$ORACLE_HOME/network/adminexport LD_LIBRARY_PATH=$ORACLE_HOME:$LD_LIBRARY_PATH#export NLS_LANG='simplified chinese_china.ZHS16GBK'export NLS_LA

Oracle 11g 导入dmp文件出现的问题

1.导入命令: imp userId/[email protected] full=y  file=D:\data\T_DAYLOG_CALLANALYSIS.dmp ignore=y 2.导出命令 exp userId/[email protected] file=d:\dkj\test.dmp tables=(wf_test) 如出现:”只有dba才能导入由其他dba导出的文件“的问题 登录该用户:执行SQL: grant dba to testuser ; 如果还不行,再执行: alter

oracle 11g 从 dmp 文件中导出 sql 代码 的方法.

impdp sys/password full=y dumpfile=bg.dmp nologfile=y sqlfile=bg_dmp.sql 备注: bg.dmp 是 dmp 文件,   bg_dmp.sql 是导出来的 SQL  代码.   导出的文件和代码都存放在:oracle 安装目录:  app/oracle/admin/ORCL/dpdump 文件夹下面. oracle 11g 从 dmp 文件中导出 sql 代码 的方法.