注册
浅析达梦数据库热(联机)备份和冷(脱机)备份
培训园地/ 文章详情 /

浅析达梦数据库热(联机)备份和冷(脱机)备份

2022/11/16 1828 2 0

一、基础知识

1. 什么是备份和还原

在达梦数据库中,数据是存储于数据库的物理数据文件中,页是数据存储的基本单元,任何对DM数据库的操作,其根本是对某个数据文件页的操作,所以备份的本质就是将数据文件中的有效页复制保存到备份集中,有效数据页就包括了数据文件的描述页和被分配使用的数据页;在数据库服务器运行的情况下,对数据库的操作是不会立即体现到数据文件中的,而是会先以日志的形式写入到归档日志中,所以在数据库还在运行的情况下备份,需要将备份过程中产生的归档日志也保存到备份集中,便于之后可以通过备份集中的归档日志进行还原。还原是备份的逆过程,它是将备份数据集中的有效数据页重新写入到数据库文件的过程;恢复是通过重做归档日志,可将数据库状态恢复到任意指定的时间点的状态,包括备份结束时的状态。

2. 备份还原的作用

备份的主要是起到数据容灾的作用,是当数据库在发生故障时,能保证数据安全的一种有效的手段;通过对备份集数据的还原,就可以将数据恢复到数据库故障前的状态。

3.热备和冷备

数据服务器在运行状态并能正常提供数据库服务的情况下进行的备份操作,叫联机备份,也称热备;在热备期间,为了保证数据的一致性不被破坏,是需要将这期间产生的REDO日志也一起备份,因此,只能在配置本地归档,并开启本地归档的数据库上进行热备;热备可以通过客户端工具连接到数据库实例后,执行相关的SQL语句进行;也可以通过配置作业,自动定时备份,使用较为方便且不影响数据库的正常运行,因此热备是最常用的备份手段。

数据库处于关闭状态下进行备份叫脱机备份,也称冷备;冷备是得要在数据库关闭情况下才能进行的备份,不然系统会报错,所以在冷备前先需检查数据库是否已关闭;

二、实际操作

1.热备份(联机备份)
方法一:

进入到安装路径的bin目录下,开启DMAP服务和数据库服务:
./DmAPService start # 开启DMAP服务;
./DmService start # 开启数据库服务;
开启数据库归档模式:
./disql SYSDBA/Dameng123@192.168.0.1:5236 # 进入disql;
alter database mount; # 将数据库切换成mount模式;
alter database add archivelog ‘dest=/dm8/dmarch,TYPE=local,FILE_SIZE=1024 SPACE_LIMIT=102400’;
alter database archivelog;
alter database open;

方法二:

与dm.ini同一个目录下,修改或新建一个dmarch.ini文件;
vim /dm8/dmdbms/data/DAMENG/dmarch.ini

添加以下内容:
[ARCHIVE_LOCAL1]

ARCH_TYPE=local

ARCH_DEST=/dm8/dmarch

ARCH_FILE_SIZE=1024

ARCH_SPACE_LIMIT=102400

修改dm.ini设置参数:
ARCH_INI=1 # 开启归档日志;

开启数据库:
./DmService start # 打开数据库服务
ps -ef | grep dmserver # 查看数据库的进程及安装目录;

然后使用数据库全备份或者相应备份模式,如全备份:
./disql SYSDBA/Dameng123@192.168.0.1:5236 # 进入disql工具;
backup database full backupset ‘/dm8/dmbakup/dbfull’;

最后使用RMAN工具备份还原数据库:
./dmrman # 进入到RMAN工具:
backup database full backupset ‘/dm8/dmbakup/dbfull’; # 备份库;
check backupset ‘/dm8/dmbakup/dbfull’; # 校验备份集的合法性;
restore database ‘/dm8/dmdbms/data/DAMENG/dm.ini’ from backupset ‘/dm8/dmbakup/dbfull ’; # 还原数据库;
2.脱机备份

(1)脱机备份数据库:
在安装路径的bin目录下,关闭数据库服务,启动DMAP服务:
./DmService stop # 关闭数据库服务;
./DmAPService start # 启动DMAP服务;
ps -ef | grep dmap # 查看DMAP服务是否启动;
./dmrman # 进入RMAN工具;
Backup database ‘/dm8/dmdbms/data/DAMENG/dm.ini’ backupset ‘/dm8/dmbakup/dbfull’; # 执行全库备份;
(2)还原数据库:

在开启DMAP服务后,进入RMAN工具:
./dmrman # 进入RMAN工具;
Restore database ‘/home/dmdba/dmdbms/data/DAMENG/dm.ini’ from backupset ‘/home/dmdba/dmbakup/dbfull’; # 执行restore语句;

Recover database ‘/home/dmdba/dmdbms/data/DAMENG/dm.ini’ from backupset ‘/home/dmdba/dmbakup/dbfull’; # 执行recover语句;

Recover database ‘/home/dmdba/dmdbms/data/DAMENG/dm.ini’ update db_magic; # 执行recover update db_magic语句;

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服