注册
数据库完全备份与还原
专栏/培训园地/ 文章详情 /

数据库完全备份与还原

阳光不锈 2025/02/07 187 0 0
摘要

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
评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服