博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
oracle的数据泵导入,导出以及创建用户及删除当前连接用户
阅读量:4678 次
发布时间:2019-06-09

本文共 2271 字,大约阅读时间需要 7 分钟。

一、导出

1、oracle的数据导出,导入都是在服务器上进行,所以你要登录到数据库的服务器,用sqlplus来进行,速度比imp,exp要好很多,内容也更全

2、SQL> CREATE OR REPLACE DIRECTORY dir_dump AS 'D:\dp_win_dir'; windows下可能要先新建这个文件夹

   SQL> grant read,write on directory dp_dir to ncdtk;     /*对用户dyl附加对目录dp_dir可读可执行的权限,用system身份附权限*/
    Grant succeeded.
  3、 数据泵导出数据,必须在cmd命令下

expdp ncdtk/ncdtk schemas=ncdtk DIRECTORY=dp_dir dumpfile=ncdtk.dmp logfile=ncdtk.log;

如果是多实例的话最好这样:
expdp djksk/djksk@db_djksk schemas=djksk DIRECTORY=dp_dir dumpfile=djksk.dmp logfile=djksk.log;

二、导入

 1、也是先建导入目录,如果建好了,就不用再建

    select * from dba_directories;可以查看是否建了导入或者导出目录

2、--从源数据库中向目标数据库导入表p_street_area

按用户导入(可以将用户信息直接导入,即如果用户信息不存在的情况下也可以直接导入)
(1)impdp sq/sq_hfqnc@hfq transform=segment_attributes:n dumpfile =sq.dmp logfile=sq.log directory=dir_dump  
reuse_datafiles=y REMAP_SCHEMA=djksk:ld   这个是导入分区表的语句
(2)impdp sq/sq_hfqnc@hfq dumpfile =sq.dmp logfile=sq.log directory=dir_dump   这个是导入一般表的语句

 

三、创建用户和删除用户

  要想用数据泵导入,导入的数据要完全覆盖之前数据,索性先删除用户,再创建用户,再导入

  1、删除用户,提示有连接

     (1)select username,sid,serial#,status from v$session 查看哪些status不是killed的,然后用下面语句给她杀掉

     (2)alter system kill session'532,4562'

2、新建用户

 create temporary tablespace sq_temp                          //临时表空间

tempfile 'D:\app\Administrator\oradata\hfq\sq_temp.dbf' //表空间经常放置的路径
size 50m  
autoextend on  
next 50m maxsize 20480m  
extent management local;  
 
create tablespace sq_data  
logging  
datafile 'D:\app\Administrator\oradata\hfq\sq_data.dbf'
size 50m  
autoextend on  
next 50m maxsize 20480m  
extent management local;  
 
create user sq identified by "sq_hfqnc"     //创建用户
default tablespace sq_data  
temporary tablespace temp;  
grant connect,resource,dba to sq;          //给用户赋权限
grant create session, create table,unlimited tablespace,create procedure,
create sequence,create synonym,create trigger,create view to sq;
grant all privileges  TO sq;                   //如果要求不大,就把所有的权限赋给用户

 

四、如果导错了,需要删除一个用户,但是这个用户无法删除,需要查出会话里的用户,然后杀掉,有可能会话里有多个这个用户,那么要全部一一杀掉才行

  

select username,sid,serial#,status from v$session

alter system kill session'532,4562'

 

五、一般的导入导出语句

1、导入  在cmd的模式下,注意加上日志:

imp center/center@ONECARD_CENTER file='D:\data\7中\data\oradata.dmp' fromuser='CCENSE' touser='center' ignore=y commit=y grants=y log='D:\data\7中\data\imp.log'

2、导出 在cmd的模式下

exp scott/tiger@orcl file=F:\sign.sql tables=表名,表名 grants=y log='D:\data\7中\data\exp.log'

 

转载于:https://www.cnblogs.com/li1111xin/p/4672351.html

你可能感兴趣的文章
【BZOJ4155】[Ipsc2015]Humble Captains
查看>>
【事件】阻止事件的冒泡
查看>>
mac os 安装 geckodriver
查看>>
【数据分析 R语言实战】学习笔记 第十一章 对应分析
查看>>
谁的青春不迷茫
查看>>
socket知识总结
查看>>
Qt做的简易图片浏览
查看>>
[开发技巧]·pandas如何保存numpy元素
查看>>
leetcode-17-电话号码的字母组合’
查看>>
Flume 示例
查看>>
Designing for Performance
查看>>
HTML属性的应用
查看>>
HEAP CORRUPTION DETECTED
查看>>
Android URI简单介绍
查看>>
蒙板 模态对话框
查看>>
pythong中的全局变量的调用和嵌套函数中变量的使用
查看>>
【POJ - 3009】Curling 2.0 (dfs+回溯)
查看>>
Windows下载安装良心教程
查看>>
浅析商业银行“业务连续性管理体系”的构建
查看>>
【分享】从《水浒传》中反思什么是真正的执行力
查看>>