数据库备份之热备,冷备,温备

备份和恢复

备份类型:
完全备份,部分备份
完全备份:整个数据集
1 部分备份:只备份数据子集,如部分库或表
完全备份、增量备份、差异备份
2增量备份:仅备份最近一次完全备份或增量备份(如果存在增量)以来变化的数据,备份较快,还原复杂
3差异备份:仅备份最近一次完全备份以来变化的数据,备份较慢,还原简单

注意:二进制日志文件不应该与数据文件放在同一磁盘

备份和恢复

冷、温、热备份
冷备:读写操作均不可进行
温备:读操作可执行;但写操作不可执行
热备:读写操作均可执行
MyISAM:温备,不支持热备
InnoDB:都支持
物理和逻辑备份
物理备份:直接复制数据文件进行备份,与存储引擎有关,占用较多的空间,速度快
逻辑备份:从数据库中“导出”数据另存而进行的备份,与存储引擎无关,占用空间少,速度慢,可能丢失精度

备份时需要考虑的因素

温备的持锁多久
备份产生的负载
备份过程的时长
恢复过程的时长

备份什么

数据
二进制日志、InnoDB的事务日志
程序代码(存储过程、函数、触发器、事件调度器)
服务器的配置文件

备份工具

cp, tar等复制归档工具:物理备份工具,适用所有存储引擎;只支持冷备;完全和部分备份
LVM的快照:先加锁,做快照后解锁,几乎热备;借助文件系统工具进行备份
mysqldump:逻辑备份工具,适用所有存储引擎,温备;支持完全或部分备份;对InnoDB存储引擎支持热备,结合binlog的增量备份
xtrabackup:由Percona提供支持对InnoDB做热备(物理备份)的工具,支持完全备份、增量备份
MariaDB Backup: 从MariaDB 10.1.26开始集成,基于PerconaXtraBackup 2.3.8实现
mysqlbackup:热备份, MySQL Enterprise Edition组件
mysqlhotcopy:PERL 语言实现,几乎冷备,仅适用于MyISAM存储引擎,使用LOCK TABLES、FLUSH TABLES和cp或scp来快速备份数据库

冷备份

有局限,需要停服务,影响生产,不建议使用。
把数据库迁移到一个干净的主机两台主机的版本一样。
步骤:
1 停干净主机的数据库服务 systemctl stop mariadb
2 进出 /var/lib/mysql/ 打包所有的文件tar -Jcvf /data/mysql.bak.tar.xz /var/lib/mysql
3 拷贝打包的文件给另一台干净主机
scp /data/mysql.bak.tar.xz 192.168.32.11:/data;为确保两边配置文件相同应该拷贝配置文件。
4 在干净主机/var/lib/mysql/下解压缩/data文件下的 mysql.bak.tar.xz文件。
5 注意解压后文件属性问题。
(注意chown -R mysql.mysql )
5 重启服务 systemctl start mariadb

基于LVM的备份

步骤:

