自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(176)
  • 收藏
  • 关注

原创 CFA一级学习-CFA一级中文精讲(第三版)-第一章(1)

道德(ethic),包含 一系列的 道德准则(moral principle/ethical principle) 和 行为指导准则英文ethic起源希腊字母ethos,字面理解为社会思潮,是指一个社会或者社会团体的指导思想道德准则是一种信念,区分什么是好的、可接受的、有义务履行的行为;什么是不好的、不可接受的、禁止实施的行为道德准则 也指 个人或社会大众 期望达到 的 行为标准。

2022-11-22 11:50:53 1136

原创 JVM面试(五)-三色标记法、增量更新(Incremental Update)、原始快照-SATB

三色标记算法背后的首要原则就是把堆中的对象根据它们的颜色分到不同集合里面,这三种颜色和所包含的意思分别如下所示:GC开始前所有对象都是白色GC一开始 所有 根能够直达的对象 被压到栈中,待搜索,此时颜色是灰色然后 灰色对象 依次从栈中取出 搜索(其)子对象,子对象也会被涂为灰色,入栈当 其所有的子对象 都涂为灰色之后 该对象 被涂为黑色当GC结束之后 灰色对象 将全部没了,剩下黑色的为存活对象,白色的为垃圾虚线箭头是被切断的引用灰色箭头是重新被添加的引用上面的第五、六个图会产生漏标可达性分析的

2022-06-07 11:23:26 861 1

原创 JVM面试(六)-G1垃圾收集器

分代垃圾收集 可以将关注点 集中在 最近被分配的对象上,而无需整堆扫描,避免长生命周期对象的拷贝,同时独立收集有助于降低响应时间虽然分区使得内存分配不再要求紧凑的内存空间,但G1依然使用了分代的思想与其他垃圾收集器类似,G1 将内存 在逻辑上 划分为 年轻代和老年代,其中年轻代又划分为Eden空间和Survivor空间但年轻代空间并不是固定不变的,当现有年轻代分区占满时,JVM会分配新的空闲分区加入到年轻代空间整个年轻代内存会在初始空间(默认整堆5%)与最大空间(默认60%)之间动态变化,且由参数 目标

2022-06-06 18:56:32 783

原创 排序算法-快速排序

排序算法-快速排序算法思想和归并排序的区别算法实现算法效率时间复杂度空间复杂度算法思想快速排序是一种分治的排序算法它将一个数组分成两个子数组,将两部分独立地排序每趟排序时(先)选出一个基准值,然后 将所有元素 与该基准值 比较,并按大小分成左右两堆,然后递归执行该过程,直到所有元素都完成排序先从数列中取出一个数作为基准数分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边再对左右区间重复第二步,直到各区间只有一个数和归并排序的区别快速排序和归并排序是互补的归并排序

2022-05-22 22:55:37 389

原创 排序算法-冒泡排序

排序算法-冒泡排序算法思想算法实现算法效率时间复杂度空间复杂度算法思想相邻的元素两两比较,较大的数向后(下沉),较小的数向前(冒起来),这样一趟比较下来,最大(小)值就会排列在一端整个过程如同气泡冒起,因此被称作冒泡排序冒泡排序的步骤是比较固定的比较相邻的元素,如果第一个比第二个大,就交换他们两个每趟从第一对相邻元素开始,对每一对相邻元素作同样的工作,直到最后一对针对所有的元素重复以上的步骤,除了已排序过的元素(每趟排序后的最后一个元素),直到没有任何一对数字需要比较算法实现publi

2022-05-22 21:29:30 156

原创 排序算法-归并排序

排序算法-归并排序算法思想算法实现算法效率时间复杂度空间复杂度算法思想实现归并的一种直截了当的办法 是 将两个不同的有序数组 归并到 第三个数组中,两个数组中的元素应该都实现了Comparable接口实现的方法很简单,创建一个适当大小的数组 然后 将两个输入数组中的元素 一个个 从小到大 放入这个数组中但是,当用归并 将一个 大数组排序时,需要进行很多次归并,因此在每次归并时 都要创建一个新数组 来存储 排序结果会带来问题所以更希望有一种 能够在原地归并的方法,这样就可以先将前半部分排序,再将后半

2022-05-22 19:45:09 186

原创 排序算法-希尔(Shell‘s)排序

