Oracle教程(5)使用数据泵进行逻辑备份
数据泵是 Oracle 原生的逻辑备份工具,可以对数据进行高效导出(expdp)和导入(impdp)操作,包含数据库对象(例如表、模式、表空间等)及其数据
一、备份前置工作
1、创建数据泵目录
数据泵目录是 Oracle 中定义的逻辑目录,用于配置导出和导入数据的存放位置,在进行导出和导入操作时都需要指定该目录
#登录数据库后创建逻辑目录 CREATE DIRECTORY DATA_PUMP_DIR AS '/u01/app/oracle/admin/backup/';
2、创建备份用户
CREATE USER backup_user IDENTIFIED BY "YourPassword123!"; GRANT READ, WRITE ON DIRECTORY DATA_PUMP_DIR TO backup_user;
3、授予用户备份权限
GRANT CREATE SESSION TO backup_user; GRANT EXP_FULL_DATABASE TO backup_user; GRANT IMP_FULL_DATABASE TO backup_user;
4、授予用户数据泵目录权限
GRANT READ, WRITE ON DIRECTORY DATA_PUMP_DIR TO backup_user;
二、expdp / impdp 常用选项说明
expdp username/password@db SERVICE_NAME directory=DATA_PUMP_DIR dumpfile=backup.dmp logfile=backup.log schemas=SCHEMA_NAME
1、expdp常用选项说明
· 文件相关
username/password:执行备份的数据库用户名和密码
@db:指定需要连接的数据库实例,可以通过tnsnames.ora查看
directory=DUMP_DIR:指示数据泵目录,即一开始创建的逻辑目录
dumpfile=backup.dmp:指定备份文件名
logfile=backup.log:备份日志
PARALLEL=4:并行备份,可以提高到处速度
COMPRESSION=ALL:压缩备份,ALL表示数据 + 元数据全部压缩,还可以设置为METADATA_ONLY(默认)、DATA_ONLY、NONE
JOB_NAME=my_backup:给任务命名,方便监控和恢复
FLASHBACK_TIME="TO_TIMESTAMP('2024-01-01 00:00:00','YYYY-MM-DD HH24:MI:SS')":导出某一时间点的一致性数据
· 备份范围(四选一)
FULL=Y:导出整个数据库
SCHEMAS=$SCHEMA_NAME:导出指定 Schema
TABLES=$SCHEMA_NAME_$TABLE_NAME:导出指定表
TABLESPACES=TBS1,TBS2:导出指定表空间
· 过滤
CONTENT=ALL:指定需要导出的数据,默认为ALL,此外还有DATA_ONLY 和 METADATA_ONLY
QUERY=$TABLE_NAME:"WHERE deptno=10":按照过滤条件进行备份
EXCLUDE=TABLE:"IN ('TMP','LOG','TEMP')":备份时排除指定对象
INCLUDE=TABLE:"IN ('EMP','DEPT','SALARY')":备份时只包含指定对象
2、impdp常用选项说明
dumpfile=backup.dmp:指定备份文件
logfile=restore.log:指定恢复过程的日志文件
schemas=SCHEMA_NAME:指定要恢复的模式名
TABLE_EXISTS_ACTION=REPLACE:导入时如果表已存在的处理方式,支持SKIP(跳过)、APPEND(追加)、TRUNCATE(先清空)和REPLACE(替换)
remap_tablespace=old_tablespace:new_tablespace:如果要恢复到不同的表空间,通过 remap_tablespace 参数进行映射,如果导出还原时表空间名一致就可以不用该选项
三、expdp / impdp 使用实例
1、expdp导出示例
· 完整备份
expdp username/password@db directory=DATA_PUMP_DIR dumpfile=all_tables.dmp logfile=all_tables.log full=yes
· 备份特定的表
expdp username/password@db directory=DATA_PUMP_DIR dumpfile=table_backup.dmp logfile=table_backup.log tables=SCHEMA_NAME.TABLE_NAME
· 只导出表结构
expdp username/password@db directory=DATA_PUMP_DIR dumpfile=structure_only.dmp logfile=structure_only.log content=metadata_only schemas=SCHEMA_NAME
· 并行导出
expdp username/password@db directory=DATA_PUMP_DIR dumpfile=backup%U.dmp logfile=backup.log schemas=SCHEMA_NAME parallel=4
2、impdp导出示例
· 从完整备份恢复
impdp username/password@db directory=DATA_PUMP_DIR dumpfile=full_backup.dmp logfile=full_restore.log full=yes
· 恢复指定表
impdp username/password@db directory=DATA_PUMP_DIR dumpfile=table_backup.dmp logfile=table_restore.log tables=SCHEMA_NAME.TABLE_NAME
· 导入数据到指定表空间
impdp username/password@db directory=DATA_PUMP_DIR dumpfile=backup.dmp logfile=restore.log remap_tablespace=old_tablespace:new_tablespace
四、监控数据泵作业
· 查看当前数据泵作业
SELECT * FROM DBA_DATAPUMP_JOBS;
· 查看作业进度
SELECT * FROM DBA_DATAPUMP_SESSIONS;
猜你喜欢
MySQL | Oracle MySQL教程(13)基于Position或GTID实现主从复制
一、MySQL主从复制概述主从复制是MySQL高可用与横向扩展的基础方案,其核心依赖于 MySQL 自身的 Binlog 机制。主节点的 Binlog 记录了数据库上所有的 DDL 与 DML 操作(...
MySQL | Oracle MySQL教程(12)锁的原理与常见锁问题处理
一、数据库锁的作用数据库锁主要用于解决并发问题,当并发操作发生时,数据库依靠锁来控制这些并发请求对资源(锁是针对资源而非事务)的访问规则,因为被上锁的资源不会被其他事务修改,因为可以保证事务之间的隔离...
MySQL | Oracle 【MySQL 8.0】MySQL 8.0新特性介绍与升级方法
一、MySQL 8.0主要新特性截至2023年12月,MySQL官方发布的稳定版为8.0.35,另有一个MySQL8.2为创新版,所以暂不做考虑· 快速新增/删除列虽然 MySQL 在8.0 以前就已...
MySQL | Oracle 【MySQL 8.0】MySQL5.7升级MySQL8.0的步骤与常见问题
一、为什么推荐将MySQL从5.7升级到8.0MySQL5.7的生命周期已经在2023年10月结束,沿用老版本将存在以下问题:· 所有漏洞不再修复,如自增ID回退问题· 核心新特性无法使用,...
MySQL | Oracle Oracle教程(4)快照与AWR报告
一、Oracle 快照Oracle中的快照(Snapshot)是指数据库在某个时间点对性能相关的数据做的一次全量采集。包括:系统资源使用情况、Top SQL、IO 性能指标、SGA、PGA 使用情况。...
文章评论