根据归档日志恢复到指定时间点的数据

1、备份简单介绍

       数据库备份还原的作用就是防止误操作,天灾,设备故障,软件故障导致的数据丢失,保障数据的安全可用。在DM数据库常用的备份方式有逻辑备份和物理备份,物理备份又可以分为脱机备份(冷备)和联机备份(热备),联机备份又可以分为全量备份和增量备份。

2、归档日志简介

        归档日志文件,就是在归档模式下,重做日志被连续写入到归档日志后,就生成了归档日志文件。归档日志文件以归档时间命名。但只有在归档模式下运行时,DM数据库才会将重做日志写入到归档日志文件中。数据库系统在归档模式下运行会更安全,当出现故障时其丢失数据的可能性更小,这是因为一旦出现介质故障,如磁盘损坏时,利用归档日志,系统可被恢复至故障发生的前一刻,也可以还原到指定的时间点,而如果没有归档日志文件,则只能利用备份进行恢复。归档日志文件还是数据守护功能的核心,数据守护中的备库就是通过重做归档日志中的REDO日志来完成与主库的数据同步的。

3、实际案例演示

 数据库在每天中午14点进行全库备份,假如在15点左右误操作删除库中某些表,但是在这期间仍然会有数据产生。面对这种情况,可以使用全库备份先回复14点前所有的数据库,再使用归档日志恢复备份到误操作期间的数据。具体操作如下:

3.1、联机备份全库中所有的数据(热备的方式)

mysql数据库归档日志在哪个目录下 数据库归档日志作用_数据库

3.2、制造测试数据产生归档日志(刷日志内容)

SQL> CREATE TABLE STUDENT(ID INT,NAME VARCHAR(13));
SQL> INSERT INTO STUDENT VALUES(1,’AAAA’);
SQL> INSERT INTO STUDENT VALUES(2,’BBBB’);
SQL> COMMIT;

3.3、删除数据来模拟故障并记录故障前时间

SQL> DROP TABLE STUDENT;

mysql数据库归档日志在哪个目录下 数据库归档日志作用_mysql数据库归档日志在哪个目录下_02


3.4、使用备份和归档日志还原到指定时间点

先停数据库

/opt/dmdbms/bin/DmServiceDMSERVER stop


启动dmrman工具,还原到备份是的状态

RMAN> restore database ‘/opt/dmdbms/data/DAMENG/dm.ini’ from backupset ‘backup-0922’


mysql数据库归档日志在哪个目录下 数据库归档日志作用_数据_03


归档日志将数据库恢复到指定时间点

RMAN> recover database ‘/opt/dmdbms/data/DAMENG/dm.ini’ with archivedir

‘/opt/dmdbms/arch’ until time 2021-09-25 15:46:01


mysql数据库归档日志在哪个目录下 数据库归档日志作用_数据库_04


更新数据库

RMAN> recover database ‘/opt/dmdbms/data/DAMENG/dm.ini’ update db_magic;

mysql数据库归档日志在哪个目录下 数据库归档日志作用_数据_05


3.5、在启动数据库并查看表中数据已经恢复

mysql数据库归档日志在哪个目录下 数据库归档日志作用_数据_06