<DB2>《AIX环境下DB2冷备机恢复方案(生产实践)》

《AIX环境下DB2冷备机恢复方案(生产实践)》

  • 1 DB2数据库常见备份方式简要说明
  • 2 方案说明
  • 3 实际方案(信息已脱敏)
    • 3.1 基本信息
    • 3.2 创建互信
    • 3.3 部署scp脚本
    • 3.4 在冷备机192.168.16.165上部署恢复脚本
    • 3.5 在冷备机192.168.16.165上部署清理脚本

1 DB2数据库常见备份方式简要说明

生产环境中,对于生产环境DB2数据库的安全备份主要有以下方法,我将以从小到大的方式进行叙述:

序号标题表现方式
1备份数据库表一般有以下方式:
方式1:在生产环境数据库创建备份表,并将数据完整插入备份表。但无法实现实时备份。
方式2:利用SQL复制技术,建立复制表,进行实时复制。
方式3:利用Q复制技术,可实现跨服务器的实时复制。
方式4:利用表的导出导入,备份和恢复表。
2备份表空间一般将表空间进行备份然后恢复。
3备份数据库一般有以下方式:
方法1:离线备份数据库。这样的备份比较完整。可用于离线恢复。
方法2:在线全备数据库。这样的备份也比较完整。但有时恢复时需要读取日志文件。
方法3:在线增备数据库,又分为拆分备份和差异备份。都需要在在线全备基础上进行恢复。
4备份数据库所在的小型机数据库在小型机上,使用AIX系统时,可以通过操作系统HACMP技术,将数据库所在的小机进行备份,达到一台故障另一台接管的数据库卷组的目的。这种方式一般数据较为完整,但是过程中会出现数据库重启,极端情况会导致数据库实例损坏。
5备份数据库卷组一般通过存储技术将数据库所在的卷组进行复制,这样出现断电等极端情况下,在另一台数据库实例上恢复数据库。一般在日常,就已经准备了另一套完整的数据库环境,一侧卷组损坏数据库无法恢复,则可以直接启动另一侧。缺点是,一般无法实时同步,两端数据差在4小时左右。
6备份数据库环境数据库在linux虚拟机上时,可以克隆虚拟机。这样对操作系统、数据库软件、数据库实例、数据库都做了完整备份。
7备份机房环境在同城或异地建设容灾机房,配置网络,复刻生产环境的数据库和应用,日常可利用存储和操作系统技术进行数据库数据备份,紧急情况可通过切换网络,实现紧急恢复。缺点是,数据一般有延迟,部分新数据存在丢失风险。

2 方案说明

本方案实际解决的是数据库HA无法保障数据库正常应对灾难情况下,使用冷备的数据库进行恢复。
冷备的数据库一般具备以下特征:
1、一般会配置生产相同的数据库版本、数据库用户、权限、服务器用户密码。
2、设置数据库参数、操作系统参数与生产环境基本一致。
3、数据库家目录、数据库日志、表空间等操作系统目录和文件的路径与生产一致。
4、网络安全策略与生产环境一致。
5、通过更改网卡为生产环境网卡进行启动。

3 实际方案(信息已脱敏)

3.1 基本信息

类别源数据库服务器冷备机服务器
IP地址192.168.16.161192.168.16.165
实例用户db2test1db2test1
数据库1usmeusme
数据库1活动日志/datanet/usme/db2test1/db2test1/NODE0000/SQL00001/LOGSTREAM0000/

3.2 创建互信

由于使用scp方式传输数据,建立源服务器到冷备机服务器的互信。

