注册
数据库联机备份还原
技术分享/ 文章详情 /

数据库联机备份还原

陈星宇 2022/10/22 1940 1 0

数据库处于运行状态、并正常提供数据库服务情况下进行的备份操作,我们称为联机备份也叫热备。
并且因为联机备份时,大量的事务处于活动状态,为确保备份数据的一致性,需要将备份期间产生的REDO日志一起备份。
因此,只能在配置本地归档、并开启本地归档的数据库上执行联机备份。

一,准备工作
1,在数据文件目录data/DAMENG下配置dmarch.ini
[ARCHIVE_LOCAL1]
ARCH_TYPE= LOCAL #归档类型 LOCAL/REALTIME
ARCH_DEST= /dm8/data/DAMENG/arch #归档目标路径
ARCH_FILE_SIZE= 1024 #归档文件大小,单位
ARCH_SPACE_LIMIT = 10240 #单位Mb,0表示无限制,范围1024~2147483647M
Image.png
2.打开dm.ini中归档开关:ARCH_INI=1
vim /dm8/data/DAMENG/dm.ini
重启数据库服务器
./DmServiceRAC1 stop
./DmServiceRAC1 start

3.启动DMAP服务
启动DMAP服务的操作系统用户,必须和启动DM服务的操作系统用户保持一致,否则报错
cd /dm8/bin
./DmAPService start

二,联机备份
1,完全备份:备份的是数据库或者表空间全部的数据;
backup database backupset ‘/dm8/data/DAMENG/bak/db_bak_10_22’;
2,增量备份:备份上一次完全备份或者增量备份后,以后每次只备份修改过的数据页
1.差异增量备份:从数据库全备起,到当前时刻所有差异数据累积起来,进行备份;
backup database increment base on backupset ‘/dm8/data/DAMENG/bak/db_bak_10_22’ to “db_onlinebak_1” backupset ‘/dm8/data/DAMENG/bak/db_onlinebak_1’;
2.累积增量备份:从任何备份起,与当前时刻数据差异,进行备份;
backup database increment cumulative base on backupset ‘/dm8/data/DAMENG/bak/db_bak_10_22’ to “db_onlinebak_2” backupset ‘/dm8/data/DAMENG/bak/db_onlinebak_2’;

三,备份实战
1.disql连接数据库并建表插入数据
cd /dm8/bin
./disql SYSDBA/SYSDBA
create table test(id int);
insert into test values(1);
commit;
Image.png
2.在disql中执行联机完全备份数据库,执行后在/dm8/data/DAMENG/bak下生成名为db_bak_10_22的备份集
backup database backupset ‘/dm8/data/DAMENG/bak/db_bak_10_22’;
Image.png
3.删除表
drop table test;
Image.png
4.停止数据库服务器,启动dmrman工具,执行脱机还原
cd /dm8/bin
./dmrman
RESTORE DATABASE ‘/dm8/data/DAMENG/dm.ini’ FROM BACKUPSET ‘/dm8/data/DAMENG/bak/db_bak_10_22’;
Image.png
5.恢复数据库
RECOVER DATABASE ‘/dm8/data/DAMENG/dm.ini’ FROM BACKUPSET ‘/dm8/data/DAMENG/bak/db_bak_10_22’;
RECOVER DATABASE ‘/dm8/data/DAMENG/dm.ini’ UPDATE DB_MAGIC;
Image.png
6.启动数据库服务,查询表
select * from test;
Image.png

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服