1、备份还原
备份就是数据库在某个一个时间点的副本
数据库备份的目的:为了防止天灾人祸(地震、火灾、人为误操作,硬件故障等)
备份主要有:物理备份和逻辑备份
物理备份主要备份的是使用有效的数据页,逻辑备份主要是备份的数
据库对象。
物理备份:分为联机备份和脱机备份;完全备份和增量备份。
完全备份:备份指定的数据库或者表空间的全部数据。
增量备份:是指在一次全备或增备后,以后每次的备份只需要备份与
前一次相比增加或者被修改的数据页。
备份的介质:磁盘、磁带
1.1 物理备份
冷备:不需要开启归档,针对整库做备份
需要开启 dmap 服务,需要关闭数据库实例
[dmdba@localhost bin]$ ./DmAPService status
DmAPService (pid 14437) is running.
用 dmrman 工具备份 只支持冷备
RMAN> backup database '/dm8/data/DAMENG/dm.ini' backupset
'/dm8/bakcup';
检查备份集
RMAN> check backupset '/dm8/backup';
热备:
需要开启归档,数据库需要联机
可以备份数据库、表空间、表、归档日志文件
查看数据库归档模式:
SQL> select arch_mode from v$database;行号 ARCH_MODE
---------- ---------
1 Y
Disql 工具:
整库备份:
backup database full to "full02" backupset '/dm8/backup/rb';
增量备份:
backup database increment base on backupset '/dm8/backup/rb' to
"DB_DAMENG_INCRE_2020_09_09_15_43_36" backupset
'DB_DAMENG_INCRE_2020_09_09_15_43_36';
管理工具中没有发现备份:
手动指定工作目录
表空间备份:
backup tablespace "DMHR" full to
"TS_DMHR_FULL_2020_09_09_15_47_26" backupset
'TS_DMHR_FULL_2020_09_09_15_47_26';
表备份:
backup table "DMHR"."EMPLOYEE" to
"TAB_DMHR_EMPLOYEE_2020_09_09_15_50_23" backupset
'TAB_DMHR_EMPLOYEE_2020_09_09_15_50_23';
归档日志备份:
backup archivelog all to "ARCH_2020_09_09_15_51_32" backupset
'ARCH_2020_09_09_15_51_32';
1.2 物理还原:
检查备份集
整库还原:
restore database '/dm8/data/DAMENG/dm.ini' from backupset
'/dm8/backup';
recover database '/dm8/data/DAMENG/dm.ini' with archivedir
'/dm8/arch';
recover database '/dm8/data/DAMENG/dm.ini' update db_magic;
表空间还原
表空间只能在联机模式下进行备份,脱机模式进行还原
restore database '/dm8/data/DAMENG/dm.ini' tablespace DMHR from
backupset '/dm8/backup';
recover database '/dm8/data/DAMENG/dm.ini' tablespace DMHR;
1.3 逻辑备份
Dexp/dimp
库级别
用户
模式
表
/dm8/bin
./dexp help
逻辑导出:全库导出:
[dmdba@localhost bin]$ ./dexp sysdba/dameng123 file=full.dmp
log=full.log directory=/dm8/backup full=y
[dmdba@localhost bin]$ ./dimp sysdba/dameng123 file=full.dmp
log=full_imp.log directory=/dm8/backup full=y
用户导出:
[dmdba@localhost bin]$ ./dexp sysdba/dameng123 file=test1.dmp
log=test1.log directory=/dm8/backup owner=test1
导出表:
[dmdba@localhost bin]$ ./dexp test1/dameng123 file=test_emp.dmp
directory=/dm8/backup tables=test_emp
2、作业
新建作业 1,每周三,每周日 22:00 做全备
call SP_CREATE_JOB('job1',1,0,'',0,0,'',0,'');
call SP_JOB_CONFIG_START('job1');
call SP_ADD_JOB_STEP('job1', 'b1', 5, '01000/dm8/backup', 1, 2, 0, 0,
NULL, 0);
call SP_ADD_JOB_SCHEDULE('job1', 'h1', 1, 2, 1, 9, 0, '22:00:00', NULL,
'2020-09-09 16:39:11', NULL, '');
call SP_JOB_CONFIG_COMMIT('job1');
新建作业 2,每周一、二、四、五、六 22:00 做增备
call SP_CREATE_JOB('job2',1,0,'',0,0,'',0,'');
call SP_JOB_CONFIG_START('job2');
call SP_ADD_JOB_STEP('job2', 'b2', 5,
'11000/dm8/backup|/dm8/backup/zb', 1, 2, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('job2', 'h2', 1, 2, 1, 118, 0, '22:00:00', NULL,
'2020-09-09 16:45:06', NULL, '');
call SP_JOB_CONFIG_COMMIT('job2');