需要IQ数据库备份脚本(通过UNIX cron运行)

2020-09-19 23:30发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

在我开始尝试生成一个IQ备份脚本之前,我将通过cron计划我的id,尽管id伸出手来询问是否有人可以共享它们-这样我就不必重新发明轮子了 会说话吗?

预先感谢:)

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

在我开始尝试生成一个IQ备份脚本之前,我将通过cron计划我的id,尽管id伸出手来询问是否有人可以共享它们-这样我就不必重新发明轮子了 会说话吗?

预先感谢:)

付费偷看设置
发送
2条回答
灬番茄
1楼-- · 2020-09-20 00:36

您好,安德鲁,您可能会考虑类似的事情,让dB管理备份并记录cleanups.sorry的长度。 :)

创建存储过程以执行备份。

 创建过程DBA.msp_backup(
 @myenv varchar(10),
 @bckType varchar(10))– F:满,IsF:自满后递增,I:递增
 如
 开始
 声明@mypath varchar(30)
 声明@myfile varchar(60)

   在" @mypath"中选择"/img/backups/"
 选择@mypath + @myenv +‘/’


             +案例@bckType
                      当" F"然后"满"时
                        否则" inc"
                最终案例


            +‘/’+ db_name()+‘_’


           + @bckType +‘_’


           + cast(dayname(getdate())as varchar(3))+‘_’


           + cast(year(getdate())as varchar(4))+‘_’


           + cast(month(getdate())as varchar(2))+‘_’


          + cast(day(getdate())as varchar(2))+‘_’


          + cast(hour(getdate())as varchar(2))+‘h’


          + cast(minute(getdate())as varchar(2))+‘m’
 进入@myfile

 如果@bckType ='F'
 开始
 备份数据库完整到@myfile
 结束

 IF @bckType ='IsF'
 开始
 自完整到@myfile以来备份数据库增量
 结束

 如果@bckType ='I'
 开始
 将数据库增量备份到@myfile

 结束

 如果@bckType不在('F','IsF','I')中
    raiserror 99999"无效的备份类型:%1!",@ bckType

 结束

  该存储过程接收两(2)个输入参数:@myenv,此参数允许使用同一过程来备份不同的环境(即:prod,test,dev); 和@bckType,这允许使用相同的过程来执行不同类型的备份(即:完整,增量,自完整后增量)。

 备份名称是使用数据库名称,备份类型和系统日期自动生成的; 例如,MyDB_F_Sun_2012_10_7_20h30将是2012年10月7日(星期日)晚上10:30创建的MyDB的完整备份。

 2.安排备份事件。

 现在,我们通过以下四(4)个事件来安排备份:

 创建事件WeeklyFullBackup
   附表Sched_WeeklyFullBackup
   起始时间"晚上10:30"("星期日")
   启用
   处理程序
   开始
     致电DBA.msp_backup(" prod"," F")
   结束

 创建事件DailyIncSinceFullBackup
 附表Sched_DailyIncSinceFullBackup
 每9小时的" 12:00 PM"和" 10:00 PM"之间

       开启("星期一","星期二","星期三","星期四","星期五","星期六")
 启用
 处理程序

 开始

  致电DBA.msp_backup(" prod"," IsF")

  结束

 创建事件DailyIncBackupMorning
 附表Sched_DailyIncBackupMorning
 每2小时的" 6:00 AM"和" 10:10 AM"之间
 启用
 处理程序
 开始
    致电DBA.msp_backup(" prod"," I")
 结束

 创建活动DailyIncBackupAfternoon
   附表Sched_DailyIncBackupAfternoon
 每2小时的" 2:00 PM"和" 10:10 AM"之间
 启用
 处理程序
 开始
     致电DBA.msp_backup(" prod"," I")
    结束

 3.清理旧的备份文件。

 这是我用来清除早于24小时的备份文件的脚本。


 #!/bin/ksh

 。  $ HOME/.profile
 #脚本名称:CleanOldBckFiles.sh
 #说明:删除所有早于24小时的文件
 #参数:$ 1:env('prod','dev','test'); $ 2:backup type('full','inc')
 #作者:Uvernes Somarriba
 #日期:2011年10月24日


 #要删除的日志文件


 查找/备份/$ 1/$ 2-类型f -mtime +1 -exec ls -l >>/备份/$1/deleted_files.log {} \;


 # 删除文件


 查找/备份/$ 1/$ 2 -type f -mtime +1 -exec rm -f {} \;


 将以下行添加到您的crontab中:


 00 22 * * 1,2,3,4,5,6/IQ/scripts/CleanOldBckFiles.sh prod inc>/dev/null 2>&1


 我将脚本放在/IQ/Scripts文件夹中。 该脚本将要删除的文件的名称写入Deleted_files.log文件,然后删除该文件。


 恢复

 您需要按以下顺序还原:

 恢复每周完整备份。
 还原自完全备份以来的最后一个增量。
 按时间顺序递增还原自上次"自完全备份以来的增量备份"以来的所有增量备份。

 
打个大熊猫
2楼-- · 2020-09-20 00:32

谢谢

一周热门 更多>