oracle数据库备份和还原问题

来源:互联网 发布:阴阳师网络剧 编辑:程序博客网 时间:2024/06/06 03:10
前几天从服务器导出数据库,并在本地还原时一直报错。错误是

IMP-00010: 不是有效的导出文件,标题验证失败

IMP-00000: 未成功终止导入

在网上搜了搜这个问题,看到一个很好的回答,转载过来,还有一些同时碰到的问题,一起记录下来。

大概有两种情况:
1.imp/exp的版本不对,也就是说低版本的导出,可以用高版本的导入,但高版本导出不能用低版本的导入,这个版本不只是指imp/exp的版本,也是指数据库的版本
2.可能在用ftp download时未设置binary的传输方式,导致文件损坏
UltraEdit-32打开dmp文件可看到版本信息,dmp文件的信息如下:

XPORT:V10.02.01

从中可以看出其版本是10.02.01

----------------------------------------------------------------------
exp/imp用法
exp/imp适合于同类型数据库之间数据转换
共有四种不同模式:表,用户,表空间,数据库
现分别举例说明
1.表级别
$ exp hr/hr tables=jobs direct=y file=/data/table_jobs.dmp
$ imp hr/hr tables=jobs direct=y file=/data/table_jobs.dmp
2.用户级别
$ exp "'sys/sys as sysdba'" owner=hr direct=y file=/data/owner_hr.dmp
$ imp "'sys/sys as sysdba'" fromuser=hr touser=hr file=/data/owner_hr.dmp
 
3.表空间级别
$ exp "'sys/sys as sysdba'" transport_tablespace=y direct=y tablespaces=examples file=/data/ts_examples.dmp
 
4.数据库级别
$ exp "'sys/sys as sysdba'" full=y  file=/data/db.dmp
 
说明:如要使用as sysdba或as sysoper进行操作,则必须使
     用如下用法:
     "'sys/sys as sysdba'"
     "'system/system as sysoper'"

还有一个回答也很好,贴在下面

oracle 导入dmp 报 IMP-00010:不是有效的导出文件,头部验证失败

这是由于导出的dmp文件与导入的数据库的版本不同造成的

Notepad++查看了dmp文件,在头部具修改成你将导入目标数据库的版本号

以下对应的版本号:

11g R2:V11.02.00

11g R1:V11.01.00

10g:V10.02.01

——————————————————分割线——————————————-——————————————

刚接触oracle数据库,还处于刚刚会使用的阶段,碰到了很多问题。经常碰到“无法解析指定的SID”这种错误,对于SID是什么一直不懂,在网上找了个比较好理解的贴过来。

可以简单的这样理解:一个公司比喻成一台服务器,数据库是这个公司中的一个部门。
1.SID:一个数据库可以有多个实例(如RAC),SID是用来标识这个数据库内部每个实例的名字,
就好像一个部门里,每个人都有一个自己的名字。
2.SERVICE_NAME:是这个数据库对外宣称的名字,外面的人要想连接我这个数据库,
你就在客户端的连接串里写上service_name。它就像一个部门的名字,这个部门的名称在看门大爷(listener)那里有登记,
看门大爷一看你是要找SERVICE_NAME这个部门,就告诉你我们公司确实有这个部门,于是你就找到了,连接就建立了。


一句话来说就是:SID是对内的,是实例级别的一个名字,用来内部之间称呼用。SERVICE_name是对外的,
是数据库级别的一个名字,用来告诉外面的人,我数据库叫"SERVICE_NAME"。
你可以通过service_name参数指定这个名字是什么,可以有多个名字,名字随便起,叫狗蛋,翠花都没关系。
如果你不指定,默认的是Db_name. Db_domain,也就是global_name。
数据库里,还有ORACLE_SID,是告诉OS系统,我这个实例叫做什么。这些易混淆的名字,你要记住,
他们不是指数据库,就是指实例,就这两个东西,别无其它。他们具体用哪个名字,是要看对谁而言,
是什么场合。是对数据库,还是对操作系统,还是对外部链接。就像你对父母而言,你有小名叫幺儿;
对同学而言,你有外号叫灯泡;对办事机构,你有正规的名字叫王小明。但归根到底,是一回事。分清楚这点,就不容易混了

————————

个人总结: 数据库信息有全局数据库名,系统标识符SID

每个oracle数据库或服务都有一个服务名,oracle数据库的服务名通常是全局数据库名。

————————目前遇到的问题——————————

还原数据库时出现错误 1、无法解析指定的连接标识符。

2、监听程序当前无法识别链接描述符中请求的服务。

0 0
原创粉丝点击