首页 > 编程知识 正文

mysql创建数据库快照(mysql 快照)

时间:2023-12-09 14:12:25 阅读:313472 作者:XOOS

本文目录一览:

  • 1、mysql如何创建多个实例,求步骤,谢谢,急求
  • 2、unix下mysql数据库如何利用工具进行数据备份
  • 3、如何同步两个mysql数据库中所有的表
  • 4、一台mysql实例 可以创建多少mysql数据库

mysql如何创建多个实例,求步骤,谢谢,急求

大多情况下,需要可靠而有效地克隆 MySQL 实例数据。这包括 MySQL 高可用的解决方案,其中需要在将实例加入组复制集群之前配置实例,或者在经典复制模型中将其添加为 Slave。

为复制拓扑而创建 MySQL 副本一直很麻烦。涉及的步骤很多,首先要备份 MySQL 服务器,通过网络将备份传输到我们想要添加到复制集的新 MySQL 节点,然后在该节点上恢复备份并手动启动 MySQL 服务器。为了高可用,最好还要将其正确设置备份的 GTID,并启动并运行群集。涉及的手动步骤数量过多不利于高可用。CLONE 插件解决了这个问题并简化了副本配置。使您可以使用 MySQL 客户端(和 SQL 命令)来配置新节点并在发生时观察克隆进度。无需手动处理多个步骤并维护自己的基础架构来配置新的 MySQL 节点。

MySQL 8.0.17 引入了 CLONE SQL 语句,使当前的 MySQL 服务器成为另一个运行在不同节点的 MySQL 服务器的“克隆”。我们将执行 clone 语句的服务器实例称为“受体”。克隆的源服务器实例称为“供体”。供体克隆以一致的快照存储在 InnoDB 存储引擎中的所有数据和元数据,以替换受体中的数据。

成功执行 CLONE SQL 语句后,将自动重新启动受体服务器。重新启动涉及恢复克隆的快照数据,就像用老方法复制数据一样。恢复完成后,受体就是供体的克隆版,随时可以使用!

这里有一些关于克隆过程的重要注意事项。

不克隆 MySQL 配置参数,并且受体保留所有原始配置参数,如克隆之前。这样做是因为许多配置可能特定于节点(例如 PORT),因此保留它们似乎是一个不错的选择。另一方面,一些存储配置确实需要在供体和受体之间匹配(例如 innodbpagesize),如果这样的配置参数不匹配,CLONE 将报告错误。

CLONE 插件不会克隆二进制日志。

CLONE 插件目前仅支持 InnoDB 存储引擎。在其他存储引擎(如 MyISAM 和 CSV)中创建的表将被克隆为空表。克隆基础架构的设计允许克隆 MySQL 支持的任何存储引擎。但是,只有 InnoDB 序列化和反序列化方法已经实现并经过测试。

克隆会阻止供体中的所有并发 DDL。

需要注意的事实是受体放弃所有数据以及任何二进制日志,以便成为供体实例的克隆。在执行 CLONE 之前,如果认为有必要,需要备份当前受体数据。

unix下mysql数据库如何利用工具进行数据备份

用以备份的工具

1.

mysqldump

2.

mysqlhotcopy

3.mysqlsnapshot

4.ibbackup

联机备份

.VS.

脱机备份

联机备份通常使用在不能接受数据库停机的情况下,一般来说,脱机备份速度快,并且发生错误的几率少,我们不用担心数据库正在执行事务,锁表等容易发生一致性问题的发生。如果你幸运的可以停下数据库或者有一个主从方式的数据库,请使用脱机方式备份。

Data

Dump

vs

Raw

backups

Data

dump

输出一系列SQL

语句序列,可以在后来用来重新创建数据库的结构并恢复数据。mysqldump

是这个领域的首选工具,他可以用在任意类型的表上面,无论是本地的还是网络的。当然,由于要产生很多额外的SQL语句,导出结果将是一个很大的文件并且占用很多CPU资源,最重要的是,当数据恢复后需要一次完全的索引重建。