排序算法-希尔排序算法思想算法实现算法效率(待完善)时间复杂度空间复杂度算法思想假设待排序元素序列有n个元素,首先 取一个整数increment(小于序列元素总数)作为间隔所有距离为increment的元素 放在同一个逻辑数组中,在每一个逻辑数组中 分别实行 直接插入排序然后缩小间隔increment,重复上述逻辑数组划分和排序工作直到最后取increment=1,将所有元素放在同一个数组中排序为止从上面的希尔排序的思想中也能看出希尔排序的实现步骤:选increment,划分逻辑分组,组内进

2022-05-19 23:31:43 145

原创 排序算法-插入排序

排序算法-插入排序算法思想算法实现算法效率时间复杂度空间复杂度和选择排序比较算法思想将初始数据分为 有序部分 和 无序部分,每一步 将一个无序部分的数据 插入到 前面已经排好序的 有序部分中,直到插完所有元素为止插入排序的步骤如下:每次从无序部分中取出一个元素,与 有序部分中的元素 从后向前 依次进行比较,并找到合适的位置,将该元素插到有序组当中算法实现 public static void insertSort(int[] nums) { for (int i = 0; i

2022-05-19 22:34:03 460

原创 排序算法-选择排序

排序算法-选择排序算法思想算法实现算法效率时间效率运行时间和输入无关数据移动(次数)是最少的算法思想首先,找到数组中最小的元素其次,将它和数组的第一个元素交换位置(如果第一个元素就是最小元素,那么它就和自己交换)再次,在剩下的数组元素中找到最小的元素,将它与数组的第二个元素交换位置如此往复,直到将整个数组排序这种方法叫做选择排序,因为它在不断地选择剩余元素之中的最小者在 未排序(的)序列中找到最小(大)元素,存放到 排序序列 的 起始位置从剩余未排序(的数组)元素中继续寻找最小(大)元素,然

2022-05-17 00:48:17 181

原创 N叉树(N-ary Tree)

N叉树N 叉树的定义N 叉树的遍历N 叉树的经典递归解法"自顶向下"的解决方案"自底向上"的解决方案N 叉树的定义二叉树是一棵以根节点开始,每个节点含有不超过 2 个子节点的树。将这个定义扩展到 N 叉树 。 一棵以根节点开始,每个节点不超过 N 个子节点的树,称为 N叉树阅读参考:https://leetcode-cn.com/leetbook/read/n-ary-tree/x0wi57/N 叉树的遍历一棵二叉树可以按照前序、中序、后序或者层序来进行遍历。在这些遍历方法中,前序遍历、后序遍历和

2022-03-30 22:40:19 2859

原创 二叉搜索树

二叉搜索树概述在二叉搜索树中实现搜索、插入、删除操作总结高度平衡的二叉搜索树为什么需要用到高度平衡的二叉搜索树?如何实现一个高度平衡的二叉搜索树?高度平衡的二叉搜索树的实际应用概述二叉搜索树(BST)是二叉树的一种特殊表示形式,它满足如下特性:每个节点中的值必须大于(或等于)存储在其左侧子树中的任何值每个节点中的值必须小于(或等于)存储在其右子树中的任何值验证一个树是否是二叉搜索树:值得注意的是,对于二叉搜索树,可以通过 中序遍历 得到一个 递增的有序序列。因此,中序遍历是二叉搜索树中最常用的

2022-03-30 22:29:15 819

原创 二叉树(前序、中序、后序遍历)

二叉树树的遍历前序遍历中序遍历后序遍历层序遍历运用 递归 解决树的问题(重要!!!)自 顶 向 下 的解决方案自 底 向 上 的解决方案小结(重要!!!)树的遍历树 是一种经常用到的数据结构,用来模拟具有树状结构性质的数据集合。树里的每一个节点 有 一个值 和 一个 包含所有子节点的列表从图的观点来看,树也可视为一个 拥有 N 个节点 和 N-1 条边的一个有向无环图二叉树是一种更为典型的树状结构。如它名字所描述的那样,二叉树是每个节点最多有两个子树的树结构,通常子树被称作“左子树”和“右子树”

2022-03-19 17:33:30 477

原创 哈希表、哈希集合(HashSet)、哈希映射(HashMap)

哈希表、哈希集合、哈希映射哈希表哈希表的原理哈希集合-HashSet哈希映射键 的 设计哈希表哈希表 是一种 使用 哈希函数 组织数据,以支持 快速插入和搜索 的 数据结构有两种不同类型的哈希表:哈希集合和哈希映射哈希集合 是 集合数据结构的实现之一,用于存储非重复值哈希映射 是 映射数据结构的实现之一,用于存储(key, value)键值对通过选择合适的哈希函数,哈希表可以在插入和搜索方面实现出色的性能阅读参考:https://leetcode-cn.com/leetbook/read

2022-03-19 17:00:29 3530 1

原创 队列、栈、BFS、DFS

队列、栈、BFS、DFS队列循环队列BFS-广度优先搜索节点的处理顺序队列的入队和出队顺序栈DFS-深度优先搜索节点的处理顺序栈的入栈出栈顺序DFS 和 BFS的区别队列在 FIFO 数据结构中,将首先处理添加到队列中的第一个元素队列是一个先入先出的数据结构。插入(insert)操作也称作入队(enqueue),新元素始终被添加在队列的末尾。 删除(delete)操作也被称为出队(dequeue)。 只能移除第一个元素阅读参考:https://leetcode-cn.com/leetbook/rea

2022-03-19 16:34:35 1109

原创 单链表、双链表

单链表、双链表单链表简介访问操作添加操作删除操作链表中的(快慢)双指针双链表简介添加操作删除操作总结(重要!!!)单链表简介阅读参考:https://leetcode-cn.com/leetbook/read/linked-list/jsumh/单链表中的每个结点不仅包含值,还包含链接到下一个结点的引用字段通过这种方式,单链表将所有结点按顺序组织起来访问操作与数组不同,无法在常量时间内O(1)访问单链表中的随机元素,如果想要获得第 i 个元素,必须从头结点逐个遍历(next)按索引来访问元素

2022-03-08 21:16:47 452

原创 数组和字符串

数组和字符串数组简介集合列表数组数组的操作读取元素查找元素插入元素删除元素二维数组简介字符串介绍为何单独讨论字符串类型?字符串比较字符串连接数组简介阅读参考:https://leetcode-cn.com/leetbook/read/array-and-string/ybfut/集合集合有什么特性呢?集合里的元素类型不一定相同集合里的元素没有顺序列表列表(又称线性列表)的定义为:是一种 数据项 构成的 有限序列,即 按照 一定的线性顺序,排列而成的数据项的集合列表的概念 是在 集合的特

2022-03-08 20:36:34 272

原创 Redis持久化(六)-RDB+AOF混合持久化

RDB-AOF混合持久化RDB+AOF同时使用RDB-AOF混合持久化RDB+AOF同时使用同时使用RDB持久化和AOF持久化是可行的,只要注意以下问题即可:同时使用两种持久化功能需要耗费大量系统资源,系统的硬件必须能够支撑运行这两种功能所需的资源消耗,否则会给系统性能带来影响Redis服务器在启动时,会优先使用AOF文件进行数据恢复,只有在没有检测到AOF文件时,才会考虑寻找并使用RDB文件进行数据恢复当Redis服务器正在后台生成新的RDB文件时,如果有用户向服务器发送BGREWRITEAO

2022-01-14 17:32:21 4326 3

原创 Redis持久化(七)-问题定位和优化

持久化问题定位和优化fork操作子进程开销监控和优化CPU消耗内存消耗内存消耗优化硬盘消耗AOF追加阻塞fork操作当Redis做RDB或AOF重写时,一个必不可少的操作就是执行fork操作创建子进程,对于大多数操作系统来说fork是个重量级错误虽然fork创建的子进程不需要拷贝父进程的物理内存空间,但是会复制父进程的空间内存页表例如对于10GB的Redis进程,需要复制大约20MB的内存页表,因此fork操作耗时跟进程总内存量息息相关,如果使用虚拟化技术,特别是Xen虚拟机,fork操作会更耗时

2022-01-14 16:42:00 222

原创 Redis数据库、键空间 及 相关命令

数据库、键服务器中的数据库切换数据库数据库(的)键空间读写键空间时的维护操作服务器中的数据库Redis服务器 将 所有数据库 都保存 在服务器状态redis.h/redisServer结构的db数组中db数组的每个项都是一个redis.h/redisDb结构,每个redisDb结构代表一个数据库:struct redisServer { // ... // 一个数组,保存着服务器中的所有数据库 redisDb *db; // ...};在初始化服务器时,程序会根

2022-01-13 14:49:30 466 1

原创 Redis-对象共享、内存优化

对象共享、内存优化对象的引用计数对象共享为什么开启maxmemory和LRU淘汰策略后对象池无效?(面试题)为什么Redis不共享包含字符串的对象?(面试题)对象的空转时长内存消耗内存使用统计内存消耗划分对象内存缓冲内存内存碎片子进程内存消耗内存管理设置内存上限动态调整内存上限内存回收策略(重要!!!)删除过期键对象内存溢出控制策略内存优化了解redisObjec对象缩减键值对象(长度)共享对象池字符串优化(embstr编码)编码(类型)优化(重要!!!)Redis为什么对一种数据结构实现多种编码方式?(面

2022-01-12 21:37:50 1379 1

原创 Redis数据类型(七)-类型检查 与 命令多态

类型检查 与 命令多态概述类型检查的实现命令多态的实现概述Redis中用于操作键的命令基本上可以分为两种类型一种命令可以对任何类型的键执行,比如说DEL命令、EXPIRE命令、RENAME命令、TYPE命令、OBJECT命令等另一种命令只能对特定类型的键执行,比如说:SET、GET、APPEND、STRLEN等命令只能对字符串键执行HDEL、HSET、HGET、HLEN等命令只能对哈希键执行RPUSH、LPOP、LINSERT、LLEN等命令只能对列表键执行SADD、SPOP、SINTER

2022-01-12 15:29:49 279

原创 Redis数据类型(五)-集合对象

Redis数据类型-集合对象集合对象集合对象的编码转换集合对象的命令(包括不同编码情况下的实现方法)集合对象相关命令集合内操作1.添加元素-sadd2.删除元素-srem3.将元素从一个集合移动到另一个集合-smove4.计算元素个数-scard5.判断元素是否在集合中-sismember6.随机从集合内 返回 指定个数 元素-srandmember7.从集合内随机弹出(删除)元素-spop8.获取所有元素-smembers集合间操作1.求多个集合的交集-sinter2.求多个集合的并集-suinon3.求

2022-01-11 12:06:01 551 1

原创 JVM面试(九)-强引用、软引用、弱引用、虚引用及应用场景

Java中最常见的就是强引用把 一个对象 赋给 一个引用变量 时,这个引用变量 就是一个强引用有强引用的对象 一定为 可达性状态,所以不会被垃圾回收机制回收强引用是造成Java内存泄漏的主要原因如果想中断 强引用 和 某个对象 之间的关联关系,可以 显示地 将引用 赋值为 null,JVM就会在合适的时间回收该对象,例如 集合类中的clear方法,这里会牵扯到内存泄漏和内存溢出的区别软引用通过SoftReference类实现如果 一个对象 只有 软引用,则 在系统内存空间不足时 该对象 将被回收在

2021-12-22 15:14:37 790

原创 Mybatis动态SQL(四)-#{}和${}的区别

#{}和${}的区别`${}`参数占位符解析过程总结${}参数占位符解析过程当动态SQL配置中存在${}参数占位符时,MyBatis会使用TextSqlNode对象描述对应的SQL节点,在调用TextSqlNode对象的apply()方法时会完成动态SQL的解析也就是说,${}参数占位符的解析是在TextSqlNode类的apply()方法中完成的在TextSqlNode类的apply()方法中,首先调用createParser()方法 创建一个 GenericTokenParser对象通过 Ge

2021-12-12 21:13:46 713

原创 Mybatis级联映射与懒加载

级联映射与懒加载概述一对多关联映射一对一关联映射Discriminator详解级联映射实现原理ResultMap概述ResultMap解析过程级联映射实现原理懒加载机制懒加载实现原理概述所谓的懒加载,就是当在一个实体对象中 关联 其他实体对象时,如果不需要获取被关联的实体对象,则不需要为 被关联的实体 执行 额外的查询操作,仅当 调用 当前实体的Getter方法 获取 被关联实体对象时,才会执行一次额外的查询操作通过这种方式在一定程度上能够减轻数据库的压力一对多关联映射MyBatis的Mapper

2021-12-12 19:03:47 849

原创 RocketMQ-Broker(六)-关机恢复机制

关机恢复机制概述Broker关机恢复流程概述Broker关机恢复是指恢复CommitLog、Consume Queue、Index File等数据文件Broker关机分为 正常调用命令关机 和 异常被迫进程终止关机 两种情况恢复过程的设计目标 是使 正常停止的进程 实现 零数据丢失,异常停止的进程 实现 最少量的数据丢失与关机恢复相关的主要文件有两个:abort和checkpointabort是一个空文件,标记当前Broker是否正常关机,Broker进程正常启动的时候,创建该文件。Broker

2021-12-08 23:35:03 736

原创 RocketMQ-Broker(五)-主从同步机制

Broker主从同步机制主从同步概述主从同步流程相关名词配置数据同步流程CommitLog数据同步流程异步复制同步复制主从同步概述Master主要用于处理生产者、消费者的请求和存储数据Slave从Master同步所有数据到本地,具体作用提现如下:Broker服务高可用。一般生产环境不会部署两个主Broker节点和两个从Broker节点(也叫 2m2s),一个 Master宕机后,另一个 Master可以接管工作;如果两个 Master都宕机,消费者可以通过连接Slave继续消费。这样可以保证服务的

2021-12-08 22:53:20 2541

原创 RocketMQ-Broker(四)-过期文件删除机制

过期文件删除机制概述CommitLog文件的删除过程Consume Queue、Index File文件的删除过程(待完善)概述RocketMQ中主要保存了CommitLog、Consume Queue、Index File三种数据文件由于内存和磁盘都是有限的资源,Broker不可能永久地保存所有数据,所以一些超过保存期限的数据会被定期删除RocketMQ 通过设置数据过期时间来删除额外的数据文件,具体的实现逻辑是通过org.apache.rocketmq.store.DefaultMessageS

2021-12-08 00:27:24 659

原创 RocketMQ-Broker(三)-CommitLog索引机制(索引数据结构、索引创建、索引使用)

CommitLog索引机制索引的数据结构Consumer QueueIndex File索引的构建过程创建Consume Queue和Index File索引创建失败怎么办索引如何使用按照位点查消息按照时间段查消息按照key查询消息索引的数据结构Broker中有两种索引:Consumer Queue和Index FileConsumer Queue消费队列,主要用于 消费 拉取消息、更新消费位点(消息在CommitLog中的位点值) 等 所用的索引源代码可以参考文件org.apache.rocke

2021-12-08 00:19:29 485

原创 RocketMQ-Broker(二)-消息存储结构、消息存储机制、读写分离机制

Broker存储机制什么是BrokerBroker存储机制为什么写文件这么快消息存储流程内存映射机制与高效写磁盘文件刷盘机制同步刷盘异步刷盘独写分离机制什么是BrokerBroker是RocketMQ中核心的模块之一,主要负责处理各种TCP请求(计算)和存储消息(存储)Broker存储机制org.apache.rocketmq.store.CommitLog类负责处理全部消息的存储逻辑——普通消息、定时消息、顺序消息、未消费的消息和已消费的消息CommitLog目录下有多个CommitLog文件。

2021-12-07 22:40:19 715

原创 RocketMQ-Broker(一)-存储目录结构、启动/停止流程

Broker存储机制:存储目录结构、启动/关闭流程什么是BrokerBroker 存储目录 结构Broker启动流程Broker关闭流程什么是BrokerBroker是RocketMQ中核心的模块之一,主要负责处理各种TCP请求(计算)和存储消息(存储)Broker分为Master和SlaveMaster主要提供服务,Slave在Master宕机后提供消费服务Broker 存储目录 结构Commitlog:这是一个目录,其中包含具体的commitlog文件。文件名长度为20个字符,文件名 由

2021-12-07 21:38:39 2334

原创 Redis集群-节点、槽、分片、复制、故障转移、消息

Redis集群:启动节点、集群数据结构、槽指派、集群执行命令、计算键属于哪个槽、MOVED、节点数据库实现、重新分片、ASK、故障检测、故障转移、选举新节点

2021-12-05 00:35:42 643

原创 Elasticsearch分片、路由、数据写入过程

分片、路由、数据写入过程分片和路由分片如何使用?(和数据写入过程有关)数据写入过程(重要!!!)1.分段存储为什么要引入分段?既然索引文件分段存储并且不可修改,那么新增、更新和删除如何处理?2.延迟写策略3.段合并分片和路由在Elasticsearch中,若要进行分片和副本配置,则需要尽早配置因为 当 在一个多分片 的 索引中 写入数据时,需要 通过路由 来确定 具体写入 哪一个分片中所以 在创建索引时 需要指定 分片的数量,并且分片的数量 一旦确定 就不能修改分片的数量 和 副本数量 都可以通过

2021-11-06 20:46:11 1457 1

原创 Elasticsearch节点类型(数据节点、候选节点)、主节点选举过程

节点类型、分片、路由节点类型(数据节点、候选节点)分片和路由分片如何使用?(和数据写入过程有关)节点类型(数据节点、候选节点)在Elasticsearch中,每个节点可以有多个角色,节点既可以是候选主节点,也可以是数据节点节点的角色配置在配置文件/config/elasticsearch.yml中设置即可,配置参数如下所示在Elasticsearch中,默认都为true数据节点 负责 数据的存储相关的操作,如对数据进行增、删、改、查和聚合等数据节点 往往 对服务器的配置要求比较高,特别是对CP

2021-11-06 20:00:46 3180

原创 Elasticsearch节点自动发现机制

节点自动发现机制Elasticsearch内嵌自动发现功能,主要提供了4种可供选择的发现机制其中一种是默认实现,其他都是通过插件实现的,具体如下所示Azure discovery插件方式:多播模式EC2 discovery插件方式:多播模式Google Compute Engine(GCE)discovery插件方式:多播模式Zen Discovery,默认实现方式,支持多播模式和单播模式Zen Discovery是Elasticsearch内置的默认发现模块发现模块 用于 发现集群中的

2021-11-06 19:44:56 1750

原创 RocketMQ(六)-消费进度保存机制

消费进度保存机制在消费者启动时 会 同时启动 位点管理器,位点具体是如何管理?RocketMQ 设计了 远程位点管理 和 本地位点管理 两种位点管理方式集群消费时,位点 由客户端 提交给 Broker保存,具体实现代码在RemoteBrokerOffsetStore.java文件中广播消费时,位点 保存在 消费者 本地磁盘上,实现代码在LocalFileOffsetStore.java文件中...

2021-11-03 15:43:57 451

原创 MySQL备份与恢复(六)-快照备份

快照备份MySQL数据库本身并不支持快照功能因此快照备份 是指 通过文件系统支持的快照功能 对数据库 进行备份备份的前提是 将所有数据库文件 放在同一文件分区中,然后对该分区进行快照操作支持快照功能的文件系统和设备包括FreeBSD的UFS文件系统,Solaris的ZFS文件系统,GNU/Linux的逻辑管理器(Logical Volume Manager,LVM)等LVM是LINUX系统下对磁盘分区进行管理的一种机制LVM在硬盘和分区之上建立一个逻辑层,来提高磁盘分区管理的灵活性管理员可以通

2021-11-03 01:44:59 1067

原创 MySQL备份与恢复(七)-复制

复制复制工作原理快照+复制的备份架构复制工作原理复制(replication)是MySQL数据库提供的一种高可用高性能的解决方案,一般用来建立大型的应用总体来说,replication的工作原理分为以下3个步骤:主服务器(master)把数据更改记录到二进制日志(binlog)中从服务器(slave)把主服务器的二进制日志复制到自己的中继日志(relay log)中从服务器重做中继日志中的日志,把更改应用到自己的数据库上,以达到数据的最终一致性。复制的工作原理并不复杂,其实就是一个完全备份

2021-11-03 01:30:55 121

原创 MySQL备份与恢复(五)-热备

热备份ibbackupXtraBackupXtraBackup实现增量备份ibbackupibbackup是InnoDB存储引擎官方提供的热备工具,可以同时备份MyISAM存储引擎和InnoDB存储引擎表对于InnoDB存储引擎表其备份工作原理如下:记录备份开始时,InnoDB存储引擎重做日志文件检查点的LSN复制共享表空间文件以及独立表空间文件记录复制完表空间文件后,InnoDB存储引擎重做日志文件检查点的LSN复制在备份时产生的重做日志对于事务的数据库,如Microsoft SQL

2021-11-02 17:04:03 101

原创 MySQL备份与恢复(四)-二进制日志备份与恢复

二进制日志备份与恢复二进制日志非常关键,可以通过它完成point-in-time的恢复工作MySQL数据库的replication同样需要二进制日志在默认情况下并不启用二进制日志,要使用二进制日志首先必须启用它。如在配置文件中进行设置:[mysqld]log-bin=mysql-bin对于InnoDB存储引擎只简单启用二进制日志是不够的,还需要启用一些其他参数来保证最为安全和正确地记录二进制日志,因此对于InnoDB存储引擎,推荐的二进制日志的服务器配置应该是:[mysqld]log-bi

2021-11-02 11:29:57 269

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除