军达成数据库恢复专家教你实现Oracle数据库逻辑

时间:2011-08-16 11:00来源:服务器数据恢复 作者:www.jdcok.com

EXP和IMP是Oracle提供的一种逻辑备份工具。逻辑备份创建数据库对象的逻辑拷贝并存入一个二进制转储文件。这种逻辑备份需要在数据库启动的情况下使用, 其导出实质就是读取一个数据库记录集(甚至可以包括数据字典)并将这个记录集写入一个文件,这些记录的导出与其物理位置无关,导入实质就是读取转储文件并执行其中的命令。此备份方式是通过Oracle的实用工具export和import来实施的, export是把数据库中的数据导出,import是把export卸出的数据导入数据库中。通过此工具可以衍生出多种功能, 比如整个数据库的备份、表结构重建、数据的传输、用户的改变等等。

    Oracle Export/Import工具提供了灵活多样的功能和导出/导入模式,最常使用的三种模式是User、table和full database。除此以外,还可以在导出/导入时决定是否包含与对象有关的数据字典信息,如索引、约束、权限等等。

    注意:通过逻辑备份可以备份整个数据库, 或仅备份部分重要数据。因为是逻辑上的备份,故只能用于逻辑的恢复数据, 一旦数据库被物理损坏, 导致不能启动,逻辑备份的数据不能帮助恢复数据库。

    1. Export/Import的使用举例:(以下操作均为在
    (1). 将一个用户的对象导入到另一个用户模式中:
    把数据库中原有的用户Export至一个dmp文件(如把用户olduser的对象导出到文件olduser0701.dmp中):
    $ exp sys/password file= olduser0701 owner=olduser grant=N indexes=Y rows=Y
    从dmp文件中把一个用户的对象import至一个用户的模式中(从olduser0701.dmp中,把用户olduser的对象导入到用户newuser中):
    $imp sys/password file=olduser0701 fromuser=olduser touser=newuser indexes=Y rows=Y
    (2). 导入时避免出现ORA-00942(表或是图不存在)错误:
    因为,导出是按照在数据库中对象建立的顺序进行的,从而在导入时,数据库对象之间的依赖性会引起某些先导入对象找不到其依赖对象(如view、procedure等等),就会引起ORA-00942(表或是图不存在)错误。通常解决这种问题的方法是,做两次导入工作,第一遍导入时设置如下:
    $ imp sys/password file=demo0701 full=Y commit=y rows=Y
    导入时如果出现错误,就修改设置:rows=n,ignore=n:
    $ imp sys/password file=demo0701 full=Y rows=N commit=Y ignore=N
    (3). 做无增量的全数据库备份及恢复的例子:
    全数据库Export至dmp文件(如sidfull0701.dmp):
    $ exp sys/password file=sidfull0701.dmp Full=y -- rows确省为Y
    把整个数据库备份的sidfull0701.dmp文件至数据库中:
    $ imp sys/password file=sidfull0701.dmp ignore=y full=y-- rows确省为Y
    注意:导入/导出是最彻底的减少磁盘碎片的方法。
 


军达成数据库恢复专家教你实现Oracle数据库逻辑 www.jdcok.com/anli/5/1281.html
------分隔线----------------------------
分享到: