一、物理备份与逻辑备份介绍
逻辑备份和物理备份是两种常见的数据库备份方式,它们各有优缺点,适用于不同的场景。
逻辑备份:
优点:
灵活: 可以选择备份特定的对象(库、模式、表),节省空间和时间。
可移植性: 备份文件不受操作系统或数据库版本的限制,易于迁移。
易于理解: 备份文件是文本格式,方便查看和验证数据。
缺点:
速度慢: 需要逐条记录导出数据,效率较低。
占用空间大: 备份文件包含大量元数据和冗余信息。
恢复时间长: 需要重新导入数据,耗时较长。
物理备份:
优点:
速度快: 直接复制数据页,效率高。
占用空间小: 只保存有效的数据页,节省空间。
恢复时间短: 直接恢复数据页,速度快。
缺点:
灵活性差: 只能备份整个数据库或表空间。
可移植性差: 备份文件依赖于特定的操作系统和数据库版本。
难以验证: 备份文件是二进制格式,不易查看和验证数据。
选择哪种备份方式取决于具体需求。如果需要灵活性和可移植性,可以选择逻辑备份;如果需要快速恢复和节省空间,可以选择物理备份。在实际应用中,通常会结合两种备份方式,以达到最佳的备份效果。
- 物理、逻辑备份与还原操作
1.物理备份
物理备份分为联机备份和脱机备份,联机备份是数据库处于运行状态、并正常提供数据库服务情况下进行的备份操作,脱机备份是数据库处于关闭状态时进行的备份操作。
备份类型:分为完全备份 FULL 和增量备份 INCREMENT 两种。缺省为 FULL。
FULL:表示完全备份。完全备份生成的备份集包含了指定库(或者表空间)的全部有效
数据页。在完全备份中又可以具体指定为 DDL_CLONE 或 SHADOW,此时 FULL 可缺省。
DDL_CLONE 或 SHADOW 备份的内容是完全备份的子集。
DDL_CLONE:数据库克隆。该参数只能用于完全备份中,表示仅拷贝所有的元数据不
拷贝数据。如对于数据库中的表来说,只备份表的定义不备份表中数据。表空间和表备份不
支持该参数。数据库克隆必须备份日志。
DDL_CLONE 会克隆 HUGE 表的元数据信息,之后库还原时会还原 HUGE表的表定义。
SHADOW:影子备份。该参数只能用于完全备份中,表示生成影子备份集,只备份源
库的 SYSTEM.DBF 及日志相关信息。表空间和表备份不支持该参数。影子备份必须备份日志。
INCREMENT:表示增量备份,若要执行增量备份必须指定该参数
1.1联机备份
使用disql工具执行命令导出数据,根据不同情况使用全量备份与增量备份。
backup database 备份模式 to 备份名 backupset '备份文件路径/备份名称';
1.2脱机备份
使用dmrman工具执行命令导出数据,根据不同情况使用全量备份与增量备份。
backup database ‘dm.ini文件路径’ 备份模式 to 备份名 backupset '备份文件路径/备份名称';
- 逻辑备份
使用dexp工具执行命令导出数据,根据不同情况选择导出全库、模式、用户以及表,以下为dexp工具参数介绍。
参数 | 含义 | 备注 |
USERID | 数据库的连接信息 | 必选 |
FILE | 明确指定导出文件名称 | 可选。如果缺省该参数,则导出文件名为 dexp.dmp |
DIRECTORY | 导出文件所在目录 | 可选 |
FULL | 导出整个数据库(N) | 可选,四者中选其一。缺省为 SCHEMAS |
OWNER | 用户名列表,导出一个或多个用户所拥有的所 | |
SCHEMAS | 模式列表,导出一个或多个模式下的所有对象 | |
TABLES | 表名列表,导出一个或多个指定的表或表分区 | |
FUZZY_MATCH | TABLES 选项是否支持模糊匹配(N) | 可选 |
QUERY | 用于指定对导出表的数据进行过滤的条件。 | 可选 |
PARALLEL | 用于指定导出的过程中所使用的线程数目 | 可选 |
TABLE_PARALLEL | 用于指定导出每张表所使用的线程数,在 MPP | 可选 |
TABLE_POOL | 用于设置导出过程中存储表的缓冲区个数 | 可选 |
EXCLUDE | 批量设置导出内容中忽略的对象。 | 可选 |
INCLUDE | 批量设置导出时只导出指定的对象种类或某个具体对象。 | 可选 |
CONSTRAINTS | 导出约束 (Y) | 可选。此处单独设置与和 |
TABLESPACE | 导出表空间且导出的对象定义包含表空间(N) | |
GRANTS | 导出权限 (Y) | |
INDEXES | 导出索引 (Y) | |
TRIGGERS | 导出触发器(Y) | |
ROWS | 导出数据行 (Y) | |
LOG | 明确指定日志文件名称 | 可选,如果缺省该参数,则导出文件名为 dexp.log |
NOLOGFILE | 不使用日志文件(N) | 可选 |
NOLOG | 屏幕上不显示日志信息(N) | 可选 |
LOG_WRITE | 日志信息实时写入文件 (N) | 可选 |
DUMMY | 交互信息处理: 打印(P),所有交互都按 YES 处 | 可选 |
PARFILE | 参数文件名,如果 dexp 的参数很多,可以存成 | 可选 |
FEEDBACK | 每 x 行显示进度 (0) | 可选 |
COMPRESS | 是否压缩导出数据文件(N) | 可选 |
COMPRESS_LEVEL | 导出数据压缩等级 (0-9 默认 1) | 可选 |
ENCRYPT | 导出数据是否加密 (N) | 可选,和 ENCRYPT 同时使用 |
ENCRYPT_PASSWORD | 导出数据的加密密钥 | |
ENCRYPT_NAME | 导出数据的加密算法 | 可选。和 ENCRYPT、ENCRYPT_PASSWORD 同时使用。缺省为 RC4 |
FILESIZE | 用于指定单个导出文件大小的上限。可以按字 | 可选 |
FILENUM | 多文件导出时,一个模板可以生成文件数,范围为[1,99],缺省为 99 | 可选 |
DROP | 导出后删除原表,但不级联删除 (N) | 可选 |
DESCRIBE | 导出数据文件的描述信息,记录在数据文件中 | 可选 |
FLASHBACK_SCN | 用于指定导出表数据的闪回 LSN,和 | 可选 |
FLASHBACK_TIME | 用于指定导出表数据的闪回时间,和 | 可选 |
COL_DEFAULT_SEPARATE | 是否单独导出列,缺省值 (Y) | 可选 |
WITH_UR | 导出表数据是否允许脏读(N) | 可选 |
SIMPLE_LOG | 导出日志是否使用简要日志(N) | 可选 |
CTRL_INFO | 控制信息用来控制一些特殊情况导出,缺省为 0 | 可选 |
CONFIG_FILE | 配置文件路径,配置默认连接串和密码信息 | 可选 |
HELP | 显示帮助信息 | 可选 |
- 数据还原
3.1物理数据还原
物理数据还原仅支持表的联机还原,数据库、表空间和归档日志的还原必须通过脱机工具DMRMAN 执行,以下以DM8为例。
restore database ‘dm.ini文件路径’ from backupset ‘备份文件夹路径’;
recover database ‘dm.ini文件路径’ from backupset ‘备份文件夹路径’;
recover database ‘dm.ini文件路径’ update db_magic;
3.2逻辑数据还原