如何实现Oracle 11g数据库每天自动备份

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何实现Oracle 11g数据库每天自动备份相关的知识,希望对你有一定的参考价值。

需要写个bat脚本,然后在windows计划任务里调用此脚本可实现每天自动备份。

工具:Oracle 10g

步骤:

1、在某个盘符某个路径(以C盘data目录为例),创建oraclebackup.txt文件,内容如下:

@echo off 
echo 删除10天前的备分文件和日志
forfiles /p "c:/data/" /m *.dmp /d -10 /c "cmd /c del @path" 
forfiles /p "c:/data/" /m *.log /d -10 /c "cmd /c del @path"
echo 正在备份 Oracle 数据库,请稍等…… 
exp 用户名/密码@实例名 file=c:/data/mdb%date:~0,4%%date:~5,2%%date:~8,2%.dmp  log=c:/data//mdb%date:~0,4%%date:~5,2%%date:~8,2%.log full=y buffer=65535 
echo 任务完成!

2、保存上述文件后,将文件名的后缀改成.bat

3、进入windows的控制面板,打开计划与任务,新建任务,点击浏览,选择刚才新建的c盘data目录下的oraclebackup.bat文件。接着选择每天晚上22:00点执行,再输入本机的administrator密码即可。

注意事项:

exp语句中的用户名密码等内容,需要根据实际需要来填写。

参考技术A 本篇文章主要介绍oracle 11g数据库的自动备份问题,通过服务器自带的任务计划来实现。

工具/原料

服务器

批处理文件

任务计划程序

plsql程序

方法/步骤

1

登陆oracle数据库服务器,利用plsql程序来登陆数据库。在用户名、密码、数据库的地方分别输入对应的用户名、密码和数据库实例名称。

2

登陆完成后,新建sql窗口,并在sql窗口中执行以下语句:

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

declare stmt varchar2(200);begin for tb in (select table_name from user_tables where segment_created='NO') loop stmt:='alter table '||tb.table_name||' allocate extent'; begin execute immediate stmt; exception when others then dbms_output.put_line(stmt); end; end loop;end;/

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

此语句的作用是导出oracle 11g的空表

3

建立bat批处理文件

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

cd d:\bea\dbbackdel oa%date:~8,2%.dmpexpdp username/password@orcl directory=DIR_EXP dumpfile=oa%date:~8,2%.dmp

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

其中d:\bea\dbback是命令所在的目录

username/password@orcl 分别为登陆数据库的用户名、密码、数据库实例

DIR_EXP 是在plsql中建立的directory即目录,需要根据自己的需求来创建

4

在电脑附件中找到任务计划程序,然后点击打开,如下图

5

点击右侧的“创建基本任务”,创建一个任务计划,填写任务名字和描述,如下图:

6

设置任务的执行周期,这里周期选择每天,点击下一步

7

再设置开始时间,一般选择在夜间备份数据库,点击下一步

8

设置执行的操作是,这里是批处理,所以选择程序,点击下一步

9

选择前面我们只做的bat批处理文件。即oracle备份语句文件。参数填写文件所在的目录,点击下一步:

10

点击完成即可。

11

然后双击对应的计划任务名称,出现界面如下图:

12

然后在安全选项中选择“不管用户是否登陆都要运行此程序”

13

然后点击确定,系统会让用户输入对应的系统登陆密码,如下图,输入完密码点击确定即可。

注意事项

在计划任务中起始参数一定要填写文件对应的目录路径

批处理文件制作完成后,自己先双击测试一遍本回答被提问者采纳

如何实现SQLServer2008R2连接Oracle11gR2

参考技术A 首先你需要安装SQLSERVER链接ORACLE的驱动程序,驱动程序有2种,分别是SQLSERVER出的Microsoft OLE DB For Oracle 和Oracle出的Oracle Provider for Ole DB。建议使用后者。安装驱动程序完成后,先配置oracle监听。配置完成后可以在sqlserver中新建链接服务器,然后就可以通过openquery来在SQLSERVER中查询Oracle了。
http://blog.csdn.net/weiwenhp/article/details/8093105
参考技术B 这两个不能通用的。可以通过EXCEL导出或者导入后查询

以上是关于如何实现Oracle 11g数据库每天自动备份的主要内容,如果未能解决你的问题,请参考以下文章

oracle数据库如何每天自动执行脚本完成正式数据库到备份数据库的备份

如何实现Mysql数据库每天自动备份定时备份?

如何实现Mysql数据库每天自动备份定时备份

Linux下Oracle定时自动备份方案

Oracle Database 11g RMAN备份与恢复50MB完整版下载

Linux下定时备份数据库