Oracle通过数据泵导出/导入dmp文件,并进行覆盖导入【测试成功】

艺帆风顺 发布于 2025-04-03 21 次阅读


一、采取传统方式导出dmp文件,同时指定默认路径

exp fuelMS/fuelMS@127.0.0.1/ORCL OWNER=FUELMS file='/mnt1/oracle/data/exported_data.dmp' log=export_log.log

    [oracle@Aliyun data]$ exp fuelMS/fuelMS@127.0.0.1/ORCL OWNER=FUELMS file='/mnt1/oracle/data/exported_data.dmp' log=export_log.log^C[oracle@Aliyun data]$ ls -alhtotal 588Mdrwxrwxrwx 2 root root 4.0K Oct 11 13:42 .drwxr-xr-x 6 oracle oinstall 4.0K Aug 3 19:26 ..-rw-r----- 1 oracle oinstall 339M Oct 11 11:56 A.dmp-rw-r--r-- 1 oracle oinstall 416 Oct 11 11:56 A.log-rw-r----- 1 oracle oinstall 33M Oct 11 12:02 B.dmp-rw-r--r-- 1 oracle oinstall 23K Oct 11 12:02 B.log-rw-r--r-- 1 oracle oinstall 7.7K Oct 11 13:42 export_log.log-rw-r--r-- 1 oracle oinstall 217M Oct 11 13:42 exported_data.dmp

    传统的导出工具,不同于数据泵,可能在大型数据库中不够高效。

    • fuelMS/fuelMS@127.0.0.1/ORCL:连接到数据库所需的用户名和密码以及数据库的服务名(ORCL)。

    • owner参数这指定了要导出的数据库对象

    • file=exported_data.dmp:这指定了导出文件的名称,即 .dmp 格式的文件。

    • log=export_log.log:这指定了导出操作的日志文件,用于记录导出过程的详细信息。

    二、采取传统方式导入dmp文件(速度较慢)

    传统方式直接导入:

    imp fuelMS/fuelMS@127.0.0.1/ORCL FROMUSER=FUELMS TOUSER=FUELMS file='/mnt1/oracle/data/exported_data.dmp' log=import_log.log

    忽略错误进行导入:通常不使用

    imp fuelMS/fuelMS@ORCL FROMUSER=FUELMS TOUSER=FUELMS file='/mnt1/oracle/data/exported_data.dmp' log=import_log.log REPLACE=Y

    通过数据泵覆盖导入:

        在传统的导入工具中,通常不提供直接的方式来替换已存在的对象。导入将只追加数据,而不会替换或修改现有对象。

        impdp fuelMS/fuelMS@127.0.0.1/ORCL DIRECTORY=DUMP_DIR DUMPFILE=exported_data.dmp LOGFILE=import_log.log REMAP_SCHEMA=FUELMS:FUELMS REUSE_DATAFILES=YES

    • DIRECTORY=DUMP_DIR:数据泵的导入目录,确保已在数据库中创建这个目录。

    • DUMPFILE=exported_data.dmp:导出文件的名称。

    • LOGFILE=import_log.log:导入操作的日志文件的名称。

    • REMAP_SCHEMA=FUELMS:FUELMS:这部分告诉数据泵工具将数据从源用户 FUELMS 重定向到目标用户 FUELMS,从而覆盖目标用户中的数据

    • REUSE_DATAFILES=YES:这告诉数据泵工具重用数据文件,从而覆盖目标用户中的数据。

    备注:

    要使用数据泵工具 impdp 导入数据,确保以下几点:

    1. 使用正确的导出文件:确保导入的文件(exported_data.dmp)是通过数据泵工具 expdp 创建的,而不是传统 exp 工具创建的。如果文件是传统 exp 工具创建的,应该使用传统 imp 命令来导入数据。

    2. 使用正确的目录:DIRECTORY=DUMP_DIR 指定了数据泵导入的目录。确保该目录已存在,并且具有正确的权限。

    3. 验证连接信息:确保连接字符串 fuelMS/fuelMS@127.0.0.1/ORCL 正确,并可以成功连接到数据库。

    4. 确保数据库版本匹配:导出和导入的数据库版本应该匹配,否则可能会出现兼容性问题。