MySQL实时在线备份恢复方案:Replication+LVM Snapsho

快照和复制技术的结合可以保证我们得到一个实时的在线MySQL备份解决方案 当主库发生误操作时,只需要恢复备库上的快照,然后再根据binlog执行point-in-time的恢复即可 下面假定一个场景: 主从架构,没有延迟,某DBA误操作:drop database 接下来我们按照以上场景进行备份恢复模拟测试 ⑴ 主库准备测试数据 mysql> create database cnfol; Query OK, 1 row affected (0.00 sec) ...

linux下利用mysqldump备份数据

shell1 #!/bin/bash #设置mysql的备份保存目录 folder=/opt/database_bak cd $folder day=`date +%Y-%m-%d` mkdir -p "$day" cd $day #数据库服务器ip,填写服务器的公网地址即可 host=xxx.xxx.xxx.xxx #用户名 user=xxx #密码 password=xxx #要备份的数据库名 db1=dbname1 db2=dbname2 db3=ddname3 db4=dbname4 db5=dbname5 #执行备份语句 mysqldump -...

Mysql Innodb和Myisam引擎区别

文章目录 [隐藏] 1.事务和外键 2.锁 3.存储 4.索引 5.并发 1.事务和外键 Innodb具有事务,支持4个事务隔离级别,回滚,事务,如果应用中需要执行大量的insert和update操作,则应该使用innodb。这样可以提高多用户并发操作的性能。 MyISAM管理非事务的表,提供高速存储和检索,以及全文检索能力。如果应用中需要执行大量的select查询,那么myisam是好的选择。 2.锁 mysql 支持...

MySQL数据库MyISAM和InnoDB存储引擎的比较

MySQL有多种存储引擎,MyISAM和InnoDB是其中常用的两种。这里介绍关于这两种引擎的一些基本概念(非深入介绍)。 MyISAM是MySQL的默认存储引擎,基于传统的ISAM类型,支持全文搜索,但不是事务安全的,而且不支持外键。每张MyISAM表存放在三个文件中:frm 文件存放表格定义;数据文件是MYD (MYData);索引文件是MYI (MYIndex)。 InnoDB是事务型引擎,支持回滚、崩溃恢复能力、多版本并...

MySQL中InnoDB和MyISAM的存储引擎区别

文章目录 [隐藏] InnoDB存储引擎 MyISAM存储引擎 InnoDB和MyISAM的区别 事务 主键 外键 索引 auto_increment 表行数 存储 执行速度 delete 锁 数据恢复 数据缓存 如何选择存储引擎 MyISAM InnoDB MySQL数据库区别于其他数据库的很重要的一个特点就是其插件式的表存储引擎,其基于表,而不是数据库。由于每个存储引擎都有其特点,因此我们可以针对每一张表来挑选最合适的...

Mysql的InnoDB引擎的数据结构(B+树)以及聚簇索引的介绍

前言:自己的对知识的复习和归纳,参考网上资料和书籍(Mysql高性能),部分概念便于理解会做简单处理。 数据库中使用什么数据结构作为索引呢? 数组:如果是二分查询,查询时间OK,但是插入、更新慢。 链表、环形链表:查询慢。 跳表:作为索引,思想是ok的,但是不贴合磁盘特性。 hash : 虽然可以快速定位,但是没有顺序,不支持区间查询。 树结构:B+的设计,very good。 数据...

已有数据表自动生成Sqlalchemy的model文件

命令行中运行: pip install sqlacodegen sqlacodegen mysql+pymysql://root:root@127.0.0.1:3306/mydb > models.py 原文出处:wktadmin -> https://blog.wktadmin.com/?p=1450

SQLAlchemy(二)

