识别完整转储

2020-09-23 21:46发布

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

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


我有一个关于进行完整转储的问题。
我们每60分钟运行一次事务性转储,这会写入日志中。

然后,作为第二步,我们在日志中搜索"使用DUMP DATABASE代替"模式。 如果存在,则暗示必须进行完全转储。

我的问题是:这是检测完全转储的首选方法吗?

谢谢

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

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


我有一个关于进行完整转储的问题。
我们每60分钟运行一次事务性转储,这会写入日志中。

然后,作为第二步,我们在日志中搜索"使用DUMP DATABASE代替"模式。 如果存在,则暗示必须进行完全转储。

我的问题是:这是检测完全转储的首选方法吗?

谢谢

付费偷看设置
发送
6条回答
一只江湖小虾
1楼-- · 2020-09-23 22:31

有一个名为tran_dumpable_status(" database_name")的内置函数,用于检查事务日志当前是否可转储,

http://infocenter.sybase.com /help/topic/com.sybase.infocenter.dc36271.1600/doc/html/san1393050504617617.html

您的转储过程可以使用类似以下的逻辑,而不是尝试运行转储tran然后检查是否失败,

如果tran_dumpable_status(mydatabase)= 0

然后

将tran mydatabase转储到tranlog_archive_device_name

else
开始
将truncate_only的tran tran mydatabase转储到db_archive_device_name
end

代楠1984
2楼-- · 2020-09-23 22:32

我们完全按照Bret指出的方式使用tran_dumpable_status。

只需确保您不经意地排除了" tempdb"并喜欢进行完整的数据库转储。

在第二条语句的" else"子句中具有"潜在"值!

在一般情况下,处理临时数据库时应谨慎处理"使用truncate_only进行转储tran"。

HTH

Avinash

槿木_熙
3楼-- · 2020-09-23 22:29

嗨,

当您收到"使用DUMP DATABASE代替"消息时,有几种情况:

  1. 交易日志已完全满,并且不在自己的设备上
  2. 在执行最少记录的事务(例如" select into",快速bc​​p,并行创建索引)之后。

如果您每小时进行一次tran转储,我们可以排除方案1。这意味着您正在执行与2中所述的最少记录的事务,这将在Backup Server日志中引发错误消息。

如果要编写tran日志转储的脚本,那么最好是测试错误并自动执行转储数据库。

希望这会有所帮助

Mehrab

Doze时光
4楼-- · 2020-09-23 22:30

嗨,尼基,

以下是有关TSQL中IF THEN ELSE语句的常规文档:

http://infocenter.sybase.com /help/topic/com.sybase.infocenter.dc32300.1600/doc/html/san1390612383583.html

我的示例只是一般的概述/伪代码。 这是一个可行的实现:

如果(select tran_dumpable_status(" test"))= 0
打印" tran日志可转储"
else
打印" tran日志不可转储"
go

干杯,
-bret

当学会了学习
5楼-- · 2020-09-23 22:34

Hello Bret,谢谢您的回答,但是如何在isql语句中使用if语句?
还是您要记录日志? 结果出来,然后在每个数据库的bash脚本中分别编写if?

我尝试了一下,例如。 我知道了

------------
32

(受影响的1行)

根据您的链接,它说明

32 –仅截断的转储tran中断了转储设备的所有连贯转储序列。

我该怎么解释?

CPLASF-自律
6楼-- · 2020-09-23 22:21

让我确认我了解您的情况是否正确:

您每小时对ASE数据库执行一次DUMP TRAN。
由于上述错误消息而导致DUMP TRAN失败时,将执行完整的数据库转储。

这正确吗?

您的问题是,这是否是检测是否有必要进行完整转储的首选方法。
实际上,我会定期执行FULL DB DUMP,以解决您的需求,有时需要上线以备不时之需。

此外,每次由于某种原因导致事务日志序列中断时,您都必须获得完整的数据库转储-在保存方面,必须在应用程序脱机时使用(否则,冒着丢失事务数据的风险) 它是在完全转储成功完成之前生成的)。 因此,对于生产数据库,建议确保TX日志序列在在线时间内不会中断。

为了防止任何最少记录的语句复查数据库选项:

强制执行转储序列#确保没有人可以意外地运行破坏TX日志序列的内容

设置该值后,您可能需要安排一些活动,这些活动的确会中断日志顺序,直到申请终止,然后可以直接获取完整的数据库。
此外,请查看这些数据库选项可能有多大帮助:

所有记录的完整记录
变更表的完整记录
reorg重建的完整记录
选择进入的完整记录

请注意," ...的所有这些完整日志"选项将增加写入TX日志的日志数量。

HTH

蒂尔曼

一周热门 更多>