图片 15

使用java实现数据库编程,恢复和复制的需要

1. 恢复和复制的需要,对innodb锁机制的影响

备份术语的术语表

第一章:

  mysql
通过binlog文件对增删除改等更新数据的sql语句,实现数据库的恢复和主从复制。mysql的恢复机制(复制其实就是在slave
mysql不断做基于binglog的恢复)特点有如下:
  (1) mysql 的恢复是sql语句级的,也就是重新执行binlog中的sql语句,
oracle数据库则是基于数据库文件块的。
  (2) mysql
的binlog是按照事务提交的先后顺序记录的,恢复也是按这个顺序进行的。这也与oracle不同,oracle是按照系统更新号(SCN)来恢复数据的。

备份

 创建备份的过程,方法是通过复制 SQL
Server 数据库中的数据记录或复制其事务日志中的日志记录。备份 可用于在出现故障后还原或恢复数据的数据副本。 数据库备份还可用于将数据库副本还原到新位置。

entity  实体

2.  insert into 和create table对于原表也会加共享锁
 
 下面演示原表加锁的例子:

备份设备

要写入 SQL Server
备份及能从中还原这些备份的磁盘或磁带设备。 SQL Server 备份也可以写入 Microsoft Azure Blob
存储服务,并且使用 URL 格式来指定备份文件的目标和名称。 有关详细信息,请参阅 使用 Microsoft Azure Blob
存储服务进行 SQL Server 备份和还原。

relationship  关系

会话1

会话2

SET autocommit=0;

SELECT * FROM city WHERE CityCode=’003′

city_id      country_id        cityname CityCode

103  2       杭州         003

SET autocommit=0;

SELECT * FROM city WHERE CityCode=’003′

city_id      country_id        cityname CityCode

103  2       杭州         003

INSERT INTO  cityNew

SELECT  * FROM city WHERE CityCode=’003′

共 1 行受到影响

 

 

UPDATE city SET CityCode=’004′ WHERE CityCode=’003′

等待超时

Lock wait timeout exceeded; try restarting transaction

Commit;

 

 

Commit;

备份介质

已写入一个或多个备份的一个或多个磁带或磁盘文件。

diagram  图表 

  上面的例子中,只是简单的读取city表,相当于一个普通的select
语句,在这里innodb给city表加了共享锁,并有使用多版本数据一致性技术。原因还是为了保证恢复和复制的正确性,因为不加锁,上述语句的执行过程中,其他事务对city表做了更新操作,可能导致数据恢复结果错误。如需要演示这种可以将系统变量
innodb_locks_unsafe_for_binlog的值设置为”NO”不加共享锁(set
innodb_locks_unsafe_for_binlog=’on’) 默认是”OFF”
。如果设置上面的值为ON,
可能会使Binlog中记录的sql执行顺序不一致,使用恢复的结果与实际的应用逻辑不符,如果进行复制,就会导致主从数据库不一致。
  如果不想设置为ON,又不希望对源表的并发更新产生影响,可以使用 into
outfile 将city表导入到一个txt文件,再使用load data infile
导入到新表。使用这种间接方式不会对源city表加锁。

数据备份 (data backup)

完整数据库的数据备份(数据库备份)、部分数据库的数据备份(部分备份)或一组数据文件或文件组的数据备份(文件备份)。

model 模型

 

数据库备份 (database backup)

数据库的备份:完整数据库备份表示备份完成时的整个数据库。 差异数据库备份只包含自最近完整备份以来对数据库所做的更改。

normal   规范的

完整备份 (full backup)

一种数据备份,包含特定数据库或者一组特定的文件组或文件中的所有数据,以及可以恢复这些数据的足够的日志。

formate  形式

使用SSMS数据库管理工具备份数据库

打开数据库管理工具,选择要备份的数据库-》右键点击-》选择任务-》选择备份-》数据库管理工具默认是完整备份,不用修改其他配置-》找到目标,删除当前文件-》选择添加-》在选择备份目标弹出框中点击选择路径-》选择路径-》在定位数据库文件弹出框中输入文件名-》最后在备份数据库文件框中点击确定

图片 1

图片 2

图片 3

 图片 4

 

图片 5

图片 6

hotel  旅馆

使用SSMS数据库管理工具还原数据库

打开数据库管理工具,连接数据库-》右键点击数据库-》选择还原数据库-》在还原数据库弹出框选择设备,点击右边的选择文件按钮-》在选择备份设备弹出框中,点击添加-》在定位备份文件中,选择你要还原的文件,点击确定-》在选择备份设备弹出框中,点击确定-》在还原数据库弹出框选择设备,点击确定-》刷新数据库即可看到

图片 7

图片 8

图片 9

 

图片 10

 图片 11

图片 12

guest  客人

使用T-SQL脚本备份数据库

本分数据库语法:backup database 数据库名
to disk=路径;

示例:backup database testss to
disk=’D:\SqlTest\backup\testss.bak’;

图片 13

图片 14

 

promation 提升 推广

使用T-SQL脚本还原数据库

 

还原数据库语法:   restore database
数据库名 from disk=完整路径;

示例:restore database testss from
disk=’D:\SqlTest\backup\testss.bak’;

图片 15

state  状态

 总结

优点:1、这种模式下,所有数据库操作都被完整地记录在日志中,出现某些操作在这种模式下也还是最小化日志,并且不是自动截断,它支持任何备份还原策略,特别是时间点还原。

         
 2、能够完整记录数据库操作进行时间点恢复,保证数据尽可能0丢失。

缺点:1、需要严格管理事务日志文件。

     
2、数据库规模可能会变得难以控制。

type  类型

 

第二章:

networking 网络

option 选择的

port   端口号

firewall  防火墙

engine   引擎

standard  标准

character  字符

collation  校对

storage   存储

create  创建

drop  删除

comment  注释

variables  可变的、变量

 

 

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

标签:
网站地图xml地图