如何对数据库进行备份和恢复?

时间:2022-10-24 07:56:21
有一个很大的数据库,大约有30g左右,我现在想将它完全备份出来,但不知道orcle数据库自带的备份工具是什么,请问怎样备份和恢复数据库?任何可行方法都可以,但希望提供详细的步骤,因为我不懂oracle.

12 个解决方案

#1


三种方法,冷备份,热备份,exp和imp
具体你看看书吧,或者google

#2


exp和imp

www.oradb.net

#3


Oracle数据库的备份与恢复

当我们使用一个数据库时,总希望数据库的内容是可靠的、正确的,但由于计算机系统的故障(包括机器故障、介质故障、误操作等),数据库有时也可能遭到破坏,这时如何尽快恢复数据就成为当务之急。如果平时对数据库做了备份,那么此时恢复数据就显得很容易。由此可见,做好数据库的备份是多么的重要,下面笔者就以ORACLE7为例,来讲述一下数据库的备份和恢复。ORACLE 数据库有三种标准的备份方法,它们分别为导出/导入(EXPORT/IMPORT)、冷备份、热备份。导出备份是一种逻辑备份,冷备份和热备份是物理备份。

一、 导出/导入(Export/Import)

利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回Oracle数据库中去。

1. 简单导出数据(Export)和导入数据(Import)

Oracle支持三种类型的输出:

(1)表方式(T方式),将指定表的数据导出。

(2)用户方式(U方式),将指定用户的所有对象及数据导出。

(3)全库方式(Full方式),将数据库中的所有对象导出。

数据导出(Import)的过程是数据导入(Export)的逆过程,它们的数据流向不同。

2. 增量导出/导入

增量导出是一种常用的数据备份方法,它只能对整个数据库来实施,并且必须作为SYSTEM来导出。在进行此种导出时,系统不要求回答任何问题。导出文件名缺省为export.dmp,如果不希望自己的输出文件定名为export.dmp,必须在命令行中指出要用的文件名。

增量导出包括三个类型:

(1)“完全”增量导出(Complete)

即备份整个数据库,比如:

$exp system/manager inctype=complete file=990702.dmp

(2) “增量型”增量导出

备份上一次备份后改变的数据。比如:

$exp system/manager inctype=incremental file=990702.dmp

(3) “累计型”增量导出(Cumulative)

累计型导出方式只是导出自上次“完全” 导出之后数据库中变化了的信息。比如:

$exp system/manager inctype=cumulative file=990702.dmp

数据库管理员可以排定一个备份日程表,用数据导出的三个不同方式合理高效地完成。

比如数据库的备份任务可作如下安排:

星期一:完全导出(A)

星期二:增量导出(B)

星期三:增量导出(C)

星期四:增量导出(D)

星期五:累计导出(E)

星期六:增量导出(F)

星期日:增量导出(G)

如果在星期日,数据库遭到意外破坏,数据库管理员可按以下步骤来恢复数据库:

第一步:用命令CREATE DATABASE重新生成数据库结构;

第二步:创建一个足够大的附加回段。

第三步:完全增量导入A:

$imp system./manager inctype= RECTORE FULL=Y FILE=A

第四步:累计增量导入E:

$imp system/manager inctype= RECTORE FULL=Y FILE =E

第五步:最近增量导入F:

$imp system/manager inctype=RESTORE FULL=Y FILE=F

二、 冷备份

冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库。冷备份是将关键性文件拷贝到另外位置的一种说法。对于备份Oracle信息而言,冷备份是最快和最安全的方法。冷备份的优点是:

1.是非常快速的备份方法(只需拷贝文件)

2.容易归档(简单拷贝即可)

3.容易恢复到某个时间点上(只需将文件再拷贝回去)

4.能与归档方法相结合,作数据库“最新状态”的恢复。

5.低度维护,高度安全。

但冷备份也有如下不足:

1.单独使用时,只能提供到“某一时间点上”的恢复。

