Oracle导出导入dmp

Oracle导入dmp文件

导入之前要新建数据库实例。

一、impdp导入(windows):

1、打开命令提示符窗口,win + r,cmd,enter;

2、连接数据库(ip端口不写时默认localhost:1521)

    使用命令“sqlplus”,命令格式:sqlplus 用户名/口令@数据库名 as sysdba;

    例:C:\Documents and Settings\admin>

    sqlplus sys/sys@orcl as sysdba

    sqlplus sys/sys@localhost:1521/orcl as sysdba

   

3、创建directory

    在电脑任意位置手动创建文件夹,如:D:\dmp,再把xxx.dmp文件放D:\dmp下,

    使用命令“create directory”,命令格式:create directory 文件名 as 物理地址;

    SQL>create or replace directory dmp as 'D:\app\dmp';

4、创建用户

    使用命令“create user”,命令格式:create user 用户名 identified by 用户密码;

    SQL>create user orcl identified by orclorcl;

   

5、授权用户

    使用命令“grant”,命令格式:grant dba to 用户名;

    SQL>grant dba to orcl;

    SQL>grant read,write on directory dmp to orcl;

   

6、建立表空间(不建似乎也可以)

    在数据库安装目录(例:D:\app\admin\oradata\orcl)下新建文件夹 tablespaces。命令行切换orcl用户,执行“建立表空间”的sql语句;

    SQL>connect orcl/orclorcl@orcl;

    SQL>建立表空间的sql语句

create tablespace DATA_ORCL datafile 'D:\app\admin\oradata\orcl\tablespaces\DATA_ORCL.ora' size 1m autoextend on;

7、退出数据库

    使用命令“exit”;

    SQL>exit;

   

8、导入数据库

    使用命令“impdp”,命令格式:impdp 用户名/口令@数据库 directory=文件夹 dumpfile=xx.dmp文件 logfile日志

    C:\Documents and Settings\admin>

    impdp orcl/orclorcl@orcl directory=dmp dumpfile=orcl.dmp full=y transform=segment_attributes:n logfile=impdp_orcl_20220101.log

table_exists_action

    skip 是如果已存在表,则跳过并处理下一个对象;

    append 是为表增加数据;

    truncate 是截断表,然后为其增加新数据;

    replace 是删除已存在表,重新建表并追加数据。

--ORA-14460: 只能指定一个 COMPRESS 或 NOCOMPRESS 子句

--添加参数:transform=segment_attributes:n

--该参数可与忽略expdp导出时附带的相关表空间和存储子句约束。


 

注:若导入时出现问题

ORA-39001: 参数值无效

ORA-39000: 转储文件说明错误

ORA-39143: 转储文件 “XXX.dmp” 可能是原始的导出转储文件

原因分析:

.dmp文件是使用exp命令导出的,而使用

impdp 无法识别exp命令导出的文件,需要使用imp命令进行导入


 

二、impdp导入(linux):

1. 切换 root,su - root,输入密码(若是root则忽略)。创建目录,授权,上传xxx.dmp到目录,并授权;

    [root@localhost ~]$ mkdir /home/oracle

    [root@localhost ~]$ chmod 777 /home/oracle

    [root@localhost ~]$ chmod 777 /home/oracle/xxx.dmp

2. 切换 oracle,su - oracle。登录数据库。

    [root@localhost ~]$ su - oracle

    [oracle@localhost ~]$ sqlplus / as sysdba

    SQL>create or replace directory dmp as '/home/oracle';


 

三、imp导入:

1、打开命令提示符窗口;

2、连接数据库

    使用命令“sqlplus”,命令格式:sqlplus 用户名/口令@数据库名 as sysdba

    例:C:\Documents and Settings\admin>sqlplus sys/sys@orcl as sysdba

3、创建用户

    使用命令“create user”,命令格式:create user 用户名 identified by 用户密码;

    SQL>create user orcl identified by orclorcl;

   

4、授权用户

    使用命令“grant”,命令格式:grant dba to 用户名;

    SQL>grant dba to orcl;

   

5、连接数据库

    使用命令“connect”,命令格式:connect 用户名/口令@数据库名;

    SQL>connect orcl/orclorcl@orcl;

   

6、建立表空间(不建似乎也可以)

    在数据库目录下新建文件夹tablespaces,用数据库连接工具登录该账户,执行“建立表空间”的sql语句

    例:D:\app\admin\oradata\orcl,在此目录下新建文件夹tablespaces

   

7、导入数据库

    使用命令“imp”,命令格式:imp 用户名/口令 file=数据库文件路径 fromuser=用户名 touser=用户

    C:\Documents and Settings\admin>

    imp orcl/orclorcl@orcl file=D:\orcl.dmp full=y ignore=y

    imp orcl/orclorcl@orcl file=D:\orcl.dmp full=y ignore=y fromuser=orcl touser=orcl


 

四、expdp导出:

1、打开命令提示符窗口,win + r,cmd;

