数据库备份是 DBA 日常最重要的工作内容。备份的主要目的是数据容灾,保证数据的安全性,在数据库发生故障时,通过还原备份集,将数据恢复到可用状态。
DM8支持物理备份、逻辑备份, 物理备份直接扫描数据库文件,找出那些已经分配、使用的数据页,拷贝并保存到备份集中。
逻辑备份是指利用 dexp/dexdp 导出工具,将指定对象(库级、模式级、表级)的数据导出到文件的备份方式。逻辑备份针对的是数据内容,并不关心这些数据物理存储在什么位置。
一、物理备份
物理备份,分为联机备份与脱机备份
1.全量备份
表备份:表备份可以不打开归档模式
backup table “SYSDBA”.“TEST1” to “TAB_BTREE_20221126_234343_164773” backupset ‘/home/dmdba/dmdbms/data/DAMENG/DAMENG/bak/TAB_TEST1_BTREE_20221126_234343_164773’ device type disk;
除表备份外,其余的联机备份均需要打开归档模式,才能进行,归档模式打开的方式:
alter database mount;
alter database archivelog;
alter database add archivelog' type=local,dest=/home/dmdba/dmdbms/data/DAMENG/DAMENG/arch,file_size=64,space_limit=10240';
alter database open;
在刚刚配置完成归档设置后不能马上进行备份,需要执行刷新检查点
call checkpoint(100)
全库备份:
backup database full to "DB_DAMENG_FULL_2022_11_27_00_00_15" backupset 'DB_DAMENG_FULL_2022_11_27_00_00_15';
backup database full to "DB_DAMENG_FULL_2022_11_27_00_02_31" backupset '/home/dmdba/dmdbms/data/DAMENG/DAMENG/bak/bak1';
全表空间备份:
backup tablespace "MAIN" full to "TS_MAIN_FULL_2022_11_27_00_05_47" backupset 'TS_MAIN_FULL_2022_11_27_00_05_47';
归档备份:
backup archivelog all to "ARCH_2022_11_27_00_08_33" backupset 'ARCH_2022_11_27_00_08_33';
2.增量备份
增量备份又可以分为差异增量备份和累积增量备份,其中累积增量备份的基备份只能为全量备份。表和归档不支持增量备份。
库增量备份:
backup database increment to "DB_DAMENG_INCRE_2022_11_27_00_14_32" backupset 'DB_DAMENG_INCRE_2022_11_27_00_14_32';
backup database increment to "DB_DAMENG_INCRE_2022_11_27_00_14_32" backupset '/home/dmdba/dmdbms/data/DAMENG/DAMENG/bak/TS_MAIN_FULL_2022_11_27_00_05_47';
库差异增量备份:
backup database increment cumulative to "DB_DAMENG_INCRE_2022_11_27_00_18_47" backupset 'DB_DAMENG_INCRE_2022_11_27_00_18_47';
表空间增量备份:
backup tablespace "MAIN" increment to "TS_MAIN_INCRE_2022_11_27_00_20_25" backupset 'TS_MAIN_INCRE_2022_11_27_00_20_25';
表空间累积增量备份:
backup tablespace "MAIN" increment cumulative to "TS_MAIN_INCRE_2022_11_27_00_20_25" backupset 'TS_MAIN_INCRE_2022_11_27_00_20_25';
(2)脱机备份
脱机备份是指服务停止后,对数据库进行的备份。备份工具为DMRMAN或console(图形化)
全库备份:
./dmrman CTLSTMT="backup database '/dm8/data/DAMENG/dm.ini' to backup_file_01 backupset '/dm8/data/DAMENG/bak/backup_file_01'"
库增量备份:
./dmrman CTLSTMT="backup database increment '/dm8/data/DAMENG/dm.ini' to backup_file_01 backupset '/dm8/data/DAMENG/bak/backup_file_01'"
归档备份:
./dmrman CTLSTMT="backup archivelog all '/dm8/data/DAMENG/dm.ini' to "ARCH_2022_11_27_00_08_33" backupset 'ARCH_2022_11_27_00_08_33''"
二、物理还原和恢复
除表还原外,所有数据备份的还原恢复均需完成还原(恢复数据文件),恢复(一致性修复),更新MAGIC的操作过程
./dmrman CTLSTMT="RESTORE DATABASE '/dm8/data5238/DAMENG/dm.ini' FROM BACKUPSET '/dm8/data/DAMENG/dm_bak'"
./dmrman CTLSTMT="RECOVER DATABASE '/dm8/data5238/DAMENG/dm.ini' FROM BACKUPSET '/dm8/data/DAMENG/dm_bak'"
./dmrman CTLSTMT="RECOVER DATABASE '/dm8/data5238/DAMENG/dm.ini' UPDATE DB_MAGIC"
三、逻辑备份与还原
逻辑备份与还原主要是使用主要是通过dexp和dimp工具来实现的,方便对数据库对象的备份和还原,可以实现全库、用户、模式、表的备份与还原,主要方便应用开发人员进行操作。
全库备份(FULL):
./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log FULL=Y DIRECTORY=/mnt/data/dexp
全库还原:
./dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp/db_str.dmp LOG=db_str.log FULL=Y DIRECTORY=/mnt/data/dimp
用户备份(OWNER):
./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log OWNER=USER01 DIRECTORY=/mnt/data/dexp
用户还原:
./dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp/db_str.dmp LOG=db_str.log OWNER=USER01 DIRECTORY=/mnt/data/dim
模式备份(SCHEMAS):
./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log SCHEMAS=USER01 DIRECTORY=/mnt/data/dexp
模式还原:
./dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp/db_str.dmp LOG=db_str.log SCHEMAS=USER01 DIRECTORY=/mnt/data/dimp
表备份(TABLE):
./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log TABLES=table1,table2 DIRECTORY=/mnt/data/dexp
表还原(TABLE):
./dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp/db_str.dmp LOG=db_str.log TABLES=table1,table2 DIRECTORY=/mnt/data/dimp
文章
阅读量
获赞