首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MYSQL数据库恢复案例分享

    本次分享的案例是关于存储的数据恢复,存储上RAID崩溃导致存储无法启动。存储内部共有6台以上虚拟机,其中LINUX虚拟机3台为客户重要数据。 工程师初步分析得出存储结构为所有物理磁盘均在一个存储池内,再由存储池分出几个LUN,LUN1是vmfs卷,三台LINUX虚拟机也是在这个里面。 1、重组RAID 重组过程中发现本RAID5缺失2块盘(第一掉线盘掉线后热备盘顶替,之后又掉线一块盘使得RAID5处于降级状态。最后在掉线第三块盘时盘片划伤RAID崩溃),无法通过校验直接获取丢失盘的数据,所以只能使用磁盘同等大小的全0镜像进行重组(此方法只可用于紧急情况,因为依赖空镜像组成的RAID文件系统结构会被严重破坏,相当于每个条带都会缺失两个块的数据)。 2、提取LUN 分析存储结构,获取存储划分的MAP块。在找到MAP块之后解析得到各个LUN的数据块指针,编写数据提取程序提取LUN碎片。提取完成后进行碎片拼接,组成完整LUN。导出LUN内所有虚拟机,尝试启动。导出虚拟机后尝试启动,同预想相同,操作系统被破坏虚拟机无法启动。 3、提取虚拟机内文件 在虚拟机无法启动的情况下只能退而求其次,提取虚拟机内文件。在取出文件后进行测试,发现大多数文件都被破坏,只有少部分小文件可以打开。在与客户沟通后得知虚拟机内有MYSQL数据库,因为数据库底层存储的特殊性,可以通过扫描数据页进行数据提取。在找到此虚拟机后发现虚拟机启用快照,父盘和快照文件都被损坏的情况下常规合并操作无法完成,使用北亚自主研发VMFS快照合并程序进行快照合并。 4、获取MYSQL数据页并分析 根据MYSQL数据页特征进行数据页扫描并导出(innodb引擎可以使用此方案,myisam因为没有“数据页”概念所以不可用),分析系统表获取各用户表信息,根据各个表的ID进行数据页分割。 5、提取表结构 因为数据库使用时间已久,表结构也曾多次变更,加上系统表在存储损坏后也有部分数据丢失,记录提取过程遇到很大阻力。首先获取最初版本数据库各个表的表结构:合并快照前的父盘因为写入较早,使用第一块掉线盘进行校验获取到这个文件的完整数据,然后提取出其中数据库各个表的表结构,之后客户方提供了最新版的数据库建表脚本。提取记录:分别使用两组不同表结构对数据记录进行提取并导入恢复环境中的MYSQL数据库内,然后剔除各个表中因为表结构变更造成的乱码数据,最后将两组数据分别导出为.sql文件。 6、数据恢复结果 因为两个版本的数据库表结构不同,所以联系了客户方的应用工程师进行调试。调试完成后导入平台,经验证,数据可用本次数据恢复成功。

    02

    python第二十八课——编码小常识

    2.内存和硬盘: 内存:计算机硬件组成部分之一,它是一个容器,用来存储数据;处理数据速度快, 存储数据量小;断电死机数据会丢失,短暂性存储数据 硬盘:计算机硬件组成部分之一,它是一个容器,用来存储数据;处理数据速度慢, 存储数据量大,断电死机数据不会丢失,数据的持久存储 3.字节和字符 字节:计算机的存储数据的单位,底层唯一能够识别并且运算的数据 字符:人类将字节封装为另一种能直接识别的数据单位,底层还是字节 4.如何区分字节文件和字符文件 如果使用文本编辑器打开能看得懂(不会乱码)那它就是一个字符文件, 反之,它是一个字节文件 提问:常见的字节文件和字符文件有哪些?(枚举出一些) 字节文件:图片文件(.jpg、.png...)、视频文件(.avi、.mp4、.rmb...)、音频文件(.mp3...) 字符文件:.txt、.py、.java、.js、.html、.css、.php... 思考:.doc结尾的文件是字节还是字符文件? 是字节文件,因为.doc结尾的文件中既可以包含字符内容,也可以包含图片、颜色设置...操作 思考:计算机数据层面,一切皆字节,对不对? 对的;因为计算机底层唯一能够识别和运算的都是字节数据... 5.字符编码(字符集) ascii码表:U.S.A设计出来的,范围非常小;不包含很多国家的文字,英文字符占用内存1个字节 utf-8码表:现今比较通用的一张编码表,包含了世界上所有的文字内容,范围:0~65535之间, 1个汉字占用内存3个字节,1个英文字符占用内存1个字节 gbk码表:gbk属于gb2312的扩充版,兼容了gb2312中的所有字符,加入更多的一些汉字内容, 1个汉字占用内存2个字节,1个英文字符占用内存1个字节, 在我们中国环境下,大多数情况默认的都是gbk作为编码 6.编码和解码: 编码:让数据从看的懂到看不懂,就是编码 解码:让数据从看不懂到看得懂,就是解码 【注意】 编码和解码如果不一致会怎么样? 1).会出现乱码现象 2).会报错 不管是上述的1还是2都是不理想的结果,我们都需要避免 字符串的两个函数引入: encode(encoding,errors):对字符串数据进行编码操作,得到一个bytes类型的数据 decode(encoding,errors):对字符串数据进行解码操作,得到一个str类型的数据 演示eccode()和decode()函数的使用:

    01

    CSS3 基础知识[转载minsong的博客]

    CSS3 基础知识 1.边框     1.1 圆角  border-radius:5px 0 0 5px;     1.2 阴影  box-shadow:2px 3px 4px 5px rgba(0,0,0,0.5);(水平、垂直、模糊、扩展)              box-shadow:inset 1px 2px 3px 4px #fff;(inset 内阴影)     1.3 边框图像 border-image 2.背景     2.1 background-size background-size:30px 30px;(背景图像宽度,背景图像高度)     2.2    background-image:linear-gradient(45deg,rgba(0,0,0,0.5) 25%,transparent 25%,transparent 50%,rgba(0,0,0,0.5) 50%,rgba(0,0,0,0.5) 75%,transparent 75%,transparent);(线性渐变,和background-size一起用)     2.3 background-attachment:(fixed|scroll|local)         fixed: 背景图像相对于窗体固定。         scroll: 背景图像相对于元素固定,也就是说当元素内容滚动时背景图像不会跟着滚动,因为背景图像总是要跟着元素本身。但会随元素的祖先元素或窗体一起滚动。         local: 背景图像相对于元素内容固定,也就是说当元素随元素滚动时背景图像也会跟着滚动,因为背景图像总是要跟着内容。     2.4 background-position:30px 20px;(横坐标,纵坐标;是图片在动)     2.5 background-origin:(padding-box|border-box|content-box)         padding-box: 从padding区域(含padding)开始显示背景图像。         border-box: 从border区域(含border)开始显示背景图像。         content-box: 从content区域开始显示背景图像。 3.文本     3.1 文字阴影 text-shadow:5px 5px 4px #000;(水平,垂直,模糊)     3.2 换行 word-wrap:(normal|break-word)             normal: 允许内容顶开或溢出指定的容器边界。             break-word: 内容将在边界内换行。如果需要,单词内部允许断行。             white-space:(normal|pre|nowrap|pre-wrap|pre-line)             normal: 默认处理方式。             pre: 用等宽字体显示预先格式化的文本,不合并文字间的空白距离,当文字超出边界时不换行。可查阅pre对象             nowrap: 强制在同一行内显示所有文本,直到文本结束或者遭遇br对象。             pre-wrap: 用等宽字体显示预先格式化的文本,不合并文字间的空白距离,当文字碰到边界时发生换行。             pre-line: 保持文本的换行,不保留文字间的空白距离,当文字碰到边界时发生换行。     3.3 省略号   width:200px;                 overflow:hidden;                 text-overflow:hidden;                 white-space:nowrap; 4.2D变换     4.1 旋转 transform:rotate(45deg);     4.2 移动 transform:translate(45px,45px);(水平,垂直)     4.3 缩放 transform:scale(2,2);(水平,垂直)     4.4 翻转 transform:skew(20deg,40deg);(沿X轴翻转,沿Y轴翻转)     4.5 将以上四个组合在一起 matrix(),需要六个参数,包含数学函数,允许您:旋转、缩放、移动以及倾斜元素。         暂放 5.过渡     5.1 transition : [ transition-property ] || [ transition-duration ] || [ transition-timing-function ] || [ transition-delay ]         [ transition-property ]: 检索或设

    06
    领券