数据库管理员在管理数据库时,误操作数据或者数据表后,可以利用先前存在的备份将数据库恢复到误操作前,确保数据库能正常运行。
数据库要进行备份,必须开启归档文件。
命令为:
alter database mount; alter database add archivelog 'dest=/dmdata/arch ,TYPE=local,FILE_SIZE=1024,SPACE_LIMIT=102400'; alter database archivelog; alter database open; |
1.1在该库中创建表test,插入数据,接着联机备份整个库。
1.2持续向表中插入数据,接着误删除表,不记录误删除表的时间
紧接着关闭数据库,使用dmrman工具备份还原、恢复数据库 还原数据库的命令:RESTORE DATABASE '/dmdata/DAMENG/dm.ini' from backupset '/dmdata/dmbak/BAK_FULL_20211206BAK'; |
恢复数据库的db_magic: RECOVER DATABASE '/dmdata/DAMENG/dm.ini' UPDATE DB_MAGIC; |
1.3开启数据库查询数据,只有备份前的数据,新插入的数据已经消失。
1.4向表test中插入4、5、6三条新数据
1.5接着误删除表,这次记录下误操作的时间
紧接着关闭数据库,使用dmrman工具备份还原、恢复数据库 还原数据库的命令: RESTORE DATABASE '/dmdata/DAMENG/dm.ini' from backupset '/dmdata/dmbak/BAK_FULL_20211206BAK'; |
恢复数据库到指定时间点需要借助归档文件,指定时间点要往前推(上面记录时间为2021-12-07 00:02:44),这里往前推30秒, 恢复数据库的db_magic: RECOVER DATABASE '/dmdata/DAMENG/dm.ini' UPDATE DB_MAGIC; |
1.6开启数据库查询数据,误操作表前的数据也存在。