当程序运行的过程中异常终止或崩溃,操作系统会将程序当时的内存状态记录下来,保存在一个文件中,这种行为就叫做 Core Dump(中文有的翻译成“核心转储”)。
我们都知道MySQL 的复制技术,通过主从同步可以实现读写分离,热备份,让服务器更加高可用。MySQL 的复制主要是通过 Binlog 来完成的,Binlog 记录了数据库更新的事件,从库 I/O 线程会向主库发送 Binlog 更新的请求,同时主库二进制转储线程会发送 Binlog 给从库作为中继日志进行保存,然后从库会通过中继日志重放,完成数据库的同步更新
玩过binlog server的同学都知道,它使用mysqlbinlog命令以daemon进程的方式模拟一个slave的IO线程与主库连接,可以很方便地即时同步主库的binlog,以便弥补定时备份策略中最近一次备份到下一次备份完成之前这段时间内的数据容易丢失的问题。 优点:备份出来的binlog不会受到主库expire_logs_days参数的影响,因为binlog server是模拟slave的IO线程,也不会受到从库relay_log_purge参数影响。这些binlog除非你手动清理,否则就会持续
数据库供应商通常每个月都会发布一些有bug /安全性修补程序的补丁,我们为什么要关心这些?因为,新的版本可能对安全漏洞或黑客入侵系统进行修复,所以除非不关注安全性能,否则,您会希望在您的系统安装上最新的安全修补程序。其中MySQL主要版本比较少见,通常是次版本升级,但是他们可能会带来一些重要的功能,使得升级是值得的。
由于包含着有价值的数据,PostgreSQL数据库应当被定期地备份。虽然过程相当简单,但清晰地理解其底层技术和假设是非常重要的。 有三种不同的基本方法来备份PostgreSQL数据:
操作系统:CentOS 7 Mysql版本:Mysql 8.0.x Docker版本:Docker version 20.10.10
MySQL Shell转储和加载实用程序是MySQL Shell 8.0.21提供的新工具,其主要目标是尽量减少创建和恢复大型数据集的逻辑转储所需的时间。
在 Linux 中,进程具有独立性,进程在运行后可能 “放飞自我”,这是不利于管理的,于是需要一种约定俗成的方式来控制进程的运行,这就是 进程信号,本文将会从什么是进程信号开篇,讲述各种进程信号的产生方式及作用
从历史上看,GitHub 对影响服务可用性的重大事件会发表事后评论。无论我们是分享新的基础设施投资,还是详细的网站停机时间,我们的信念是,可以通过相互学习共同成长为一个行业。这个月,我们很高兴介绍下 GitHub 可用性报告。
在《ORA-1555错误解决一例》一文中,当时尝试模拟UNDO段头事务表被覆盖的情况下出现ORA-01555错误,没有成功。实际上没有成功的原因是事务数虽然多,但是事务过小,使UNDO块没有被覆盖完,
事务(Transaction)是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。
基本表是实际存储在数据库中的二维表,它是本身独立存在的表,在SQL中一个关系就对应一个表。
张工是一名java程序员,工作5年了,一直从事java开发。最近到某互联网公司面试,做了笔试题后,有一道笔试题是这样子的:Serializable有什么作用,张工没有作答,面谈时面试官又问了,张工回答不出个所以然。面试官:你都工作五年了,连序列化都不知道,你这5年都干些什么了?张工一脸的无助,不过确实不应该,类似Serializable序列化这样的知识点,平时应该不会少用。
堆转储是诊断与内存相关的问题(例如内存泄漏缓慢,垃圾回收问题和 java.lang.OutOfMemoryError。它们也是优化内存消耗的重要工具。
近期接触了Linux平台的测试,遇到了软件发生异常,从而接触到了 Linux平台下的Signal——信号,用来通知进程发生了异步事件。
原文来自互联网,由长沙DotNET技术社区编译。如译文侵犯您的署名权或版权,请联系小编,小编将在24小时内删除。限于译者的能力有限,个别语句翻译略显生硬,还请见谅。
优点: mysqldump的优点就是逻辑备份,把数据生成SQL形式保存,在单库,单表数据迁移,备份恢复等场景方便,SQL形式的备份文件通用,也方便在不同数据库之间移植。对于InnoDB表可以在线备份。
说到备份恢复,不管你对心理学是否感兴趣,建议你要理解下墨菲定律:如果事情有变坏的可能,不管这种可能性有多小,它总会发生。
能够使文件系统工作是一回事,能够使文件系统高效、稳定的工作是另一回事,下面我们就来探讨一下文件系统的管理和优化。
一次意外让我有幸了解了binlog,我无意间将某个库的数据都清空了,当时差点没喘过气来,然后经过一晚上的抢救,把这个经验留下。
MySQL的安装包里面提供了“mysqldump”工具,它可以执行逻辑备份,如果执行备份的对象是InnoDB存储引擎,则可以执行热备份,默认情况下,它对所有的引擎执行温备份。在大多数的运维场景中,用户利用Linux的“crontab”,或Windows的任务调度程序自动运行“mysqldump”。
创建网站备份应该是一个网站管理员最为重要的日常工作之一。但现实情况是,备份这一步往往被很多人忽略,也就是说仍然有很多网管的网站安全意识较低。 所有的Linux/Mac用户都能够零经济成本地通过命令行工具创建网站备份。如果你用的不是Linux/Mac,请关注我们的后续文章——如何在windows上通过软件方式创建备份。 本文的初衷不是为读者提供完整的备份解决方案,而是给那些有时间并且想要学习一些基础的命令行工具进行网站备份的宝宝们一点参考。 必要条件 你的主机必须具备必要的软件及证书。 服务器上的
进程和线程在调度时候出现过很多算法,这些算法的设计背景是当一个计算机是多道程序设计系统时,会频繁的有很多进程或者线程来同时竞争 CPU 时间片。那么如何选择合适的进程/线程运行是一项艺术。当两个或两个以上的进程/线程处于就绪状态时,就会发生这种情况。如果只有一个 CPU 可用,那么必须选择接下来哪个进程/线程可以运行。操作系统中有一个叫做 调度程序(scheduler) 的角色存在,它就是做这件事儿的,调度程序使用的算法叫做 调度算法(scheduling algorithm) 。
进程和线程在调度时候出现过很多算法,这些算法的设计背景是当一个计算机是多道程序设计系统时,会频繁的有很多进程或者线程来同时竞争 CPU 时间片。 那么如何选择合适的进程/线程运行是一项艺术。当两个或两个以上的进程/线程处于就绪状态时,就会发生这种情况。如果只有一个 CPU 可用,那么必须选择接下来哪个进程/线程可以运行。操作系统中有一个叫做 调度程序(scheduler) 的角色存在,它就是做这件事儿的,调度程序使用的算法叫做 调度算法(scheduling algorithm) 。
PostgreSQL从小白到专家,是从入门逐渐能力提升的一个系列教程,内容包括对PG基础的认知、包括安装使用、包括角色权限、包括维护管理、、等内容,希望对热爱PG、学习PG的同学们有帮助,欢迎持续关注CUUG PG技术大讲堂。
先前在做OB存储引擎这块学习的时候,对 OceanBase 的分层转储和 SSTable 这块有些细节就懵懵的,比如L0层的 mini SSTable 的每次生成是否就计入转储次数,L0层到L1层转储的时机以及和 minor_compact_trigger 之间的关系等。 今天就这部分内容做个更细致的探究,试图更深入的理解 OceanBase 的分层转储。
群组复制(MySQL Group Replication)是 InnoDB Cluster 的一部分。
下面的参数目的是用在PostgreSQL源代码上, 并且在某些情况下可以帮助恢复严重损坏了的数据库。在一个生产数据库中没有理由使用它们。同样,它们被从例子postgresql.conf文件中排除。请注意许多这些参数要求特殊的源代码编译标志才能工作。
开始和数据库玩耍以后,我们将一直与SQL和数据打交道。在日常的操作中,我们只需要对指定的数据库进行操作,执行增删改查,权限管理等。但有些时候由于项目的升级,或者服务器的更换,我们要将数据从一个地方转移到另一个地方,准确的说是从一个数据库服务转移到另一个数据库服务中,因为我们还要继续使用这些数据。
食事务基本概念 事务是构成单一逻辑工作单元的操作集合,要么完整的执行,要么完全不执行。在程序中,事务以 BEGIN TRANSTATION语句开始,以COMMIT语句或ROLLBACK语句结束。 事务
本文大纲: Design 全时态数据模型 研究动机 数据模型 数据模型示例 历史态数据存储 数据转储时机 存储格式 存储模式 转储效率 历史态数据可见性判断 Design 本节讨论T-TDSQL的关键之处,即影响T-TDSQL架构的设计之处。一是新的数据模型—全时态数据模型,表达了T-TDSQL的双时态语义,其中对于数据的事务时态,首次提出全态数据的概念,以刻画数据的生命周期。二是对于新的数据模型,如何在基于关系模型的数据库中实现存储,全时态数据的存储,使得具有全时态语义的数据有了计算的依据;本文提出
学会数据库的导入导出非常重要,为什么呢?向下看。首先您可以把数据转储进行备份和还原,以便在紧急情况下恢复数据库的旧副本。您还可以把数据迁移到新服务器或开发环境。
数据库备份是DBA的典型任务,可以将数据从一个系统传输到另外一个系统,也可以基于生产系统的特定状态创建一个开发服务器。除此之外,备份还用于数据库恢复,可以将一个发生故障的系统恢复,也可以将系统恢复到发送用户错误之前的特定状态。利用备份的系统可以将其与生产系统分离,在不影响生产系统的性能的前提下,对数据进行审计和分析。
简单说,复制就是将来自一个MySQL数据库服务器(主库)的数据复制到一个或多个MySQL数据库服务器(从库)。传统的MySQL复制提供了一种简单的Primary-Secondary复制方法,默认情况下,复制是单向异步的。MySQL支持两种复制方式:基于行的复制和基于语句的复制。这两种方式都是通过在主库上记录二进制日志(binlog)、在从库重放中继日志(relylog)的方式来实现异步的数据复制。二进制日志或中继日志中的记录被称为事件。所谓异步包含两层含义,一是主库的二进制日志写入与将其发送到从库是异步进行的,二是从库获取与重放日志事件是异步进行的。这意味着,在同一时间点从库上的数据更新可能落后于主库,并且无法保证主从之间的延迟间隔。
如果一个线上数据库发生了问题,需要做数据恢复,作为DBA应该给自己留一些改进的余地,否则陷入两难的境地,只会让自己更加被动。
本文包括JVM内存管理、错误产生的原因、内存泄漏的代码示例,最后还会介绍怎么解决这些问题,特别会提到一些性能诊断工具,让你快速的知道问题发生的根本原因。 java.lang.OutOfMemoryError:Java heap space java的应用程序只被允许使用限定好的memory。在java的application启动的时候,这个内存大小就被规定好了。为了让内存管理更加的智慧,java的memory被分为了两个不同的区域。这两个区域分别被叫做heap space和Permanent Generat
通过上文《MySQL是如何保证数据不丢失的?》可以了解DML的操作流程以及数据的持久化机制。对于一个数据库而言,除了数据的持久性、不丢失之外,一致性也是非常重要的,不然这个数据是没有任何意义的。在使用MySQL时,数据不一致的情况也可能出现,所以,本文就来看看MySQL是如何保证数据一致的。
数据库管理系统必须保证被强行终止的事务对数据库和其他事务没有任何影响 ——恢复机制
在任何时间,PostgreSQL在数据集簇目录的pg_wal/子目录下都保持有一个预写式日志(WAL)。这个日志存在的目的是为了保证崩溃后的安全:如果系统崩溃,可以“重放”从最后一次检查点以来的日志项来恢复数据库的一致性。该日志的存在也使得第三种备份数据库的策略变得可能:我们可以把一个文件系统级别的备份和WAL文件的备份结合起来。当需要恢复时,我们先恢复文件系统备份,然后从备份的WAL文件中重放来把系统带到一个当前状态。这种方法比之前的方法管理起来要更复杂,但是有其显著的优点:
mysqldump 是一个命令行客户端程序,用于转储本地或远程 MySQL 用于备份到单个平面文件中的数据库或数据库集合。 如何备份和恢复 MySQL 数据库 如何备份 MySQL 数据库? 备份 MySQL数据库或数据库,该数据库必须存在于数据库服务器中并且你必须有权访问它。命令的格式是。 # mysqldump -u [username] –p[password] [database_name] > [dump_file.sql] 所述命令的参数如下。 [username] :有效的 MySQL 用户
https://gp-docs-cn.github.io/docs/admin_guide/managing/backup-gpcrondump.html
Hi,大家好,我是麦洛,今天我们聊聊MySQL的备份和恢复,在下面文章中,你会了解到MySQL常见的备份类型,以及基于mysqldump命令在日常开发中如何做MySQL数据库以及表的备份和恢复。最近开始玩公众号了,喜欢的小伙伴可以关注我
在前几章中,我们解释了模式优化和索引,这对于高性能是必要的。但这还不够——您还需要设计良好的查询。如果您的查询不好,即使是设计最佳的模式和索引也不会表现良好。
信号是一种进程间通信机制,信号都有一个对应的默认处理行为,信号触发时,信号处理函数和进程正常的执行流程同时存在,这会给编程带来隐患,如果信号处理函数中调用了不可重入函数的话。信号同其他进程间通信技术(管道、共享内存)相比,传递的信息还是有限的,由于信息较少所以也方便管理,一般在系统管理中使用,比如终止或者恢复进程等。 ·
正所谓理论造航母,现实小帆船。单有理论,不动手实践,学到的知识犹如空中楼阁。接下来,我们一起来看下如何一步步进行 MySQL Replication 的配置。
线程是Java面试问题中的热门话题之一。在这里,我从面试的角度列出了大多数重要的Java多线程面试问题,但是您应该对Java线程有足够的知识来处理后续问题。
在 Shopify 中,我们将Apache Flink作为标准的有状态流媒体引擎,为我们的BFCM Live Map等各种用例提供支持。我们的 Flink 应用程序部署在利用Google Kubernetes Engine的 Kubernetes 环境中。我们的集群采用配置使用高可用性模式,配置任务管理为故障点。我们还为我们使用状态保存器作为我们使用的检查点和点写入谷歌云存储(GCS)。
目前基于ELK架构的日志系统,通过filebeat收集上来的日志都会发送到同一个kafka topic中,然后再由Logstash消费处理写入Elasticsearch中,这种方式导致该topic包含所有业务日志,那么各个业务去做实时统计分析就会造成重复消费,使得流量成本的浪费;对于离线分析的日志来源是通过在应用服务端定时上传的方式,对于日志量比较大的业务,一方面上传时会对应用服务器造成比较大的压力,另一方面这种上传方式对于后续小时或者分钟级别分析造成一定延时。
领取专属 10元无门槛券
手把手带您无忧上云