2.在实施备份的全过程中,数据库必须要作备份而不能作其它工作。也就是说,在冷备份过程中,数据库必须是关闭状态。

3.若磁盘空间有限,只能拷贝到磁带等其它外部存储设备上,速度会很慢。

4.不能按表或按用户恢复。

如果可能的话(主要看效率),应将信息备份到磁盘上,然后启动数据库(使用户可以工作)并将所备份的信息拷贝到磁带上(拷贝的同时,数据库也可以工作)。冷备份中必须拷贝的文件包括:

1.所有数据文件

2.所有控制文件

3.所有联机REDO LOG文件

4.Init.ora文件(可选)。

值得注意的是冷备份必须在数据库关闭的情况下进行,当数据库处于打开状态时,执行数据库文件系统备份是无效的

下面是做冷备份的完整例子:

(1) 关闭数据库$sqldba lmode=y

SQLDBA >connect internal;

SQLDBA >shutdown normal;

(2) 用拷贝命令备份全部的时间文件、重做日志文件、控制文件、初始化参数文件

SQLDBA >! cp < file > < backup directory >

(3) 重启Oracle数据库

$sqldba lmode=y

SQLDBA >connect internal;

SQLDBA >startup;

三、 热备份

热备份是在数据库运行的情况下,采用archivelog mode方式备份数据的方法。所以,如果你有昨天夜里的一个冷备份而且又有今天的热备份文件,在发生问题时,就可以利用这些资料恢复更多的信息。热备份要求数据库在Archivelog方式下操作,并需要大量的档案空间。一旦数据库运行在archivelog状态下,就可以做备份了。热备份的命令文件由三部分组成:

1.数据文件一个表空间一个表空间地备份。

(1)设置表空间为备份状态

(2)备份表空间的数据文件

(3)恢复表空间为正常状态

2.备份归档log文件。

(1)临时停止归档进程

(2)log下那些在archive redo log目标目录中的文件

(3)重新启动archive进程

(4)备份归档的redo log 文件

3.用alter database backup controlfile命令来备份拷贝文件

热备份的优点是:

1.可在表空间或数据文件级备份,备份时间短。

2.备份时数据库仍可使用。

3.可达到秒级恢复(恢复到某一时间点上)。

4.可对几乎所有数据库实体作恢复。

5.恢复是快速的,在大多数情况下在数据库仍工作时恢复。

热备份的不足是:

1.不能出错,否则后果严重。

2.若热备份不成功,所得结果不可用于时间点的恢复。

3.因难于维护,所以要特别仔细小心,不允许“以失败而告终”。

#4


UP

#5


冷备份,热备份,exp和imp

#6


exp/imp 逻辑备份 只备份数据
冷备份 脱机备份 
热备份 联机备份

备份工具,rman

#7


支持楼上

#8


数据库的备份:
1.在服务器端Windows NT网络操作系统中找到Oracle的安装目录:
如D:\oracle\  再进入Bin\子目录,鼠标左键双击 exp.exe 文件                   
或在Ms_Dos方式中进入Oralce安装目录中的Bin子目录,输入:exp [ENTER]
2.出现提示输入管理员用户名界面:
Export:Release 8.1.5.0.0-Production on Sun Oct 29 20:27:59 2000
<c> Copyright 1999 Oracle Corporation. All rights reserved.
Username:(此处输入管理员用户名)[ENTER]
3.出现提示输入管理员口令界面:
Password:(此处输入管理员口令)[ENTER]
4.出项备份选择界面。
Connected to : Oracle8i Enterprise Edition Release 8.1.5.0.0-Production 
 With the Partitioning and Java options
PL/SQL Release 8.1.5.0.0 – Production
Enter array fetch buffer size: 4096 >[ENTER]
此处为选定备份时用于取数据行的缓冲尺寸。直接选定缺省值4096即可。
5.出现选择备份文件输出的位置和名称界面。
Export file:EXPDAT.DMP>D:\backup\xx20001029.dmp[ENTER]
在此之前,需要在操作系统D盘上建立一个名称为backup的文件夹。备注:最好把备份的文件名写成用户名加日期的方式,方便查询和恢复工作。
6.出现选择备份方式界面。
(1) E(ntire database),(2)U(sers),or (3)T(ables):(2)U>E[ENTER]
7.询问是否备份数据库内的授权
Exprot grants(Yes/No):Yes>[ENTER]
8.询问是否备份基表内的数据
Export table data(Yes/No):Yes>[ENTER]
9.询问是否是否压缩碎片数据段
Compress extents(Yes/No):Yes>[ENTER]
10.About to export specifited users
user to be exported :(Return to quit)>(输入数据库管理员名称)[ENTER]
这样就完成了数据库的热备份。备份完数据后,系统会自动退出DOS界面。
11.最后在操作系统的D盘上的backup文件夹中将找到备份的名为xx20001029.dmp的
    文件。

数据库的恢复
1.在服务器端Windows NT网络操作系统中找到Oracle的安装目录:
 如D:\oracle\  再进入Bin\子目录,鼠标左键双击 imp.exe 文件                  或在Ms_Dos方式中进入Oralce安装目录中的Bin子目录,输入:imp [ENTER]
2.出现提示输入管理员用户名界面:
import:Release 8.1.5.0.0 -production on Sun Oct 29 21:57:47 2000
<c> Copyright 1999 Oracle Corporation. All rights reserved.
Username:(此处输入管理员用户名)[ENTER]
3.出现提示输入管理员口令界面:
Password:(此处输入管理员口令)[ENTER]
4.出项备份文件输入界面。
Import file:Expadat.dmp>D:\backup\xx20001029.dmp[ENTER]
5.选择数据插入的缓冲尺寸,选择缺省值,按回车即可。
Enter insert buffer size(minimum is 4096)30270>[ENTER]
6.Export file created by Export :U07.02.02,list contents of import file
only(Yes/No):no>[ENTER]
7.选择是否忽略数据恢复中出现的错误,回车即可。
 Ignore create error due to object existence (Yes/No):no>[ENTER]
8.选择是否恢复授权,选择缺省值,回车即可。
 Import grants(Yes/No):Yes>[ENTER]
9.选择是否恢复表数据, 选择缺省值,回车即可。
 Import table data (Yes/No):Yes>[ENTER]
10.选择是否输出整个文件。
    Import Entire export file (Yes/No):no>[ENTER]
11.输入用户名。
   Username>(此处输入数据库管理员名称)  ,然后等待系统进行数据库的恢复,
     恢复工作完成后,系统会自动退出DOS界面。
     这样,就完成了数据库的恢复。
在win2k server 和 oracle 817下的备份说明

#9


关注

#10


Oracle数据库备份主要有: 
l Cold Backup(冷备份) 主要指在关闭数据库的状态下进行的数据库完全备份,备份内容包括所有数据文件、控制文件、联机日志文件、ini文件。 

2 Hot Backup(热备份) 指在数据库处于运行状态下,对数据文件和控制文件进行备份,要使用热备份必须将数据库运行在(Archive Log)归档方式下。 

3 Export(逻辑备份)这是最简单的备份方法,可按数据库中某个表、某个用户或整个数据库来导出,并且支持全部、累计、增量三种方式。使用这种方法,数据库必须处于打开状态,而且如果数据库不是在restrict状态将不能保证导出数据的一致性。

#11


ORACLE提供了一个比较好的备份工具RMAN
RMAN可以用来备份和恢复数据库文件、归档日志和控制文件,也可以用来执行完全或不完全的数据库恢复。RMAN有三种不同的用户接口:COMMAND LINE方式、GUI方式(集成在OEM中的备份管理器)、API方式(用于集成到第三方的备份软件中)

**创建恢复目录

1、在目录数据库中创建恢复目录所用表空间

SQL> create tablespace rmants datafile 'c:\oracle\oradata\cc\rmants.ora' size 20M ;

表空间已创建。

2、在目录数据库中创建RMAN用户并授权

SQL> create user rman identified by rman default tablespace rmants temporary tablespace temp quota unlimited on rmants;

用户已创建

SQL> grant recovery_catalog_owner to rman ;

授权成功。

3、在目录数据库中创建恢复目录

C:\>rman catalog rman/rman

恢复管理器:版本8.1.7.0.0 - Production

RMAN-06008:连接到恢复目录数据库
RMAN-06428:未安装恢复目录

RMAN>create catalog tablespace rmants;

RMAN-06431:恢复目录已创建


4、注册目标数据库到恢复目录

注意哦,这里我的目标数据库使用的服务名称是rman,意思为要使用RMAN进行备份的数据库,而目录数据库使用的服务名称是CC。

C:\>rman target sys/sys@rman

恢复管理器:版本8.1.7.0.0 - Production

RMAN-06005:连接到目标数据库:RMAN (DBID=1303772234)

RMAN>connect catalog rman/rman@cc

RMAN-06008:连接到恢复目录数据库

RMAN>register database;

RMAN-03022:正在编译命令:register
RMAN-03023:正在执行命令:register
RMAN-08006:注册在恢复目录中的数据库
RMAN-03023:正在执行命令:full resync
RMAN-08002:正在启动全部恢复目录的 resync
RMAN-08004:完成全部 resync

#12


使用RMAN

下面通过具体的例子来说明RMAN的使用,这里会涉及到除了恢复以外的所有RMAN操作,关于使用RMAN进行恢复的内容请参考我以前写的另外一篇文章:RMAN恢复实践。

1、备份整个数据库

RMAN>run {
 allocate channel c1 type disk;
 backup database format 'e:\dbbackup\2db.dmp';
 }

2、复制数据数据库
RMAN>run {
      set until SCN 396566;
      allocate channel d1 type disk;
      restore controlfile;
      sql 'alter database mount ';
      restore database;
      recover database;
      sql 'alter database open resetlogs';
      release channel d1;
 }

reset database;

#1


三种方法,冷备份,热备份,exp和imp
具体你看看书吧,或者google

#2


exp和imp

www.oradb.net

#3


Oracle数据库的备份与恢复

当我们使用一个数据库时,总希望数据库的内容是可靠的、正确的,但由于计算机系统的故障(包括机器故障、介质故障、误操作等),数据库有时也可能遭到破坏,这时如何尽快恢复数据就成为当务之急。如果平时对数据库做了备份,那么此时恢复数据就显得很容易。由此可见,做好数据库的备份是多么的重要,下面笔者就以ORACLE7为例,来讲述一下数据库的备份和恢复。ORACLE 数据库有三种标准的备份方法,它们分别为导出/导入(EXPORT/IMPORT)、冷备份、热备份。导出备份是一种逻辑备份,冷备份和热备份是物理备份。

一、 导出/导入(Export/Import)

利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回Oracle数据库中去。

1. 简单导出数据(Export)和导入数据(Import)

Oracle支持三种类型的输出:

(1)表方式(T方式),将指定表的数据导出。

(2)用户方式(U方式),将指定用户的所有对象及数据导出。

(3)全库方式(Full方式),将数据库中的所有对象导出。

数据导出(Import)的过程是数据导入(Export)的逆过程,它们的数据流向不同。

2. 增量导出/导入

增量导出是一种常用的数据备份方法,它只能对整个数据库来实施,并且必须作为SYSTEM来导出。在进行此种导出时,系统不要求回答任何问题。导出文件名缺省为export.dmp,如果不希望自己的输出文件定名为export.dmp,必须在命令行中指出要用的文件名。

增量导出包括三个类型:

(1)“完全”增量导出(Complete)

即备份整个数据库,比如:

$exp system/manager inctype=complete file=990702.dmp

