关于oracle数据泵和imp命令导入导出以及一些应用中遇到的问题

一:创建用户并导入导出

使用管理员登陆:sqlplus user/pass as sysdba

创建用户:create user user identified by pass default tablespace NNC_DATA01;
下面是授权:grant connect,resource,dba to user;
grant alter system to user;
grant select any dictionary to user;
grant unlimited tablespace to user;
赋予directory 操作权限,用来使用数据泵:grant read,write on directory DPDATA to user;

数据泵导入dmp文件 (remap_schema=来源用户:导入目的用户)(remap_tablespace=来源表空间:目的表空间):impdp user/pass DIRECTORY=DPDATA DUMPFILE=user.DMP logfile=user.log remap_schema=userfrom:user

数据泵导出(logfile=在directory文件夹生成日志):expdp user/pass directory=dpdata DUMPFILE=user.DMP logfile=user.log

创建directory:create or replace directory dump_dir as 'D:\dump\dir'

查询已有的directory:select * from dba_directories

二、drop用户提示有链接

先查询链接

select * from dba_users; 
select username,sid,serial# ,
'alter system kill session ' ||sid ||','||serial# 
from v$session
where username='oracle'
;

alter system kill session '111,14319'

三、表空间太大缩小空间


--查file_id、file_name
select T.FILE_ID,T.FILE_NAME from DBA_DATA_FILES T where T.TABLESPACE_NAME='NNC_DATA01';
--查占用最大空间(mb)
select max(block_id)*8/1024 from dba_extents where file_id='6';

--重新定义表空间文件大小
ALTER DATABASE DATAFILE '/opt/oracle/oradata/XXX.dbf' RESIZE 300M;

--- exp 命令(能用数据泵就用数据泵,快不说,参数还好设置)

1.exp导表的时候会有表空间加入dmp文件里,我这里是手动修改dmp文件,将表空间的名字去掉才导入的,不然一直报错

不同用户之间导入导出要加入从哪来:fromuser(来源用户名) ,到哪去:touser(目标用户名)

exp oracle/oracle@192.168.1.3/orcl file=D:\example.dmp tables=(table1)  fromuser=admin touser=oracle

如果密码有@等字符要用""" """转义

2.ORACLE ORA-01950 对表空间无权限 

解决方法:ALTER USER 用户名 QUOTA UNLIMITED ON 表空间名;

3.批量导入有表名参数时:-bash: syntax error near unexpected token `('

tables="()"要加双引号

4.linux 下的imp命令不能用的时候,su - oracle ,在执行imp(-和oracle之间有空格)


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值