SAP和oracle备份故障解决报告

更新时间:2024-02-03 05:33:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

SAP和oracle备份故障解决报告

王巧雷 IT服务事业部

邮箱:wangql@teamsun.com.cn

北京华胜天成科技股份有限公司

SAP和oracle备份故障解决报告 ..................................................................................... 1

环境背景 ....................................................................................... 3 故障简介 ....................................................................................... 3 Sap备份故障 .......................................................................... 3 Oracle备份故障...................................................................... 3 分析............................................................................................... 4 Sap分析 ................................................................................. 4 Oracle分析 ............................................................................. 6 解决方案 ....................................................................................... 7 Sap .......................................................................................... 7 Oracle ..................................................................................... 7

环境背景

当前用户的备份环境使用的是tsm v5,需备份的应用为ORACLE、SAP R3 、普通文件等等,带库为EMC DATADOMAIN 640,用到了以下模块

TDP FOR ORACLE:oracle数据库备份模块 TDP FOR ERP ORACLE:sap erp备份模块 TSM BA CLIENT:普通文件备份模块

故障简介

近期,用户对后端的带库做了更换,用dd640虚拟带库更换了TS3200物理带库,更换完成后对策略做了一些调整,运行一段时间后,发现sap和oracle备份出现问题

Sap备份故障

每晚的sap备份不停报错,后续备份失败

Oracle备份故障

严格来说,Oracle备份还没有发生故障,但其占用存储池不停增加,马上就面临存储池满的情况。

分析

综上,sap和oracle的问题其实都是空间占用的问题,存储池占用空间不停增长,导致后续备份无法存放,从而报错。但两种应用的解决方法却各有差异

Sap分析

使用TDP FOR ERP ORACLE模块备份sap应用时,有两种备份方法,但都要通过sap的brtools工具

1. 基于rman的备份

2. 另一种是基于brtools的联机备份(将表空间设置为只读,备份时相当于brtools调用alter tablespace xx begin backup)

本环境采用了第二种备份方式,此种备份方式下对备份集的存留策略控制也有两种方式:

1. 使用TDP FOR ERP模块控制,具体是通过initSID.utl文件中的max_versions来控制存留的备份版本,此时,tsm server端的归档副本组参数retver要设置为nolimit

例如:max_versions 4

2. 使用tsm server的归档副本组来控制,也就是retver参数,使用这种方法时,要将initSID.utl文件中的max_versions设置为0或注释掉。

例如,每天备份一次,要保留14个版本 retver=14

在本环境中,经询问用户后,用户每天对sap执行全备份,保留7天。因此存储池也是按照这个基准来规划,但是我发现initsid.utl文件中的max_versions是被注释掉的,也就是说备份版本的控制是通过tsm来实现的。

在tsm中输入命令查询如下:

tsm: TSMSERVER>q copy prdsapdomain t=arch 策略域名称 策略集名称 管理类名称 副本组名 保留版本 ---------- ---------- ---------- --------- -------- PRDSAPDOM- ACTIVE MDB STANDARD 21 AIN PRDSAPDOM- ACTIVE MLOG STANDARD 21 AIN PRDSAPDOM- ACTIVE STANDARD STANDARD 15 AIN PRDSAPDOM- STANDARD MDB STANDARD 21 AIN PRDSAPDOM- STANDARD MLOG STANDARD 21

AIN PRDSAPDOM- STANDARD STANDARD STANDARD 15 tsm: TSMSERVER>q do prdsapdomain f=d 策略域名称: PRDSAPDOMAIN 已激活的策略集: STANDARD 激活日期/时间: 03/23/12 13:54:20 从激活至今的天数: 5 已激活的缺省管理类: STANDARD 已注册节点数: 2 描述: Installed default policy domain. 备份保留(宽限期): 7 归档保留(宽限期): 14 上次更新者(管理员): ADMIN 上次更新日期/时间: 03/23/12 13:54:20 管理概要文件: Changes Pending: 是

从图示看出,归档副本组的保留是21天,策略域的归档备份期限是7天,保留是14天,此处优先使用副本组的策略。而且,sap的数据在tsm中是按归档来处理的,因此,实际上用户的sap保留期限是21天。根据用户对数据量的估计,现有的存储池是无法满足要求的。

