Oracle逻辑备份与数据迁移技术详解
一、Oracle逻辑备份概念1.1 物理备份概述
物理备份是所有物理文件的一个副本,包括数据文件、日志文件、控制文件、归档文件等。这些文件存储在本地磁盘或相应存储设备上,可分为:
[*]冷备份:在非归档模式下进行,需要关闭数据库
[*]热备份:在归档模式下进行,数据库可保持运行状态
1.2 逻辑备份
逻辑备份是通过导出表、索引、存储过程等对象到二进制文件的方式实现。使用Oracle的exp/expdp工具导出,再通过imp/impdp工具导入数据库。逻辑备份主要应用于数据迁移场景,是对物理备份的重要补充。
1.3 Oracle exp/imp工具介绍
作为Oracle最古老的命令行工具,exp/imp在以下场景中发挥重要作用:
[*]小型数据库转储
[*]表空间迁移
[*]表数据抽取
[*]逻辑和物理冲突检测
但随着TB级数据库和数据仓库的普及,exp/imp逐渐被RMAN和第三方工具取代。
1.4 Oracle expdp/impdp工具介绍
Oracle 10g引入的数据泵(expdp/impdp)工具,通过并行处理大幅提升了效率,现已基本替代传统的exp/imp工具。
1.5 数据泵实现功能
[*]逻辑备份和逻辑恢复
[*]数据库用户间对象迁移
[*]数据库间对象迁移
[*]表空间搬移
1.6 数据泵与传统导出导入的区别
特性exp/impexpdp/impdp运行位置客户端/服务端仅服务端文件兼容性不兼容expdp文件不兼容exp文件导出方式导出表、方案、表空间、数据库四种导出方式1.7 数据泵工作流程
[*]命令行执行命令
[*]调用dbms_datapump PL/SQL包
[*]自动选择数据传输机制(direct path或external table)
[*]元数据通过dbms_metadata包以XML格式存储
[*]支持客户端断开后服务端继续执行
1.8 expdp/impdp命令参数详解
主要参数说明:
ATTACH
expdp scott/tiger attach=scott.export_job在客户会话与已存在导出作业间建立关联。
CLUSTER
11gR2后worker进程会在多个instance启动,需确保DIRECTORY在共享磁盘上。
COMPRESSION
COMPRESSION=ALL # 压缩元数据和对象数据
COMPRESSION=DATA_ONLY # 仅压缩对象数据
COMPRESSION=METADATA_ONLY # 仅压缩元数据
COMPRESSION=NONE # 不压缩CONTENT
CONTENT=ALL # 导出对象定义及数据
CONTENT=DATA_ONLY # 仅导出数据
CONTENT=METADATA_ONLY # 仅导出结构DIRECTORY
CREATE OR REPLACE DIRECTORY backup AS '/opt/oracle/utl_file';
GRANT READ,WRITE ON DIRECTORY backup TO system;重要参数列表:
[*]DUMPFILE:指定转储文件名
[*]ENCRYPTION:数据加密选项
[*]ESTIMATE:估算磁盘空间方法
[*]EXCLUDE/INCLUDE:排除/包含特定对象
[*]PARALLEL:并行进程数(通常为CPU的2倍)
[*]QUERY:数据过滤条件
[*]REMAP_DATA:数据转换函数
二、项目案例实践
2.1 按用户迁移数据案例
源端环境分析
表空间信息:
SELECT DISTINCT tablespace_name
FROM dba_segments
WHERE owner IN ('SMP','SMP2','WGSMS');数据量统计:
SELECT owner,tablespace_name,ROUND(SUM(bytes)/1024/1024,0) size_MB
FROM dba_segments
WHERE owner IN ('SMP','SMP2','WGSMS')
GROUP BY owner,tablespace_name
ORDER BY 1,3;对象数量检查:
SELECT owner,COUNT(*)
FROM dba_objects
WHERE owner IN ('SMP','SMP2','WGSMS')
GROUP BY owner;目标端准备
创建表空间示例:
-- 创建TS_EVENT_IDX1表空间
CREATE TABLESPACE TS_EVENT_IDX1
DATAFILE '+DATA/NGS4ADB/DATAFILE/ts_event_idx1001.dbf'
SIZE 30G AUTOEXTEND OFF;
-- 大表空间添加数据文件
ALTER TABLESPACE RA_TBS
ADD DATAFILE '+DATA/NGS4ADB/DATAFILE/ra_tbs002.dbf'
SIZE 30G AUTOEXTEND OFF;数据迁移操作
源端导出:
expdp dw_wl/sweet_0807 directory=dump_dir dumpfile=WGSMS_20201103.dmp \
logfile=WGSMS_20201103.log schemas=wgsms cluster=no
expdp dw_wl/sweet_0807 directory=dump_dir dumpfile=SMP_20201103.dmp \
logfile=SMP_20201103.log schemas=SMP cluster=no parallel=4目标端导入:
impdp dw_wl/sweet_0807 directory=dump_dir dumpfile=WGSMS_20201103.dmp \
logfile=IMWGSMS_20201103.log schemas=wgsms cluster=no2.2 通过DBLINK数据不落地迁移
环境配置
创建DBLINK:
CREATE PUBLIC DATABASE LINK to_100
CONNECT TO VIDEO_MANAGE IDENTIFIED BY qwerasdf
USING 'rzasm';测试连接:
SELECT * FROM tab@to_100 WHERE ROWNUM 感谢分享 谢谢楼主提供! 谢谢楼主提供! 收藏一下 不知道什么时候能用到 感谢分享,下载保存了,貌似很强大 谢谢楼主提供! 感谢分享,学习下。 分享、互助 让互联网精神温暖你我 感谢分享,下载保存了,貌似很强大 东西不错很实用谢谢分享 感谢分享,学习下。 谢谢分享,辛苦了 很好很强大我过来先占个楼 待编辑 这个好,看起来很实用 前排留名,哈哈哈 前排留名,哈哈哈 鼓励转贴优秀软件安全工具和文档! 谢谢分享,辛苦了 感谢发布原创作品,程序园因你更精彩
页:
[1]
2