DM数据库的备份还原基础
之前学习了DM数据库的备份还原,在这里做一些基本操作的总结,以此来加深备份还原的理解,本文首先对备份还原的基本概念和分类做了总结,然后介绍了使用图形化界面如何进行备份还原,最后介绍了使用命令行如何进行备份还原。
一、备份还原概述
1.什么是备份、还原和恢复
DM备份的本质:将数据库文件中的有效数据页(数据文件的描述页+被分配使用的数据页)拷贝保存到备份集中。
DM还原的本质:将备份集中的有效数据页重新写入目标数据文件。
DM恢复的本质:通过重做归档日志,将数据库恢复到备份结束时,或指定时间点的状态。
2.备份的分类
方式 | 说明 |
---|---|
逻辑备份 | 利用dexp导出工具,将指定对象的数据导出到文件的备份方式,针对的是数据内容,不关心存储位置 |
物理备份 | 直接扫描数据库文件,找出那些已分配、使用的数据页,将其拷贝保存到备份集 |
联机备份 | 数据库处于运行状态下的备份操作 |
脱机备份 | 数据库属于关闭状态下的备份操作 |
注意:只有已经关闭的数据库才允许执行脱机备份。
3.归档的分类
联机备份数据库必须要配置归档,脱机备份数据库可配置归档也可以不配置。
方式 | 说明 |
---|---|
本地归档 | 将 Redo 日志写入到本地归档日志文件的过程 |
远程归档 | 将归档目录配置在远程节点上 |
注意:远程归档必须双向配置。否则,单向配置后远程归档会处于无效状态。
4.配置归档的步骤
4.1增加或修改归档的步骤:
- 修改数据库为 MOUNT 状态;
- 增加或修改归档;
- 开启归档模式;
- 修改数据库为 OPEN 状态。
4.2删除归档的步骤:
- 修改数据库为 MOUNT 状态;
- 关闭归档模式;
- 删除归档。
二、图形化操作备份还原
1.备份库——联机
1.1开启归档
进入bin目录下的manager工具
右键点击数据库,点击管理服务器
在系统管理中点击配置,再点击转换
然后在归档配置中选择归档,还可以点击+号新增归档备份路径。
最后回到系统管理中,将状态变为打开,点击转换,最后确定,归档配置就完成了。
1.2库备份
在备份下的库备份中,右键点击新建备份
输入备份名,点击浏览,选择保存备份的位置,选择备份类型之后点击确定。
点击确定之后基本上都会报以下这个错误:
解决办法如下:
进入disql,执行checkpoint(100);
[dmdba@LH02 bin]$ ./disql SYSDBA/SYSDBA
服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 6.007(ms)
disql V8
SQL> checkpoint(100);
DMSQL 过程已成功完成
已用时间: 155.818(毫秒). 执行号:1100.
执行完毕之后,在进新建备份页面点击确定就可以了,可以查看到在备份集目录下生成了三个备份文件。
备份完成!
2.还原库——脱机
首先停止数据库服务,进入脱机状态
[root@LH02 ~]$ systemctl stop DmServiceDMSERVER.service
然后进入bin目录下的console工具
点击备份还原——点击还原
进入如下界面,选择还原类型,选择备份集目录,点击确定。
我这里以库还原举例,选择备份集目录。
没有问题则提示还原成功!
点击确定,继续点击恢复
选择恢复类型,这里我选的是库恢复,然后点击浏览,选择备份集路径,点击确定,完成恢复。
接下来是数据库的更新,点击更新Magic
确认ini文件路径,点击确定
经过了还原,恢复和更新之后,就可以重新开启数据库服务进行使用了。
数据库的图形化界面的备份和还原到此结束!
三、命令行操作备份还原
1.配置归档
##修改数据库为 MOUNT 状态
SQL> alter database mount;
操作已执行
已用时间: 38.621(毫秒). 执行号:0.
##配置本地归档
SQL> alter database add archivelog 'DEST=/dm8/arch_1,TYPE=local,FILE_SIZE = 1024,SPACE_LIMIT = 2048';
操作已执行
已用时间: 107.006(毫秒). 执行号:0.
##开启归档模式
SQL> ALTER DATABASE ARCHIVELOG;
操作已执行
已用时间: 0.393(毫秒). 执行号:0.
##修改数据库为 OPEN 状态
SQL> ALTER DATABASE OPEN;
操作已执行
已用时间: 188.603(毫秒). 执行号:0.
2.备份数据库——联机
2.1完全备份数据库步骤如下:
- 配置归档;
- 保证数据库处于 OPEN 状态;
- DIsql 中输入备份数据库语句。
备份时,数据库必须处于 OPEN 状态。
通常情况下,配置归档后输入以下语句即可备份数据库:
##指定备份集路径为/dm8/dm_bak/bak_01的备份命令
SQL>BACKUP DATABASE BACKUPSET '/dm8/dm_dak/bak_01';
##设置备份名为full_bak01的备份命令
SQL> backup database to full_bak01 backupset '/dm8/dm_bak/bak01';
2.2完全备份(库)
关键参数:FULL
SQL>BACKUP DATABASE FULL BACKUPSET '/dm8/dm_bak/bak02';
2.3增量备份(库)
关键参数:INCREMENT WITH BACKUPDIR 来指定基备份集的搜索目录
SQL>BACKUP DATABASE INCREMENT WITH BACKUPDIR '/dm8/dm_bak/bak02' BACKUPSET '/dm8/dm_bak/bak03';
2.4归档备份(库)
归档备份的前提:
- 归档文件的 db_magic、permanent_magic 值和库的 db_magic、permanent_magic 值必须一样;
- 服务器必须配置归档;
- 归档日志必须连续。
DIsql 中输入以下即可备份归档:
SQL>BACKUP ARCHIVE LOG ALL BACKUPSET '/dm8/dm_arch/arch01';
3.还原数据库——脱机
还原三步骤:还原;恢复;更新!
3.1还原数据库
##启动bin目录下的./dmrman,校验备份
RMAN>CHECK BACKUPSET '/dm8/dm_arch/arch01';
##还原数据库
RMAN>RESTORE DATABASE '/dm8/data/DAMENG/dm.ini' FROM BACKUPSET '/dm8/dm_bak/bak03';
看见restore successful就代表还原成功!
3.2恢复数据库
还原之后要进行恢复数据库操作
RMAN>RECOVER DATABASE '/dm8/data/DAMENG/dm.ini' FROM BACKUPSET '/dm8/dm_bak/bak03';
看到recover successful就代表恢复成功!
3.3更新魔数
RMAN>RECOVER DATABASE '/dm8/data/DAMENG/dm.ini' UPDATE DB_MAGIC;
看到recover successful就代表更新魔数成功!
文本讲述了数据库在图形化和命令行两种方式的备份和还原方法。这里提到的仅仅是最基础和最常用的备份还原,关于备份还原的更多知识和操作,我会在后续的博文中继续更新,同时欢迎大家对博文中的不足进行交流指正!
四.总结
文本讲述了数据库在图形化和命令行两种方式的备份和还原方法。这里提到的仅仅是最基础和最常用的备份还原,关于备份还原的更多知识和操作,我会在后续的博文中继续更新,同时欢迎大家对博文中的不足进行交流指正!
达梦在线服务平台: https://eco.dameng.com