范例1:删除Oracle归档日志

项目有一套数据库跑在 WINDOWS 上面,开了归档,为了防止归档日志耗尽存储空间,需要对 Oracle 数据库做定期的归档日志删除。当然,如果有需要,RMAN脚本也可以写成对数据库进行备份,通过 delete input 来删除归档文件。

1.创建批处理文件

创建一个批处理文件 D:\dba\archive_delete.bat,内容如下:

rman target / cmdfile 'd:\dba\archive_delete.txt'

d:\dba\archive_delete.txt 文件的内容如下:

run{
delete noprompt archivelog all;
}

2.创建 Windows 计划任务

开始 ---> 管理工具 ---> 任务计划程序 ---> 创建任务

常规标签:

名称:archive_delete
勾选 “不管用户是否登陆都要运行”

触发器标签:

新建,创建一个周期性安排
时间建议不要使用凌晨的时间,我在 bat 脚本里生成文件名时为空,后面改为23:15开始(每天一次)就没问题了。

操作标签:

新建,选择前面创建的 .bat 文件

范例2:生成备份文件并上传至FTP服务器

Windows Server 上的 SQL Server 数据库中有一张表 cyt 非常重要,现需要对其进行逻辑备份,然后上传到 FTP 服务器。本地仅保留三天内的备份。

1.创建批处理文件

创建一个批处理文件 backup_to_remote.bat,内容如下:

:: 定义时间变量,用于备份文件名中
set THISDATETIME=%DATE:~2,2%%DATE:~5,2%%DATE:~8,2%-%time:~0,2%%TIME:~3,2%%TIME:~6,2%

:: 执行备份命令,生成备份文件
bcp demodb.dbo.cyt out d:\backup_to_remote\tmp\cyt_bak_%THISDATETIME%.sql.bak  -T -c

:: 通过 ftp 命令将备份文件上传到 FTP 服务器
ftp -v -d -n -i -s:"d:\backup_to_remote\backup_to_remote.ftp" 11.22.33.44

:: 将备份文件移动到本地归档目录
move d:\backup_to_remote\tmp\*.sql.bak d:\backup_to_remote\arch

:: 仅保留本地归档目录三天内的文件
forfiles /p "d:\backup_to_remote\arch" /s /m *.sql.bak /d -3 /c "cmd /c del @path"

d:\backup_to_remote\backup_to_remote.ftp 文件的内容如下:

user someuser sompassword
bin
cd demodb
mput "d:\backup_to_remote\tmp\*.sql.bak"
bye 

2.创建 Windows 计划任务

参考范例1

-- By 许望(RHCA、OCM、VCP)
最后修改:2024 年 07 月 15 日 10 : 42 AM
如果觉得我的文章对你有用,请随意赞赏