ora-12012只是一个消息,告诉你任务失败了,所以你应该关注的是ora-2291,这个错误号告诉你任务为什么失败。
ora-2291说明你这里有主外键关系,任务中有个语句会导致某个外键值找不到对应的主键值。
解决的话,你通过select r_constaint_name from dba_constraints where constraint_name='SYS_C00148570'找到这个外键关联的主键的名字,再用select owner,table_name from dba_constraints where constraint_name='主键的名字'来找到主键所在的表。之后就是解决你数据的问题了,外键列的值在主键列里是必须有的,是业务数据问题。
ORA-1110 、ORA-1122错误一起出现一般意味着对应号码/名字的数据文件存在问题, 而最底下的错误号一般能揭示该问题的本质,例如ORA-1200是说明数据文件的实际大小小于预期的大小。
针对有完整备份和归档的数据库可以尝试常规RESTORE、REOCOVER的方法来恢复该数据文件,而对于没哟任何形式物理备份的数据库而言,可以尝试使用DD等手段来修改数据文件大小,并绕过该问题。 注意这样做只是绕过问题而已,可能丢失的数据仍会丢失,并不会因此而恢复。
dd if= of=<output/target datafile> count=< > bs=。
Taking the above example (First we take an dd backup of datafile):。
dd if=/u02/oradata/careware/users01.dbf of=/tmp/corr_temp.DBF count=64000 bs=8192。
Now add 1600 zero blocks to datafile /u02/oradata/careware/users01.dbf。
syntax
dd if=/dev/zero of= bs= seek= count=。
In parameter seek specify the block from which it should append 1600 blocks.。
In this case since the file contains 64000 (as indicated by the error message) so seek=64001 which is the next block from where the append will occur.。
dd if=/dev/zero of=/u02/oradata/careware/users01.dbf bs=8192 seek=64001 count=1600 conv=notrunc。
Now check the file size at OS level (It should be 65600 * 8192 + 8192)bytes。
Do a ls -lrt to confirm the same.。
Warning!! Once the database is open, export all the objects present in the tablespace containing the datafile. Please note that for any segment which had blocks that got。
truncated at OS level, the export may fail if it tries to read data from the zero padded blocks. In that case it may be needed to apply a procedure to salvage good records.。
Once export is complete, create a new tablespace and import the data.。
Once it is confirmed that the data is good, drop the old tablespace.。
如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!。
诗檀软件专业数据库修复团队
ORA-01210: data file header is media corrupt。
ORA-01210: 数据文件头出现损坏了。
如果你有备份, 那么考虑从备份restore 数据文件。
看来主要是字符集的问题引起的
导入时可以值关注有意义的用户,不必把整个数据库都导进去。
字符集的问题主要有四个方面
1、远端数据库字符集
2、导出远端客户端字符集
3、导入目的端客户端字符集
4、导入目的端数据库字符集
这些地方的字符集应相同或兼容,最好相同。
tnsnames.ora IP地址修改成你本机现在的IP地址,并重启监听服务,等一会儿-等的时间会比较长估计得要几分钟的样子。
TNS协议是ORACLE服务端和客户端通讯的协议。TNS协议传输可以使用TCP/IP协议、使用SSL的TCP/IP协议、命名管道和IPC协议传输,其中TCP/IP协议传输是使用明文传送。这里我们只分析基于TCP/IP协议上的TNS数据。
ORACLE网络通讯协议TNS有许多版本,并且大部分向下兼容,我们主要oracle 9.2.0.1.0客户和服务间的传输协议,他的协议版本号为312,其兼容到300。
TNS协议有一个通用的头,通用头包含一个请求数据类型。不同的服务请求和数据传输使用不同的请求数据类型。对于通常意义的查询操作一般使用数据类型,当出现错误或其他情况时可能使用其他类型。在分析过程中发现以下类型数据:
1. 查询语句出错会用标记(marker)类型。
2. 客户端向服务器请求失败(如不存在的服务ID),服务器会发送拒绝(refuse)类型。
3. 客户机登陆会发送连接类型,而服务器返回一个重定向类型数据。
4. 当重定向端口连接完成后客户端重现发送连接类型数据,服务器返回接受类型数据,然后能够正常通讯。