注册
DCP学习心得-备份恢复
培训园地/ 文章详情 /

DCP学习心得-备份恢复

paradox 2025/04/15 162 0 0

DCP学习心得-备份恢复的重要性
在数据库运维工作中一项关键工作就是按照业务重要性程度制定定时的备份作业,备份还原的基础在于有定期备份可供还原。下面从制定备份作业、模拟数据文件丢失、使用备份恢复进行展示备份恢复的过程。
一、创建数据库完全备份
(1)对数据库做完全备份,备份存放路径为/dm8/backup,要求可以把数据库还原到任何一个时刻。(5分)
1、创建归档目录和备份目录
创建归档目录
[root@localhost ~]# su dmdba
[dmdba@localhost root]$ mkdir -p /dm8/arch/DM01
创建备份目录
[dmdba@localhost root]$ cd /dm8/
[dmdba@localhost dm8]$ mkdir backup
2、设置归档
localhost右键管理服务器--系统管理--选择“配置”,点击“转换”--选择归档配置,选择归档,选择归档目录,确认
系统管理,选择打开,转换,确认。
3、创建备份
备份--库备份--右键指定工作目录--新建条目选择/dm8/backup
备份--库备份--新建备份
4、修改默认备份路径
$ mkdir -p /dm8/backup
$ chown dmdba:dinstall /dm8/backup
$ vi /dm8/data/DM01/dm.ini
BAK_PATH = /dm8/data/DM01/bak #backup file path
修改为
BAK_PATH = /dm8/backup #backup file path

二、暂停实例并模拟数据库主要数据文件丢失
su - dmdba
/dm8/bin/DmServiceDMSVR01 stop
rm -rf /dm8/data/DM01/MAIN.DBF

三、数据库备份恢复
/dm8/bin/dmrman
RESTORE DATABASE '/dm8/data/DM01/dm.ini' FROM BACKUPSET '/dm8/backup'
RECOVER DATABASE '/dm8/data/DM01/dm.ini' FROM BACKUPSET '/dm8/backup'
RECOVER DATABASE '/dm8/data/DM01/dm.ini' UPDATE DB_MAGIC
$ /dm8/bin/DmServiceDMSVR01 start
$ disql SYSDBA/DM01SYSDBA:5236

四、定时备份
平常业务工作中,备份需要考虑备份类型以及备份的大小综合考虑。假设某个业务系统是每天晚上做一次完全备份,同时也要考虑到备份目录的大小,对以往的备份进行清理。以下面例子为例,
1、 创建一个定时完全备份的案例

disql SYSDBA/DM01SYSDBA:5236
创建代理环境
SQL> call SP_INIT_JOB_SYS(1);
SQL> call SP_CREATE_JOB('JOB_BAK',1,0,'',0,0,'',0,'full database backup every Wednesday night at 21:00');
SQL> call SP_JOB_CONFIG_START('JOB_BAK');
SQL> call SP_ADD_JOB_STEP('JOB_BAK', 'S1', 6, '00000000/dm8/backup', 0, 0, 0, 0, NULL, 0);
SQL> call SP_ADD_JOB_SCHEDULE('JOB_BAK', 's1', 1, 2, 1, 8, 0, '21:00:00', NULL, '2024-05-29 14:21:50', NULL, '');
SQL> call SP_JOB_CONFIG_COMMIT('JOB_BAK');

2、 定时删除8天之前的备份
SQL> call SP_CREATE_JOB('JOB_REMOVE',1,0,'',0,0,'',0,'delete backup files before 8 days');
SQL> call SP_JOB_CONFIG_START('JOB_REMOVE');
SQL> call SP_ADD_JOB_STEP('JOB_REMOVE', 'S1', 0, 'sf_bakset_backup_dir_add(''DISK'',''/dm8/backup''); sp_db_bakset_remove_batch(''DISK'',now()-8);', 0, 0, 0, 0, NULL, 0);
SQL> call SP_ADD_JOB_SCHEDULE('JOB_REMOVE', 'S1', 1, 1, 1, 0, 0, '20:00:00', NULL, '2024-05-29 20:13:35', NULL, '');
SQL> call SP_JOB_CONFIG_COMMIT('JOB_REMOVE');

总结:
对于数据库运维工作来说,数据库备份至关重要,备份的工作需要形成闭环。注意在生产环境做删除操作上之前需要进行备份操作,以免回退不到原来的地方。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服