oracle用expdp定时备份所有步骤详解

2025-11-17 06:49:18

1、在“运行”里打开cmd

oracle用expdp定时备份所有步骤详解

2、输入命令:sqlplus system/123456@orcl

其中system是登录数据库的摸三用户名

123456是用户名的密码

orcl是数据库实例名称

oracle用expdp定时备份所有步骤详解

3、如果提示命令无效哄辞争,那就是你没有配置好oracle的环境变量(想当年我也被这个问题困扰着),配置oracle环境变量的方法如下:

1、右击“我的电脑”->选择“属性”->选择“高级”->单击“环境变量”

2、选择“Path”这一行,单击“编 辑”,在“Path”的变量值文本框的最后面先加入一个分号“:”,然后再分号后面加入sqlplus文件的目录路径,如“C:\Program Files\oracle\product\10.2.0\db_1\BIN”,然后点击“确定”按钮。

3、如果在“系统变量”列表框下面的“变量”列中找不到“ORACLE_HOME”和“ORACLE_SID”这两个变量,则需要下面操作,否则无需一下操作。

4、在“系统变量”中点击“新建”按钮,在“变量名”中输入“ORACLE_HOME”,变量值中输入Oracle的安装目录路径,如“C:\Program Files\oracle\product\10.2.0\db_1”,然后点击“确定”按钮。

5、在“系统变量”中点击“新建”按钮,在“变量名”中输入“ORACLE_SID”,变量值中输入数据库的实例名,然后点击“确定”按钮。

ORACLE_HOME:Oracle数据库软件的安装目录

ORACLE_SID:欧泰Oracle数据库的实例名

Oracle 数据库实例名:用于和操作系统进行联系的标识,即数据库和操作系统之间的交换是通过数据库实例名来体现的。

1、创建oracle的备份目录:

sql>create directory dpdata1 as 'D:\temp\dmp';

这仅仅是在oracle里设定的目录,并没有真正创建

oracle用expdp定时备份所有步骤详解

2、可以通过这句命令查看到这个目录

sql>select * from dba_directories;

oracle用expdp定时备份所有步骤详解

3、赋于要导出数据表的所属用户权限

sql>grant read,write on directory dpdata1 to sshe;

oracle用expdp定时备份所有步骤详解

4、好了,到了关键一步,之前走了不少弯路,但其它是小问题,在网上零零碎碎查了很多资料,终于找到原因。

首先,要切换回命令窗口,不要再在sql>下运行,然后输入命令:

expdp system/123456@orcl directory=dpdata1 dumpfile=sshe.dmp logfile=sshe.log schemas=sshe

oracle用expdp定时备份所有步骤详解

5、上面报了一个错ORA-39002:操作无效

原因是D:\temp\dmp这个目录不存在,别以为create directory之后就会自动生成文件夹,也别以为执行expdp后会自动生成文件夹,要自己手动新建这个目录文件夹的。新建文件夹后再试一下,果然成功了!恭喜你,已成功备份!

oracle用expdp定时备份所有步骤详解

6、如果你要问,导出来的dmp文件怎样还原回去。好吧,做人做到底,为了省去你再找方法的麻烦,这里我也做一个演示(一般备份的数据是等到数据库有问题时才用的上)。

首先,再一次登录数据库 sqlplus system/123456@orcl

然后,删除目标数据库用户 drop user sshe cascade;

oracle用expdp定时备份所有步骤详解

7、现在来再一次创建用户,可以用命令创建,也可以在plsql里创建,这里在plsql创建。

用system登录数据库,然后右键users--新建

然后填写你的账号名称,必须和备份时的用户一致,并赋于相应的权限

最后点击应用,完成用户创建。

oracle用expdp定时备份所有步骤详解

oracle用expdp定时备份所有步骤详解

8、返回DOS命令窗口,不再是sql>

输入导入命令:impdp system/123456@orcl directory=dpdata1 dumpfile=SSHE.DMP logfile=sshe.log schemas=sshe

导入成功!

oracle用expdp定时备份所有步骤详解

1、做一个按年月日命名的批处理。在D:\temp\目录下新建一个文件,随便命名为.bat,我的命名为sshe.bat,编辑为如下代码

-------------------------------------------------------------------------

@echo off

rem set backupfile=f_database_%date:~0,4%-%date:~5,2%-%date:~8,2%.dmp

rem set logfile=f_database_%date:~0,4%-%date:~5,2%-%date:~8,2%.log

rem delete 30days files

forfiles /p "D:\temp\dmp" /d -30  /c "cmd /c echo deleting @file ... && del /f @path"

cd D:\temp\dmp

rem backup schemas

set backupfile=sshe_%date:~0,4%-%date:~5,2%-%date:~8,2%.dmp

set logfile=sshe_%date:~0,4%-%date:~5,2%-%date:~8,2%.log

expdp sshe/sshe directory=DIR_DP  dumpfile=%backupfile%  logfile=%logfile% schemas=sshe parallel=4

-------------------------------------------------------------------------------

可以试执行一下,会自动生成一个以年月日命名的备份文件

forfiles /p "D:\temp\dmp" /d -30  /c "cmd /c echo deleting @file ... && del /f @path"的作用是:删除本目录下30天以后的备份文件,这个挺有用的。

(之前有人反映说上面bat排版有问题,可能是系统自动缩进了,现在再重新修改了,如果还没有是有排版问题,请参照以下图--2017.12.5改)

oracle用expdp定时备份所有步骤详解

2、做一个windows每晚自动运行数据库备份的bat,我的命名为auto.bat编辑如下内容

------------------------------------------------------------------------------

@ECHO OFF

schtasks /create /tn SSHE数据库定时备份 /tr "D:\dmp\sshe_bak.bat" /sc daily /st 00:00:00 /ru "system" 

PAUSE

EXIT

windows每晚自动运行数据库备份bat

------------------------------------------------------------------------------

(之前有人反映说上面bat排版有问题,可能是系统自动缩进了,现在再重新修改了,如果还没有是有排版问题,请参照以下图--2017.12.5改)

oracle用expdp定时备份所有步骤详解

3、双击auto.bat,就会在windows添加一个定时任务,每晚0点0分就会自动执行一次sshe.bat,从而完成自动备份的目的。

4、右键我的电脑:管理——任务计划程序——任务计划程序库,可以看到刚才添加进去的定时任务

oracle用expdp定时备份所有步骤详解

5、可以将电脑的时钟设为23点59分50秒,等待10秒钟,看看自动备份能否成功。如果成功那就大功告成了!!

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