在 Oracle 环境中,借助 Data Pump 的 DB Link 能力,可以在不直接落地转储文件的情况下完成跨库迁移与“备份/恢复”。核心思路是:在目标库(或中间库)通过 network_link 直连源库,使用 expdp 将远程对象元数据与数据拉取到本地(或直接导入目标库),实现快速迁移与应急恢复。对于 PDB 场景,需先切到对应容器再创建链路与目标对象。必要时也可通过 DB Link 将误删数据先复制到新表或回插原表,作为细粒度恢复手段。
二 备份与恢复步骤
1 前置准备
在源库授予必要权限(如 exp_full_database),在目标库授予 imp_full_database;为 Data Pump 创建 DIRECTORY 对象;创建指向源库的 DB Link(私有或公有均可,注意账号口令与连接串正确)。如使用 PDB,先执行:alter session set container=目标PDB; 再建链路与后续操作。
误删少量数据时,可先通过 DB Link 将受影响表的数据复制到新表(CTAS/INSERT INTO … SELECT …),或回插缺失数据,再校验一致性后清理临时对象。
三 常用命令模板
创建 DB Link(私有)
CREATE DATABASE LINK link_to_source
CONNECT TO 源用户 IDENTIFIED BY 源口令
USING ‘(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=源主机)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=源服务名)))’;
创建 DB Link(公有)
CREATE PUBLIC DATABASE LINK link_to_source
CONNECT TO 源用户 IDENTIFIED BY 源口令
USING ‘//源主机:1521/源服务名’;