3.Oracle导库

mac2024-05-26  30

目录

一、导入:imp,导出:exp

二、导入:impdp,导出:expdp


Oracle导入导出数据库可以使用两种命令

一、导入:imp,导出:exp

1.创建表空间

create tablespace ekp1

datafile 'D:\app\orcl\ekp.dbf'

size 8G

autoextent on

next 100M

maxsize unlimited

extent management local autoallocate

segment space management auto

 

2.增加表空间

alter tablespace ekp1 datafile 'D:\app\orcl\ekp1.dbf' size 8G;

alter tablespace ekp1 datafile 'D:\app\orcl\ekp2.dbf' size 8G;

 

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

create user  tengpengfei identified by 123 default tablespace ekp1

 

4.给用户权限

grant dba to tengpengfei

 

5.导入/导出数据库,导入/导出数据库有两种命令imp/exp,impdp/expdp

导入导出只能使用对应的命令

IMP

imp 用户名/密码@数据库实例名    --创建实例

file=D:\20190811.dmp                 --待导入的dmp文件

log=D:\20190811.log                   --导入时生成的日志文件

[ fromuser=导出数据的用户名]      --导出dmp文件的用户(根据用户名导入数据时配置)

[ touser=导入数据的用户名]          --导入dmp文件的用户(根据用户名导入数据时配置)

[full=y]                                          --导入dmp文件中的全部内容

ignore=y                                       --导入时如果没有表,创建表导入数据,有表,忽略表导入数据

注意:full和fromuser,touser不能同时使用

 

EXP

exp 用户名/密码@数据库实例        --创建实例

file=D:\20190811.dmp                 --待导出的dmp文件

log=D:\20190811.log                   --导出时生成的日志文件

[owner=(用户名)]                           --导出哪个用户下的表和数据

[tables=(test1,test2)]                     --导出test1表和test2表

[query=\" where filed like'%0'\"]  --导出指定条件结果

[full=y]

 

二、导入:impdp,导出:expdp

这个命令可以导入到指定的表空间,或者指定用户,而imp/exp命令,导出时是什么用户/表空间,导入时不能修改。

 

源数据:

表空间ekp

用户ekp12

 

目标数据

表空间ekp1

用户tengpengfei

 

前三步和上面是一致的

4.创建逻辑目录: create directory  dump_dir  as 'd:\';

5.给导出用户赋予读写权限: grant read,write on directory dump_dir to tengpengfei;

6.导入\导出

 

IMPDP

impdp 用户名/密码@数据库实例

directory=dump_dir

dumpfile=20190811.dmp

remap_schema=ekp12:tengpengfei

remap_tablespace=ekp:ekp1

logfile=20190811.log

 

EXPDP

expdp 用户名/密码@数据库实例

schemas=ekp12

directory=dump_dir

dumpfile=20190811.dmp

logfile=20910811.log

 

注意:dump_dir是逻辑目录,使用以下命令创建,查看,删除

create directory dump_dir as 'd:\test';

select * from dba_directories;

drop directory  dump_dir;

 

 

注意:在导入时,可能会卡死,当我们想删除用户再次创建用户,再次重新执行以上命令出现异常

①:ora-01940:无法删除当前已连接用户,我的原因是强行终止导入导致用户tengpengfei被锁住了,可以使用

查看用户对应的session:select username,sid,serial# from v$session where username='tengpengfei';

删除session信息: alter system kill session'对应sid,对应serial#';

再次删除用户即可完成。

②ora-28000:账户已被锁定

解锁账户:alter user tengpengfei account unlock;

 

 

其他的一些命令:

删除表空间:drop tablespace ekp1 including contents and datafiles;

删除用户以及用户下的数据:drop user tengpengfei cascade

查看表数据硬盘上所在位置:select * from dba_data_files

查看指定用户下的数据量:select sum(s.bytes)/1024/1024 "size(MB)" from dba_segments s where s.owner='tengpengfei'

 

 

 

 

最新回复(0)