更有效率的方法是是对MySQL数据库的物理文件做一次快照(snapshot)。因为我们跳过了很多转化步骤,因此处理起来比较高效。

做一个MyISM数据表的备份只要拷贝磁盘上数据文件和索引文件。对InnoDB,需要备份对应表空间和关联的事务日志。

mysqldump

/

mysqlhotcopy

/

mysqlsnapshot

/

ibbackup

mysqldump

-

(online,

dump)

-

最一般的工具,他会通过锁表的方式从一个联机数据库中做数据导出并写到指定的文件中(磁盘或网络上)。他只适合小的数据库。

#

typical

mysql

dump

backup

and

restore

usage

mysqldump

-u

root

-pPassword

-x

–all-databases

db_dump.sql

mysql

-u

root

-pPassword

db_dump.sql

#

dump

into

‘backup’

folder

(local

machine),

into

two

text

files

data,

table_structure

mysqldump

-T

backup

–fields-terminated-by=’,’

database-name

-u

root

-pPassword

#

compress

the

dumped

data

on

the

fly

mysqldump

-u

root

-pPassword

–all-databases

|

bzip2

-c

db_dump.bz2

mysqlhotcopy

-

(online,

raw)

将对由

ISAM或MyISAM

表构成的数据库做一个完全的物理备份。他的操作方式:对所有表获取一个只读锁=做文件拷贝=释放锁。

#

perform

an

online

backup

into

/backup/location

mysqlhotcopy

-u

root

-p

password

database_name

/backup/location

mysqlsnapshot

-

(online,

raw)

一个非常好的工具用来在联机方式下获得MySQL数据库的一个快照。可以配置它来压缩数据,并/或

为每一个数据库提供一个分离的tar文件。

不过他只适合

MyISAM

类型数据库。

#

save

a

full

database

snapshot

of

an

online

database

into

/backup/location

mysqlsnapshot

-u

root

-pPassword

-s

/backup/location

#

restore

a

snapshot

tar

-xvf

/backup/location/db.tar

ibbackup

-

(online,

raw)

可以对使用InnoDB和MyISAM表的任何数据库做联机备份。是一个很好的工具就是要收费.当然如果你是一个InnoDB的用户,还是值得花钱购买的。

#

perform

online

backup

of

MyISAM

/

InnoDB

tables

ibbackup

/etc/my.cnf

/etc/ibbackup.cnf

#

restore

recent

backup

(as

configured

in

ibbackup.cnf)

ibbackup

–restore

/etc/ibbackup.cnf

cp,

scp,

nc

-

(offline,

raw)

如果你可以停下数据库,则可以使用这几个工具直接拷贝数据库目录下的文件。是获取数据库快照的最安全方法。

如何同步两个mysql数据库中所有的表

用数据库快照就能实现啊.

Oracle快照原理及实现总结

Oracle数据库的快照是一个表,它包含有对一个本地或远程数据库上一个或多个表或视图的查询的结果。对于中大型数据库,业务数据库里所有的数据同步到另外一个处理服务器上最佳的选择还是使用SnapShot方式,即快照的方式。

由于工作需要,今天需要将业务数据库里所有的数据同步到另外一个处理服务器上。在做方案的时候,想了很多方法,当然最快的办法还是使用物理热备的方式。

但是我个人认为如果对于中大型数据库(我们的数据库有300G左右)最佳的选择还是使用SnapShot方式,即快照的方式。

Oracle数据库的快照是一个表,它包含有对一个本地或远程数据库上一个或多个表或视图的查询的结果。也就是说快照根本的原理就是将本地或远程数据库上的一个查询结果保存在一个表中。

以下是我建立的Snapshot,目的是从业务数据库上将数据Copy到处理数据库上,是不同的两个服务器之间对数据copy。

第一步:在处理服务器上的Oracle终端,建立database link,业务数据库服务器SID为TEST

create database link TEST_DBLINK.US.ORACLE.COM

connect to AMICOS identified by AMICOS

using 'test';

第二步:在业务数据库上对应的表建立快照日志

Create snapshot log on A_Table;

第三步:建立Snapshot 快照名称为:Test_SnapShot

