1、备份与还原的概念和意义
备份的主要目的是用于后备支援,替补使用,是数据容灾的基础,在数据库发生故障时,通过还原备份集,将数据恢复到可用状态,保护数据免受意外的损失,保证数据的安全性。还原与恢复的主要目的是将目标数据库恢复到备份结束时刻的状态。
2 备份的种类
2.1、数据库备份可分为物理备份和逻辑备份
其中物理备份是指从数据库文件中拷贝有效的数据页保存到备份集。逻辑备份是指导出表结构,数据的insert语句等。
2.2、根据数据库的运行状态, 物理备份又分为联机备份和脱机备份。
联机备份,也称热备,数据库运行状态下备份,联机备份需要开归档,需要打开DmAPService服务。支持库备份、表空间备份、表备份、归档备份;脱机备份,也称冷备,指数据库关闭状态下的备份。
2.3、根据备份的完整性, 物理备份又分为完全备份和增量备份。
完全备份是指拷贝所有有效数据页,包含指定数据库和表空间所有数据; 增量备份是在基备份集基础上拷贝修改的数据页 。
2.4、增量备份包含累积增量备份和差异增量备份。
累积增量备份的基础备份是全备的备份集。而差异增量备份的备份集可以是增量备份,也可以是全备。
3、 备份还原的使用场景
3.1、人为操作造成某些数据丢失或误删除。
3.2、软件BUG 造成数据或全部丢失。
3.3、硬件故障造成数据部分或全部丢失。
3.4、安全漏洞被入侵导致数据被恶意破坏。
4、数据库归档与完全备份
4.1、创建归档目录
$ mkdir -p /dm8/arch/DM01
$ chown dmdba:dinstall /dm8/arch /dm8/arch/DM01
4.2、开启数据库归档(需要在mount状态下)
$ disql SYSDBA/DM01SYSDBA:5236
SQL> alter database mount;
SQL> alter database archivelog
SQL> select status$ from v$instance;
4.3、配置归档路径
SQL> alter database add archivelog 'DEST=/dm8/arch/DM01,TYPE=LOCAL,FILE_SIZE=64,SPACE_LIMIT=0';
SQL> select * from v$dm_arch_ini;
4.4、启动数据库
SQL> alter database open;
SQL> select status$ from v$instance;
SQL> select arch_mode from v$database;
4.5、切换归档
SQL> alter system switch logfile;
SQL> select * from SYS.V$ARCH_FILE;
4.6、修改默认备份路径
$ mkdir -p /dm8/backup
$ chown dmdba:dinstall /dm8/backup
4.7、修改dm.ini配置
$ vi /dm8/data/DM01/dm.ini
BAK_PATH = /dm8/data/DM01/bak #backup file path
修改为
BAK_PATH = /dm8/backup #backup file path
4.8、重启数据库服务
$ cd /dm8/bin
$ ./DmServiceDMSVR01 restart
$ disql SYSDBA/DM01SYSDBA:5236
SQL> select * from SYS."V$PARAMETER" t where t.NAME = 'BAK_PATH';
4.9、在线全备数据库
$ disql SYSDBA/DM01SYSDBA:5236
SQL> backup database full to DM01_Full_BAK01 backupset '/dm8/backup';
检查备份:
$ find /dm8/backup
dmrman CTLSTMT="check backupset '/dm8/backup';"
5、数据库还原
5.1 执行oper.sh脚本
# cat /opt/oper.sh
su - dmdba
/dm8/bin/DmServiceDMSVR01 stop
rm -rf /dm8/data/DM01/MAIN.DBF
5.2、停止数据库服务
$ /dm8/bin/DmServiceDMSVR01 start
$ /dm8/bin/DmServiceDMSVR01 status
5.3、恢复数据库:
/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
5.4、启动数据库服务检查
$ /dm8/bin/DmServiceDMSVR01 start
$ disql SYSDBA/DM01SYSDBA:5236
文章
阅读量
获赞