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

相关推荐
紫金修道2 小时前
【DeepAgent】概述
开发语言·数据库·python
孟章豪2 小时前
《SQL拼接 vs 参数化,为什么公司禁止拼接SQL?(附真实案例)》
服务器·数据库·sql
荒川之神2 小时前
ORACLE LEVEL函数练习
数据库·oracle
hsjcjh3 小时前
Nodemailer使用教程:在Node.js中发送电子邮件
linux·运维·node.js
·云扬·3 小时前
【MySQL】实战:用pt-table-sync修复主从数据一致性问题
数据库·mysql·ffmpeg
swIn KWAL3 小时前
【MySQL】环境变量配置
数据库·mysql·adb
shark22222223 小时前
【JOIN】关键字在MySql中的详细使用
数据库·mysql
RATi GORI3 小时前
MySQL中的CASE WHEN语句:用法、示例与解析
android·数据库·mysql
Master_H_ice3 小时前
Claude Code安装试用记录(Windows)
windows·claude code
坊钰3 小时前
Java 死锁问题及其解决方案
java·开发语言·数据库