oracle 导入数据库imp导入问题总结

您所在的位置:网站首页 oracle导入dmp文件报错12514 oracle 导入数据库imp导入问题总结

oracle 导入数据库imp导入问题总结

2024-03-05 09:41| 来源: 网络整理| 查看: 265

一、导入命令

1、单个文件导入

imp hn_dw/hn_dw file=/home/oracle/test.dmp log=/home/oracle/test.log full=y commit=y ignore=y

imp hn_dw/hn_dw (用户名/密码 )file=/home/oracle/test.dmp(文件路径) log=/home/oracle/test.log(日志路径) full=y commit=y ignore=y

参数解释:

2、多个文件导入

imp hn_dw/hn_dw file=\(test01.dmp,test02.dmp,test03.dmp\) log=hn_log/test.log full=y commit=y ignore=y

imp hn_dw/hn_dw(用户名/密码) file=\(test01.dmp,test02.dmp,test03.dmp\) (多个文件)log=hn_log/test.log full=y commit=y ignore=y

二、查看表空间使用率

SELECT a.tablespace_name "表空间名",

total "表空间大小",

free "表空间剩余大小",

(total - free) "表空间使用大小",

total / (1024 * 1024 * 1024) "表空间大小(G)",

free / (1024 * 1024 * 1024) "表空间剩余大小(G)",

(total - free) / (1024 * 1024 * 1024) "表空间使用大小(G)",

round((total - free) / total, 4) * 100 "使用率 %"

FROM (SELECT tablespace_name, SUM(bytes) free

FROM dba_free_space

GROUP BY tablespace_name) a,

(SELECT tablespace_name, SUM(bytes) total

FROM dba_data_files

GROUP BY tablespace_name) b

WHERE a.tablespace_name = b.tablespace_name

三、查看表空间数据文件

1、输入命令bai: sqlplus / as sysdba

2、select t1.name,t2.name ?from v$tablespace t1,v$datafile t2 where t1.ts# = t2.ts#;

四、扩充表空间

alter tablespace PARTNER_DBS add datafile '/home/orcl/app/oracle/product/12.1.0_1sscms1.dbf' size 24576m

表空间名:PARTNER_DBS

表空间数据文件路径: /home/orcl/app/oracle/product/12.1.0/db_1/PARTNER_DBS .DBF

2、查看表空间是否开启了自动扩展的功能 

SELECT T.TABLESPACE_NAME, D.FILE_NAME, D.AUTOEXTENSIBLE, D.BYTES, D.MAXBYTES, D.STATUS FROM DBA_TABLESPACES T, DBA_DATA_FILES D WHERE T.TABLESPACE_NAME = D.TABLESPACE_NAME ORDER BY TABLESPACE_NAME, FILE_NAME;

3、扩大表空间的四种方法:

1、增加数据文件  ALTER TABLESPACE ***_TRD ADD DATAFILE  ‘D:\Oracle\PRODUCT\10.2.0\ORADATA\DBFILE\TRD_2.DBF’ SIZE 1024M;

2、增加数据文件并允许自动增长  ALTER TABLESPACE ***_TRD ADD DATAFILE  ‘D:\ORACLE\PRODUCT\10.2.0\ORADATA\DBFILE\TRD_2.DBF’ SIZE 1024M AUTOEXTEND ON NEXT 8M MAXSIZE 10240M;

3、允许已存在的数据文件自动增长  ALTER DATABASE DATAFILE ‘D:\ORACLE\PRODUCT\10.2.0\ORADATA\DBFILE\TRD.DBF’  AUTOEXTEND ON NEXT 8M MAXSIZE 10240M;

4、手工改变已存在数据文件的大小  ALTER DATABASE DATAFILE ‘D:\ORACLE\PRODUCT\10.2.0\ORADATA\DBFILE\TRD.DBF’  RESIZE 10240M;

五、查看oracle用户下所有表

select * from dba_tables where owner in ('用户名');

或者当前用户

select * from user_tables;

六、覆盖之前的表数据

oracle10g之后impdp的table_exists_action参数

impdp username/password table_exists_action=truncate  directory=DATA_PUMP_DIR dumpfile=expdpfilename.dmp logfile=implog.log

table_exists_action:

skip 是如果已存在表,则跳过并处理下一个对象;

append是为表增加数据;

truncate是截断表,然后为其增加新数据;

replace是删除已存在表,重新建表并追加数据;

注:使用imp命令导入的话ignore=y就是覆盖;

七、如何查看dmp文件是哪个用户导出

