Oracle备份与恢复一

来源:互联网 发布:大学高数软件 编辑:程序博客网 时间:2024/05/18 00:42

Oracle备份与恢复一

 

Frank

20040730

备份与恢复是数据库系统重要工作,目的是防止数据被破坏以后影响数据库系统的正常工作,虽然备份与恢复也不能保证100%无损失,但是作为防范手段,是需要真正掌握的。

 

1、  装库和卸库备份

impexp是两个重要命令

exp负责将数据库中的数据快速拷贝到另外的地方,以防数据损失。

查询exp命令的帮助时:exp help=y 将会详细介绍exp命令的参数含义。

Imp exp的反过程,两者结合使用,才能完成备份工作。

卸库的方法:

a)         表模式卸库

b)        用户模式卸库

c)        全库模式卸库

 

使用方法:

sql>$exp   c>exp

“$”字符表示在sqlplus状态下调用操作系统命令。

两种操作方式:交互式和参数驱动式

交互式:

使用卸库程序前必须将所用数据库打开。

c:/>exp

 

用参数驱动方式

exp userid=system/manager  buffer=10240  file=tables.dmp

compress=yes grants=yes indexes=yes  rows=yes

tables=(persons,check_body,depts)

……

direct=yes

 

简化格式:

exp userid=system/manager  file=tables.dmp   tables=(persons,check_body,depts)

 

parfile文件方式:

经常作装卸库的用户,可以创建一个参数文件,把所有参数设置放入改文件,调用exp命令时,需用parfile参数指定此参数文件。

例:下面为:my.txt文件内容

userid=system/manager

buffer=10240

file=tables.dmp

log=tables.log

tables=(persons,check_body,depts)

statistics=compute

   c:/>exp parfile= c:/my.txt

 

注:parfile参数不能放到参数文件中,这是唯一不能放到参数文件中的参数。

   

用户模式卸库:

可以将一个或多个用户的所有数据全部倒出,包括其中的视图、同义词和过程函数等。

全库模式卸库:

将整个系统的数据和文件卸出,就用全库方式。前提条件:用于全库模式卸库的用户需授予卸出整库角色(EXP_FULL_DATABASE.

SQL> grant   “EXP_FULL_DATABASE”  to   “jxl”;

 

卸库失败处理:

1.         表模式卸库

用户都必须具有倒出该对象权限。

2.         全库模式卸库

授予该用户DBA角色或EXP_FULL_DATABASE角色

在使用卸库程序前必须将所用数据库打开。

SQL>alter database open

 

 

装库方法:

?           交互式调用装库程序imp

?           用参数驱动方式,即在调用装库程序imp时指定一些参数。

?           parfile指定参数文件来调用imp

 

1、  表模式装库

表模式装库对应所有的卸库模式所产生的卸库文件,只要在其中指定用户和所要装入的表即可。

2、  用户模式装库

用户模式装库能够装入由用户模式和全库模式卸出的文件。注意:对于用户模式卸出的文件,最好选用户模式装库,这在恢复整个用户的所有对象时非常有用。

3、  全库模式装库

由于装入大量数据和文件,花费时间较长,故不常用。其他方法同上,要注意的是:用于全库方式装库的用户必须授予“IMP_FULL_DATABASE”角色。

例:

  SQL>grant  “IMP_FULL_DATABASE”  to  “www”;

 

装库失败处理:

1、  普通用户要求导入由DBA所倒出的文件

解决方法:授予该用户DBA权限

2、用户要求倒出由其他用户所倒出的卸库文件:需要使用原来用户进行装库。

例:  警告:此对象由swj倒出,不是当前用户。

解决方法:

以用户swj装库,指定touser=www  hsman为目的用户)

imp  userid= swj/swj  files = users.dmp  fromuser = ‘swj’   touser = ‘www’