Create snapshot Test_SnapShot

REFRESH COMPLETE START WITH SYSDATE NEXT SYSDATE+1/24

as select * from A_Table@TEST_DBLINK

说明:REFRESH是刷新方法

刷新方式有:COMPLETE和FAST两种,而START WITH是说明开始执行的时间。

Next是下次执行的时间

而AS以后是构成快照的查询方法。

相关的方法:

更改快照

ALTER SNAPSHOT Test_SnapShot

REFRESH COMPLETE START WITH SYSDATE NEXT SYSDATE+1/2;

手动刷新快照 在命令界面执行:

EXEC DBMS_SNAPSHOT.REFRESH('Test_SnapShot ','C');

第一个参数是要刷新的快照名

第二个参数是刷新的方式,F----FAST, C---COMPLETE

查看快照最后刷新的日期

SELECT NAME,LAST_REFRESH

FROM ALL_SNAPSHOT_REFRESH_TIMES;

最后非常的方案:

1:为需要做Snapshot的表建立Snapshot日志

create snapshot log on t1 with rowid; 这里使用ROWID建立日记的参数

2:采用Fast的方式建立快照,使用rowid做为参考参数

create snapshot fb_test_b refresh fast with rowid start with sysdate next sysdate+1/1440 as select * from fb_test_b@my_dblink;

最好能按照rowid来建立快照。要不然就必须要为表建立Primary Key。

一台mysql实例 可以创建多少mysql数据库

本质上对创建数据库没有限制,可以使用实例副本进行创建。

大多情况下,需要可靠而有效地克隆 MySQL 实例数据。这包括 MySQL 高可用的解决方案,其中需要在将实例加入组复制集群之前配置实例,或者在经典复制模型中将其添加为 Slave。

为复制拓扑而创建 MySQL 副本一直很麻烦。涉及的步骤很多,首先要备份 MySQL 服务器,通过网络将备份传输到我们想要添加到复制集的新 MySQL 节点,然后在该节点上恢复备份并手动启动 MySQL 服务器。为了高可用,最好还要将其正确设置备份的 GTID,并启动并运行群集。涉及的手动步骤数量过多不利于高可用。CLONE 插件解决了这个问题并简化了副本配置。使您可以使用 MySQL 客户端(和 SQL 命令)来配置新节点并在发生时观察克隆进度。无需手动处理多个步骤并维护自己的基础架构来配置新的 MySQL 节点。

MySQL 8.0.17 引入了 CLONE SQL 语句,使当前的 MySQL 服务器成为另一个运行在不同节点的 MySQL 服务器的“克隆”。我们将执行 clone 语句的服务器实例称为“受体”。克隆的源服务器实例称为“供体”。供体克隆以一致的快照存储在 InnoDB 存储引擎中的所有数据和元数据,以替换受体中的数据。

成功执行 CLONE SQL 语句后,将自动重新启动受体服务器。重新启动涉及恢复克隆的快照数据,就像用老方法复制数据一样。恢复完成后,受体就是供体的克隆版,随时可以使用!

这里有一些关于克隆过程的重要注意事项。

不克隆 MySQL 配置参数,并且受体保留所有原始配置参数,如克隆之前。这样做是因为许多配置可能特定于节点(例如 PORT),因此保留它们似乎是一个不错的选择。另一方面,一些存储配置确实需要在供体和受体之间匹配(例如 innodbpagesize),如果这样的配置参数不匹配,CLONE 将报告错误。

CLONE 插件不会克隆二进制日志。

CLONE 插件目前仅支持 InnoDB 存储引擎。在其他存储引擎(如 MyISAM 和 CSV)中创建的表将被克隆为空表。克隆基础架构的设计允许克隆 MySQL 支持的任何存储引擎。但是,只有 InnoDB 序列化和反序列化方法已经实现并经过测试。

克隆会阻止供体中的所有并发 DDL。

需要注意的事实是受体放弃所有数据以及任何二进制日志,以便成为供体实例的克隆。在执行 CLONE 之前,如果认为有必要,需要备份当前受体数据。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。