1、打开dmp文件 找关键词CONNECT 后面的bai就是对方的用户名,执行imp userid=用户名/密码@orcl fromuser=原来的旧用户 touser=新的用户file=d:\xxxx.dmp命令成功导入,已执行检测过。

八、删除oracle用户

- 查询用户各进程相对应的 sid、serial#。 -- 注意: username 必须大写 SELECT sid,serial#,username FROM v$session WHERE username = 'AAA'; -- 根据上面的查询结果,将用户占用的所有进程杀掉。 --注意: sid 与 serial#  ALTER SYSTEM KILL SESSION 'xxx, xxx'; -- 删除用户 DROP USER test1 CASCADE;

九、查看oracle数据库版本

1)select* from v$version;

2)select * from product_component_version;

3)set serveroutput on;

exec dbms_output.put_line(dbms_db_version.version);

十、导入导出详细步骤

注:导入导出之前都要先查看字符集:echo $NLS_LANG

1,expdp导入导出需要创建导入导出目录:

      sqlplus / as sysdba

      create or replace directory test as '/home/oracle/dmp';

      exit

2,expdp" '/as sysdba' " directory=test   schemas=platform    dumpfile=platform_UAT_YYYYMMDD.dmp    logfile=platform_UAT_YYYYMMDD.log   version=11.2.0.1.0(高版本到低版本需要设置版本号)

3,导入时候把.dmp文件放到/home/oracle/dmp/test下

4,断开所有应用连接,跟PLSQL连接,保证当前数据库没有客户端在连接

5,dba角色用户登陆,sqlplus / as sysdba

6,删除用户  drop user platform cascade;

7,退出sqlplus exit

8,导入之前先查看字符集 echo $NLS_LANG,如果字符集为空,则根据情况自行导入字符集

      export NLS_LANG = american_america.ZHS16GBK

9,最后导入dmp文件

      impdp " '/as sysdba' " directory=test  cluster = no dumpflie=platform_UAT_YYYYMMDD.dmp logfile=platform_YYYYMMDD-imp.log

  如果导入失败,则使用下列方法:

   impdp " '/as sysdba' " directory=test   dumpflie=platform_UAT_YYYYMMDD.dmp

 logfile=platform_YYYYMMDD-imp.log   remap_schema=SOURCE_USER:platform

使用exp,imp命令导入导出不需要指定directory

 1,导入导出之前都要先查看字符集:echo $NLS_LANG

 2,exp  platform/[email protected]:1521/tysys owner=platform file=platform_YYYYMMDD.dmp

3 ,  imp  platform/[email protected]:1521/tysys full=y file=platform_YYYYMMDD.dmp ignore=y

 4,如果遇到无法导入的情况,则执行创建用户,赋与connect,resource权限,dba角色

 sqlplus / as sysdba

 create user platform identified by platform default tablespace platform Temporary TABLESPACE Temp;

 grant connect,resource,dba to platform;

   exit;

5,重复导入exp文件即可。

十一、权限

1、授予权限   1、默认的普通用户SCOTT默认未解锁,不能进行那个使用,新建的用户也没有任何权限,必须授予权限   --授予 XIMING 用户创建SESSION的权限,即登陆权限,允许用户登录数据库   GRANT CREATE SESSION TO XIMING;   --授予XIMING用户使用表空间的权限   GRANT UNLIMITED TABLESPACE TO XIMING;   --授予创建表的权限   GRANT CREATE TABLE TO XIMING;   --授予删除表的权限   GRANTE DROP TABLE TO XIMING;   --插入表的权限   GRANT INSERT TABLE TO XIMING;   --修改表的权限   GRANT UPDATE TABLE TO XIMING;   --这条比较重要,授予所有权限(ALL)给所有用户(PUBLIC)   GRANT ALL TO PUBLIC;

  2、ORALCE对权限管理比较严谨,普通用户之间也是默认不能互相访问的,需要互相授权   GRANT SELECT ON TABLENAME TO XIMING;--授予XIMING用户查看指定表的权限   GRANT DROP ON TABLENAME TO XIMING;--授予删除表的权限   GRANT INSERT ON TABLENAME TO XIMING;--授予插入的权限   GRANT UPDATE ON TABLENAME TO XIMING;--授予修改表的权限   GRANT INSERT(ID) ON TABLENAME TO XIMING;   --授予对指定表特定字段的插入和修改权限,注意,只能是INSERT和UPDATE   GRANT UPDATE(ID) ON TABLENAME TO XIMING;   GRANT ALERT ALL TABLE TO XIMING;--授予XIMING用户ALERT任意表的权限

2、撤销权限   基本语法同GRANT,关键字为REVOKE

