概念介绍
备份
DM7 备份的本质就是从数据库文件中拷贝有效的数据页保存到备份集中,这里的有效数据页包括数据文件的描述页和被分配使用的数据页。而在备份的过程中,如果数据库系统还在继续运行,这期间的数据库操作并不是都会立即体现到数据文件中,而是首先以日志的形式写到归档日志中,因此,为了保证用户可以通过备份集将数据恢复到备份结束时间点的状态,就需要将备份过程中产生的归档日志也保存到备份集中。
还原
还原与恢复是备份的反过程。还原是将备份集中的有效数据页重新写入目标数据文件的过程。恢复则是指通过重做归档日志,将数据库状态恢复到备份结束时的状态;也可以恢复到指定时间点和指定 LSN。恢复结束以后,数据库中可能存在处于未提交状态的活动事务,这些活动事务在恢复结束后的第一次数据库系统启动时,会由 DM7 数据库服务器自动进行回滚。
物理
物理备份还原是对数据库的操作系统物理文件(如数据文件、控制文件和日志文件等)的备份还原。例如使用 dmrman工具进行的备份还原。
逻辑
逻辑备份还原是对数据库逻辑组件(如表、视图和存储过程等数据库对象)的备份还原。例如使用 dexp和 dimp 进行的备份还原。
实际操作
物理备份
冷备
dmap服务为打开状态,数据库实例为关闭状态,必须要停止数据库,否则可能造成数据丢失。
命令行方式冷备
cd /dm7/bin
./dmrman
backup database '/dm7/data/DAMENG/dm.ini'
热备
dmap服务为打开状态,数据库实例也是打开状态,且数据库要开归档模式。
命令行方式打开归档模式
cd /dm7/bin/
./disql SYSDBA/Dameng123@localhost:5237
alter database mount;
alter database add archivelog 'type=local,dest=/dm7/arch,file_size=64,space_limit=0';
alter database archivelog;
alter database open;
select name,status$,arch_mode from v$database;
图形化方式打开归档模式
命令行方式热备
// 数据库实例是打开状态
cd /dm7/
mkdir backup
disql SYSDBA/Dameng123@localhost:5237
// 完全备份
backup database full backupset '/dm7/backup/full_bak';
// 增量备份:是基于完全备份的,如果没有变化,则取消备份
backup database increment backupset '/dm7/backup/incr_bak';
图形化方式进行热备
逻辑备份
级别
逻辑导出和逻辑导入数据库对象分为四种级别:数据库级、用户级、模式级和表级。四种级别独立互斥,不能同时存在。
- 数据库级(FULL):导出或导入整个数据库中的所有对象。
- 用户级(OWNER):导出或导入一个或多个用户所拥有的所有对象。
- 模式级(SCHEMAS):导出或导入一个或多个模式下的所有对象。
- 表级(TABLE):导出或导入一个或多个指定的表或表分区。
导出
整库导出
dexp USERID=SYSDBA/Dameng123@localhost:5237 file=full.dmp DIRECTORY=/dm7 FULL=y
基于模式导出
dexp USERID=SYSDBA/Dameng123@localhost:5237 file=schemas.dmp DIRECTORY=/dm7 SCHEMAS=DMHR
基于用户导出
dexp USERID=SYSDBA/Dameng123@localhost:5237 file=owner.dmp DIRECTORY=/dm7 OWNER=TEST
基于表导出
dexp USERID=SYSDBA/Dameng123@localhost:5237 file=table.dmp DIRECTORY=/dm7 TABLES=TEST.employee
导入
整库导入
dimp USERID=SYSDBA/Dameng123@localhost:5237 file=full.dmp DIRECTORY =/dm7 FULL=y
基于模式导入
dimp USERID=SYSDBA/Dameng123@localhost:5237 file=schemas.dmp DIRECTORY=/dm7 SCHEMAS=DMHR
基于用户导入
dimp USERID=SYSDBA/Dameng123@localhost:5237 file=owner.dmp DIRECTORY=/dm7 OWNER=TEST
基于表导入
dimp USERID=SYSDBA/Dameng123@localhost:5236 file=table.dmp DIRECTORY=/dm7 TABLES=TEST.employee