注意:部分功能暂未实现,只是对表结构进行了设计,商品管理、订单管理、营销管理大部分功能均已实现。
本次分享的案例是关于存储的数据恢复,存储上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、数据恢复结果 因为两个版本的数据库表结构不同,所以联系了客户方的应用工程师进行调试。调试完成后导入平台,经验证,数据可用本次数据恢复成功。
在Linux内核中使用了大量的链表结构来组织数据,包括设备列表以及各种功能模块中的数据组织。这些链表大多采用在include/linux/list.h实现的一个相当精彩的链表数据结构。
sqoop导出数据的时候遇到问题,ERROR tool.ExportTool: Error during export: Export job failed
A、SQL及索引优化 根据需求写出良好的SQL,并创建有效的索引,实现某一种需求可以多种写法,这时候我们就要选择一种效率最高的写法。这个时候就要了解sql优化 B、数据库表结构优化 根据数据库的范式,设计表结构,表结构设计的好直接关系到写SQL语句。 C、系统配置优化 大多数运行在Linux机器上,如tcp连接数的限制、打开文件数的限制、安全性的限制,因此我们要对这些配置进行相应的优化。 D、硬件配置优化 选择适合数据库服务的cpu,更快的IO,更高的内存;cpu并不是越多越好,某些数据库版本有最大的限制,IO操作并不是减少阻塞。
It can generate markdown structure documents of MySQL succinctly~
最近有个新项目刚过完需求,正式进入数据库表结构设计阶段,公司规定统一用数据建模工具 PowerDesigner。但我并不是太爱用这个工具,因为它的功能实在是太多了,显得很臃肿繁琐,而平时设计表用的也就那么几个功能。
还在为word文档传来传去查阅不方便而烦恼吗,还在为查看数据库字段含义不方便而烦恼吗,还在为编写接口文档而烦恼吗?今天为大家推荐一款适合IT团队的在线API文档、技术文档工具,有免费开源和在线托管的版本。可以直接使用官网搭建好的地址,也可以在自己的服务器上搭建。
PDMan是一款开源免费的数据库模型建模工具,支持Windows,Mac,Linux等操作系统,支持常见数据库MySQL,Oracle,SQLServer,DB2等。PowerDesigner之外,另一个更好的免费的替代方案。他具有颜值高,使用简单的特点。包含数据库建模,灵活自动的自动生成代码模板,自动生成文档,自动同步DDL脚本到数据库,数据模型版本管理等多种开发人员实用的功能。
如果是导入所有数据库的数据之后,需要flush一下数据库。因为mysql库是包含用户的,如果不flush权限,则会导致这些导入的用户无法登陆使用。
由于数据库服务器是内网环境,只能通过linux跳板机连接,所以navicat工具暂时用不上。
最近有个新项目刚过完需求,正式进入数据库表结构设计阶段,公司规定统一用数据建模工具 PowerDesigner。但我并不是太爱用这个工具,因为它的功能实在是太多了,显得很臃肿,而平时设计表用的也就那么几个功能。
虚拟内存可以用来管理物理内存,进程直接和虚拟内存进行打交道而不是物理内存,为什么这样设计?
在上一章我们了解到,物理文件层在MySQL架构位于最底层,将数据库的数据存储在文件系统上,并完成与存储引擎的交互。存储数据包括日志文件,数据文件,配置文件等。本章将介绍linux环境下MySQL的各类文件。
为了解决上述问题,专家们设计出更加利于管理数据的东西——数据库,它能更有效的管理数据。数据库的水平是衡量一个程序员水平的重要指标。
Linux下mysql可以通过“ALTER TABLE 旧表名 RENAME [TO] 新表名;”语句来修改表名;还可以通过配置my.cnf文件,修改“lower_case_table_names”选项的值为“1”来设置表名不区分大小写。
为了解决上述问题,专家们设计出更加利于管理数据的东西——数据库,它能更有效的管理数据
今天学习了下MySQL的备份恢复内容,也算是对之前的 数据导入导出的一个细化内容。备份恢复的内容其实还是蛮复杂的,一般网站上提到的备份恢复也基本都是逻辑备份恢复的内容。对于更为高效的备份mysqlbackup和恢复的内容提到的很少,mysqlbackup是需要Licence,需要单独收费的,这也算是向oracle产品线的一个靠拢了。 首先我们还是走走老路,来看看最基本的逻辑备份恢复吧。我们模拟了3万多条的数据。然后尝试恢复回来。 mysql> use test; Reading table informat
最近在支持一个从Oracle转TiDB的项目,为方便应用端兼容性测试需要把Oracle测试环境的库表结构和数据同步到TiDB中,由于数据量并不大,所以怎么方便怎么来,这里使用CSV导出导入的方式来实现。
通用操作系统,通常都会开启mmu来支持虚拟内存管理,而页表管理是在虚拟内存管理中尤为重要,本文主要以回答几个页表管理中关键性问题来解析Linux内核页表管理,看一看页表管理中那些鲜为人知的秘密。
例如:pt-mysql-summary --user=root--password=root -h localhost|pt-align 【pt-mysql-summary这个工具后面会讲到,这里为了演示pt-align的作用】
2019-01-11 17:56:34 ERROR OGG-01296 Error mapping from SOURCE.AA to TARGET.AA
4.一般要阻塞,就算使用 O_NONBLOCK 标志位来达到不阻塞,也要一次性把管道写满才能不阻塞,但是无法知道管道可写空间是多少
大家在日常工作中,往往需要对数据库的表结构做变更,一般涉及到增删字段,修改字段属性等ALTER的操作。
修改mysql配置文件/etc/my.cnf 或 my.ini,在[mysqld]下添加
OS的正常工作依赖于存储程序原理、堆栈、中断三个部分。 linux内核从一个初始化上下文环境的函数开始执行,即start_kernel函数,创建多个进程或者fork(创建一个与原来进程几乎完全相同的进程)若干进程,我们为每个进程维护一个进程描述和以及进程间的关系PCB。 当中断发生的时候,如mykernel中就是时钟中断发生之后,接下来OS就会为各进程进行调度,利用Swich_to函数在调度队列中选取出一个适合的进程(系统会根据中断向量号来调用相应的中断异常程序)。由CPU和内核堆栈保存当前进程的各寄存器信息(CPU要做两件工作,一是将当前的eip和esp压入到当前进程的内核栈,二是将esp指向当前进程的内核栈,并将eip指向中断处理入口,进入到内核态。),将eip指向要调度的进程执行的代码区,开始执行。
此脚本在运行时会先把oracle数据按照指定的分隔符下载到磁盘的目录下,再用替换脚本替换需要的分隔符和ascii字符,具体的替换方法请查看fileAsciiReplaceScriptAll.sh脚本
默认端口:3360 ;默认主机地址:127.0.0.1 也可以写成 localhost
NeuroDB是一个内存级图数据库引擎,能够利用Neuro-cypher指令实现对图数据的创建、编辑、检索 以及建立在复杂图算法上的一些高级图应用。 NeuroDB的主要特性为:
SQLite Database Browser可以管理所有iphone数据,基于 Qt 库开发,主要是为非技术用户创建、修改和编辑 SQLite 数据库的工具,使用向导方式实现。用来处理SQLite3数据库文件的应用程序,它能够打开sqlite3数据库文件(常见的文件扩展名为.db,.db3, .s3db; 只要文件是SQLite3数据库文件,其扩展名不规范也不要紧)。
首先source insight 是一个强大的文本编辑工具,比一般的编辑器便捷! 而且可以快速查看定义,查看调用,查看引用功能,非常有利于查看大量代码!
应要求分享一下内核链表结构,故写了本blog。本文对内核链表做一个简单介绍,以及引出内核中大量使用的分离思想和数据结构的定义。
Oracle GoldenGate Command Interpreter for Oracle
通过 requests 工具包向 flask 提供的接收测试环境 linux 的内存信息接口定时推送数据并在页面展示的实验。
本文主要对商品分类、品牌管理、商品类型这三个功能的表进行解析,采用功能与表结构对照的形式。表解析只会标注一些需要理解的字段,简单字段请自行对照表注释。 商品分类 商品分类表 create table pms_product_category ( id bigint not null auto_increment, parent_id bigint comment '上级分类的编号:0表示一级分类', name
本文涉及的硬件平台是X86,如果是其他平台的话,如ARM,是会使用到MMU,但是没有使用到分段机制; 最近在学习Linux内核,读到《深入理解Linux内核》的内存寻址一章。原本以为自己对分段分页机制已经理解了,结果发现其实是一知半解。于是,查找了很多资料,最终理顺了内存寻址的知识。现在把我的理解记录下来,希望对内核学习者有一定帮助,也希望大家指出错误之处。
清屏 Ctrl+L 或者 !clear 查看数据仓库中的表 show tables; 查看数据仓库中内置的函数 show functions; 查看表结构 desc tablename 查看HDFS上的文件 dfs -ls 目录 执行Linux的命令 !命令 执行HQL语句 SELECT * FROM tablename 执行SQL的脚本 source sql文件 Hive 静默模式 hive -S Hive 直接执行SQL hive -e <quoted-query-string> Hive 执行文件中
参考:http://blog.csdn.net/jayxujia123/article/details/13684313
在日常的运维工作中除了频繁操作基本的SQL语句外,还有另外一种场景,就是数据的导出与导入操作。
PostgreSQL 数据的导入导出本身并没有特别高的技术要求,属于日常操作,但熟悉导入导出以及选择数据导入导出的方式还是有点思考空间的。怎么导出数据的方式更稳妥,更适应业务的需求。下面就先总结数据导入导出中的数据导出的一部分方式和命令的实例,其中一些也是我在总结中发现的,例如COPY 的方式还可以有加速的方式,有时候觉得简单,和简单是两码事。
链表是基本数据结构, 一开始学习数据结构时, 我一般这么定义, 对应实现从头或尾插入的处理函数,
1.导出整个数据库 mysqldump -u 用户名 -p 数据库名 > 导出的文件名 mysqldump -u dbuser -p dbname > dbname.sql
注意这里/* !12345 */ 不是注释 (/* */ 是MySQL的多行注释符)
从原生PostgreSQL数据库迁移业务数据到KunlunBase集群。由于KunlunBase兼容postgreSQL协议,因此可以直接支持Pg数据导入导出工具:pg_dump和pg_restore。
背景 将测试环境的表同步到另外一个数据库服务器中,但有些表里面数据巨大,(其实不同步该表的数据就行,当时没想太多),几千万的数据!! 步骤 1. 既然已经把数据同步过来的话,那就直接delete掉就行
3.1 keystone 安装linux-node1上面 3.2 配置源 http://mirrors.aliyun.com/centos/7.2.1511/cloud/x86_64/openstac
ElasticSearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。主要负责将日志索引并存储起来,方便业务方检索查询。
领取专属 10元无门槛券
手把手带您无忧上云