Oracle备份文件名获取系统时间的做法(windows)

在对数据库进行备份时,用数据泵的方法,需要执行一段代码:


--建目录
create directory dir as 'd:\bak';

--给用户授权使用目录
grant read,write on directory dir to scott;

--在cmd中输入以下代码
expdp scott/tiger@XE directory=dir dumpfile=abc.dmp [可选tables=(xxx,xxx)]

================================================

================================================


如果每天都要进行备份,可以建一个计划任务,去执行一个批处理文件;
但是文件名不能是固定的,最好是以创建日期时间命名。
研究了一下在windows上,用系统日期时间命名文件的方法,如下;

%date%,是获取当前日期,格式如下;
C:\Documents and Settings\Administrator>date
当前日期: 2013-12-13 星期五

%time%,是获取当前时间,格式如下;
C:\Documents and Settings\Administrator>time
当前时间: 11:10:19.44

因为文件名不能带有特殊符号,比如说“:”;
所以文件名不能直接取%time%;

截取%time%的方法是:%time:~0,2%_%time:~3,2%_%time:~6,2%;
    ps:~0,2的意思是,从第0位开始截取,截取2位。
               _下划线是连接符号,可以更改。

日期的截取同理,日期只需要截去中文部分:%date:~0,10%

    ps:这里说明一下,如果系统的时间格式中有“/”的话,这里还要截取date,

                   (原因也是文件夹不能包含的字符 “ / ”)

         例:%date:~0,4%_%date:~5,2%_%date:~8,2%

================================================

================================================


测试一下:
建一个文本文档,修改后缀为.bat,输入如下代码;

set T=%date:~0,4%_%date:~5,2%_%date:~8,2%@%time:~0,2%_%time:~3,2%_%time:~6,2%
md %T%

执行以下,看看是否在同目录下创建了一个文件夹
例:2013_12_13@11_22_40

测试成功后,就可以实践了;
还是建一个文本文档改.bat,输入如下代码;

set T=%date:~0,4%_%date:~5,2%_%date:~8,2%@%time:~0,2%_%time:~3,2%_%time:~6,2%
expdp scott/tiger@XE directory=dir dumpfile=%T%.dmp
pause


运行即可,结果如下:

C:\ceshi>set T=2013-12-13@11_24_19


C:\ceshi>expdp scott/tiger@XE directory=dir dumpfile=2013-12-13@11_24_19.dmp


Export: Release 11.2.0.2.0 - Production on 星期五 12月 13 11:24:19 2013


Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.


连接到: Oracle Database 11g Express Edition Release 11.2.0.2.0 - Production
启动 "SCOTT"."SYS_EXPORT_SCHEMA_01":  scott/********@XE directory=dir dumpfile=2
013_12_13@11_24_19.dmp
正在使用 BLOCKS 方法进行估计...
处理对象类型 SCHEMA_EXPORT/TABLE/TABLE_DATA
使用 BLOCKS 方法的总估计: 192 KB
处理对象类型 SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
处理对象类型 SCHEMA_EXPORT/TABLE/TABLE
处理对象类型 SCHEMA_EXPORT/TABLE/INDEX/INDEX
处理对象类型 SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
处理对象类型 SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
处理对象类型 SCHEMA_EXPORT/TABLE/COMMENT
处理对象类型 SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
处理对象类型 SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
. . 导出了 "SCOTT"."DEPT"                              5.929 KB       4 行
. . 导出了 "SCOTT"."EMP"                               8.484 KB      12 行
. . 导出了 "SCOTT"."SALGRADE"                          5.859 KB       5 行
. . 导出了 "SCOTT"."BONUS"                                 0 KB       0 行
已成功加载/卸载了主表 "SCOTT"."SYS_EXPORT_SCHEMA_01"
******************************************************************************
SCOTT.SYS_EXPORT_SCHEMA_01 的转储文件集为:
  C:\BAK\2013_12_13XE11_24_19.DMP
作业 "SCOTT"."SYS_EXPORT_SCHEMA_01" 已于 11:25:11 成功完成




C:\ceshi>pause
请按任意键继续. . .


这样就实现了定时备份数据库,并且使用系统时间给dmp文件命名,无须担心重复。


================================================

================================================


注:

          1、在dmp文件的命名中@符号会被替换成XE。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

于大大大洋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值