文章目录 [隐藏] 目标 插入一条数据 查询 返回值 使用字符SQL 计数 目标 使用 SQLAlchemy 连接数据库,创建数据表 使用 SQLAlchemy 实现插入数据、查询数据的操作 环境: Python==3.6.8 SQLAlchemy==1.2.16 Psycopg2==2.7.6.1 faker==1.0.1 插入一条数据 现在,我们可以直接使用 ORM 来操作数据了,先来插入一条数据: >>> ed_user = User(name='ed', password='1...

sqlalchemy使用count时遇到的坑

在用flask-sqlalchemy对一个千万级别表进行count操作时,出现了耗时严重、内存飙升的情况。 要统计出一天内车辆访问次数,原代码如下: car_visit_counts = CarVisit.query.filter( CarVisit.park == car_visit.park, CarVisit.plate_number == car_visit.plate_number, CarVisit.visited_at >= today_start_time(), ).count() 发现代码运行特别慢,所以把生成...

PostgreSQL数据库安装部署

文章目录 [隐藏] 一、postgresql数据库部署 一、postgresql数据库部署 1、前往postgresql安装包的目录(这里我部署的是10.5的版本) [root@web1 ~]# cd /package/ [root@web1 package]# ls apache-tomcat-8.5.39.tar.gz jdk-8u131-linux-x64.tar.gz postgresql-10.5.tar.gz redis-3.2.0.tar.gz [root@web1 package]# 2、解压缩包 [root@web1 package]# tar xf postgre...

postgresql-以非交互方式为psql指定密码

有时候,我们需要在定时器中配置定期执行某些操作,这样我们就需要以非交互方式为psql指定密码: PGPASSWORD=123456 /usr/bin/psql -h 172.18.0.1 -U test test_db -f /home/test/test.sql 原文出处:csdn -> https://blog.csdn.net/kozazyh/article/details/90748266

PostgreSQL的B-tree索引

文章目录 [隐藏] 结构 等值查询 非等值查询 范围查询 案例 排序 排序顺序 列的顺序 NULLs 属性 具有额外列的唯一索引 创建索引 比较 索引支持的新数据类型 内部结构 结构 B-tree索引适合用于存储排序的数据。对于这种数据类型需要定义大于、大于等于、小于、小于等于操作符。 通常情况下,B-tree的索引记录存储在数据页中。叶子页中的记录包含索引数据(keys)以及指...

PostgreSQL逻辑复制之slony篇

文章目录 [隐藏] 1. 安装Slony 2. Slony架构图 3. 复制表 4. Slony-I相关表或者视图查看 4.1 配置成功;会在所在的数据库中生成一个schema 4.2 查看集群中的节点信息 4.3 查看集群中的集合信息 4.4 查看集群中的表信息 5. 日常维护 5.1 Slony-I向现有集群中增加一个复制表 5.2 Slony-I向现有集群中删除一个复制表 5.3 删除slony Slony是PostgreSQL领域中最广泛的复制解...

PostgreSQL逻辑复制之pglogical篇

文章目录 [隐藏] 一、pglogical介绍 二、安装操作 三、pglogical复制配置 3.1 时间同步 3.2 提供者节点配置 3.3 订阅者节点配置 3.4 验证复制 四、复制特性扩展 4.1 延迟复制 4.2 对源端进行 行/列 过滤 4.3 为新表自动分配复制集 4.4 冲突检测 五、场景介绍 5.1 可从多个上游服务器,做数据的聚集和合并 5.1.1 创建测试表 5.1.2 搭建模拟场景 5.1.3 插入数据验证 5.2 ...

Linux安装 PostgreSQL

1、在线安装 yum install postgresql-server -y 2、初始化数据库 service postgresql initdb 3、设置自动启动 hkconfig postgresql on 4、启动 service postgresql start 如何修改默认密码 su - postgres psql alter user postgres with password 'newpassword'; 修改后重启服务 service postgresql restart或者 /bin/systemctl restart postgresql.service 测试登陆 p...

Keepalived+HAProxy实现MySQL高可用负载均衡的配置

文章目录 [隐藏] Keepalived HAProxy 总结 Keepalived 由于在生产环境使用了mysqlcluster,需要实现高可用负载均衡,这里提供了keepalived+haproxy来实现. keepalived主要功能是实现真实机器的故障隔离及负载均衡器间的失败切换.可在第3,4,5层交换.它通过VRRPv2(Virtual Router Redundancy Protocol) stack实现的. Layer3:Keepalived会定期向服务器群中的服务器.发送一个ICMP的...

docker下用haproxy负载均衡MySQL

上次写了一篇 docker模拟MySQL主从同步 的博客,于是想着试试用haproxy对多个mysql进行负载均衡。 先把MySQL跑起来,这里就测试俩吧。 docker pull mysql docker run -d -p 6666:3306 -e MYSQL_ROOT_PASSWORD=123456 —name mysql6666 mysql docker run -d -p 7777:3306 -e MYSQL_ROOT_PASSWORD=123456 —name mysql7777 mysql 命令执行完毕,通过docker ps -a发现这哥俩都跑起来了...

MySQL备份恢复:从Xtrabackup完整备份中恢复单个表

现在大多数同学在线上采取的备份策略都是xtrabackup全备+binlog备份,那么当某天某张表意外的删除,那么如何快速从xtrabackup全备中恢复呢?从MySQL 5.6版本开始,支持可传输表空间(Transportable Tablespace),那么利用这个功能就可以实现单表的恢复,同样利用这个功能还可以把innodb表移动到另外一台服务器上。可以参考:https://yq.aliyun.com/articles/59271 下面进行从xtraback...

XtraBackup不停机不锁表热备mysql数据库

环境 mysql版本 Server version: 5.6.42-log MySQL Community Server 数据库data目录 /data/mysql/ binlog日志目录 /data/bin_logs/ 备份目录 /data/backup/ 完全备份脚本 (每日一次,00:10:00执行) #!/bin/bash base_dir=”/data/backup/`date +%F`” [ -d ${base_dir} ] || mkdir ${base_dir} [ -d ${base_dir}/full_`date +%F` ] && exit 0 innobackupex –defaults-fil...

MySQL基本知识点梳理和查询优化

文章目录 [隐藏] 一、索引相关 二、EXPLIAN中有用的信息 三、字段类型和编码 四、SQL语句总结 五、踩坑 六、千万大表在线修改 七、慢查询日志 八、查看sql进程和杀死进程 九、一些数据库性能的思考 本文主要是总结了工作中一些常用的操作,以及不合理的操作,在对慢查询进行优化时收集的一些有用的资料和信息,本文适合有mysql基础的开发人员。 一、索引相关 1、索引基数:基...

最近评论

Archives