有什么简单的 mysql 增量备份方案

有什么简单的 mysql 增量备份方案,第1张

根据增量需求更改你的原始表,例如增加update_time时间戳字段,根据更新时间获取增量,注意删除 *** 作,可以通过设置删除标记字段来表示,不要进行物理删除。

mysql主从备份,根据binlog来实时同步更新变化。或者自己拉取binlog解析,更新目标数据

源数据变化捕获是数据集成的起点,获取数据源变化主要有三种方式:

基于日志的解析模式;

基于增量条件查询模式;

数据源主动Push模式。

基于日志的解析模式常用于各种类型的数据库,例如MySQL的Binlog、Oracle的Redo&Achieve Log、SQL Server Change Tracking & CDC等。

不同数据库日志解析的原理差别很大,以MySQL Binlog模式为例,解析程序本身是一个Slave,能够实时收到MySQL Master的数据流推送,并解析还原成DDL和DML *** 作。而SQL Server的CT模式下,增量是通过定期查询Change Tracking表实现的。

基于增量条件的查询模式不依赖于源端开启日志记录,但对于数据源通常有额外的格式要求。例如,数据库表或文档对象需要有标志更新时间的字段,这在一些业务系统中是无法满足的。

数据源主动Push模式的常见形式为业务插码,即应用系统通过打点或者配置切面的方式,将数据变化封装为事件,额外发送一份给数据集成平台。这种方式一般需要对源端系统代码进行一定程度的修改。

回答者:DataPipeline CTO

以前的时候,数据增加的速度比较慢,所以一次数据挖掘之后,其模式可以使用很长时间;而现在,数据的增长速度太快了,一次数据挖掘之后,其模式往往不能表示现有状态,所以提出通过增量方式,就是在原有模式上,结合新增数据进行再次挖掘,故名为增量数据挖掘。

mysql数据库的导入,有两种方法:

1)

先导出数据库sql脚本,再导入;

2)

直接拷贝数据库目录和文件

在不同 *** 作系统或mysql版本情况下,直接拷贝文件的方法可能会有不兼容的情况发生。

所以一般推荐用sql脚本形式导入。下面分别介绍两种方法。

2

方法一

sql脚本形式

*** 作步骤如下:

21

导出sql脚本

在原数据库服务器上,可以用phpmyadmin工具,或者mysqldump命令行,导出sql脚本。

211

用phpmyadmin工具

导出选项中,选择导出“结构”和“数据”,不要添加“drop

database”和“drop

table”选项。

选中“另存为文件”选项,如果数据比较多,可以选中“gzipped”选项。

将导出的sql文件保存下来。

212

用mysqldump命令行

命令格式

mysqldump

-u用户名

-p

数据库名

>

数据库名sql

范例:

mysqldump

-uroot

-p

abc

>

abcsql

(导出数据库abc到abcsql文件)

提示输入密码时,输入该数据库用户名的密码。

22

创建空的数据库

通过主控界面/控制面板,创建一个数据库。假设数据库名为abc,数据库全权用户为abc_f。

23

将sql脚本导入执行

同样是两种方法,一种用phpmyadmin(mysql数据库管理)工具,或者mysql命令行。

231

用phpmyadmin工具

从控制面板,选择创建的空数据库,点“管理”,进入管理工具页面。

在"sql"菜单中,浏览选择刚才导出的sql文件,点击“执行”以上载并执行。

注意:phpmyadmin对上载的文件大小有限制,php本身对上载文件大小也有限制,如果原始sql文件

比较大,可以先用gzip对它进行压缩,对于sql文件这样的文本文件,可获得1:5或更高的压缩率。

gzip使用方法:

#

gzip

xxxxxsql

得到

xxxxxsqlgz文件。

提示输入密码时,输入该数据库用户名的密码。

3

直接拷贝

如果数据库比较大,可以考虑用直接拷贝的方法,但不同版本和 *** 作系统之间可能不兼容,要慎用。

31

准备原始文件

用tar打包为一个文件

32

创建空数据库

33

解压

在临时目录中解压,如:

cd

/tmp

tar

zxf

mydbtargz

34

拷贝

将解压后的数据库文件拷贝到相关目录

cd

mydb/

cp

/var/lib/mysql/mydb/

对于freebsd:

cp

/var/db/mysql/mydb/

35

权限设置

将拷贝过去的文件的属主改为mysql:mysql,权限改为660

chown

mysql:mysql

/var/lib/mysql/mydb/

chmod

660

/var/lib/mysql/mydb/

打字不易,如满意,望采纳。

数据库增量抽取数据。

比如A表第一次抽有三条数据:1,2,3

第二次抽的时候A表里面有:1,2,3,4了。这个时候你B表里面还是1,2,3

你要单独把4抽取过来,

可以直接

insert

into

B

select

from

A

where

AID

not

in

(select

BID

from

B)

如果你用的是INNODB数据库,有一个最简单有效的调整,就是将INI文件里面的下面参数调整:

原始:

innodb_flush_log_at_trx_commit=1

调整为:

innodb_flush_log_at_trx_commit=2

具体什么意思就不解释了,试了效果好再去找度娘

以上就是关于有什么简单的 mysql 增量备份方案全部的内容,包括:有什么简单的 mysql 增量备份方案、获取数据源变化的主要方式有哪些、什么叫增量数据挖掘等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9637725.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存