步骤内容
1db2test1用户,登录165,在/etc/hosts文件中,添加192.168.16.161 prvip_WZFWZ01
2db2test1用户,登录161,在/etc/hosts文件总,添加192.168.16.165 zwfw
3db2test1用户,在161生成秘钥,执行ssh-keygen -t rsa,在~/.ssh目录下生成id_rsa id_rsa.pub两个文件。
将id_rsa.pub重命名id_rsa.pub@161,传输到165上,scp id_rsa.pub@161 db2test1@192.168.16.165:/datanet/backupsafe。
4db2test1用户,登录165,复制id_rsa.pub为id_rsa.pub@165,传输到161上,scp id_rsa.pub@165 db2test1@192.168.16.161:/home/db2test1。
5将公钥追加到authorized_keys文件。
db2test1用户,登录161,cd /home/db2test1/.ssh,cat id_rsa.pub@161 >> authorized_keys
db2test1用户,登录165,cd /home/db2test1/.ssh,cat id_rsa.pub@165 >> authorized_keys

3.3 部署scp脚本

在源服务器部署scp脚本,将备份文件和日志文件传输到冷备机服务器。


//crontab 如下
#0 3 * * * sh /home/db2test1/scpdbbkup.sh  >> /home/db2test1/scpdbbkup.log
// 脚本内容如下:
#!/bin/bash
echo "Startbackup:`date +"%Y%m%d_%H%M"`"
scp -r /databak/datanet/backup/backup01/usme*001 db2test1@192.168.16.165:/datanet/backupsafe/usme
scp -r /databak/datanet/backup/backup01/seame*001 db2test1@192.168.16.165:/datanet/backupsafe/seame
uslog=`ls -rtl /datanet/usme/db2test1/db2test1/NODE0000/SQL00001/LOGSTREAM0000/ | tail -8 | awk '{print $9}'`
for i in $uslog
doscp /datanet/usme/db2test1/db2test1/NODE0000/SQL00001/LOGSTREAM0000/$i db2test1@192.168.16.165:/datanet/backupsafe/usme/log/NODE0000/LOGSTREAM0000
done
sealog=`ls -rtl /datanet/seame/db2test1/db2test1/NODE0000/SQL00001/LOGSTREAM0000/ | tail -8 | awk '{print $9}'`
for k in $sealog
doscp /datanet/seame/db2test1/db2test1/NODE0000/SQL00001/LOGSTREAM0000/$k db2test1@192.168.16.165:/datanet/backupsafe/seame/log/NODE0000/LOGSTREAM0000
done
echo "Endbackup:`date +"%Y%m%d_%H%M"`" 

3.4 在冷备机192.168.16.165上部署恢复脚本

//crontab 如下
#0 4 * * *  sh /datanet/backupsafe/safeusbak.sh >> /datanet/backupsafe/safebackup.log 2>1&
// 脚本内容如下:
#!/bin/bash
. /etc/profile
if [ -f /home/db2test1/sqllib/db2profile ]; then. /home/db2test1/sqllib/db2profile
fi
echo '\n\n\n\n'
echo "Start of usme restore:`date +"%Y%m%d_%H%M"`"
db2 restore database usme from /datanet/backupsafe/usme logtarget /datanet/backupsafe/usme/logs without prompting 
echo "End of usme restore:`date +"%Y%m%d_%H%M"`"
## move file from the directory log to logs
uslogfile="/datanet/backupsafe/usme/log/NODE0000/LOGSTREAM0000"
for i in `ls -l /datanet/backupsafe/usme/log/NODE0000/LOGSTREAM0000 | awk '{print $9}'| grep -v "^$"`
do
cd $uslogfile 
if [ ! -e /datanet/backupsafe/usme/logs/NODE0000/LOGSTREAM0000/$i ];then
mv /datanet/backupsafe/usme/log/NODE0000/LOGSTREAM0000/$i /datanet/backupsafe/usme/logs/NODE0000/LOGSTREAM0000
fi
done
db2 "rollforward database usme to end of logs and stop overflow log path(/datanet/backupsafe/usme/logs/NODE0000/LOGSTREAM0000)"
echo "End of usme rollforward:`date +"%Y%m%d_%H%M"`" 

3.5 在冷备机192.168.16.165上部署清理脚本

清理备份文件,否则不断传输备份文件,将使得磁盘空间浪费。