(2) “增量型”增量导出

备份上一次备份后改变的数据。比如:

$exp system/manager inctype=incremental file=990702.dmp

(3) “累计型”增量导出(Cumulative)

累计型导出方式只是导出自上次“完全” 导出之后数据库中变化了的信息。比如:

$exp system/manager inctype=cumulative file=990702.dmp

数据库管理员可以排定一个备份日程表,用数据导出的三个不同方式合理高效地完成。

比如数据库的备份任务可作如下安排:

星期一:完全导出(A)

星期二:增量导出(B)

星期三:增量导出(C)

星期四:增量导出(D)

星期五:累计导出(E)

星期六:增量导出(F)

星期日:增量导出(G)

如果在星期日,数据库遭到意外破坏,数据库管理员可按以下步骤来恢复数据库:

第一步:用命令CREATE DATABASE重新生成数据库结构;

第二步:创建一个足够大的附加回段。

第三步:完全增量导入A:

$imp system./manager inctype= RECTORE FULL=Y FILE=A

第四步:累计增量导入E:

$imp system/manager inctype= RECTORE FULL=Y FILE =E

第五步:最近增量导入F:

$imp system/manager inctype=RESTORE FULL=Y FILE=F

二、 冷备份

冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库。冷备份是将关键性文件拷贝到另外位置的一种说法。对于备份Oracle信息而言,冷备份是最快和最安全的方法。冷备份的优点是:

1.是非常快速的备份方法(只需拷贝文件)

2.容易归档(简单拷贝即可)

3.容易恢复到某个时间点上(只需将文件再拷贝回去)

4.能与归档方法相结合,作数据库“最新状态”的恢复。

5.低度维护,高度安全。

但冷备份也有如下不足:

1.单独使用时,只能提供到“某一时间点上”的恢复。

2.在实施备份的全过程中,数据库必须要作备份而不能作其它工作。也就是说,在冷备份过程中,数据库必须是关闭状态。

3.若磁盘空间有限,只能拷贝到磁带等其它外部存储设备上,速度会很慢。

4.不能按表或按用户恢复。

如果可能的话(主要看效率),应将信息备份到磁盘上,然后启动数据库(使用户可以工作)并将所备份的信息拷贝到磁带上(拷贝的同时,数据库也可以工作)。冷备份中必须拷贝的文件包括:

1.所有数据文件

2.所有控制文件

3.所有联机REDO LOG文件

4.Init.ora文件(可选)。

值得注意的是冷备份必须在数据库关闭的情况下进行,当数据库处于打开状态时,执行数据库文件系统备份是无效的

下面是做冷备份的完整例子:

(1) 关闭数据库$sqldba lmode=y

SQLDBA >connect internal;

SQLDBA >shutdown normal;

(2) 用拷贝命令备份全部的时间文件、重做日志文件、控制文件、初始化参数文件

SQLDBA >! cp < file > < backup directory >

(3) 重启Oracle数据库

$sqldba lmode=y

SQLDBA >connect internal;

SQLDBA >startup;

三、 热备份

热备份是在数据库运行的情况下,采用archivelog mode方式备份数据的方法。所以,如果你有昨天夜里的一个冷备份而且又有今天的热备份文件,在发生问题时,就可以利用这些资料恢复更多的信息。热备份要求数据库在Archivelog方式下操作,并需要大量的档案空间。一旦数据库运行在archivelog状态下,就可以做备份了。热备份的命令文件由三部分组成:

1.数据文件一个表空间一个表空间地备份。

(1)设置表空间为备份状态

(2)备份表空间的数据文件

(3)恢复表空间为正常状态

2.备份归档log文件。

(1)临时停止归档进程

(2)log下那些在archive redo log目标目录中的文件

(3)重新启动archive进程

(4)备份归档的redo log 文件

3.用alter database backup controlfile命令来备份拷贝文件

热备份的优点是:

1.可在表空间或数据文件级备份,备份时间短。

