服务器A制定计划任务,BAT脚本自动备份oracle数据文件,拷贝至服务器B的共享目录。

时间:2023-03-02 17:47:08

运行环境:windows server 2008 R2

目的:在数据库服务器A进行数据库自动备份,并且保留5天。

为了安全,需要在web应用服务器B进行数据库的冗余备份,建立双保险。(保留15天)

A相当于本地,B相当于远程。(B需要开通共享文件夹orcl6)

BAT脚本文件(下面两种方法可以实现异机备份XCOPY 、 COPY)

1:两台电脑在同一局域网,可以互相访问。

2:接收复制文件的电脑,文件夹orcl6要设置共享。(共享文件夹一定要开通读/写权限)

代码1):

echo 推送到指定pc共享目录

net use X: \\192.168.0.1\orcl6 "123" /user:"administrator"
xcopy D:\back\files\*.dmp X:\ /s /e /y /d
net use X: /del

pause/exit

参数详解:

192.168.0.1是接收文件的电脑ip,orcl6是设置了共享的文件夹。

“123”password  远程连接密码   username  远程连接用户名

net use X: \\192.168.0.1\orcl6     将192.168.0.1远程主机上的共享目录orcl6建立磁盘映射到本地X:盘

net use X: /del  删除磁盘映射(断开)

xcopy /s /e /y /d

/d 只复制那些在指定日期或指定日期之后更改过的源文件。

/y 禁止提示您确认要覆盖现存的目标文件。

/s /e 复制所有子目录,包括空目录。

把本机的oracle备份.dmp文件,拷贝到本地映射的磁盘 X:\下(实际地址为:192.168.0.1机器上的orcl6文件夹下。)

xcopy 源路径 目标路径
复制文件和目录,包括子目录。

代码2):

echo 推送到指定pc共享目录

copy D:\back\files\*.dmp \\192.168.0.1\orcl6\

pause/exit

copy 源路径 目标路径

只是复制文件

pause可以让bat运行框停留,看清执行情况。方便测试bat脚本排错。

任务计划执行的时候,删掉,改为exit 。

一、确定数据库备份目录

源服务器:(服务器A机器下):E盘创建目录back。直接把脚本Backup.bat放在back根录下,定时执行该脚本时会自动创建files和logs和q三个文件夹。q文件夹用来堆放每天更新的dmp和log文件,保留最近5天的备份文件。

目标服务器:(服务器B机器下):并将备份数据库文件导入orcl6文件夹(orcl6为设置共享文件夹,需要从web应用服务器共享一个文件夹到局域网内。同个局域网内的A服务器,或其他的PC可以通过\\IP

服务器A 设置如下:

1)选定合适的磁盘,(根据需求,建议磁盘空间在100G以上)并在磁盘根目录下创建back文件夹。

服务器A制定计划任务,BAT脚本自动备份oracle数据文件,拷贝至服务器B的共享目录。

2)看一下标记日期格式是不是如图所示标记区,若不是,则改成yyyy-M-d

服务器A制定计划任务,BAT脚本自动备份oracle数据文件,拷贝至服务器B的共享目录。

服务器A制定计划任务,BAT脚本自动备份oracle数据文件,拷贝至服务器B的共享目录。

二、制定定时策略 (服务器A 设定计划)

1.找到windows下的任务计划程序(win server 2008R2:服务器管理器--配置--任务计划程序)

或者在运行栏里搜索计划任务

服务器A制定计划任务,BAT脚本自动备份oracle数据文件,拷贝至服务器B的共享目录。

2. 创建任务

服务器A制定计划任务,BAT脚本自动备份oracle数据文件,拷贝至服务器B的共享目录。

3. 名称和描述自定义--安全选项下--勾选不管用户是否登录都要运行(w)--勾选使用最高权限运行(i)

--配置选择默认win Vista win sever 2008 或者 下选 win sever 2003 win xp

服务器A制定计划任务,BAT脚本自动备份oracle数据文件,拷贝至服务器B的共享目录。