//crontab 如下
#0 7 * * *  sh /datanet/backupsafe/safeclear.sh >> /datanet/backupsafe/safebackup.log 2>1&
// 脚本内容如下:
#!/bin/bash
. /etc/profile
echo "ClearStart time :`date`"
cd /datanet/backupsafe/usme
rm -rf usme.0*001
cd /datanet/backupsafe/usme/log/NODE0000/LOGSTREAM0000
rm -rf S0*.LOG
cd /datanet/backupsafe/usme/logs
rm -rf NODE0000
cd /datanet/backupsafe/seame
rm -rf seame.0*001
cd /datanet/backupsafe/seame/log/NODE0000/LOGSTREAM0000
rm -rf S0*.LOG
cd /datanet/backupsafe/seame/logs
rm -rf NODE0000
echo "ClearEnd time :`date`"

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/192477.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【UE】UEC++获取屏幕颜色GetPixelFromCursorPosition()

目录 【UE】UE C 获取屏幕颜色GetPixelFromCursorPosition() 一、函数声明与定义 二、函数的调用 三、运行结果 【UE】UE C 获取屏幕颜色GetPixelFromCursorPosition() 一、函数声明与定义 创建一个蓝图方法库方法 GetPixelFromCursorPosition(),并给他指定UF…

【MATLAB】RLMD分解+FFT+HHT组合算法