2.备份时数据库仍可使用。

3.可达到秒级恢复(恢复到某一时间点上)。

4.可对几乎所有数据库实体作恢复。

5.恢复是快速的,在大多数情况下在数据库仍工作时恢复。

热备份的不足是:

1.不能出错,否则后果严重。

2.若热备份不成功,所得结果不可用于时间点的恢复。

3.因难于维护,所以要特别仔细小心,不允许“以失败而告终”。

#4


UP

#5


冷备份,热备份,exp和imp

#6


exp/imp 逻辑备份 只备份数据
冷备份 脱机备份 
热备份 联机备份

备份工具,rman

#7


支持楼上

#8


数据库的备份:
1.在服务器端Windows NT网络操作系统中找到Oracle的安装目录:
如D:\oracle\  再进入Bin\子目录,鼠标左键双击 exp.exe 文件                   
或在Ms_Dos方式中进入Oralce安装目录中的Bin子目录,输入:exp [ENTER]
2.出现提示输入管理员用户名界面:
Export:Release 8.1.5.0.0-Production on Sun Oct 29 20:27:59 2000
<c> Copyright 1999 Oracle Corporation. All rights reserved.
Username:(此处输入管理员用户名)[ENTER]
3.出现提示输入管理员口令界面:
Password:(此处输入管理员口令)[ENTER]
4.出项备份选择界面。
Connected to : Oracle8i Enterprise Edition Release 8.1.5.0.0-Production 
 With the Partitioning and Java options
PL/SQL Release 8.1.5.0.0 – Production
Enter array fetch buffer size: 4096 >[ENTER]
此处为选定备份时用于取数据行的缓冲尺寸。直接选定缺省值4096即可。
5.出现选择备份文件输出的位置和名称界面。
Export file:EXPDAT.DMP>D:\backup\xx20001029.dmp[ENTER]
在此之前,需要在操作系统D盘上建立一个名称为backup的文件夹。备注:最好把备份的文件名写成用户名加日期的方式,方便查询和恢复工作。
6.出现选择备份方式界面。
(1) E(ntire database),(2)U(sers),or (3)T(ables):(2)U>E[ENTER]
7.询问是否备份数据库内的授权
Exprot grants(Yes/No):Yes>[ENTER]
8.询问是否备份基表内的数据
Export table data(Yes/No):Yes>[ENTER]
9.询问是否是否压缩碎片数据段
Compress extents(Yes/No):Yes>[ENTER]
10.About to export specifited users
user to be exported :(Return to quit)>(输入数据库管理员名称)[ENTER]
这样就完成了数据库的热备份。备份完数据后,系统会自动退出DOS界面。
11.最后在操作系统的D盘上的backup文件夹中将找到备份的名为xx20001029.dmp的
    文件。

数据库的恢复
1.在服务器端Windows NT网络操作系统中找到Oracle的安装目录:
 如D:\oracle\  再进入Bin\子目录,鼠标左键双击 imp.exe 文件                  或在Ms_Dos方式中进入Oralce安装目录中的Bin子目录,输入:imp [ENTER]
2.出现提示输入管理员用户名界面:
import:Release 8.1.5.0.0 -production on Sun Oct 29 21:57:47 2000
<c> Copyright 1999 Oracle Corporation. All rights reserved.
Username:(此处输入管理员用户名)[ENTER]
3.出现提示输入管理员口令界面:
Password:(此处输入管理员口令)[ENTER]
4.出项备份文件输入界面。
Import file:Expadat.dmp>D:\backup\xx20001029.dmp[ENTER]
5.选择数据插入的缓冲尺寸,选择缺省值,按回车即可。
Enter insert buffer size(minimum is 4096)30270>[ENTER]
6.Export file created by Export :U07.02.02,list contents of import file
only(Yes/No):no>[ENTER]
7.选择是否忽略数据恢复中出现的错误,回车即可。
 Ignore create error due to object existence (Yes/No):no>[ENTER]
