开发者

Oracle数据泵(expdp)导入导出数据的详细步骤

开发者 https://www.devze.com 2025-03-15 12:23 出处:网络 作者: 0xfather
目录源数据库操作(数据备份)自定义变量目标数据库操作(数据恢复)创建用户(若用户存在则跳过)导入数据总结 源数据库操作(数据备份)
目录
  • 源数据库操作(数据备份)
    • 自定义变量
  • 目标数据库操作(数据恢复)
    • 创建用户(若用户存在则跳过)
    • 导入数据
  • 总结 

    源数据库操作(数据备份)

    自定义变量

    1.查询当前数据库的自定义变量(里面包含导出数据文件路径变量配置,即DUMP_DIR)

    select * from dba_directories;

    2.若没有配置,则创建一个dump_dir(变量名可自定义,后面用自定义的变量即可)

    create directory dump_dir as 'F:/dbback'

    3.导出指定用户的数据,指定导出的用户、导出文件名称、导出文件路径定义、导出时的日志文件信息

    expdp PMS_ZS/000000@pms schemas=PMS_ZS dumpfile=pms202410251525.dmp directory=DUMP_DIR logfile=pms202410251525.log

    经过以上步骤,源数据库的数据即备份完成

    目标数据库操作(数据恢复)

    创建用户(若用户存在则跳过)

    1.查询当前用户的表空间和临时表空间

    select default_tablespace,temporary_tablespace from dba_users where username = USER;

    2.根据上面查询出的表空间建立相应临时表空间(临时表空间指定最大容量)

    create temporary tablespace PMS_DATA_TMP_ZS
    tempfile 'D:\oracle\oradata\PMS\PMS_DATA_TMP_ZS.DBF'
    size 32m
    autoextend on
    next 32m
    maxsize 4096m
    extent management local;

    修改临时表空间为不限制大小(32G上限):

    alter database tempfile 'D:\Oracle\oradata\PMS\PMS_DATA_TMP_ZS.DBF' autoextend on next 32m maxsize unlimited;

    增加一个新的临时表空间文件(此时必须设置固定大小)

    alter tablespace temp add tempfile 'D:\Oracle\oradata\PMS\PMS_DATA_TMP_ZS_01.DBF' size 4096m;

    修改第二个临时表空间文件为不限制大小

    alter database tempfile 'D:\Oracle\oradata\PMS\PMS_DATA_TMP_ZS_01.DBF' autoextend on next 32m maxsize unlimited;

     3. 根据上面查询出的表空间建立相应表空间

    CREATE TABLESPACE PMS_DATA_ZS
    DATAFILE 'D:\Oracle\oradata\PMS\PMS_DATA_ZS.DBF'
    SIZE 32M
    AUTOEXTEND ON NEXT 100M
    MAXSIZE UNLIMITED
    EXTENT MANAGEMENT编程客栈 LOCAL;

    -- 给表空间增加数据文件1(一个文件最大支持32G数据,多个文件可突破表空间最大容量32G限制)

    ALTER TABLESPACE PMS_DATA_ZS ADD DATAFILE 'D:\Oracle\oradata\PMS\PMS_DATA_ZS_01.DBF'
    SIZE 32M
    AUTOEXTEND ON NEXT 100M
    MAXSIZE UNLIMITED;

    -- 给表空间增加数据文件2(一个文件最www.devze.com大支持32G数据)

    ALTER TABLESPACE PMS_DATA_ZS ADD DATAFILE 'D:\Oracle\oradata\PMS\PMS_DATA_ZS_02.DBF'
    SIZE 32M
    AUTOEXTEND ON NEXT 100M
    MAXSIZE UNLIMITED;

    -- 给表空间增加数据文件3(一个文件最大支持32G数据)

    ALTER TABLESPACE PMS_DATA_ZS ADD DATAFILE 'D:\Oracle\oradata\PMS\PMS_DATA_ZS_03.DBF'
    SIZE 32M
    AUTOEXTEND ON NEXT 100M
    MAXSIZE UNLIMITED;

    -- 给表空间增加数据文件4(一个文件最大支持32G数据)

    ALTER TABLESPACE PMS_DATA_ZS ADD D编程客栈ATAFILE 'D:\Oracle\oradata\PMS\PMS_DATA_ZS_04.DBF'
    SIZE 32M
    AUTOEXTEND ON NEXT 100M
    MAXSIZE UNLIMITED;

    若表空间创建错误,可删除多余的表空间数据文件

    ALTER DATABASE DROP DATAFILE 'D:\Oracle\oradata\PMS\PMS_DATA_ZS01.DBF';

    4.创建用户并指定表空间

    create user PMS_ZS identified by PMSTEST2023
    default tablespace PMS_DATA_ZS
    temporary tablespace PMS_DATA_TMP_ZS;

    5.给用户授权

    grant create session to PMS_ZS;
    grant create table to PMS_ZS;
    grant unlimited tablespace to PMS_ZS;
    grant create any table to PMS_ZS;
    grant select on dual to PMS_ZS;
    grant insert on dual to PMS_ZS;
    grant all on dual to PMS_ZS;
    grant dba,connect,resource to PMS_ZS;

    导入数据

    6.导入数据

    导入数据前请先检查导入www.devze.com文件的路径变量是否已定义

    检查方法参考本文最上面的自定义变量,若没有定义则需要创建,将备份的数据文件存放在变量对应的路径下即可

    impdp pms_zs/000000@pms dumpfile=PMS202410251525.DMP DIRECTORY=dump_dir logfile=imp202410251525.log table_exisandroidts_action=replace

    总结 

    到此这篇关于Oracle数据泵(expdp)导入导出数据的文章就介绍到这了,更多相关Oracle数据泵expdp导入导出数据内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!

    0

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    关注公众号