有意向获取代码,请转文末观看代码获取方式~也可转原文链接获取~ 1 基本定义 RLMD分解FFTHHT组合算法是一种强大的分析方法,结合了局部均值分解(LMD)、快速傅里叶变换(FFT)和希尔伯特-黄变换(H…

WIN10 WIN11 关闭更新的绝佳办法(极简单无副作用)

WIN10 WIN11 关闭更新的绝佳办法(极简单无副作用) 极其简单用实用可以关闭更新20年 winr,输入regedit 打开注册表打开注册表的这个路径: 计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings 右键空白的地方…

图文深入理解TCP三次握手

前言 TCP三次握手和四次挥手是面试题的热门考点,它们分别对应TCP的连接和释放过程,今天我们先来认识一下TCP三次握手过程,以及是否可以使用“两报文握手”建立连接?。 1、TCP是什么? TCP是面向连接的协议,…

QT 中使用 QTableView 和 QStandardItemModel 实现将数据导出到Excel 和 从Excel导入到 QTableView 的功能

简介 在Qt中,使用QTableView和QStandardItemModel来实现将数据导出到Excel和从Excel导入到QTableView的功能,而不使用第三方库(如QXlsx)。 效果 将 QTableView 中的数据导出到Excel //从tableview 导出到 EXcle void MainInterfa…

编程中常见的技术难题和解决策略

编程中常见的技术难题有哪些? 编程中常见的技术难题 在编程过程中,我遇到了一些常见的技术难题,这些难题不仅仅是挑战,也是学习和成长的机会。以下是其中的一些例子: 复杂的并发和多线程问题 在一个多用户的系统中&a…

【PTA题目】7-2 完美的素数 分数 20

7-2 完美的素数 分数 20 全屏浏览题目 切换布局 作者 伍建全 单位 重庆科技学院 一个十进制数,如果是素数,而且它的各位数字和也是素数,则称之为“美素数”,如29,本身是素数,而且29 11也是素数&#x…

MQTT协议理解并实践

MQTT是一个轻量的发布订阅模式消息传输协议,专门针对低带宽和不稳定网络环境的物联网应用设计 MQTT协议根据主题来分发消息进行通信,支持通配符匹配,可以低开销的使用数百万Topic进行一对一,一对多双向通信。 协议特点 1. 开放…

Vulhub-信息泄露

1.Jetty WEB-INF 敏感信息泄露漏洞(CVE-2021-28164) docker-compose up -d 启动环境,显示8080端口被占用 修改 docker-compose.yml 中的映射端口 curl 访问 http://192.168.48.129:8090/WEB-INF/web.xml 显示404: 通过 %2e 绕过…

STlink下载程序不能复位的说明

STLINK在MDK5.28或其他版本中下载程序后不能复位,需要手动按复位键,MCU 才正常运行。 首先判断是不是该MDK版本的问题,按照以下进行 点击魔法棒 点击Debug,Settings 勾选Reset and Run 如果还是不行,取消Enable…

1423. 可获得的最大点数 --力扣 --JAVA

题目 几张卡牌 排成一行,每张卡牌都有一个对应的点数。点数由整数数组 cardPoints 给出。 每次行动,你可以从行的开头或者末尾拿一张卡牌,最终你必须正好拿 k 张卡牌。 你的点数就是你拿到手中的所有卡牌的点数之和。 给你一个整数数组 cardP…

九章量子计算机:引领量子计算的新篇章

九章量子计算机:引领量子计算的新篇章 一、引言 随着科技的飞速发展,量子计算已成为全球科研领域的前沿议题。九章量子计算机作为中国自主研发的量子计算机,具有划时代的意义。本文将深入探讨九章量子计算机的原理、技术特点、应用前景等方面,带领读者领略量子计算的魅力…

初识主力投资者

在股票市场中,真正赚钱的散户并不多。“七亏二平一赚”似乎已经成为了大家公认的一个股市定律。 为什么散户炒股赚的人少呢?原因很简单,就是因为市场上除了散户之外,还存在着一个重要的投资主体——主力。股市交易的过程&#xff…

树_对称二叉树

//给你一个二叉树的根节点 root , 检查它是否轴对称。 // // // // 示例 1: // // //输入:root [1,2,2,3,4,4,3] //输出:true // // // 示例 2: // // //输入:root [1,2,2,null,3,null,3] //输出…

【源码篇】基于SpringBoot+Vue实现的在线考试系统

文章目录 系统说明技术选型成果展示账号地址及其他说明 系统说明 基于SpringBootVue实现的在线考试系统是为高校打造的一款在线考试平台。 系统功能说明 1、系统共有管理员、老师、学生三个角色,管理员拥有系统最高权限。 2、老师拥有考试管理、题库管理、成绩管…

【物联网无线通信技术】ZigBee从理论到实践(CC2530)

文章延续之前【物联网无线通信技术】系列文章的风格,首先对ZigBee这种在物联网发展初期出现的无线通信技术进行了相关背景概念的介绍,并横向介绍了几款时间跨度比较大的ZigBee芯片。然后以CC2530为例,从硬件到软件介绍了ZigBee这中无线通信技…

java+springboot校园一卡通学生卡管理系统+jsp

利用校园卡实现了学生在学校的身份认证,对学生在学校的各种消费提供了方便的途径。对于学校图书馆,将自动存储学生图书借阅情况,记录处罚情况.对于任课教师可以及时、准确、方便的了解学生出勤、作业等情况。是凭借发达的网络技术&#xff0c…

【Redis】Redis缓存使用问题

目录 Redis缓存使用问题 数据一致性 新增数据类 更新缓存类 1、先更新缓存,再更新DB 2、先更新DB,再更新缓存 删除缓存类 3、先删除缓存,后更新DB 4、先更新DB,后删除缓存 如何选择问题 缓存穿透、击穿、雪崩 缓存穿透 缓存击穿 使用互斥锁(mutex key) 永远…

Group normalization是什么

在您提供的代码中,使用了 nn.GroupNorm 来创建一个规范化层。GroupNorm 是一种规范化技术,与批量规范化(Batch Normalization)和层规范化(Layer Normalization)相似,但有一些关键的区别。 Grou…

C语言之实现贪吃蛇小游戏篇(2)

目录 🎇测试游戏test.c 🎇游戏头文件包含&函数声明snake.h 🎇游戏实现snake.c 🎇测试游戏test.c #define _CRT_SECURE_NO_WARNINGS 1 #include "snake.h" void test() {int ch 0;do{Snake snake { 0 };//创建…