Oracle导出导入dmp

2023-12-30 05:04:53

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 模式导出的模板名

文章来源:https://blog.csdn.net/h18300103614/article/details/120969059
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。