2、连接数据库

    使用命令“sqlplus”,命令格式:sqlplus 用户名/口令@数据库名 as sysdba

    例:C:\Documents and Settings\admin>

    sqlplus sys/sys@orcl as sysdba

    sqlplus / as sysdba

   

3、创建directory

    在电脑任意位置手动创建文件夹,如:D:\dmp,再把xxx.dmp文件放D:\dmp下,

    使用命令“create directory”,命令格式:create directory 文件名 as 物理地址;

    SQL>create or replace directory dmp as 'D:\app\admin\dmp\orcl';

    SQL>exit;

    SQL>create or replace directory dmp as '/u01/expdp';

4、导出数据库

    使用命令“expdp”,命令格式:expdp 用户名/口令@数据库 directory=文件夹 dumpfile=xx.dmp文件 full=y

    C:\Documents and Settings\admin>

    expdp orcl/orclorcl@orcl directory=dmp dumpfile=orcl.dmp schemas=orcl logfile=expdp_orcl_20220101.log

    若高版本导出,低版本导入,可加上参数 version=11.2.0.1.0(低版本号)

    6选1:

    1)整个数据库:full=y

    2)对象模式:schemas=orcl

    3)指定表空间:tablespaces=temp,log

    4)指定表:tables=user,org

    5)按查询条件:tables=user query='user:"where id>1"'

    6)仅表结构:content=metadata_only

   

    EXCLUDE=TABLE:" IN('TABLE1','TABLE2')"


 

解锁用户

    ALTER USER 用户名 ACCOUNT UNLOCK;

   

授权

    grant select any table to orcl;

五、exp导出:

    exp orcl/orclorcl@orcl file=e:/orcl.dmp owner=orcl

    全部:full=y

    指定库:owner=orcl

    指定表:tables=table1,多个 tables=(table1,table2)

    1、FULL,用于导出整个数据库,在ROWS=N一起使用时,可以导出整个数据库的结构。

    2、OWNER和TABLE,这两个选项用于定义EXP的对象。OWNER定义导出指定用户的对象,TABLE指定EXP的table名称。

    3、BUFFER和FEEDBACK,在导出比较多的数据时,考虑设置这两个参数。

    4、FILE和LOG,这两个参数分别指定备份的DMP名称和LOG名称,包括文件名和目录。

    5、COMPRESS参数不压缩导出数据的内容。用来控制导出对象的storage语句如何产生。默认值为Y,使用默认值,对象的存储语句的init extent等于当前导出对象的extent的总和。推荐使用COMPRESS=N。

    6、FILESIZE该选项在8i中可用。如果导出的dmp文件过大时,最好使用FILESIZE参数,限制文件大小不要超过2G。


 

通过输入 EXP 命令和您的用户名/口令, 导出

操作将提示您输入参数:

     例如: EXP SCOTT/TIGER

或者, 您也可以通过输入跟有各种参数的 EXP 命令来控制导出

的运行方式。要指定参数, 您可以使用关键字:

     格式:  EXP KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)

     例如: EXP SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR)

               或 TABLES=(T1:P1,T1:P2), 如果 T1 是分区表

USERID 必须是命令行中的第一个参数。

关键字   说明 (默认值)         关键字      说明 (默认值)

--------------------------------------------------------------------------

USERID   用户名/口令           FULL        导出整个文件 (N)

BUFFER   数据缓冲区大小        OWNER        所有者用户名列表

FILE     输出文件 (EXPDAT.DMP)  TABLES     表名列表

COMPRESS  导入到一个区 (Y)   RECORDLENGTH   IO 记录的长度

GRANTS    导出权限 (Y)          INCTYPE     增量导出类型

INDEXES   导出索引 (Y)         RECORD       跟踪增量导出 (Y)

DIRECT    直接路径 (N)         TRIGGERS     导出触发器 (Y)

LOG      屏幕输出的日志文件    STATISTICS    分析对象 (ESTIMATE)

ROWS      导出数据行 (Y)        PARFILE      参数文件名

CONSISTENT 交叉表的一致性 (N)   CONSTRAINTS  导出的约束条件 (Y)

OBJECT_CONSISTENT    只在对象导出期间设置为只读的事务处理 (N)

FEEDBACK             每 x 行显示进度 (0)

FILESIZE             每个转储文件的最大大小

FLASHBACK_SCN        用于将会话快照设置回以前状态的 SCN

FLASHBACK_TIME       用于获取最接近指定时间的 SCN 的时间

QUERY                用于导出表的子集的 select 子句

RESUMABLE            遇到与空格相关的错误时挂起 (N)

RESUMABLE_NAME       用于标识可恢复语句的文本字符串

RESUMABLE_TIMEOUT    RESUMABLE 的等待时间

TTS_FULL_CHECK       对 TTS 执行完整或部分相关性检查

TABLESPACES          要导出的表空间列表

TRANSPORT_TABLESPACE 导出可传输的表空间元数据 (N)

TEMPLATE             调用 iAS 模式导出的模板名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值