windows下Oracle 11g数据库每天自动备份的实现方法

方式一
一、以exp命令备份
     1.首先做个批处理脚本:backup.bat  脚本内容如下
         @echo off
       set curdate=%date:~0,4%%date:~5,2%%date:~8,2%
       set backuppath=D:\backup
       md %backuppath%
       exp scott/tiger@127.0.0.1/orcl file=%backuppath%\%curdate%.dmp owner(scott)                                    log=%backuppath%\%curdate%.log 
       forfiles /p "D:\backup" /s /m *.dmp /d -30 /c "cmd /c del @file"
    说明:在备份之前先在D盘建个backup文件夹.
   2.以Windows中的计划任务程序来触发这个备份脚本(以Win7为例)
      (1)
         


















完成配置,这个自动备份脚本会在每天10:43的时候执行,将数据备份到D:\backup文件夹下 格式为:20151212.dmp

2.导入dmp文件的命令
spool log.txt;
drop user scott cascade;
drop tablespace SCOTT including contents and datafiles;
create tablespace SCOTT logging  
datafile 'D:\orcl\SCOTT .dbf'
size 50m  
autoextend on  
next 50m maxsize 20480m  
extent management local; 
create user scott identified by tiger default tablespace SCOTT;
grant connect,resource to scott;
grant dba to scott;
spool off;
exit;

在dos窗口输入命名导入数据文件   imp scott/tiger@ORCL file=20151212.dmp full=Y


二、以expdp命名备份脚本如下
create directory  mydmp as 'D:\backup'  --directory指定导出到本地目录


--授权给操作用户这个mydmp目录的权限
grant read, write on directory  mydmp to scott--需要超级管理员的账号 sysdba


--查看一下是否存在该目录
select * from dba_directories;

执行脚本如下
@echo off
rem set backupfile=%date:~0,4%%date:~5,2%%date:~8,2%.dmp 
rem set logfile=%date:~0,4%%date:~5,2%%date:~8,2%.log
rem delete 30days filesforfiles /p "D:\backup" /d -30  /c "cmd /c 
echo deleting @file ... && del /f @path"cd D:\backup
rem backup schemas
set backupfile=%date:~0,4%%date:~5,2%%date:~8,2%.dmp
set logfile=%date:~0,4%%date:~5,2%%date:~8,2%.log
expdp scott/tiger directory=mydmp  dumpfile=%backupfile%  logfile=%logfile% schemas=scott parallel=4


用expdp导出的必须要用impdp命令导入
impdp scott/tiger DIRECTORY=mydmp  DUMPFILE=20151212.DMP SCHEMAS=SCOTT

后记:
用expdp也会把空表也导出,非常好用。

方式二

方法/步骤

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  director y=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、然后点击确定,系统会让用户输入对应的系统登陆密码,如下图,输入完密码点击确定即可。

Windows操作系统下的Oracle数据库备份脚本可以使用Oracle提供的工具或第三方工具来实现。 一种简单的备份方案是使用Oracle提供的RMAN(Recovery Manager)工具。RMAN是Oracle数据库备份和恢复的核心工具,可以通过命令行或脚本的方式进行操作。 以下是一个基本的Windows Oracle数据库备份脚本示例: @echo off set ORACLE_SID=数据库实例名 set ORACLE_HOME=Oracle安装目录 rman target sys/oracle@数据库服务名 catalog rman/rman@目录数据库实例名 <<EOF run { allocate channel t1_type1 device type disk format 'E:\backup\%d_DB_%U_%T.bak'; backup database plus archivelog formats 'E:\backup\%d_arch_%U_%T.bak'; delete noprompt obsolete; } EOF 上述脚本首先将ORACLE_SID和ORACLE_HOME设置为相应的实例名和Oracle安装目录。然后使用rman命令来连接到数据库并运行备份操作。 具体来说,这个脚本的作用是备份整个数据库和归档日志。allocate channel语句用于分配备份通道,每个通道对应一个备份设备(磁盘)。其中t1_type1是通道名称,disk表示备份设备类型,格式为'E:\backup\%d_DB_%U_%T.bak'表示备份文件的命名规则。 接下来的backup语句指定备份的内容,包括数据库和归档日志,并设置备份文件的格式。 最后,delete语句用于删除过期的备份文件,以释放存储空间。 以上只是一个简单的备份脚本示例,实际情况中可能需要根据实际需求进行更多的配置和修改。此外,还可以结合Windows的计划任务功能,定期执行备份脚本,以实现自动备份
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值