8.选择是否恢复授权,选择缺省值,回车即可。
 Import grants(Yes/No):Yes>[ENTER]
9.选择是否恢复表数据, 选择缺省值,回车即可。
 Import table data (Yes/No):Yes>[ENTER]
10.选择是否输出整个文件。
    Import Entire export file (Yes/No):no>[ENTER]
11.输入用户名。
   Username>(此处输入数据库管理员名称)  ,然后等待系统进行数据库的恢复,
     恢复工作完成后,系统会自动退出DOS界面。
     这样,就完成了数据库的恢复。
在win2k server 和 oracle 817下的备份说明

#9


关注

#10


Oracle数据库备份主要有: 
l Cold Backup(冷备份) 主要指在关闭数据库的状态下进行的数据库完全备份,备份内容包括所有数据文件、控制文件、联机日志文件、ini文件。 

2 Hot Backup(热备份) 指在数据库处于运行状态下,对数据文件和控制文件进行备份,要使用热备份必须将数据库运行在(Archive Log)归档方式下。 

3 Export(逻辑备份)这是最简单的备份方法,可按数据库中某个表、某个用户或整个数据库来导出,并且支持全部、累计、增量三种方式。使用这种方法,数据库必须处于打开状态,而且如果数据库不是在restrict状态将不能保证导出数据的一致性。

#11


ORACLE提供了一个比较好的备份工具RMAN
RMAN可以用来备份和恢复数据库文件、归档日志和控制文件,也可以用来执行完全或不完全的数据库恢复。RMAN有三种不同的用户接口:COMMAND LINE方式、GUI方式(集成在OEM中的备份管理器)、API方式(用于集成到第三方的备份软件中)

**创建恢复目录

1、在目录数据库中创建恢复目录所用表空间

SQL> create tablespace rmants datafile 'c:\oracle\oradata\cc\rmants.ora' size 20M ;

表空间已创建。

2、在目录数据库中创建RMAN用户并授权

SQL> create user rman identified by rman default tablespace rmants temporary tablespace temp quota unlimited on rmants;

用户已创建

SQL> grant recovery_catalog_owner to rman ;

授权成功。

3、在目录数据库中创建恢复目录

C:\>rman catalog rman/rman

恢复管理器:版本8.1.7.0.0 - Production

RMAN-06008:连接到恢复目录数据库
RMAN-06428:未安装恢复目录

RMAN>create catalog tablespace rmants;

RMAN-06431:恢复目录已创建


4、注册目标数据库到恢复目录

注意哦,这里我的目标数据库使用的服务名称是rman,意思为要使用RMAN进行备份的数据库,而目录数据库使用的服务名称是CC。

C:\>rman target sys/sys@rman

恢复管理器:版本8.1.7.0.0 - Production

RMAN-06005:连接到目标数据库:RMAN (DBID=1303772234)

RMAN>connect catalog rman/rman@cc

RMAN-06008:连接到恢复目录数据库

RMAN>register database;

RMAN-03022:正在编译命令:register
RMAN-03023:正在执行命令:register
RMAN-08006:注册在恢复目录中的数据库
RMAN-03023:正在执行命令:full resync
RMAN-08002:正在启动全部恢复目录的 resync
RMAN-08004:完成全部 resync

#12


使用RMAN

下面通过具体的例子来说明RMAN的使用,这里会涉及到除了恢复以外的所有RMAN操作,关于使用RMAN进行恢复的内容请参考我以前写的另外一篇文章:RMAN恢复实践。

1、备份整个数据库

RMAN>run {
 allocate channel c1 type disk;
 backup database format 'e:\dbbackup\2db.dmp';
 }

2、复制数据数据库
RMAN>run {
      set until SCN 396566;
      allocate channel d1 type disk;
      restore controlfile;
      sql 'alter database mount ';
      restore database;
      recover database;
      sql 'alter database open resetlogs';
      release channel d1;
 }

reset database;