当前位置:首页 > 技术知识 > 正文内容

Oracle 不是有效的导出文件,标头验证失败 解决方法

maynowei8个月前 (08-03)技术知识169

第一种:网上搜索到的大多解决方法是说导出文件时使用的Oracle版本不一致问题,需要修改dmp文件的版本号。如果确定版本号确实不一样,请自行搜索一下解决方法。


第二种:备份dmp文件时,备份的语句可能使用的是expdp命令备份的文件,如果是用expdp备份的文件,使用imp导入命令也是会报这样的错误。


所以:导出dmp文件时,如果使用的是expdp命令导出文件时,应该使用impdp命令导入。如果使用的exp命令导出文件时,应该使用imp命令导入


第二种具体解决步骤:

1、 一般导入都是先建立表空间、实例、用户名

2、用impdp命令导入

(1) 使用sqlplus或者Oracle客户端(PL/SQL) 链接到相应的Oracle数据库实例.

(2)创建逻辑目录,该命令不会在操作系统创建真正的目录,最好以system等管理员创建。

create directory dpdata1 as 'd:\test\dump'; (查看服务器上若没有存在d:\test\dump目录,则手动新建,把dmp备份文件放到d:\test\dump目录下面)

(3)impdp导入数据

impdp bbcj/bbcj@orcl directory=dpdata1 dumpfile=ERMS_20190923.dmp FULL=y;


注:

还需要根据导出的dmp,使用的表空间、用户名。(需要提前通过sys/tsingsoft 创建好了)


创建表空间:

create tablespace SEA_A2 datafile 'D:\app\Administrator\product\tablebase\data_1.dbf' size 10000M;

-- 一定要设置自动增长
alter database datafile 'D:\app\Administrator\product\tablebase\data_1.dbf' autoextend on;

oracle删除非空的表空间:

 drop tablespace tablespaceName including contents;

查看每个表空间的大小 和查看剩余表空间大小


Select Tablespace_Name,Sum(bytes)/1024/1024 From Dba_Segments Group By Tablespace_Name;

SELECT tablespace_name 表空间,sum(blocks*8192/1000000) 剩余空间M FROM dba_free_space GROUP BY tablespace_name;

系统正忙,使用此方法Kill掉。

/*查询已经锁住的对象的SessionId*/
SELECT SESSION_ID FROM V$LOCKED_OBJECT;
/*查询从session中查询相应的连接的用户和SERIAL*/
SELECT SID, SERIAL#, USERNAME, OSUSER FROM V$SESSION WHERE SID IN(
99
);
/*杀掉相应的session,格式:SID,SERIAL#*/
ALTER SYSTEM KILL SESSION '99,12';

创建函数索引

create index idx_char_P on TMP_ZHENGD_DY_P_20201120 (TO_CHAR(data_date,'yyyymmdd'));
commit;

相关文章

Objective-c单例模式的正确写法「藏」

单例模式在iOS开发中可能算是最常用的模式之一了,但是由于oc本身的语言特性,想要写一个正确的单例模式相对来说比较麻烦,这里我就抛砖引玉来聊一聊iOS中单例模式的设计思路。关于单例模式更多的介绍请参考...

Linux系统编程—互斥量mutex(linux 互斥量)

##互斥量mutex前文提到,系统中如果存在资源共享,线程间存在竞争,并且没有合理的同步机制的话,会出现数据混乱的现象。为了实现同步机制,Linux中提供了多种方式,其中一种方式为互斥锁mutex(也...

如何优雅地使用嵌入式事件标志组?

事件标志组嵌入式事件标志组是一种在嵌入式系统中广泛使用的同步机制,主要用于实现多任务间的同步与通信。事件标志组是一组事件标志位的集合,每个位代表一个事件是否发生。它允许任务等待特定的事件发生,当事件发...

Go 语言中的 RWMutex 源码解析、使用场景及应用分析

Go 语言标准库的 sync 包提供了一些非常重要的并发原语来帮助程序开发者处理并发任务。本文将详细解析 sync 包中的 RWMutex,即读写互斥锁(Reader/Writer Mutex),并结...

大厂 Go 编程规范(二):mutex(编程大厂是什么意思)

mutex 是golang 的互斥锁,可以保障在多协程的情况下,数据访问的安全。1、零值有效我们并不需要mutex指针mu := new(sync.Mutex) mu.Lock()直接可以使用mute...

C语言编写多线程,什么时候要使用互斥锁?为什么要使用互斥锁?

在多线程编程中,当多个线程同时访问共享资源(如变量、文件等)时,会出现竞态条件(Race Condition)问题,导致程序的行为不可预测。为了避免这种问题,需要使用互斥锁来保护共享资源的访问。互斥锁...