You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle 21c:如何在同一服务器高效克隆数据库至新库名并保留Schema与数据

Oracle 同一服务器克隆数据库(EXAMPLE → NEW_DB)的等效操作

在Oracle中,对应MySQL mysqldump | mysql 管道克隆的方案是使用数据泵(expdp/impdp),以下是具体步骤:

前提准备

  1. 确保已在同一服务器上创建好目标数据库NEW_DB,并提前创建与原库EXAMPLE一致的表空间、用户(Schema:USERS、FOOBAR),保证用户拥有足够的权限和存储空间。
  2. 执行命令的用户需具备EXP_FULL_DATABASE和IMP_FULL_DATABASE角色权限。

方案1:生成备份文件后导入(最常用)

1. 导出原库EXAMPLE的Schema与数据

使用expdp导出指定Schema:

expdp dba_user/dba_pwd@EXAMPLE schemas=USERS,FOOBAR dumpfile=example_clone.dmp logfile=exp_example.log directory=DATA_PUMP_DIR
  • dba_user/dba_pwd:拥有导出权限的DBA账号
  • @EXAMPLE:原库的连接字符串
  • schemas:指定要克隆的Schema(USERS、FOOBAR)
  • dumpfile:导出的备份文件名
  • logfile:导出过程日志文件
  • directory:Oracle预定义的目录对象,可通过SELECT * FROM DBA_DIRECTORIES;查看实际路径

2. 导入到目标库NEW_DB

使用impdp将备份导入目标库:

impdp dba_user/dba_pwd@NEW_DB schemas=USERS,FOOBAR dumpfile=example_clone.dmp logfile=imp_newdb.log directory=DATA_PUMP_DIR
  • 若原库与目标库的表空间名称不同,需添加remap_tablespace参数,例如:remap_tablespace=EXAMPLE_TBS:NEW_DB_TBS
  • 若需修改Schema名称,可使用remap_schema=原Schema:新Schema,这里保持同名可省略

方案2:直接网络传输导入(无中间备份文件,类似MySQL管道)

通过数据库链接直接在两个库间传输数据,无需生成dump文件:

1. 在原库EXAMPLE中创建到目标库NEW_DB的链接

CREATE DATABASE LINK new_db_link 
CONNECT TO target_dba_user IDENTIFIED BY target_dba_pwd 
USING 'NEW_DB';

2. 直接导出并导入

expdp dba_user/dba_pwd@EXAMPLE schemas=USERS,FOOBAR network_link=new_db_link logfile=direct_clone.log

此命令会直接将原库的Schema和数据传输到目标库,效率更高。


内容的提问来源于stack exchange,提问作者Gavin Ray

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 03:57:28