分享一篇用exp和imp导出导入数据的经验之谈

一 关于expdp和impdp 使用EXPDP和IMPDP时应该注意的事项:


导出:exp OSMPPORTAL/PORTAL@10.130.24.133:1521/omsp file=/home/oracle/osmpportal.dmp


参数:owner=(system,sys)两个用户,tables=table1,table2 只要表结构不要数据:rows=n


导入:imp ccod/ccod@192.168.30.20:1521/ccpbs16 file=/home/oracle/osmpportal.dmp fromuser=OSMPPORTAL touser=osmpportal


参数:imp 登陆的(有相应权限的)用户名/密码@oracle的ip:端口/sid file=文件目录 fromuser=导出时的用户 touser=要导入的用户


ignore=y有的表已经存在会报错,忽略


expdp和impdp


一  关于expdp和impdp     使用EXPDP和IMPDP时应该注意的事项:

EXP和IMP是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用。

EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用。

IMP只适用于EXP导出的文件,不适用于EXPDP导出文件;IMPDP只适用于EXPDP导出的文件,而不适用于EXP导出文件。

expdp或impdp命令时,可暂不指出用户名/密码@实例名 as 身份,然后根据提示再输入,如:

expdp schemas=scott dumpfile=expdp.dmp DIRECTORY=dpdata1;


expdp OSMPPORTAL/PORTAL@ccpbszq DUMPFILE=osmpportaldp.dmp SCHEMAS=OSMPPORTAL


http://www.cnblogs.com/huacw/p/3888807.html


ORA-01031: insufficient privileges


原因:没有赋予相应权限


一:查看数据量


1.查询是否有用户:select * from dba_users where  username='OSMPPORTAL'


2.查询当前用户总数据量:select sum(t.num_rows) from user_tables t


3.查询当前用户下各个表的数据量:select t.table_name,t.num_rows from user_tables t ORDER BY NUM_ROWS DESC


4.查询表空间对应的数据文件:select tablespace_name,file_name from dba_data_files


5.查询表空间对应的数据大小:select tablespace_name ,sum(bytes) / 1024 / 1024 as MB from dba_data_files group by tablespace_name;

6.查询数据量:select  SEGMENT_NAME,s.BYTES/1024/1024/1024 as Gb from user_segments s  where s.BYTES  is not null  order by s.BYTES desc

二:新建用户

1.新建用户:create user username identified by pwd

   注:默认表空间:default tablespace hxzg_data;

2.修改密码:alter user username identified by newpwd

3.新建的用户也没有任何权限,必须授予权限

   grant create session to zhangsan;//授予zhangsan用户创建session的权限,即登陆权限

 grant unlimited tablespace to zhangsan;//授予zhangsan用户使用表空间的权限


 grant create table to zhangsan;//授予创建表的权限


 grante drop table to zhangsan;//授予删除表的权限


 grant insert table to zhangsan;//插入表的权限


 grant update table to zhangsan;//修改表的权限


 grant all to public;//这条比较重要,授予所有权限(all)给所有用户(public)


4.drop user username;                        //删除用户


5.赋权限:grant resource,connect to db_hxzg;


6.给其他用户访问权限(db_hxzg以DBA权限登录)


grant select any table to sun;



几个问题

1.在机器orcl上查看用户默认表空间,以便导入时创建一样的表空间

select username,default_tablespace from dba_users where username ='CMS';

 

2.查看用户使用的表空间

select DISTINCT owner ,tablespace_name from dba_extents where owner like 'CMS';

 

3.查看表空间对应的数据文件,以便在B上创建大小合适的数据文件。

select file_name,tablespace_name from dba_data_files where tablespace_name in ('WORK01');

 

4.检查B机器的表空间,看是否存在work01表空间

select name from v$tablespace where name = ‘WORK01’;

查找不到,说明没有这个两个表空间,需要创建

 

5.要导入数据的server没有work01表空间,创建:

create tablespace work01

datafile '/u01/oradata/orac/work01.dbf'

size 200m

autoextend on

next 20m

maxsize unlimited

extent management local;

 

 

6. 在要导入的数据库上查找用户是否已经存在

select username from dba_users where username='CMS';

 

如果存在:

drop user cms cascade; --(删除用户及其拥有的所有对象)

 

-- 此时如果这个用户在连接,drop会出错,必须先杀掉用户的session,然后再drop

SELECT 'alter system kill session '''||SID||','||SERIAL#||''' immediate;'

FROM V$SESSION

WHERE USERNAME='CMS';

 

alter system kill session '93,56387' immediate;

alter system kill session '100,18899' immediate;

alter system kill session '135,24910' immediate;

alter system kill session '149,3' immediate;

alter system kill session '152,3' immediate;

alter system kill session '156,7' immediate;

alter system kill session '159,45889' immediate;

alter system kill session '160,1' immediate;

alter system kill session '161,1' immediate;

alter system kill session '162,1' immediate;

alter system kill session '163,1' immediate;

 

--再复制这些语句,粘贴到sqlplus中执行,来杀掉Test2的session。

 

如果不存在cms用户:

create user cms identified bycms default tablespace work01 temporary tablespace temp;

 

不管存不存在都应该给cms授权

grant connect,resource to cms;

 

7.最后将数据导入

下面在windows的cmd下将用户导进去

imp file=e:\cms.dmp fromuser=cms touser=cms userid=cms/cms@orac

 

这里要注意的是之前我是用cms用户将数据导出来的,这个cms具有dba权限,那么这里导入的时候用的userid后面的cms也必须具有这个权限不然会报错

这里我们可以临时给cms赋予dba权限,最后回收他,但是回收之后,记得再给cms赋予resource权限NFO,USER_PROJECT_INFO) file=/home/oracle/osmp2.dmp


  • 发表于 2019-12-05 16:36
  • 阅读 ( 820 )
  • 分类:大数据

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
不写代码的码农
FEATHER

4 篇文章

作家榜 »

  1. FEATHER 4 文章
  2. 常耀斌 3 文章
  3. zero 3 文章
  4. roc 1 文章
  5. 钱女士 0 文章
  6. yang 0 文章
  7. 李金友 0 文章
  8. 贾立 0 文章