1 fdisk /dev/sda 创建分区 m、P、n、t、w
2 partprobe 同步
3 pvcreate /dev/sda6 创建物理卷
vgcreate vg_data /dev/sda6 在设备上创建卷组 卷组名为vg_data
4 创建逻辑卷(这里要创建两个一个放数据,一个放日志)
lvcreate -n mysqldata -L 2G vg_data 名字为mysqldata 大小为2G 在vg_data 上
lvcreate -n binlog -L 4G vg_data(同上)
5查看卷组信息 lvs
6 格式化文件系统
mkfs.xfs /dev/vg_data/mysqldata
mkfs.xfs /dev/vg_data/binlog
blkid
7 创建文件用于挂载
mkdir /vg_data/{binlog,mysqldata} -pv
8 挂载
mount /dev/vg_data/binlog /vg_data/binlog/
mount /dev/vg_data/mysqldata /vg_data/mysqldata/
9 修改配置文件
vim /etc/my.cnf
innodb_file_per_table
datadir=/vg_data/mysqldata
log_bin=/vg_data/binlog/mysql-bin
10 查看文件属性 /vg_data/
ll /vg_data
chown -R mysql.mysql /vg_data
11 重启服务
systemctl restar mariadb
12 导入新数据 mysql < hellodb
13 请求锁定所有表
mysql -e ‘flush tables with read lock‘
14 记录二进制日志文件及事件位置
mysql -e ‘show master logs‘ > bin.log
cat bin.log
15创建快照 lvcreate -p r -s -n snap_mysql -L 1G /dev/vg_data/mysqldata
16释放锁 mysql -e ‘unlock tables‘
17 挂载快照卷,执行数据备份(由于uuid相同)用这个方式挂载
mount -o nouuid,norecovery /dev/vg_data/snap_mysql /mnt
18 备份完成后,删除快照卷
cp -av /mnt/* /data/
umount /mnt
lv
lvremove /dev/vg_data/snap_mysql
lvs
19 制定好策略,通过原卷备份二进制日志
cd /vg_data/binlog/ 进入二进制文件日志存放目录
mysql -e ‘show binary logs‘ 显示日志
cd /root
cat bin.log 记录备份的编号记录为7697
mysqlbinlog --start-position-7697 mysql-bin.000001 > /root/logbin.sql
导出7697后的记录为mysql-bin.000001
20 导入数据 在这之前要关闭数据库二进制数据库日志
show variables like ‘%log_bin‘;
set aql_log_bin=off;
source /root/binlog.sql; 导入数据
开启二进制日志
set sql_log_bin=on;

备份和恢复

逻辑备份工具:mysqldump, mydumper, phpMyAdmin
Schema和数据存储在一起、巨大的SQL语句、单个巨大的备份文件
mysqldump工具:客户端命令,通过mysql协议连接至mysql服务器进行备份
mysqldump [OPTIONS] database [tables]
mysqldump [OPTIONS] –B DB1 [DB2 DB3...]
mysqldump [OPTIONS] –A [OPTIONS]
mysqldump
mysqldump hellodb 只显示文本信息,如果要备份要从定向到一个文件中
mysqldump hellodb > /data/hellodb_bak.sql

mysqldump常见选项:

-A, --all-databases 备份所有数据库,含create database
-B , --databases db_name… 指定备份的数据库,包括create database语句
mysqldump -B hellodb > /data/bak_B.sql(这样文件特别大,因为是文本可以压缩)所以有以下
mysqldump -B hellodb | gzip > /data/helldb_bak.sql.gz
-E, --events:备份相关的所有event scheduler
-R, --routines:备份所有存储过程和自定义函数
--triggers:备份表相关触发器,默认启用,用--skip-triggers,不备份触发器
--default-character-set=utf8 指定字符集
--master-data[=#]: 此选项须启用二进制日志
备份二进制日志时记录二进制日志位置
1:所备份的数据之前加一条记录为CHANGE MASTER TO语句,非注释,不指定#,默认为1(涉及到主从复制)
mysqldump -A --master-data=1 > all.sql
有记录备份的位置
2:记录为注释的CHANGE MASTER
TO语句此选项会自动关闭--lock-tables功能,自动打开-x | --lock-all-tables功能(除非开启--single-transaction)
mysqldump -A --master-data=2 > all.sql
注释了备份的位置

备份和恢复

mysqldump常见选项:

-F, --flush-logs:备份前滚动日志,锁定表完成后,执行flush logs命令,生成新的二进制日志文件,配合-A 或 -B 选项时,会导致刷新多次数据库。建议在同一时刻执行转储和日志刷新,可通过和--single-transaction或-x,--master-data 一起使用实现,此时只刷新一次日志。

mysqldum -F -B hellodb > all.sql
mysql -e ‘show master logs‘;
-d, --no-data 只备份表结构
-t, --no-create-info 只备份数据,不备份create table
-n,--no-create-db 不备份create database,可被-A或-B覆盖
--flush-privileges 备份mysql或相关时需要使用 刷新权限
-f, --force 忽略SQL错误,继续执行
--hex-blob 使用十六进制符号转储二进制列,当有包括BINARY,VARBINARY,BLOB,BIT的数据类型的列时使用,避免乱码
-q, --quick 不缓存查询,直接输出,加快备份速度

分库备份脚本(一个数据库备份在一个独立的文件中)在生成中要备份mysql数据库中因为这里面放的是用户账号密码还有一些其他的、、、

(1)mysql -e ‘show databases‘ | grep -Ev ‘^Database|info|performanc‘|while read dbname;do mysqldump -B $dbname | gzip > /data/${dbname}_bak‘date +%F`.gz;done
(2)mysql -e ‘show databases‘ | grep -Ev ‘^Database|info|performanc‘ |sed -r ‘[email protected](.*)@mysqldump -B \1| gzip > /data/\1__bak‘date +%F`[email protected]‘ |bash
(3)for db in ‘mysql -e ‘show databases‘ | grep -Ev ‘^Database|info|performanc‘‘; do mysqldump -B $db |gzip > /data/${db}_bak‘date +%F`.gz;done

MyISAM备份

支持温备;不支持热备,所以必须先锁定要备份的库,而后启动备份操作
锁定方法如下:
-x,--lock-all-tables:加全局读锁,锁定所有库的所有表,同时加--singletransaction或--lock-tables选项会关闭此选项功能。
注意:数据量大时,可能会导致长时间无法并发访问数据库。
-l,--lock-tables:对于需要备份的每个数据库,在启动备份之前分别锁定其所有表,默认为on,--skip-lock-tables选项可禁用,对备份MyISAM的多个库,可能会造成数据不一致。
注:以上选项对InnoDB表一样生效,实现温备,但不推荐使用

生产环境实战备份策略

InnoDB建议备份策略
mysqldump –uroot –A –F –E –R --single-transaction --master-data=1 --flush-privileges --triggers--default-character-set=utf8 --hex-blob>$BACKUP/fullbak_$BACKUP_TIME.sql
简化:
InnoDB建议备份策略
mysqldump –uroot –A –F --single-transaction --master-data=1 --hex-blob>$BACKUP/fullbak_$BACKUP_TIME.sql
MyISAM建议备份策略
mysqldump –uroot –A –F –E –R –x --master-data=1 --flush-privileges --triggers --default-character-set=utf8 --hex-blob>$BACKUP/fullbak_$BACKUP_TIME.sql
简化
mysqldump –uroot –A –F –x --master-data=1 --hex-blob>$BACKUP/fullbak_$BACKUP_TIME.sql

实验:完全备份,并还原至最新状态

1 准备
vim /etc/my.cnf
[mysqld]
log-bin=/data/binlog/mysql-bin
datadir=/var/lib/mysql
2 备份
mysqldump -A -F --single-transaction --master-data=2 | gzip > /data/all.sql.gz
继续修改数据
3 模拟破坏
systemctl stop mariadb
rm -rf /var/lib/mysql/*
还原时禁止用户访问数据库
iptables
4 还原到备份时状态
systemctl start mariadb
gzip -d /data/all.sql.gz
mysql >set sql_log_bin=off;
source /data/all.sql;
5 还原到最新状态
grep "CHANGE MASTER" /data/all.sql 查看position mysql-bin.000002 245
cd /data/binlog/
mysqlbin --start-position=245 mysql-bin.000002 > /data/incr.sql
mysqlbin mysql-bin.000003 >> /data/incr.sql
mysqlbin mysql-bin.000004 >> /data/incr.sql
mysql > set sql_log_bin=off;
source /data/incr.sql;
set sql_log_bin=on;
6 开放用户访问数据库

实验:恢复误删除的表

1 准备,二进制日志功能启用

2 完全备份

mysqldump -A -F --single-transaction --master-data=2 |gzip > /data/all.sql.gz

3 修改数据库

4 删除表10:00

drop table testlog 删除表

5 修改数据库10:10

6 flush tables with read lock

加全局锁禁止用户访问用户数

7 还原到备份时状态

systemctl stop mariadb 停服务
rm -rf /var/lib/mysql/*
systemctl start mariadb
gzip -d /data/all.sql.gz
进入mysql
set sql_log_bin=off;
source /data/all.sql;

8 分析二进制日志,找到drop table 指令

grep -i "change master" /data/all.sql 245 mysql-bin.000002
mysqlbinlog --start-position=245 mysql-bin.000002 > /data/incr.sql
vim /data/incr.sql
找到drop table 指令,注释此指令
mysqlbinlog mysql-bin.000003 >> /data/incr.sql
mysqlbinlog mysql-bin.000004 >> /data/incr.sql

9 还原到最新状态

进入mysql
set sql_log_bin=off;
source /data/incr.sql;
set sql_log_bin=on;

10 复查数据完整

11 开放用户访问

xtrabackup 备份

Xtrabackup:percona提供的mysql数据库备份工具,惟一开源的能够对innodb和xtradb数据库进行热备的工具。

特点:

备份还原过程快速、可靠
备份过程不会打断正在执行的事务
能够基于压缩等功能节约磁盘空间和流量
自动实现备份检验
开源,免费

Xtrabackup2.2版之前包括4个可执行文件:

1 innobackupex: Perl 脚本
2 xtrabackup: C/C++ 编译的二进制
3 xbcrypt: 加解密
4 xbstream: 支持并发写的流文件格式

xtrabackup版本升级到2.4后,相比之前的2.1有了比较大的变化:innobackupex 功能全部集成到 xtrabackup 里面,只有一个binary程序,另外为了兼容考虑,innobackupex作为 xtrabackup的软链接,即xtrabackup现在支持非Innodb表备份,并且Innobackupex在下一版本中移除,建议通过xtrabackup替换innobackupex。

xtrabackup 是用来备份 InnoDB 表的,不能备份非 InnoDB 表,和 MySQLServer 没有交互。
innobackupex 脚本用来备份非 InnoDB 表,同时会调用 xtrabackup 命令来备份 InnoDB 表,还会和 MySQL Server 发送命令进行交互,如加全局读锁(FTWRL)、获取位点(SHOW SLAVE STATUS)等。即innobackupex是在xtrabackup 之上做了一层封装实现的。
虽然目前一般不用 MyISAM 表,只是 MySQL 库下的系统表是 MyISAM 的,因此备份基本都通过 innobackupex 命令进行。

Xtrabackup备份原理

备份开始时首先会开启一个后台检测进程,实时检测mysq redo的变化,一旦发现有新的日志写入,立刻将日志记入后台日志文件xtrabackup_log中,之后复制innodb的数据文件一系统表空间文件ibdatax,复制结束后,将执行flush tables with readlock,然后复制.frm MYI MYD等文件,最后执行unlocktables,最终停止xtrabackup_log

Xtrabackup增量备份介绍

xtrabackup增量备份的原理是:

1)、首先完成一个完全备份,并记录下此时检查点LSN;
2)、然后增量备份时,比较表空间中每个页的LSN是否大于上次备份的LSN,若是则备份该页并记录当前检查点的LSN。

增量备份优点:

1)、数据库太大没有足够的空间全量备份,增量备份能有效节省空间,并且效率高;
2)、支持热备份,备份过程不锁表(针对InnoDB而言),不阻塞数据库的读写;
3)、每日备份只产生少量数据,也可采用远程备份,节省本地空间;
4)、备份恢复基于文件操作,降低直接对数据库操作风险;
5)、备份效率更高,恢复效率更高。

Xtrabackup用法

备份:innobackupex [option] BACKUP-ROOT-DIR
1 --user:该选项表示备份账号
2 --password:该选项表示备份的密码
3 --host:该选项表示备份数据库的地址
4 --databases:该选项接受的参数为数据库名,如果要指定多个数据库,彼此间需要以空格隔开;如:"xtra_test dba_test",同时,在指定某数据库时,也可以只指定其中的某张表。如:"mydatabase.mytable"。该选项对innodb引擎表无效,还是会备份所有innodb表
5 --defaults-file:该选项指定从哪个文件读取MySQL配置,必须放在命令行第一个选项位置
6 --incremental:该选项表示创建一个增量备份,需要指定--incremental-basedir
7 --incremental-basedir:该选项指定为前一次全备份或增量备份的目录,与--incremental同时使用
8 --incremental-dir:该选项表示还原时增量备份的目录
9 --include=name:指定表名,格式:databasename.tablename

Prepare:innobackupex --apply-log [option] BACKUP-DIR

选项说明:

1 --apply-log:一般情况下,在备份完成后,数据尚且不能用于恢复操作,因为备份的数据中可能会包含尚未提交的事务或已经提交但尚未同步至数据文件中的事务。因此,此时数据文件仍处理不一致状态。此选项作用是通过回滚未提交的事务及同步已经提交的事务至数据文件使数据文件处于一致性状态
2 --use-memory:和--apply-log选项一起使用,当prepare 备份时,做crashrecovery分配的内存大小,单位字节,也可1MB,1M,1G,1GB等,推荐1G
3 --export:表示开启可导出单独的表之后再导入其他Mysql中
4 --redo-only:此选项在prepare base full backup,往其中合并增量备份时候使用,但不包括对最后一个增量备份的合并

Xtrabackup还原 将要还原的数据拷到数据库目录。

innobackupex --copy-back [选项] BACKUP-DIR
innobackupex --move-back [选项] [--defaults-group=GROUP-NAME]BACKUP-DIR
选项说明:
1--copy-back:做数据恢复时将备份数据文件拷贝到MySQL服务器的datadir
2--move-back:这个选项与--copy-back相似,唯一的区别是它不拷贝文件,而是移动文件到目的地。这个选项移除backup文件,用时候必须小心。使用场景:没有足够的磁盘空间同事保留数据文件和Backup副本。

还原注意事项:

1.datadir目录必须为空。除非指定innobackupex --force-non-emptydirectorires选项指定,否则--copy-backup选项不会覆盖
2.在restore之前,必须shutdown MySQL实例,不能将一个运行中的实例restore到datadir目录中
3.由于文件属性会被保留,大部分情况下需要在启动实例之前将文件的属主改为mysql,这些文件将属于创建备份的用户
chown -R mysql:mysql /data/mysql
以上需要在用户调用innobackupex之前完成

--force-non-empty-directories:指定该参数时候,使得innobackupex --
copy-back或--move-back选项转移文件到非空目录,已存在的文件不会被覆
盖。如果--copy-back和--move-back文件需要从备份目录拷贝一个在
datadir已经存在的文件,会报错失败

备份生成的相关文件

使用innobakupex备份时,其会调用xtrabackup备份所有的InnoDB表,复制所有关于表结构定义的相关文件(.frm)、以及MyISAM、MERGE、CSV和ARCHIVE表的相关文件,同时还会备份触发器和数据库配置信息相关的文件。这些文件会被保存至一个以时间命名的目录中,在备份时,innobackupex还会在备份目录中创建如下文件:
(1)xtrabackup_info:innobackupex工具执行时的相关信息,包括版本,备份选项,备份时长,备份LSN(log sequence number日志序列号),BINLOG的位置
(2)xtrabackup_checkpoints:备份类型(如完全或增量)、备份状态(如是否已经为prepared状态)和LSN范围信息,每个InnoDB页(通常为16k大小)都会包含一个日志序列号LSN。LSN是整个数据库系统的系统版本号,每个页面相关的LSN能够表明此页面最近是如何发生改变的
(3)xtrabackup_binlog_info:MySQL服务器当前正在使用的二进制日志文件及至备份这一刻为止二进制日志事件的位置,可利用实现基于binlog的恢复
(4)backup-my.cnf:备份命令用到的配置选项信息
(5)xtrabackup_logfile:备份生成的日志文件

示例:旧版Xtrabackup完全备份及还原

1 在原主机innobackupex --user=root /backups
scp -r /backups/2018-02-23_11-55-57/目标主机:/data/
2 在目标主机

innobackupex --apply-log /data/2018-02-23_11-55-57/

systemctl stop mariadb
rm -rf /var/lib/mysql/*

innobackupex --copy-back /data/2018-02-23_11-55-57/

chown -R mysql.mysql /var/lib/mysql/

systemctl start mariadb

示例:新版Xtrabackup完全备份及还原

mkdir /backups 创建文件夹
1 在原主机做完全备份到/backups下
xtrabackup --backup --target-dir=/backups/
scp -r /backups/* 目标主机:/backups
2 在目标主机上
1)预准备:确保数据一致,提交完成的事务,回滚未完成的事务
xtrabackup --prepare --target-dir=/backups/
2)复制到数据库目录
注意:数据库目录必须为空,MySQL服务不能启动
xtrabackup --copy-back --target-dir=/backups/
3)还原属性
chown -R mysql:mysql /var/lib/mysql
4)启动服务
systemctl start mariadb

Xtrabackup安装

下载安装xtrabackup

wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.9/binary/redhat/6/x86_64/Percona-XtraBackup-2.4.9-ra467167cdd4-el6-x86_64-bundle.tar
yum 安装 yum install percona-xtrabackup-24-2.4.9-1.el6.x86_64.rpm -y
which xtrabackup 路径
innobackupex -v 显示版本

创建测试数据

mysql> create database test;

Query OK, 1 row affected (0.00 sec)

mysql> use test;

Database changed

mysql> create table T1 (name varchar(10) not null,sex varchar(10) not null);

Query OK, 0 rows affected (0.15 sec)

mysql> insert into T1 values(‘zhang‘,‘man‘);

Query OK, 1 row affected (0.01 sec)

mysql> insert into T1 values(‘zhan‘,‘man‘);

Query OK, 1 row affected (0.01 sec)

mysql> insert into T1 values(‘sun‘,‘woman‘);

Query OK, 1 row affected (0.00 sec)

新版Xtrabackup完全,增量备份及还原

1 备份过程

备份过程生成三个备份目录

mkdir /backups
mkdir /backups/{base,inc1,inc2}
tree /backups/{base,inc1,inc2}
1)完全备份:xtrabackup --backup --target-dir=/backups/base
2)第一次修改数据
3)第一次增量备份
xtrabackup --backup --target-dir=/backups/inc1 --incrementalbasedir=/backups/base
4)第二次修改数据
5)第二次增量
xtrabackup --backup --target-dir=/backups/inc2 --incrementalbasedir=/backups/inc1
6)scp -r /backups/* 目标主机:/backups/

2还原过程

1)预准备完成备份,此选项--apply-log-only阻止回滚未提完成的事务
xtrabackup --prepare --apply-log-only --target-dir=/backups/base
2)合并第1次增量备份到完全备份,
xtrabackup --prepare --apply-log-only --target-dir=/backups/base --incremental-dir=/backups/inc1
3)合并第2次增量备份到完全备份:最后一次还原不需要加选项--apply-log-only
xtrabackup --prepare --target-dir=/backups/base --incremental-dir=/backups/inc2
4)复制到数据库目录,注意数据库目录必须为空,MySQL服务不能启动
xtrabackup --copy-back --target-dir=/data/backups/base
5)还原属性:chown -R mysql:mysql /var/lib/mysql
6)启动服务:systemctl start mariadb

Xtrabackup单表导出和导入

1 单表备份

innobackupex --include=‘hellodb.students‘ /backups

2备份表结构

mysql -e ‘show create table hellodb.students‘ > student.sql

3删除表

mysql -e ‘drop table hellodb.students‘
4 innobackupex --apply-log --export /backups/2018-02-23_15-03-23/
5 创建表
mysql>CREATE TABLE students (StuID int(10) unsigned NOT NULL AUTO_INCREMENT,Name varchar(50) NOT NULL,Age tinyint(3) unsigned NOT NULL,Gender enum(‘F‘,‘M‘) NOT NULL,ClassID tinyint(3) unsigned DEFAULT NULL,TeacherID int(10) unsigned DEFAULT NULL,PRIMARY KEY (StuID)) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8
6 删除表空间
alter table students discard tablespace;
7 cp /backups/2018-02-23_15-03-23/hellodb/students.{cfg,exp,ibd}/var/lib/mysql/hellodb/
8 chown -R mysql.mysql /var/lib/mysql/hellodb/
9 mysql>alter table students import tablespace;

原文地址:http://blog.51cto.com/13958408/2309624

时间: 2024-10-14 01:33:34

数据库备份之热备,冷备,温备的相关文章

MariaDB数据库备份恢复之(二): 基于LVM逻辑卷快照实现数据库的几乎热备

数据库物理备份就是拷贝数据库数据文件,但是需要考虑的问题也有: 需要确保数据文件的时间一致性? 1.冷备:停止数据库,实现物理备份; 但是一个真正生产数据库不能实现离线操作,那我们就可以通过数据库的主从复制实现: 主数据库服务器的数据同步到从服务器,而我们在主从复制中从服务器停止数据库是不会影响业务的,就能够实现物理备份:备份完成从服务器上线后会自动从主服务器同步数据:这是一种理想的备份方案: 2.第二种方法是基于LVM2的快照实现数据库的备份,可以实现几乎热备, 前提数据库数据必须放置在物理卷

????双机热备数据库备份脚本 v2.1

Text /* THIS4.0 数据库备份脚本 [作者] Rulition QQ:7355157 [版本] v2.1 [修改] 2010年5月21日15:35:13 完成 2010年5月24日11:35:13 细节修改 2010年5月25日11:31:13 增加[完整备份]前的一致性检查 2010年5月27日10:31:13 检查差异备份的大小,避免过大文件影响差异备份. 2010年5月28日11:14:15 补备份时查看最近是否已做过完全备份. 2010年10月17日21:58:32 切换@备

MySql数据库双主(双向)同步实现数据库双主热备

MySql数据库双主(双向)同步实现数据库双主热备配置步骤有一点复杂,大家一定要看清楚每一步小细节哦,希望文章对各位会带来帮助呀. 之前写过一篇 mysql Master Slave主从同步(复制)配置,属于数据库备份级别的.现在的需求是,两台服务器上都装有数据库,为了防止某一服务器出现问题而影响业务的运行,需要准备两台服务器分别运行mysql,且需要两台服务器的数据是保持同步的.也就是现在要说的mysql双向同步,实现数据库主备模式. 基础环境 操作服务器系统:Ubuntu 12.04 64-

shell判断oracle主备数据库备份脚本

1. 脚本如下 说明:按照客户要求,在主备数据库上同时部署脚本,自动判断是否是主库,如果是主库则进行备份,备库不需要备份,记录日志为备份库即可,以下脚本仅供参考,可以进一步优化. 脚本说明: 1.DATABASE_ROLE查看主备库角色变量 2.Main()函数 数据库备份脚本 3.根据主备库关键字判断是否执行main()函数 #!/bin/bash # Author:roidba # filename:/backup/backup.sh #logfile:/backup/rman_fullba

Oracle数据库备份工具——UCache企业级灾备云

UCache企业级灾备云以WEB平台的方式,向企业提供面向云端.虚拟和物理环境下的数据.平台.应用备份/恢复的云服务平台.向企业提供面向云端.虚拟和物理环境下的数据.平台.应用备份/恢复的云服务平台的数据级和应用级的备份与恢复.UCache企业级灾备云除了可以当作Oracle数据库备份工具,其实他的适用范围还不止这些,还包括:一.作为支持各种版本操作系统的数据备份/恢复的工具:1.Windows2000版本PC电脑端操作系统的数据实时.定时自动备份/恢复工具2.WindowsXP版本PC电脑端操

数据库备份/恢复-企业级云灾备

使用UCACHE灾备云进行Oracle实时复制数据.搬迁数据功能来设计Oracle数据库备份/恢复解决方案,支持定时备份.实时备份,增量备份,同时可开展异地灾备,是Oracle数据库灾备/恢复的完美解决方案. Oracle数据库系统是美国 Oracle 公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,目前最流行的客户 服务器 (CLIENT/ 或 B/S 体系结构的数据库之一 ,Oracle 数据库本身提供了对数据库物理文件进行冷备份和在线备份两种方式.在线备份类型包括:完全备份.差异

SQL server数据库备份还原问题备忘(亲测有效)

问题一:SQL server数据库备份还原方法 http://www.cnblogs.com/zgqys1980/archive/2012/07/04/2576382.html 问题二:无法执行 BACKUP LOG,因为当前没有数据库备份 http://blog.csdn.net/aojiancc2/article/details/46316451 问题三:还原数据库失败 备份集中数据库备份与现有数据库不同 http://jingyan.baidu.com/article/fb48e8be52

MySQL数据库备份、恢复知识储备

目录 1.备份目的 2.备份类型 3.备份对象 4.备份工具 5.备份的一般操作流程 6.数据恢复的一般操作流程 7.备份工具 1.备份目的 备份的目的是为了数据还原和恢复数据,备份只是一种手段,还原和恢复才是目的.对备份的数据要做定期的恢复测试,已确保备份的可用性. 2.备份类型 备份类型可以从三个维度来说明,一是根据数据库是否需要离线来划分,二是根据备份数据的范围来划分,三是根据备份的是数据文件还是SQL语句文件来划分. 2.1.根据数据库是否需要离线来划分: a).冷备:cold back

mysql数据库备份方法总结

今天有点时间,自己总结下mysql备份的几种方法以备查阅! 生产环境中数据无疑是一个公司的命脉,作为一个运维工程师无法保证企业数据的安全,那么是一个不合格的工程师.我们如何保证数据不丢失.或者丢失后快速恢复呢?下面介绍mysql数据库备份和恢复方法. MYSQL基础知识总结 1.为什么需要备份数据? 生成环境中我们的数据库可能会遭遇各种各样的不测导致数据丢失,大概有几种情况(硬件故障.软件故障.自然灾害.黑客攻击.误操作(占比最大))所以,为了在数据丢失后能恢复数据,我们就必须定期备份数据,备份