Oracle数据库(三)Oracle 数据备份

前言

众所周知,数据是一个系统的重中之重。如果说数据没有了,那么一切都完了。基于此,我整理了一下oracle备份的相关经验,经过了实际项目的严格考验!

我只是举一个例子,大家根据自己情况酌情修改。

备份方法

1.编写bat文件:

首先,编写备份的脚本文件,我命名为back_up.bat,文件内容如下(仅供参考):

back_up.bat:

@echo ========删除七天前的备份和日志文件==============

forfiles /p d:\db_backup /s /m *.dmp /d -7 /c "cmd /c del @FILE"

forfiles /p d:\db_backup /s /m *.log /d -7 /c "cmd /c del @FILE"

 

@echo ========备份生产环境用户A下的表开始===============

exp 用户A/密码@数据库实例名 file=d:\db_backup\用户A%date:~0,4%%date:~5,2%%date:~8,2%.dmp owner=用户A log=d:\db_backup\用户A%date:~0,4%%date:~5,2%%date:~8,2%.log 

@echo ========备份生产环境用户A下的表结束===============

 

@echo ========备份生产环境用户B下的表开始===============

exp 用户B/密码@数据库实例名 file=d:\db_backup\用户B%date:~0,4%%date:~5,2%%date:~8,2%.dmp owner=用户B  log=d:\db_backup\用户B%date:~0,4%%date:~5,2%%date:~8,2%.log 

@echo ========备份生产环境用户B下的表结束===============

2.新增windows计划任务,定时执行编写好的脚本文件:

(1)依次打开控制面板→管理工具 →任务计划程序,选择创建基本任务。

(2)按照步骤进行设置即可。设置好的计划任务如下。

附录

1.解决不能导出空表的问题

执行如下sql语句:

select 'alter table ' || table_name || ' allocate extent;'
from user_tables
where num_rows = 0 or num_rows is null;

 

将生成出的sql语句复制到文件中,调整好后进行执行

alter table MISSIVE_DOC_PASS allocate extent;
alter table MEETING_ROOM allocate extent;
alter table BULLETIN_BULLETIN allocate extent;

使用下面的sql语句进行验证

select table_name, segment_created
from user_tables 
where num_rows = 0 or num_rows is null;

结果均为YES代表生效,导出数据的时候将连同空表一同导出。 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值