4. 触发器时间自定义--新建触发器--设置时间间隔--设置计划开始的时间。

服务器A制定计划任务,BAT脚本自动备份oracle数据文件,拷贝至服务器B的共享目录。

5. 操作--新建操作--启动程序

程序或脚本--浏览选择脚本

-在起始于(可选)空白处 将脚本文件的目录填入进去。(很重要)

例如: 起始于(可选)(I):       D:\back\     点确定--下一步

服务器A制定计划任务,BAT脚本自动备份oracle数据文件,拷贝至服务器B的共享目录。

6. 条件设置如下

服务器A制定计划任务,BAT脚本自动备份oracle数据文件,拷贝至服务器B的共享目录。

7. 在所有参数设置完后,点确定会弹出以下窗口

输入当前pc的管理员用户的密码。--确认

服务器A制定计划任务,BAT脚本自动备份oracle数据文件,拷贝至服务器B的共享目录。

8. 确定后--计划任务设置成功--计划任务状态栏如下:

服务器A制定计划任务,BAT脚本自动备份oracle数据文件,拷贝至服务器B的共享目录。

三、在服务器B--将文件夹W设置为共享文件夹

服务器B设置如下:

1)先确定合适的磁盘(建议在300G以上的磁盘),选择磁盘后新建文件夹orclbf

2)看一下标记日期格式是不是如图所示标记区,若不是,则改成yyyy-M-d

共享页面--添加共享的用户--everyone--选择读取/写入--点共享

服务器A制定计划任务,BAT脚本自动备份oracle数据文件,拷贝至服务器B的共享目录。

服务器A制定计划任务,BAT脚本自动备份oracle数据文件,拷贝至服务器B的共享目录。

服务器A制定计划任务,BAT脚本自动备份oracle数据文件,拷贝至服务器B的共享目录。

点完成就行.

电脑B的防火墙中的例外下把"文件与打印机共享"给勾上

服务器A制定计划任务,BAT脚本自动备份oracle数据文件,拷贝至服务器B的共享目录。

服务器的共享目录,设置成功以后,我们需要在A服务器的运行 通过 \\服务器B的ip                         验证一下能否正常访问。

所有步骤检查后,我们退出服务器B,回到服务器A,在A机器上进行test.BAT的测试,测试成功后,新建计划任务进行功能测试。

成功通过后,我们在服务器A开始部署正式的BAT在任务计划上。

 

服务器B下的共享目录(双备份orcl6)需要保存15天,我们需要在B服务器端建立一个任务计划,保存近15天的备份文件。

任务计划步骤如(服务器A设定一样)

找到windows下的任务计划程序(win server 2008R2:服务器管理器--配置--任务计划程序)--创建任务

 

四、 注意事项

问题描述:windows 计划任务 运行结果反馈0×1

首先我们可以通过手动双击运行BAT脚本,来进行排错,如果脚本本身可以运行,

那我们需要排查一下计划任务的权限设置。权限排查以后,

如果还是报错0x1,查看bat脚本里有没有删除语句,如果文件不存在,也会出现0x1报错。

· 代码 0 或 0x0:操作成功完成。
· 代码 1 或 0x1:调用的函数不正确或调用了未知函数。 如果文件不存在也会出现这个错误
· 代码 10 或 0xa:环境不正确。
· 代码 0x8009000f:常规访问被拒绝

问题描述:在局域网内两台window server 2008 R2服务器上设置共享文件夹,需要开启“网络发现”

但是即使打开了“网络发现”,当重新打开“高级共享设置”的时候,会仍然显示出网络发现没有打开,那么如何解决这个问题呢?

服务器A制定计划任务,BAT脚本自动备份oracle数据文件,拷贝至服务器B的共享目录。

解决方法:

win+R在运行栏里输入services.msc

打开服务功能,检查以下3个服务的开启状态。

要解决这个问题需要启用以下的3个服务:

1.Function Discovery Resource Publication

2.SSDP Discovery

3.UPnP Device Host

再次查看,已经可以正常启用网络发现。