数据库备份,全备份、增量备份与恢复 (4)

  热备份是在数据库运行的情况下,采用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选项,会将整个结果集中放在内存中,如果导出大数据的话可能会导致内存溢出而异常退出。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwfypy.html