热备份是在数据库运行的情况下,采用archivelog mode方式备份数据库的方法。所以,如果你有昨天夜里的一个冷备份而且又有今天的热备份文件,在发生问题时,就可以利用这些资料恢复更多的信息。热备份要求数据库在Archivelog方式下操作,并需要大量的档案空间。一旦数据库运行在archivelog状态下,就可以做备份了。热备份的命令文件由三部分组成:
1. 数据文件一个表空间一个表空间的备份。
(1) 设置表空间为备份状态
(2) 备份表空间的数据文件
(3) 回复表空间为正常状态
2. 备份归档log文件
(1) 临时停止归档进程
(2) log下那些在archive rede log目标目录中的文件
(3) 重新启动archive进程
(4) 备份归档的redo log文件
3. 用alter database bachup controlfile命令来备份控制文件
热备份的优点是:
1. 可在表空间或数据库文件级备份,备份的时间短。
2. 备份时数据库仍可使用。
3. 可达到秒级恢复(恢复到某一时间点上)。
4. 可对几乎所有数据库实体做恢复
5. 恢复是快速的,在大多数情况下爱数据库仍工作时恢复。
热备份的不足是:
1. 不能出错,否则后果严重
2. 若热备份不成功,所得结果不可用于时间点的恢复
3. 因难于维护,所以要特别仔细小心,不允许“以失败告终”
与数据库备份和还原相关的两个重要的文件夹:
……\Microsoft SQL Server\MSSQL.1\MSSQL\Backup
-------存放备份的数据文件
……\Microsoft SQL Server\MSSQL.1\MSSQL\Data
--------存放.mdf和.ldf文件
1.4、通过sql server的命令来备份还原数据库
我们通常备份数据库时,需要通过sql server客户端登录数据库服务器去备份和恢复,这样很不方便,其实SQL SERVER自带的命令就可以备份和还原数据库。这些命令可以在sql server客户端的sql脚本窗口直接执行,也可以很通过ADO.Net调用这些命令实现远程备份和恢复数据库。
(1)、备份还原数据库的命令
备份:
BACKUP DATABASE\'被备份的数据库名\'TO DISK = \'备份文件路径\';
--注意:被备份的数据库名必须是存在的,否则会出错
还原:
--将数据库置于离线状态
ALTER DATABASE\'被恢复的数据库名\'SET OFFLINE WITH ROlLBACK IMMEDIATE;
--恢复数据库
RESTORE DATABASE \'被恢复的数据库名\'FROM DISK = \'还原文件路径(源文件)\';
--将数据库置于在线状态
ALTER DATABASE\'被恢复的数据库名\'SET ONLINE WITH ROlLBACK IMMEDIATE;
--注意:被恢复的数据库名必须是存在的,并且该数据库将会被覆盖掉,还原文件路径(源文件)必须是存在的,另外,在执行前后的两个ALTER语句的时候,所选择的数据库必须是master,
有时候为了保险起见,ALTER语句可以不要。
(2)、命令应用
A、可以直接在sql server客户端的sql窗体中执行命令。
B、可以在数据库上写存储过程,然后配置JOB,定期调用这个存储过程。
C、通过应用程序的ADO.NET来执行这些命令或者命令组成的存储过程,实现应用程序控制备份还原数据库,这些应用程序可以写成服务,定期调用。
---------------------
https://blog.csdn.net/lcl_xiaowugui/article/details/81541357
MySQL数据库最常用的备份方法如下:
直接cp备份
sqlhotcopy备份
主从同步复制
Mysqldump备份
xtrabackup备份
二、mysqldump备份
通常小于100GB的MySQL数据库可以使用mysqldump备份工具进行备份,如果是超过100GB的数据,由于mysqldump备份方式采用的是逻辑备份,最大的缺陷是备份和恢复速度较慢。
基于mysqldump备份耗时会比较长,而且备份期间会锁表,锁表直接导致数据库只能访问select,不能执行insert、update等操作,进而导致部分web应用无法写入新数据。
如果数据库采用的是MyISAM引擎,可以执行参数--lock-tables=false禁用锁表,但是有可能造成数据信息不一致。
如果是支持事务的表,例如InnoDB,--single-transaction参数不支持锁定表,具体使用为mysqldump -uroot -p123456 --all-databases --opt --single-tarnsaction > tt.sql,--opt选项可以让mysqldump快速导出数据,并且可以很快导回。该选项默认开启,但是可以使用--skip-opt禁用。
如果运行mysqldump没有指定–quick或–opt选项,会将整个结果集中放在内存中,如果导出大数据的话可能会导致内存溢出而异常退出。