Oracle数据库--bat文件备份/恢复

文章主要介绍Oracle数据库的备份与恢复操作。详细说明了exp/imp命令,备份需关库,恢复时最好清空数据。给出备份和恢复的批处理脚本示例,还提及传参调用bat文件及注意事项。文末简单介绍了expdp/impdp备份恢复命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

不怎么接触数据库,尤其是Oracle,所以在此留个脚印吧。

此文章主要介绍exp/imp命令,需要关掉数据库操作后进行,同时当备份恢复的时候最好清空数据,不然有主键检查,速度会很慢。(备注:当然也可以试一下expdp/impdp备份恢复,这个可以在恢复的时候选择覆盖恢复,追加恢复等,文章末尾有简单介绍)

1、数据库备份(保存以下内容为expdb.bat)

@echo off     ----在批处理运行命令的时候不会一条一条的显示执行的命令,与之相匹配的还有@echo on
set sid=192.168.1.123/ORCL  -----数据库
set username=WPLAT1217  -----用户名
set password=WPLAT1217   -----密码
set connect=%username%/%password%@%sid%   ----连接字符串拼接
set back_path=d:\databak2dmp            -------备份文件需要保存的文件夹,需要提前创建好
set date_string=%date:~0,4%_%date:~5,2%_%date:~8,2%
set time_string=%time:~0,2%_%time:~3,2%_%time:~6,2%
set file_string=%back_path%\test_%date_string%_%time_string% ----备份文件路径+文件名
set log_string=%back_path%\exp_%date_string%_%time_string%-----备份日志路径+文件名
exp %connect% file=%file_string%.dmp INDEXES=y grants=y constraints=y log=%log_string%.log  ----开始备份数据库

扩展:导出表1

exp %connect% file=%file_string%.dmp tables=表1 INDEXES=y grants=y constraints=y log=%log_string%.log  ----开始备份数据库

exp %connect% file=%file_string%.dmp  INDEXES=y grants=y constraints=y log=%log_string%.log  owner=(system,sys) ----将数据库中system用户与sys用户的表导出(未测试)

exp %connect% file=%file_string%.dmp  INDEXES=y grants=y constraints=y log=%log_string%.log  owner=(system) rows=n  --rows=n不导数据只导表结构(未测试)

exp %connect% file=%file_string%.dmp tables=(table1) query=\” where filed1like '00%'\” ---将数据库中的表table1中的字段filed1以”00″打头的数据导出(未测试)

2、数据库恢复(保存以下内容为impdb.bat)

@echo off     ----在批处理运行命令的时候不会一条一条的显示执行的命令,与之相匹配的还有@echo on
set sid=192.168.1.123/ORCL  -----数据库
set username=WPLAT1217  -----用户名
set password=WPLAT1217   -----密码
set connect=%username%/%password%@%sid%   ----连接字符串拼接
set back_path=d:\databak2dmp\backup.dmp            -------需要恢复的备份文件

set back_path_dir=d:\databak2dmp             -----日志存放的文件夹路径
set date_string=%date:~0,4%_%date:~5,2%_%date:~8,2%
set time_string=%time:~0,2%_%time:~3,2%_%time:~6,2%
set log_string=%back_path_dir%\imp_%date_string%_%time_string%-----备份日志路径+文件名
imp %connect% file=%back_path%  ignore=y  log=%log_string%.log  ----开始恢复数据库

扩展:恢复表1

imp %connect% file=%back_path% tables=表1 ignore=y  log=%log_string%.log  ----开始恢复数据库

3、传参到bat文件(此处以备份为例)---看红色方框内的

程序传参调用bat:

Process pro=new Process();
ProcessStartInfo pi=new ProcessStartInfo ("bat文件","参数");---参数:以逗号分开的字符串
pi.UseShellExecute=false;
pro.StartInfo=pi;
pro.Start();
pro.WaitForExit();

注意点:测试的时候发现,当时间在0—9的时候,批处理文件出异常:

set time_string=%time:~0,2%_%time:~3,2%_%time:~6,2%报错!!!

修正为:

set "hour_ten=%time:~0,1%"
set "hour_one=%time:~1,1%"
set "minute=%time:~3,2%"
set "second=%time:~6,2%"
if "%hour_ten%" == " " (
    set time_string=0%hour_one%_%tminute%_%second%
) else (
    set time_string=%time:~0,2%_%time:~3,2%_%time:~6,2%
)

拓展:IMPDP/EXPDP

步骤1:select * from dba_directories;在结果中选择一个路径,之后会用。

备份命令:EXPDP  username/password@ip/orcl SCHEMAS=username dumpfile=backup.dmp directory=exp_dir(exp_dir是步骤1选择的文件夹名)

恢复命令:IMPDP  username/password@ip/orcl dumpfile=backup.dmp directory=exp_dir tables=tb1 table_exists_action=replace(恢复表tb1,且数据存在则直接覆盖)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值