使用select语句查看归档内容,也可以验证这一点。 tsm: TSMSERVER>q stg prddbpool 存储池名称 设备类名称 估计容量 利用率 迁移百分比 高限迁移百分比 低限迁移百分比 下一个存储池 ----------- ---------- ---------- ------ ---------- -------------- -------------- ------------ PRDDBPOOL LTO_CLASS- 140,528 G 29.1 72.9 70 60 _2 tsm: TSMSERVER>select * from archives where NODE_NAME='ZNAPRD1_ZNP' order by ARCHIVE_DATE ANR2963W SQL 查询将产生一很长的结果表格,或可能需要大量的计算时间。 Do you wish to proceed? (Yes (Y)/No (N)) Y NODE_NAME: ZNAPRD1_ZNP FILESPACE_NAME: /tdpmux FILESPACE_ID: 5 TYPE: FILE

HL_NAME: / LL_NAME: ZNP___A0GZHUAXIE_21856 OBJECT_ID: 109580 ARCHIVE_DATE: 2012-03-07 12:00:53.000000 OWNER: DESCRIPTION: ZNP___A0GZHUAXIE_TSM-SERVER@MLOG#32521856 1.COPY 00000 CLASS_NAME: MLOG NODE_NAME: ZNAPRD1_ZNP FILESPACE_NAME: /tdp FILESPACE_ID: 7 TYPE: FILE HL_NAME: / LL_NAME: oracle/ZNP/oraarch/ZNParch1_534056.dbf OBJECT_ID: 109581 ARCHIVE_DATE: 2012-03-07 12:00:55.000000 OWNER: DESCRIPTION: ZNP___A0GZHUAXIE_TSM-SERVER@MLOG#32521856 1.COPY 00000 CLASS_NAME: MLOG NODE_NAME: ZNAPRD1_ZNP FILESPACE_NAME: /tdp FILESPACE_ID: 7 TYPE: FILE HL_NAME: / LL_NAME: oracle/ZNP/oraarch/ZNParch1_534057.dbf OBJECT_ID: 109583 ARCHIVE_DATE: 2012-03-07 12:00:55.000000 OWNER: DESCRIPTION: ZNP___A0GZHUAXIE_TSM-SERVER@MLOG#32521857 1.COPY 00000 CLASS_NAME: MLOG ************************************************

可以看出,tsm的归档中存留了自3月7号以来21天的数据。

Oracle分析

查看oracle所在副本组保留策略为2 1 30 60,即:备份存留两个版本,当版本变成inactive状态时,保留30天,如果备份时发现备份对象删除,则在tsm中保留一个备份版本,保留60天。

Oracle的备份采用rman方式,生成的备份片是以时间戳结尾的,这就导致了每一次的oracle备份片都是独一无二的。也就是说oracle的备份永远不会产生inactive的版本,因此,

副本组的几个参数作用有限,应调整为 1 0 0 0 。即:保留一个备份版本,当版本过期后立刻删除。当然,要导致版本过期需要就通过oracle自身的删除功能了。

解决方案 Sap

1. Sap数据库保留14天,日志保留1个月

update copy prdsapdomain standard mdb type=archive retver=14 update copy prdsapdomain standard mlog type=archive retver=90

2. 重新激活策略集

activate policy prdsapdomain standard

3. 手动执行过期 expi inv

4. 检查存储池使用率 q stg prddbpool f=d

5. 检查sap节点数据归档的情况

select * from archives where NODE_NAME='ZNAPRD1_ZNP' and CLASS_NAME='MDB' order by ARCHIVE_DATE

Oracle

1. 调整副本组参数

udate copy tdp761-2 standard standard verexists=1 verdelete=0 retextra=0 retonly=0

2. 重新激活策略

activate policy tdp761-2 standard

3. 为tdp节点增加oracle备份删除脚本,并定期调度脚本如下

allocate channel FOR MAINTENANCE device type 'sbt_tape'

parms 'ENV=(tdpo_optfile=/usr/tivoli/tsm/client/oracle/bin64/tdpo.opt)'; crosscheck backup;

crosscheck archivelog all;

#report obsolete;

delete noprompt obsolete recovery window of 30 days; delete noprompt expired backup;

release channel;

本文来源:https://www.bwwdw.com/article/tmtw.html

Top