3、查看权限   SELECT * FROM USER_SYS_PRIVS;--查看当前用户所有权限   SELECT * FROM USER_TAB_PRIVS;--查看所用用户对表的权限

4、操作表的用户的表   SELECT * FROM XIMING.(用户.表明);

5、权限传递   即用户A将权限授予B,B可以将操作的权限再授予C,命令如下:   GRANT ALERT TABLE ON TABLENAME TO XIMING WITH ADMIN OPTION;--关键字 WITH ADMIN OPTION   GRANT ALERT TABLE ON TABLENAME TO XIMING WITH GRANT OPTION;--关键字 WITH GRANT OPTION效果和ADMIN类似

十二、更新有用户名和密码

select user#,name from user$ where name='旧用户名'  update user$ set name='新用户民' where user#=? ;  参数 commit; alter user 旧用户名 identified by "新用户名";  commit; alter system checkpoint; alter system flush shared_pool;

十三、报错

1、IMP-00017: following statement failed with ORACLE error 959:

原因:在导入数据库文件时,有一张表未导入成功,报了如下错误: IMP-00003: 遇到 ORACLE 错误 959 ORA-00959: 表空间 'XXXXXXXXXXX' 不存在。

ORA-00959: ??? 'PARTNER_DBS' ???  (注:PARTNER_DBS这个表空间不存在) 查询的确没有对应的表空间:

select * from dba_data_files where tablespace_name = 'XXXX'

解决:添加上对应的表空间,再重新导入:

create tablespace emaoyi

logging

datafile 'D:\app\Administrator\product\11.2.0\dbhome_1\database\emaoyi.dbf'

size 10m

autoextend on

next 10m maxsize 20480m

extent management local;

注: 表空间自增长,其大小也不会超过最大大小,因此在设置大小时可以将MAXSIZE 设置为unlimited;

2、IMP-00085: multiple input files specified for unbounded export file

为无界导出文件指定了多个输入文件

*原因:在导出的时候一个表因为过大,所以分成几个dmp文件导出,所以在导入的时候注意,要用多个文件一起的命令格式导入,文件要完整且名称要准确。我在导入三个文件时报错,然后转义一下就可以了。命令如下:

解决:imp 用户名/密码 file=\(文件01.dmp,文件02.dmp\) log=hn_log/日志名称.log full=y commit=y ignore=y

3、IMP-00003: ORACLE error 942 encountered

ORA-00942: ???????

原因:1.表或视图真的不存在 2.用户没有访问该表的权限。

GRANT SELECT ON TABLENAME TO XIMING;--授予XIMING用户查看指定表的权限 GRANT DROP ON TABLENAME TO XIMING;--授予删除表的权限 GRANT INSERT ON TABLENAME TO XIMING;--授予插入的权限 GRANT UPDATE ON TABLENAME TO XIMING;--授予修改表的权限 GRANT INSERT(ID) ON TABLENAME TO XIMING; 解决:给用授予权限

4、ORA-02437: ???? (HN_DW.SYS_C0054645) - ????

原因:创建表示没有添加主键,当表中存在很多重复数据时,此时再添加主键就会报这个错误。所以,设计表的时候一定要注意!

解决:先找出表中重复的数据,然后删除相同数据rowid最小的那一列

5、IMP-00093: Inconsistency between dumpfile constraint definition for table PNR_INSPECT_PLAN_ITEM with columns ("ID")

原因:起因是在导入的过程中要导入系统生成的约束,类似SYS_C0027639, metalink上只提到了这个原因,但是以前很多次的imp应该都是有这样系统生成的约束名,并没有报错过,所以应该还是有另外的因素参杂其中的,比如统计信息的生成。没有继续研究。

解决:在imp时使用indexes=no或statistics=none参数,当然后者比较好一些。

6、ORA-01000

解决:而是IMP-00093,只是由于太多的IMP-00093错误消耗了大量的cursor,导致一个session中的cursor数超过了定义的300,所以在最后就开始报ORA-01000错误了

7、ORA-00001: ???????? (HN_DW.PK_PNR_LINE_LOCUS)

原因:UPDATE或INSERT语句试图插入重复的键

解决:删除唯一约束限制或不插入重复值。

8、IMP-00009: abnormal end of export file

原因:这中情况通常是因为导出文件异常,当导如最后发现异常时,会回退所有操作。

9、ORA-01653: ? HN_DW.TBL_WORKORDER_USER_REPLY ???? 1024 (???? DAIWEIDBS ?) ??

原因:表空间不足

解决:扩充表空间

 

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3