数据库dmp文件的导入导出

来源:互联网 发布:优化人才培养方案 编辑:程序博客网 时间:2024/06/14 00:41

数据库dmp文件的导入导出

  1. 数据泵的使用
    –sqlplus下执行
    Create directory TEST as ‘d:\test’;
    Grant read,write on directory TEST to test01;

    –cmd命令
    expdp test01/1@orcl directory=TEST dumpfile=X.dmp schemas=test01 logfile=Xbak.log;
    impdp test01/1@orcl directory=TEST dumpfile=X.dmp schemas=test01 logfile=Xbak.log full=y ignore=y;

    impdp test01/1@orcl directory= TEST dumpfile=X.dmp schemas=test01 TABLE_EXISTS_ACTION

  2. 数据库的导入:
    导入数据前要保证该用户下不存在,任何表结构、数据、函数、包等。
    如果存在,可以先清空。(采用直接删除用户或表空间见下面附录1)
    以用户名密码登录后,在执行sql窗口中(例如:PLSQL Developer的Sql窗口)执行以下sql:
    BEGIN
    FOR rec IN
    (SELECT object_name,object_type from user_objects
    WHERE object_type=’PROCEDURE’
    OR object_type=’TABLE’
    OR object_type=’VIEW’
    OR object_type=’FUNCTION’
    OR object_type=’PACKAGE’
    OR object_type=’SEQUENCE’
    )
    LOOP
    IF rec.object_type=’TABLE’ THEN
    EXECUTE IMMEDIATE ‘DROP ‘||rec.object_type||’ ‘||rec.object_NAME||’ CASCADE CONSTRAINTS’;
    ELSE
    EXECUTE IMMEDIATE ‘DROP ‘||rec.object_type||’ ‘||rec.object_NAME;
    END IF;
    END LOOP;
    END;
    然后执行导入语句:
    1)用Sytem完全导入数据库(所有数据库的默认账号:system;密码:manager)
    imp system/manager@TEST file=”E:\DATABASE_BAK\orcl.dmp” full=y ignore=y;
    2)导入特定用户下的数据库
    imp 用户名/密码@数据库 file=导入的文件路径 fromuser=需要导入的那个文件是属于哪个用户的 touser=要导入的用户名 ignore=y;
    例如:imp username/password@orcl file=”E:\DATABASE_BAK\orcl.dmp” log=”E:\DATABASE_BAK\orclLog.log” fromuser=username touser=musername ignore=y;
    注:两个数据库同名则fromuser=username touser=musername 可省略。(添加ignore=y参数,防止已存在数据,不能覆盖导入,会报错,相当于直接跳过该错误继续导入;建议再导入前先清空数据库)

  3. 数据库的导出:

    exp test01/1@orcl file=X.dmp full=y

0 0
原创粉丝点击