文档库 最新最全的文档下载
当前位置:文档库 › oracle数据备份与还原

oracle数据备份与还原

oracle数据备份与还原
oracle数据备份与还原

在Oracle11g及以上版本中建议使用数据泵来代替EXP和IMP实用程序,数据泵技术提供了许多新的特性,可以中断导出\导入作业然后恢复作业的执行,从一个会话中监控数据泵取作业,在作业执行过程中修改作业属性,以及重启一个失败的数据泵取作业等。

?数据泵导入导出技术的结构

当启动数据泵导入或导出程序时,在数据库服务器端启动相应的服务器进程,完成数据的导入及导出任务,所以我们也称数据泵技术是基于Oracle数据库服务器的,导入及导出的数据文件也保存在数据库服务器端。

数据泵取即EXPDP程序启动数据库服务器端的服务器进程,服务器进程完成数据的备份并将备份文件写入数据库服务器端的

计算机磁盘空间,文件格式filename.dat。导出的备份文件在导

入时只能通过数据泵的导入实用程序IMPDP完成,将数据导入到运行在其他平台上的数据库中。

?数据泵导入导出与EXP/IMP技术的区别

?Oracle数据泵技术是对传统的EXP和IMP实用程序扩展,使得在数据库服务器端快速的移动数据。这里我们给出二者的主要区别,使得读者在使用时根据需要有所取舍。

?数据泵技术比传统的EXP/IMP技术更快速的移动大量数据,因为数据泵技术采用并行流技术实现快速的并行处理。

?数据泵技术基于数据库服务器,在启动数据泵导入导出实用程序时在数据库服务器端产生服务器进程负责备份或导入数据,并且将备份的数据备份在数据库

服务器端。而且服务器进程与EXPDP客户机建立的会话无关。

?传统的EXP/IMP是类似于普通的用户进程,执行象SELECT、INSERT、CREATE等的SQL语句。而数据泵技术类似于启动作业的控制进程,不但启动

客户端进程建立会话,还控制整个导入或导出过程,如重启作业。

?使用传统的EXP/IMP实用程序导出的数据格式与数据泵技术导出的数据格式不兼容。

?数据泵技术与传统的导入导出实用程序不同,它使用目录和目录对象存储数据泵导出文件,使用数据泵导出数据前必须先创建目录对象,否则无法使用数据

泵导入和导出作业。

数据泵技术比传统的导入导出程序具有更多的优点,

?数据泵导入导出技术的优点

?导入导出速度更快:因为在数据泵导入导出作业中可以启动多个线程,所以可以并行的实现作业,对于移动大数据量,性能显著提高。

?重启失败的作业:这个功能是传统的EXP/IMP程序无法实现的,不论是数据泵导入导出作业停止还是失败,都可以很容易的重启作业。同时也支持手动停止

或重启作业。

?实时交互能力:在一个运行的数据泵作业中,可以从其他屏幕或控制终端与当前数据泵作业交互,以监控作业的执行以及更改作业的某些参数。

?独立于客户机:因为数据泵技术是基于数据库服务器的,它是数据库服务器的一部分,一旦启动数据泵作业,则与客户机无关。

?支持网络操作:支持在两个联网的数据库服务器之间导入和导出数据文件,也支持直接的将数据从一个数据库导入另一个数据库,而不需要备份文件。网络

操作的方式基于数据库连接,在数据库间直接移动数据的方法不需要磁盘存储。

导入功能更加细粒度:在数据泵技术中,使用INCLUDE和EXCLUDE参数使得数据泵

实用程序可以导入或导出更加细粒度的对象,如可以选择只导出过程或函数等。

?数据泵导入导出的目录对象

?数据泵作业在数据库服务器上创建所有的备份文件,而Oracle要求数据泵必须使用目录对象,以防止用户误操作数据库服务器上特定目录下的操作系统文件。

目录对象对应于操作系统上的一个指定目录。

?如果当前用户是DBA用户,可以使用默认的目录对象而不必再创建数据泵操作的工作目录。此时,数据泵作业会将备份文件、日志文件以及SQL文件存储在

该目录下,我们使用如下指令查找该默认目录。

SQL> select *

2 from dba_directories

3 where directory_name ='DATA_PUMP_DIR';

OWNER DIRECTORY_NAME DIRECTORY_PATH

------------------- ------------------------------

SYS DATA_PUMP_DIR F:\app\Administraor\admin\orcl\dpdump\

?不具备目录对象时的错误提示

D:\ expdp scott/tiger@orcl

Export: Release11.1.0.6.0 - Production on 星期四, 27 8月, 2009 18:45:08 Copyright (c) 1982, 2007, Oracle. All rights reserved.

连接到: Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production

With the Partitioning, OLAP and Data Mining options

ORA-39002: 操作无效

ORA-39070: 无法打开日志文件。

ORA-39145: 必须指定目录对象参数且不能为空

?用户创建自己数据泵备份目录的步骤,以SCOTT用户创建目录对象为例:

1.向SCOTT用户授权

SQL> conn system/oracle@orcl

已连接。

SQL> grant create any directory to scott;

2.创建目录

SQL> conn scott/tiger@orcl

已连接。

SQL> create directory scott_pump_dir as …d:/scottpumpdir?;

?数据泵导出(EXPDP)概述及参数含义

?数据泵导出EXPDP类似于传统的EXP实用程序导出数据,使用EXPDP允许挂起和恢复作业,并且实现与正在运行的作业交互,可以从正在运行的导出作业

中分离,也支持从失败或终止的作业中重启。

?使用EXPDP使得导出是对象选择的粒度更细,并提供并行处理,使用多个数据流导出数据,允许控制导出操作使用的线程数,EXPDP支持两种数据访问方法,即使用外部表和直接路径访问方法。使用外部表允许数据库服务器从操作系统

文件中读取数据,而直接路径方法使用直接路径API,它很好的改善了导出导

入的性能,因为其内部流的数据格式和存储在备份文件中的数据格式相同,减

少了数据转换的时间。

?EXPDP提供了三种提取数据的方法,一是只提取数据库中的元数据即数据库对象的定义,二是只提取数据库中的数据而忽略数据库对象的定义,三是同时提

取数据库中的元数据和数据。

?EXPDP实用程序参数。

D:\>expdp help=y

?ATTACH:说明EXPDP附加到一个正在运行的现有的EXPDP作业。方式为ATTACH = JOB_NAME;

?CONTENT:说明要导出的数据是元数据还是数据,或者包括元数据和数据,选项包括ALL、DATA_ONLY和METADATA_ONLY。

?DIRECTORY:说明要导出的备份文件,日志文件和SQL文件的存储目录,此时必须事先创建该目录对象,当然可以将其他用户创建的目录对象赋予该当前用户。否则无法启动EXPDP程序。

?DUMPFILE:导出的备份文件的文件名,格式为FILENAME.DMP。

?ESTIMATE:计算EXPDP导出作业的导出文件的大小,选项包括基于BLOCKS 或者基于STATISTICS,其中BLOCKS基于数据库块大小的倍数计算备份文件大小,而基于STATISTICS使用当前对象的统计量来计算到导出的备份文件的大小。

?ESTIMATE_ONLY:在EXPDP没有实际地导出作业时估计导出文件的大小,该参数的值为Y或N。

?EXCLUDE:排除不需要导出的特定对象类型,如EXCLUDE=TABLE:DEPT,对于任何不导出的对象,也不会导出与它有依赖关系的对象,如不导出表,也不会导出和表相关的任何索引、过程和约束等。

?FLASHBACK_SCN:允许在导出数据库时使用数据库闪回特性,此时EXPDP使用规定的SCN进行闪回。

?FULL:说明是否导出整个数据库对象,如果该参数为Y,说明导出数据库的所有对象。

?INCLUDE:说明要导出的特定对象类型,此时会导出该参数指定的对象和与它们有依赖关系的对象。

?JOB_NAME:为了便于管理运行的EXPDP作业设置当前作业的名字。系统默认的命名格式为sys_operation_mode_nn。如导出SCOTT用户的元数据,此时的作业名字为"SCOTT"."SYS_EXPORT_SCHEMA_01"。

?LOGFILE:说明在导出操作时记录导出过程的日志文件名,其默认名为export.log,和导出文件保存在相同的目录下,即directory参数指定的目录。

?PARALLEL:说明在导出作业时最大的线程数,实现导出作业的并行处理。也可以在作业运行总使用ATTACH改变并行度,PARALLEL参数的默认值为1,表示使用单线程导出单独个备份文件,如果设置多个工作线程,则要指定相同数量的备份文件,这样多个线程可以同时写多个备份文件。给出一个例子,设置并行度为2。

?QUERY:允许使用SQL语句程序过滤导出的数据,在Oracle11g中,允许使用表名限定SQL语句,使得SQL语句适用于特定的表,如下所示。

QUERY=SCOTT.EMP:”WHERE SAL>3000”。说明表EMP中工资SAL大于3000的表被导出。

?SCHEMAS:说明要导出数据的模式,该模式列表可以有多个,使用逗号隔开,如果登录的用户不是导出数据的模式,则登录用户必须拥有exp_full_database 的权限。

?STATUS:该参数在给定的时间间隔内给出作业的状态,该参数以秒为单位,默认值为0。

?TABLES:说明要导出数据库表的列表,此时也会导出与表有依赖关系的对象。

?TABLESPACES:说明要导出的数据库表空间的列表,同时会导出其他表空间中这些表空间中的表有依赖关系的所有对象。

?VERSION:说明要导出的数据库对象到特定版本的数据库。该参数很好的解决了数据库的对象从高版本迁移到低版本的数据库过程中的版本兼容问题。

?交互式参数

?ADD_FILE:向导出备份文件集中增加文件以增加目录空间。如在一个作业运行期间输入CTRL+C组合键切换到交互式导出提示EXPORT>。如果该作业因为

备份文件的空间不足导致停止,可以使用ADD_FILE命令增加文件到导出目录

中。

Export>add_file = data_dump_dir:expdata02.dmp;

?STOP_JOB:停止运行的数据泵作业,数据库服务器端的导出数据服务器进程终止。

?START_JOB:重新恢复由于某种意外导致停止的数据泵作业。

?KILL_JOB:杀死客户机进程和数据泵作业(服务器进程)。

?CONTINUE_CLIENT:退出交互方式(EXPORT方式)恢复正在运行地导出数据泵作业,实际的数据泵作业不受影响。

?EXIT_CLIENT:停止交互式会话并终止客户机会话,但是实际的数据泵作业不受影响,此时用户可以在当前窗口中继续其他操作

?数据泵导出(EXPDP)数据库实例

?导出整个数据库,我们使用SYSTEM用户登录数据库,限制备份的数据文件的大小为100M,一旦备份数据文件满,则自动创建一个新的备份文件,使用了

替换变量%U来实现备份文件的自动创建,其中NOLOGFILE=Y即不记录备份

过程。

例子25-23 使用EXPDP导出整个数据库

F:\>expdp system/oracle@orcl dumpfile = pump_dir:mydb3_%u.dat filesize = 100m nologfile = y

job_name =tom full = y

?导出一个模式

我们导出SCOTT模式,在下例中没有SCHEMA参数,但是默认导出登数据库时的模式对象。

例子25-24使用EXPDP导出一个SCOTT模式。

D:\>expdp scott/tiger@orcl directory =pump_dir dumpfile=scottschema.dmp logfile =scottschema.log;

?数据泵导出(EXPDP)数据库实例

?导出特定的表,此时使用TABLES参数指定导入的表的列表,如果该表不属于登录的用户,但是登录用户有访问这些表的权限,则在TABLES参数的表必须

使用schema.tablename的方式。

例子25-25 使用EXPDP导入特定的表。

F:\>expdp system/oracle@orcl dumpfile = pump_dir:scott_tables_%u.dat

tables=scott.emp,scott.dept nologfile=y job_name=only_scott

?导出表空间,导出指定表空间使用TABESAPCES参数,如果有多个表空间需要导出,表空间名使用逗号隔开,这里我们使用了PARALLEL参数,指定数据导

出并行线程数量,与之对应使用替换变量%U来创建相应数量的备份数据文件,这样每个线程可以独立写一个备份数据文件,提高了导出速度。

例子25-26 使用EXPDP导出指定的表空间。

D:\>expdp system/oracle@orcl dumpfile=pump_dir:users_tbs_%u.dmp tablespaces=users

filesize=100m parallel=2 logfile=users_tbs.log job_name =exp_users_tbs

?数据泵导出(EXPDP)数据库实例

?只导出数据,使用EXPDP的CONTENT参数,可以指定导出表数据和元数据(对应参数ALL),导出表行数据(对应参数DATA_ONLY)或只导出元数据

即表以及其他数据库对象的定义(对应参数METADATA_ONLY)。

例子25-27 使用EXPDP只导出数据行。

F:\>expdp system/oracle@orcl dumpfile =pump_dir:mydb_dataonly_%u.dat filesize=100m

job_name=larry full=y content =data_only logfile

=pump_dir:mydb_exp_dataonly_log

?使用参数文件

使用参数文件:在使用EXPDP导出数据时,由于参数很多导致每次执行备份都输入一长串指令,这样不但繁琐而且不易修改,Oracle的数据泵技术允许使用参数文件,用户事先在参数文件中创建各种参数,保存该文件为praname.par文件,然后在

执行导出时使用参数PARFILE指定参数文件的位置执行导出备份,这样就不用输入一

长串参数指令。

首先我们建立参数文件如下:

directory =pump_dir

dumpfile=para_data_only_%u.dmp

content =data_only

exclude =table:"in('salgrade','bonus')"

logfile=para_data_only.log

filesize=50m

parallel=2

job_name =para_data_only

?保存在文件EXP.PAR内,然后在使用EXPDP备份数据时,可以使用该参数文件,如下所示。

D:\>expdp scott/tiger@orcl parfile=exp.par

使用参数PARFILE说明参数文件的位置必须说明绝对路径。

?估计空间导出文件的空间大小,EXPDP使用参数ESTIMATE_ONLY计算导出数据所需要的存储空间,显然这是个有用的参数,在导出的数据大小不清楚时,

事先知道备份文件的大小,可以提前分配磁盘空间,防止由于磁盘空间不足而

引起的EXPDP导出作业停止。

?使用EXPDP导出数据时只计算导出作业所需要的空间。

f:\>expdp system/oracle@orcl full =y estimate_only=y estimate=statistics nologfile=y

?数据泵导入(IMPDP)概述及参数含义

?Oracle数据泵导入实用程序(IMPDP)将备份的数据导入到整个数据库、特定的模式、特定的表或者特定的表空间,使用IMPDP也可以在不同平台的数据库

之间迁移表空间。IMPDP实用程序通过各种参数支持对数据过滤以及对元数据

的过滤,而元数据的过滤可以有效控制要导入的对象类型,如导入表、索引还

是授权等等。

使用数据泵导入实用程序与数据泵导出实用程序一样可以使用DIRECTORY、PARFILE、DUMPFILE和LOGFILE等参数,但是正如ADD_FILE是数据泵导出EXPDP实用程序专

有的一样,SQLFILE参数也是数据泵导入IMPDP实用程序所专有的。在执行数据泵导入作业时,往往需要从备份数据文件中途提取DDL语句,此时需要使用SQLFILE。

?数据泵导入参数

(1)目录和文件相关参数

?DIRECTORY:说明备份文件、日志文件和SQL文件的目录对象,如果没有定义目录,则会使用PUMP_DIR的默认值。

?DUMPFILE:说明备份文件名,如导入数据时需要多个备份文件,则用逗号分隔这些文件名,在DUMPFILE参数后可以使用包括目录,如

DUMFILE=PUMP_DIR:BACKUP.DMP,也可以使用替换变量(%U)告诉

IMPDP可以使用多个备份文件。如DUMPFILE=PUMP_DIR:BACKUP_%U.DMP。

?PARFILE:说明参数文件,IMPDP使用外部定义一个参数文件执行导入行为,该参数文件是本地的,使用时需要告诉IMPDP参数文件的绝对位置。如

?D:\IMPDP SYSTEM/ORACLE@ORCL PARFILE=D:\PAR\EXP.PAR

?LOGFILE:说明使用日志文件保存导入过程的信息,该参数的值是日志文件的名字名,如LOGFILE =MYLOG.LOG。

?NOLOGFILE:说明不使用日志文件记录导入过程,如NOLOGFILE=Y。

?SQLFILE:说明从备份文件中提取SQL的DDL语句,并写入该参数设置的文件中,如SQLFILE=MYSQLFILE.SQL。该文件默认保存在DIRECTORY参数设置

的目录对象中。

?数据泵导入参数

?(2)过滤参数

?INCLUDE:说明要导入的特定对象,如只导入表,此时会导入和导入特定对象有依赖关系的对象如索引、触发器等。

下面是使用INCLUDE参数的例子,说明只允许导入表对象,且只有两个表可

以导入。

INCLUDE=TABLE: "IN (…EMP?,?DEPT?) "

也可以使用QUERY参数过滤要导入的表数据,此时数据泵导入作业使用外部表数据方法访问数据,而不是采用直接路径方法。如下所示。

INCLUDE=TABLE: "IN (…EMP?,?DEPT?) "

QUERY=EMP: "WHERE sal>3000 ORDER BY sal"

?TABLE_EXITS_ACTION:该参数说明当导入的表已经存在时,IMPDP导入程序的行为,参数TABLE_EXITS_ACTION有四个值,SKIP表示如果该表存在则跳

过该表,它是默认值;APPEND将导入的数据行附加到当前存在的表中;

TRUNCATE截断表并从导入数据文件中重新装载数据;REPLACE删除存在的表然后重建该表并导入数据。

?EXCLUDE:在导入操作中排除特定的元数据,如不导入特定的表,此时也不会导入和排除对象有依赖关系的其他对象。如下所示告诉IMPDP程序不导入表

EMP和DEPT。

(3)导入作业参数

?JOB_NAME:说明导入作业名,IMPDP提供了很多可管理性如停止作业和恢复作业,附加(ATTACH)到特定的作业,都需要作业名来关联导入作业。

?PRALLEL:说明当前导入作业的线程数。该值的默认值为1。

?STATUS:监视导入作业的状态频率,该参数的默认值为0

(4)导入方式参数

?TABLES:说明允许导入指定的表,如果有多个表使用逗号分隔开,同时也导入与这些表有依赖关系的对象,如索引、触发器和函数等。

?SCHEMAS:说明要导入的模式列表,要使用该参数登录数据库的用户必须拥有imp_full_database的权限。

?TABLESPACES:说明要导入的表空间的列表,在导入这些表空间的同时也要求导入与表空间有依赖关系的所有数据库对象。

FULL:说明要导入整个数据库。该参数的默认值为n。

(5)重新映射参数

重新映射使得在数据导入过程中将数据从一个数据库对象移动到另一个数据库

对象,可以映射模式,映射数据文件和映射表空间,映射可以理解为“数据对象移动”。

?REMAP_SCHEMA:重新映射模式,可以将对象从一个模式移动到另一个模式,D:\>impdp system/oracle@orcl dumpfile =pump_dir:SHCEMA_SCOTT.DMP

remap_schema=scott:linzi

上例将SCOTT模式下的所有数据库对象移动到LINZI模式下,这样使用LINZI 模式登录数据库,就可以使用SCOTT用户的所有数据库对象。我们通过下例验证重映射模式的结果。

?REMAP_DATAFILE:在导入数据时,重新定义数据文件的名称和目录。如下所示。

D:\impdp system/oracle@orcl directory=pump_dir dumpfile=backup_full.dmp remap_datafile='c:\mydb.dbf':'d:\mydb\newdb.dbf

?REMAP_TABLESPACE:重映射表空间使得将数据对象从一个表空间移动到另一个表空间。如下所示。

D:\impdp system/oracle@orcl remap_tablespace='users':'mynewusers'

directory=pump_dir dumpfile=backup_full.dmp

(6)转换参数

?TRANSFORM:该参数说明在导入数据泵作业时可以选择导入某个对象的存储参数或其他属性值,如导入表时,不导入该表的存储属性等。

?TRANSFORM参数的语法如下所示:

TRANSFORM= transform_name:value[:object_type]

?下面我们介绍各个部分:

1、transform_name:转换名由四个选项组成,代表四种基本的对象特征。其中SEGMENT_ATTRIBUTES段属性包括物理属性、存储参数、表空间等,该参数的值为Y 或N,如果选择SETMENT_ATTRIBUTES=Y则说明导入作业包括对象的这些属性;STORAGE存储属性说明是否导入对象的存储属性,如果STORAGE=Y说明对象的存储

属性作为导入作业的一部分。OID说明是否分配新的OID给对象表。PCTSPACE:提

供一个正数值,可以增加对象的分配尺寸。

2、value:转换名的值中前三个值即SEGMENT_ATTRIBUTES、STORAGE和OID默认值为Y,说明默认数据泵导入对象的存储属性,和段属性。而PCTSPACE取一个正数值。

3、object_type:对象类型说明需要转换那些类型的对象,这些类型包括表、索引、表空间以及约束等。

(7)闪回参数

?FLASHBACK_SCN:使用Oracle的闪回特性,允许导入和闪回SCN接近的数据。

?FLASHBACK_TIME:使用Oracle的闪回特性,允许导入和指定闪回时间接近的数据。

(8)与可移植表空间有关的参数

Oracle的可移植表空间使得将数据从一个数据库移动到另一个数据库非常容易,可以方便的将一个数据库表空间中的数据迁移到其他数据库中的表空间中。

?TRANSPORT_TABLESPACES:说明要迁移的表空间列表。

?TRANSPORT_FULL_CHECK:迁移表空间时,检查迁移表空间内的对象与迁移表空间外的对象是否有依赖性,该参数只有在使用NETWORK_LINK参数时才

有效。

?TRANSPORT_DATAFILES:在执行表空间导入时,目标数据库将使用源数据库中拷贝过来的数据文件作为可以移植表空间的数据文件。该参数说明数据文件

名。

(9)交互模式参数

数据泵导入的交互参数和数据泵导出的交互参数功能是一样的,在数据泵导入

参数中没有ADD_FILE参数,它只对数据泵导出程序有效,而其他参数以及切换到交

互模式数据泵导入与导出是一样的。

?PARALLEL:说明当前作业的活跃WORKER数量。

?CONTINUE_CLIENT:在切换到交互模式后,返回记录模式。

?EXIT_CLIENT:退出客户登录模式,但是不终止导入作业。

?KILL_JOB:分离或删除当前导入作业。

?START_JOB:在导入作业被意外终止后,可以重启或恢复当前作业。

?STATUS:监视当前导入作业的状态,该参数是一个整数值,默认值为0,如果设置STATUS=5,说明每5秒钟刷新一次导入作业的状态信息。

?STOP_JOB:关闭当前执行的作业并退出客户端,如果有多个导入作业,则顺序关闭这些作业。如果设置STOP_JOB=IMMEDIATE将立即关闭数据泵作业。

?数据泵导入(IMPDP)数据库实例

?(1)导入整个数据库

?导入整个数据库至少需要两个参数,一个是FULL,设置FULL=Y说明是导入全库,一个是DUMPFILE,说明要导入的备份文件的目录和名称,当然最好设置JOB_NAME参数,因为它允许切换到交换模式,允许终止或重启导入会话。如下所示。

?例子25-36 使用IMPDP导入整个数据库

?D:\>impdp system/oracle@orcl dumpfile=pump_dir:full_db_%u.dat logfile=myfulldb.log parallel= 3 job_name=my_fulldb_impdp full =y

?数据泵导入(IMPDP)数据库实例

?(2)导入表空间

?使用IMPDP导入特定的表空间时,需要有备份表空间文件,需要使用TABLESPACES参数说明要导入的表空间名,此时实际上是导入表空间中的所有数据库对象,当然这些工作都由IMPDP自己操作完成,由于表空间中有表对象,

如果当前的数据库中的表空间已有相应的表对象,则最好告诉IMPDP该怎么做,此时需要参数TABLE_EXITS_ACTION参数,它的默认值为SKIP即如果表已经

存在则跳过。我们建议使用REPLACE或TRUNCATE,前者表示重建表,后者

表示删除掉当前表中的数据,然后使用备份文件中的表数据进行加载,但是会

跳过所有相关元数据。如下例所示。

?例子: 使用IMPDP导入特定的表空间

D:\>impdp system/oracle@orcl

dumpfile=pump_dir:MYDB_TBS_USERSANDSYSTEM_01.DAT logfile= tablespaces=users

table_exists_action=replace

?数据泵导入(IMPDP)数据库实例

?(3)导入指定的表

?使用IMPDP导入特定的表使用TABLES参数,该参数后是要导入的表对象的列表,如果有多个表使用,逗号分隔。我们使用了参数TABLE_EXISTS_ACTION

参数,设置TABLE_EXISTS_ACTION=REPLACE,如果该表存在则先删除在加

载数据。

?例子25-38 导入特定的表对象。

?D:\>impdp scott/tiger@orcl

dumpfile=pump_dir:MYDB_TBS_USERSANDSYSTEM_01.DAT nologfile=y

tables= emp table_exists_action=replace

?数据泵导入(IMPDP)数据库实例

(4)导入指定的数据库对象

导入特定的数据库对象使用INCLUDE参数,该例子中我们从备份文件中恢复SCOTT用户的所有表和触发器对象,而对于已经存在的表则重建再加载数据。

D:\>impdp scott/tiger@orcl

dumpfile=pump_dir:MYDB_TBS_USERSANDSYSTEM_01.DAT

nologfile=y include=table,trigger table_exists_action=replace

ORACLE数据备份与数据恢复方案

O R A C L E数据备份与数据恢 复方案 Prepared on 24 November 2020

摘要 结合金华电信IT系统目前正在实施的备份与恢复策略,重点介绍电信业务计算机管理系统(简称97系统)和营销支撑系统的ORALCE数据库备份和恢复方案。 Oracle数据库有三种标准的备份方法,它们分别是导出/导入 (EXP/IMP)、热备份和冷备份。要实现简单导出数据(Export)和导入数据(Import),增量导出/导入的按设定日期自动备份,可考虑,将该部分功能开发成可执行程序,然后结合操作系统整合的任务计划,实现特定时间符合备份规划的备份应用程序的运行,实现数据库的本级备份,结合ftp简单开发,实现多服务器的数据更新同步,实现数据备份的异地自动备份。 关键字:数据库远程异地集中备份 目录

一、前言 目前,数据已成为信息系统的基础核心和重要资源,同时也是各单位的宝贵财富,数据的丢失将导致直接经济损失和用户数据的丢失,严重影响对社会提供正常的服务。另一方面,随着信息技术的迅猛发展和广泛应用,业务数据还将会随业务的开展而快速增加。但由于系统故障,数据库有时可能遭到破坏,这时如何尽快恢复数据就成为当务之急。如做了备份,恢复数据就显得很容易。由此可见,做好数据库的备份至关重要。因此,建立一个满足当前和将来的数据备份需求的备份系统是必不可少的。传统的数据备份方式主要采用主机内置或外置的磁带机对数据进行冷备份,这种方式在数据量不大、操作系统种类单一、服务器数量有限的情况下,不失为一种既经济又简明的备份手段。但随着计算机规模的扩大,数据量几何级的增长以及分布式网络环境的兴起,将越来越多的业务分布在不同的机器、不同的操作平台上,这种单机的人工冷备份方式越来越不适应当今分布式网络环境。 因此迫切需要建立一个集中的、自动在线的企业级备份系统。备份的内容应当包括基于业务的业务数据,又包括IT系统中重要的日志文件、参数文件、配置文件、控制文件等。本文以ORACLE数据库为例,结合金华电信的几个相关业务系统目前正在实施的备份方案,介绍ORACLE数据库的备份与恢复。 二、金华电信ORACLE数据库的备份与恢复方案 由于金华电信IT系统以前只采用逻辑备份方式进行数据库备份,速度较慢并且数据存储管理都很分散,甚至出现备份数据不完整的现象。为了提高备份数据的效率,提供可靠的数据备份,完善备份系统,保证备份数据的完整性,降低数据备份对网络和服务器的影响,对每个IT系统的备份数据进行集中管理,我们对备份工作进行了改进,将逻辑备份与物理备份相结合,在远程建立了一个异地集中、自动在线的备份系统即网络存储管理系统。(这里用到的物理备份指热备份)其具备的主要功能如下:(1)集中式管理 :网络存储备份管理系统对整个网络的数据进行管理。利用集中式管理工具的帮助,系统管理员可对全网的备份策略进行统一管理,备份服务器可以监控所有机器的备份作业,也可以修改备份策略,并可即时浏览所有目录。所有数据可以备份到同备份服

Oracle数据泵备份与恢复实例

SQL> conn / as sysdba 已连接。 SQL> create directory mydump as 'd:\oracle\mydump'; SQL> Grant read,write on directory mydump to test; 授权成功。 创建目录d:\oracle\mydump。 C:\Users\David>expdp test/test directory=mydump dumpfile=test.dmp logfile=test.l og tables=t1 Export: Release 11.2.0.1.0 - Production on 星期三7月16 22:52:58 2014 Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. 连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Produc tion With the Partitioning, OLAP, Data Mining and Real Application Testing options 启动"TEST"."SYS_EXPORT_TABLE_01": test/******** directory=mydump dumpfile=test .dmp logfile=test.log tables=t1 正在使用BLOCKS 方法进行估计... 处理对象类型TABLE_EXPORT/TABLE/TABLE_DATA 使用BLOCKS 方法的总估计: 64 KB 处理对象类型TABLE_EXPORT/TABLE/TABLE 处理对象类型TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS . . 导出了"TEST"."T1" 5.507 KB 5 行 已成功加载/卸载了主表"TEST"."SYS_EXPORT_TABLE_01" ****************************************************************************** TEST.SYS_EXPORT_TABLE_01 的转储文件集为: D:\ORACLE\MYDUMP\TEST.DMP 作业"TEST"."SYS_EXPORT_TABLE_01" 已于22:53:09 成功完成 需要将原表删除。 C:\Users\David>impdp test/test directory=mydump dumpfile=test.dmp tables=t1 Import: Release 11.2.0.1.0 - Production on 星期三7月16 23:00:28 2014 Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. 连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Produc

oracle数据库恢复方案

目录 数据库恢复方案 (1) 文档控制 (1) 一、相关概念 (3) 1,恢复的两个阶段 (3) 2,Oracle实例启动的三个阶段 (3) 3,RMAN信息的保存位置 (3) 二、完全恢复 (3) (一) 控制文件 (3) 1) 丢失部分控制文件: (3) 2) 丢失全部控制文件 (3) (二) 重做日志文件 (4) 1) 非当前使用的重做日志文件: (4)

2) 当前使用的重做日志文件(未归档): (4) (三) 数据文件 (4) 1) 无归档模式下的完全恢复 (4) 2) 归档模式下的完全恢复 (5) 三、不完全恢复 (6) (一) 基于SCN的不完全恢复 (6) 1) 准备工作 (6) 2) 使用RMAN进行恢复 (7) (二) 基于时间点的不完全恢复 (8) 1) 准备工作 (8) 2) 使用RMAN进行恢复 (8) 四、高级篇 (9)

(一) 使用RMAN进行异机同目录 (9) 1) 准备工作 (9) 2) 通过RMAN进行异机恢复 (10) (二)使用RMAN进行异机异目录 (11) 1) 准备工作 (11) 2) 通过RMAN进行异机恢复 (11) (三)使用RMAN进行在线数据块恢复 (14) 一、相关概念 1,恢复的两个阶段 数据库无论采取哪种方式进行恢复都分为Restore和Recover两个步骤。Restore(还原):把控制文件、重做日志文件和数据文件还原到正确位置。Recover(恢复):恢复还原后的数据文件,使数据库达到一致状态。

2,Oracle实例启动的三个阶段 Oracle实例启动经过三个阶段: l NOMOUNT(未装载):读入参数文件,验证参数文件中的目录是否存在。 l MOUNT(装载):读入参数文件指定位置的控制文件。 l OPEN(打开):验证控制文件中指定的重做日志文件和数据文件是否正确、数据文件是否一致,然后读入数据文件中的数据。 所以按照如下顺序使数据库正确打开。 1) SHUTDOWN(关闭)状态下,确保参数文件指定的文件夹存在,启动到NOMMUNT 状态。 2) NOMOUNT状态下,保证控制文件的位置和命名与参数文件中相同,控制文件中指定的重做日志文件和数据文件存在,然后启动到MOUNT状态。 3) MOUNT状态下,执行RMAN还原和恢复操作。

Oracle Export/Import数据库备份与恢复的三种方法

Oracle数据库备份与恢复的三种方法 Oracle数据库有三种标准的备份方法,它们分别是导出/导入(EXP/IMP)、热备份和冷备份。导出备件是一种逻辑备份,冷备份和热备份是物理备份。 一、导出/导入(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=040731.dmp (2)、“增量型”增量导出 备份上一次备份后改变的数据,比如: exp system/manager inctype=incremental file=040731.dmp

Oracle数据库恢复

Oracle 数据库恢复 一、停止ORACLE数据库 用oracle用户登录,用sqlplus的sysdba用户登录,执行shutdown immediate oracle@JSBC-SIHUA-DB01:~> sqlplus /nolog SQL*Plus: Release 10.2.0.1.0 - Production on Mon Feb 6 14:02:45 2012 Copyright (c) 1982, 2005, Oracle. All rights reserved. SQL> conn /as sysdba Connected. SQL> shutdown immediate SQL>quit 停止监听 oracle@JSBC-SIHUA-DB01:~> lsnrctl stop oracle@JSBC-SIHUA-DB01:~> ps -ef |grep ora root 4655 4524 0 Nov11 ? 00:00:48 hald-addon-storage: polling /dev/sr0 (every 16 sec) root 42514 42162 0 11:40 pts/0 00:00:00 su - oracle oracle 42515 42514 0 11:40 pts/0 00:00:00 -bash root 42853 42815 0 12:02 pts/2 00:00:00 su - oracle oracle 42854 42853 0 12:02 pts/2 00:00:00 -bash root 42924 42889 0 12:03 pts/1 00:00:00 su - oracle oracle 42925 42924 0 12:03 pts/1 00:00:00 -bash oracle 42975 42854 0 12:09 pts/2 00:00:00 ps -ef oracle 42976 42854 0 12:09 pts/2 00:00:00 grep ora 二、数据库备份 #root用户,创建sihua.bak目录 JSBC-SIHUA-DB01:/oradata # mkdir sihua.bak JSBC-SIHUA-DB01:/oradata # chown oracle:dba /oradata/sihua.bak JSBC-SIHUA-DB01:/oradata # ll total 24 drwx------ 2 root root 16384 Sep 16 11:53 lost+found drwxr-x--- 4 oracle dba 4096 Nov 8 14:16 sihua drwxr-xr-x 2 oracle dba 4096 Nov 28 12:15 sihua.bak #oracle用户 JSBC-SIHUA-DB01:/oradata # su - oracle oracle@JSBC-SIHUA-DB01:~> cd /oradata oracle@JSBC-SIHUA-DB01:/oradata> cp -r sihua sihua.bak oracle@JSBC-SIHUA-DB01:/oradata> cd sihua.bak/ oracle@JSBC-SIHUA-DB01:/oradata/sihua.bak> cd sihua/

oracle备份与恢复机制

谈ORACLE备份与恢复 经常听到有人说,某数据库备份方法好,某备份方法不好,或者说现在都流行用rman 来备份了,逻辑备份已经过时了,冷备份就更不值一提了,其实数据库的备份从来没有什么好坏之分、没有过时之说,合适才是最重要的,自己好才是真的好.各种方法各有长短,谁也代替不了谁,只有根据实际情况搭配使用,才能发挥最大的作用,否则只能是东施效颦. 1 . o r ac 1 e的备份,包括no a r chi v e I og模式的备份(冷备份)、arch i velog模式的备份(热备份、rman备份)、逻辑备份(不分模式). 1.1.冷备份: ~ 1)关闭数据库 s hu t d o wn; -一2)备份数据文件、控制文件、重做日志文件 一-A、查找备份文件的位置 SELEC T * FROM VSDATAFIL E ; —査数据文件 s el e ct * f r om v$cont r o 1 f il e ; —查控制文件 s e le c t * f r om vSlogf i 1 e; —査日志文件 ~ B、备份数据文件、控制文件、重做日志文件 $ copy D:\oracle\o r a data\or a 9 \ *. dbf d: \ b a k \ *. *; $ cop y D:\ora cle \ oradat a \ora9 \ *? c t 1 d : \ b a k\*? *: $ copy D:\oracle \o r adata\o r a9\*? I og d:\bak\*? *; 1.2.热备份: ~ 1)查询备份的数据文件与哪一个表空间有关 SELECT V$TAF3LESPACE ? NAME, VS DATAFILE. NAME FROM V$TA B LES P ACE J OIN V$DATAF I LE USING(TS#); ~ 2)备份数据文件 a 1 t er tablespace 表空间BEGIN BACKUP; $ COPY数据文件存放路径

实验8 Oracle数据库备份与恢复

实验8 Oracle数据库备份与恢复 1 实验目的 (1)掌握Oracle数据库各种物理备份方法。 (2)掌握Oracle数据库各种物理恢复方法。 (3)掌握利用RMAN工具进行数据库的备份与恢复。 (4)掌握数据的导入与导出操作。 2 实验要求 (1)对BOOKSALES数据库进行一次冷备份。 (2)对BOOKSALES数据库进行一次热备份。 (3)利用RMAN工具对BOOKSALES数据库的数据文件、表空间、控制文件、初始化参数文件、 归档日志文件进行备份。 (4)利用热备份恢复数据库。 (5)利用RMAN备份恢复数据库。 (6)利用备份进行数据库的不完全恢复。 3 实验步骤 (1)关闭BOOKSALES数据库,进行一次完全冷备份。 select file_name from dba_data_files; select member from v$logfile; select value from v$parameter where name='control_files';

(2)启动数据库后,在数据库中创建一个名为cold表,并插入数据,以改变数据库的状态。 CREATE TABLE COLD( ID NUMBER PRIMARY KEY, NAME VARCHAR2(25) );

(3)利用数据库冷备份恢复BOOKSALES数据库到备份时刻的状态并查看恢复后是否存在cold表。 (4)将BOOKSALES数据库设置为归档模式。 shutdown immediate 正常关闭数据 startup mount;将数据库启动到mount状态 3)、关闭flash闪回数据库模式,如果不关闭的话,在后面关闭归档日志的时候就会出现讨厌的ora-38774错误。 alter database flashback off alter database archivelog;发出设置归档模式的命令 alter database open;打开数据库 再次正常关闭数据库,并备份所有的数据文件和控制文件 archive log list;在将数据库设置为归档模式后,可以执行此命令进行确认 Database log mode 为Archive Mode说明当前的数据库为归档模式 Automatic archival为Enable说明启动了自动归档。

oracle数据库备份与恢复实施方案

oracle数据库备份与恢复方案

————————————————————————————————作者:————————————————————————————————日期:

oracle数据库 备份与恢复方案 文件控制?受控?不受控 文档编号日期项目名称版本号 分册名称第册/共册总页数正文附录 编制审批生效日期

目录 一、编写目的 (1) 二、备份工具及备份方式 (1) 三、软件备份 (1) 四、软件恢复 (1) 五、数据备份 (2) 六、备份的存储 (2) 七、备份数据的保存规定 (2) 八、备份介质的格式 (3) 九、数据恢复 (4)

一、编写目的 本文档主要说明公司项目在实施现场的软件及数据的备份和恢复方案。 二、备份工具及备份方式 1.备份工具 Oracle RMAN(Recovery Manager):是一种用于备份(backup)、还原(restore)和恢复(recover)数据库的Oracle 工具。RMAN只能用于ORACLE8或更高的版本中。它能够备份整个数据库或数据库部件,如表空间、数据文件、控制文件、归档文件以及Spfile参数文件。RMAN也允许您进行增量数据块级别的备份,增量RMAN备份是时间和空间有效的,因为他们只备份自上次备份以来有变化的那些数据块。 2.备份方式 (1)自动备份:由Windows 计划任务调度完成; (2)手工备份:完成特殊情况下的备份,分热备份和冷备份,热备份是指在不关闭数据库情况下进行备份,冷备份则需要停止Oracle实例服务。 三、软件备份 1.以七天为一个周期每天23:00将所有软件拷贝到其他存储介质上 2.超出七天的备份依次删除 3.每月一号将上月最后7天的备份文件刻录到光盘上 四、软件恢复 1.找出最近的备份程序覆盖到正式运行环境的相应目录中

Oracle数据库文件及恢复方法

1参数文件 对于参数文件,启动根据如下顺序查找参数文件,先查找spfile.ora,然后查找init.ora,若两者均查找不到,则无法创建和启动instance。确认当前使用的是spfile/pfile可通过sql语句查询(show parameter spfile) 一般情况下pfile保存在$ORACLE_HOME/dbs下,其中内容制定SPFILE位置,SPFILE保存在裸设备上,主被机共享。参数文件中保存数据库启动的初始参数,如控制文件位置等。 1.1参数文件恢复: 如果损坏或丢失,从其他机器拷贝一个到$ORACLE_HOME/dbs %sqlplus / as sysdba SQL>startup pfile=’/dbs/’; 2控制文件 数据库启动到nomount状态后,可以查询v$parameter视图,获得控制文件信息,这部分信息来自启动的参数文件,oracle从参数文件spfile/pfile中获得控制文件的位置信息,找到控制文件,启动到MOUNT状态下,可以查询v$controlfile视图获得关于控制文件的信息,可以通过sql语句(select * from v$controlfile;),数据库读取控制文件controlfile 中的内容,并按照控制文件中指定的参数找到相应的数据文件,并启动数据库的归档或非归档状态。 控制文件中包含的内容 数据库的名字、ID、创建的时间戳

表空间的名字 联机日志文件、数据文件的位置、个数、名字 联机日志的Sequence号码 检查点的信息 撤销段的开始或结束 归档信息 备份信息 2.1控制文件恢复: 损坏或丢失部分控制文件: SQL>shutdown immediate; SQL>startup nomount; 修改数据库控制文件,将坏的那个排除在外: SQL>alter system set control_files='+DG_ORA/ora11g/','+DG_ORA/ora11g/' scop e=spfile"; SQL>alter database open; 损坏或丢失全部控制文件: (获取恢复脚本SQL>alter database backup controlfile to trace;) STARTUP NOMOUNT CREATE CONTROLFILE REUSE DATABASE "ORA11G" NORESETLOGS FORCE LOGGING ARCHIVELOG MAXLOGFILES 200 MAXLOGMEMBERS 3 MAXDATAFILES 1024 MAXINSTANCES 8 MAXLOGHISTORY 2920 LOGFILE GROUP 1 '+DG_ORA/ora11g/ora_redo01_1' SIZE 1000M BLOCKSIZE 512, GROUP 2 '+DG_ORA/ora11g/ora_redo02_2' SIZE 1000M BLOCKSIZE 512, GROUP 3 '+DG_ORA/ora11g/ora_redo03_3' SIZE 1000M BLOCKSIZE 512, GROUP 4 '+DG_ORA/ora11g/ora_redo04_4' SIZE 1000M BLOCKSIZE 512, GROUP 5 '+DG_ORA/ora11g/ora_redo05_5' SIZE 1000M BLOCKSIZE 512,

Oracle数据库恢复案例

Oracle数据库恢复案例 当我们在使用Oracle数据库时,突然断电,造成很多问题,致使旧数据丢失,影响了数据的正确性,破坏了数据库。此时,用户急切需求恢复数据。本文以此为例,讲述数据库数据恢复。 一、案例描述: 数据库因突然断电,数据库启库报system01.dbf需要更多的恢复来保持一致性,数据库无法打开;数据库没有备份,归档日志也不连续。客户提供了数据库的在线文件,急需恢复zxfg用户下的数据。 二、恢复流程: 1 数据库的故障检测 2 尝试挂起数据库并修复数据库 3解析数据文件 4验证数据 5导出数据与交付数据(导入) 三、恢复数据 1数据库的故障检测 利用DBV 命令检测数据文件的完整性 结果如下:

分析结果发现SYSAUX01.DBF文件数据块(Data)检测失败40页,索引页(Index)检测失败29页,说明SYSAUX01.DBF存在坏块。 结论:通过dbv对数据文件的完整性检验,SYSAUX01.DBF存在坏块,其他检测的文件完整。 2 用客户的数据库本地挂起数据库,尝试修复数据库。 2.1创建新的OS :windows server 2008 x86,安装oracle 11.2.0.1.0 for 32-bit 版本数据库,挂起数据库 起库报ORA-01110错误,System01.dbf需要更多一致性恢复。使用recover database 命令,利用在线日志做介质恢复。

数据库的控制文件已被修改,需要使用控制文件恢复数据库 恢复数据库需要2016_01_19的11号归档日志。由于归档日志丢失,使用cancel 参数进行不完全恢复。 再次执行alter database open 命令,数据库打开。

Oracle数据库文件及恢复方法

1 参数文件 对于参数文件,启动根据如下顺序查找参数文件,先查找spfile.ora,然后查找init.ora,若两者均查找不到,则无法创建和启动instance。确认当前使用的是spfile/pfile可通过sql语句查询(show parameter spfile) 一般情况下pfile保存在$ORACLE_HOME/dbs下,其中内容制定SPFILE位置,SPFILE保存在裸设备上,主被机共享。参数文件中保存数据库启动的初始参数,如控制文件位置等。 1.1 参数文件恢复: 如果损坏或丢失,从其他机器拷贝一个initora01.ora到$ORACLE_HOME/dbs %sqlplus / as sysdba SQL>startup pfile=’?/dbs/initora01.ora’; 2 控制文件 数据库启动到nomount状态后,可以查询v$parameter视图,获得控制文件信息,这部分信息来自启动的参数文件,oracle从参数文件spfile/pfile中获得控制文件的位置信息,找到控制文件,启动到MOUNT状态下,可以查询v$controlfile视图获得关于控制文件的信息,可以通过sql语句(select * from v$controlfile;),数据库读取控制文件controlfile中的内容,并按照控制文件中指定的参数找到相应的数据文件,并启动数据库的归档或非归档状态。控制文件中包含的内容 数据库的名字、ID、创建的时间戳 表空间的名字

精选文档联机日志文件、数据文件的位置、个数、名字 联机日志的Sequence号码 检查点的信息 撤销段的开始或结束 归档信息 备份信息 2.1 控制文件恢复: 损坏或丢失部分控制文件: SQL>shutdown immediate; SQL>startup nomount; 修改数据库控制文件,将坏的那个排除在外: SQL>alter system set control_files='+DG_ORA/ora11g/control02.ctl','+DG_ORA/o ra11g/control03.ctl' scope=spfile"; SQL>alter database open; 损坏或丢失全部控制文件: (获取恢复脚本SQL>alter database backup controlfile to trace;) STARTUP NOMOUNT CREATE CONTROLFILE REUSE DATABASE "ORA11G" NORESETLOGS FORCE LOGGING ARCHIVELOG MAXLOGFILES 200 MAXLOGMEMBERS 3 MAXDATAFILES 1024 MAXINSTANCES 8 MAXLOGHISTORY 2920 LOGFILE GROUP 1 '+DG_ORA/ora11g/ora_redo01_1' SIZE 1000M BLOCKSIZE 512, GROUP 2 '+DG_ORA/ora11g/ora_redo02_2' SIZE 1000M BLOCKSIZE 512, GROUP 3 '+DG_ORA/ora11g/ora_redo03_3' SIZE 1000M BLOCKSIZE 512, GROUP 4 '+DG_ORA/ora11g/ora_redo04_4' SIZE 1000M BLOCKSIZE 512, GROUP 5 '+DG_ORA/ora11g/ora_redo05_5' SIZE 1000M BLOCKSIZE 512,

ORACLE数据库备份与恢复详解

ORACLE数据库备份与恢复详解 Oracle的备份与恢复有三种标准的模式,大致分为两大类,备份恢复(物理上的)以及导入导出(逻辑上的),而备份恢复又可以根据数据库的工作模式分为非归档模式(Nonarchivelog-style)和归档模式(Archivelog-style),通常,我们把非归档模式称为冷备份,而相应的把归档模式称为热备份,他们的关系如下所示 三种方式各有优点,我们做个比较(这个是用Fireworks画的,有点糙):

$A: 现在先来介绍一下逻辑备份方式的方法,利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回到Oracle数据库中去。理论基础:Oracle 提供的Export和Import具有三种不同的操作方式(就是备份的数据输出(入)类型): 1,表方式(T) 可以将指定的表导出备份; 2,全库方式(Full) 将数据库中的所有对象导出; 3,用户方式(U) 可以将指定的用户相应的所有数据对象导出; *在导入导出备份方式中,提供了很强大的一种方法,就是增量导出/导入,但是它必须作为System来完成增量的导入导出,而且只能是对整个数据库进行实施。增量导出又可以分为三种类别: 1,完全增量导出(完全备份)(Complete Export) 这种方式将把整个数据库文件导出备份;exp system/manager inctype=complete file=20041125.dmp(为了方便检索和事后的查询,通常我们将备份文件以日期或者其他有明确含义的字符命名) 2,增量型增量导出(增量备份)(Incremental Export) 这种方式将只会备份上一次备份后改变的结果;exp system/manager inctype=incremental file=20041125.dmp 3,累积型增量导出(差异备份)(Cumulate Export) 这种方式的话,是导出自上次完全增量导出后数据库变化的信息。exp system/manager inctype=cumulative file=20041125.dmp 通常情况下,DBA们所要做的,就是按照企业指定或者是自己习惯的标准(如果是自己指定的标准,建议写好计划说明),一般,我们采用普遍认可的下面的方式进行每天的增量备份: Mon:完全备份(A) Tue:增量导出(B) Wed:增量导出(C) Thu:增量导出(D)

oracle数据库备份与恢复的三种方法(1)

Oracle数据库有三种标准的备份方法,它们分别是导出/导入(EXP/IMP)、热备份和冷备份。导出备件是一种逻辑备份,冷备份和热备份是物理备份。 一、导出/导入(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) 即备份三个数据库,比如: (2)、“增量型”增量导出 备份上一次备份后改变的数据,比如: (3)、“累积型”增量导出 累计型导出方式是导出自上次“完全”导出之后数据库中变化了的信息。比如: 数据库管理员可以排定一个备份日程表,用数据导出的三个不同方式合理高效的完成。 比如数据库的被封任务可以做如下安排: 星期一:完全备份(A)

星期二:增量导出(B) 星期三:增量导出(C) 星期四:增量导出(D) 星期五:累计导出(E) 星期六:增量导出(F) 星期日:增量导出(G) 如果在星期日,数据库遭到意外破坏,数据库管理员可按一下步骤来回复数据库: 第一步:用命令CREATE DATABASE重新生成数据库结构; 第二步:创建一个足够大的附加回滚。 第三步:完全增量导入A: 第四步:累计增量导入E: 第五步:最近增量导入F: 二、冷备份 冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库。冷备份时将关键性文件拷贝到另外的位置的一种说法。对于备份Oracle信息而言,冷备份时最快和最安全的方法。冷备份的优点是: 1、是非常快速的备份方法(只需拷文件) 2、容易归档(简单拷贝即可) 3、容易恢复到某个时间点上(只需将文件再拷贝回去) 4、能与归档方法相结合,做数据库“最佳状态”的恢复。 5、低度维护,高度安全。 但冷备份也有如下不足: 1、单独使用时,只能提供到“某一时间点上”的恢复。 2、再实施备份的全过程中,数据库必须要作备份而不能作其他工作。也就是说,在冷备份过程中,数据库必须是关闭状态。

Oracle数据库备份还原操作流程

1数据库备份和恢复 1.1数据库备份 数据库备份有两种方法:一、使用数据库备份向导;二、输入数据库备份命令。 方法一:向导备份 1. 点击“开始-运行”,输入cmd,在命令行中输入“exp”,回车,如图: 图 1-1向导备份 2. 输入要导出数据库方案的用户名和密码: 图 1-2输入用户名和密码 3. 依次输入缓冲区大小、导出文件存放路径、选择导出方式(导出完整数据库、按用 户导出、按表导出)、是否导出权限、是否导出表数据、是否压缩,一般情况下“是 否导出权限”改成“no”,其余使用默认即可。 4. 最后输入导出数据库方案所属用户名,回车,如图:

图 1-3输入导出数据库方案用户名 5. 再次回车,完成导出。 方法二:命令备份 根据数据库的具体情况,可以将方法一的第2、3步中需要的信息在第1步“exp”命令后进行描述。 例如:在本机上导出10.1.1.240服务器上用户ptac的数据库,点击“开始-运行”,输入cmd,命令行中输入: exp ptac/ptac@jqdemo_l0.1.1.240 file=d:\ptac.dmp full=n grants=n 回车,完成备份。 ●exp:oracle数据库导出指令; ●ptac/ptac:用户名/密码; ●jqdemo_l0.1.1.240:数据库服务名 ●file=d:\ptac.dmp:导出文件保存路径及名称; ●full=n:是否导出整个文件,n表示选择no; ●grants=n:是否导出权限,n表示选择no。 ●statistics=NONE:是否忽略字符集 输入exp help=y,可获得过更多关于数据库备份命令的信息。 1.2数据库恢复 如果是初次恢复数据库方案,需要先添加相应的表空间和用户,详见“4.数据库的配置”。 如果是要覆盖已有数据库方案,恢复之前要删除原方案,详见“7.1删除方案”。 数据库恢复有两种方法: 一、使用数据库恢复向导; 二、输入数据库恢复命令。

冷恢复oracle数据库步骤流程

Oracle 数据库冷还原、冷恢复详情 目的: 帮助更多的程序员、dba、项目负责人在遇到灾难性的oracle数据库崩溃时少走弯路、准确、快速恢复oracle数据库。 步骤: 废话少说,但我还是啰嗦一句:作为技术人员,请对马虎说不,处事不惊,静下心来认认真真看看别人写下来的相关文档,这对自己受益匪浅。 一、前提条件: 在冷恢复oracle 数据库之前,前提条件是非常重要的,想自己少走点弯路,务必明确每一个点。必须明确的、所需要用到的文件如下: 1、控制文件,数据文件,日志文件用户文件。文件在Oracle安装目录\oradata\全局数据库名称文件夹\ 下(包括控制文件,数据文件,日志文件、用户文件等都在里面)。 如:E:\Oracle\oradata\orcl\ 如下图列出所有文件,此处控制文件一个,还有一个在另外一个地方下面会说到,数据库文件5个,日志文件3个,用户文件若干个或者没有(没有也没关系): 注意:还有一个控制文件control02.ctl位置在: Oracle安装目录\flash_recovery_area\全局数据库名文件夹\ 下面 如:E:\Oracle\flash_recovery_area\orcl\control02.ctl 2、初始化参数文件、密码文件。在Oracle安装目录\product\11.2.0\dbhome_1\database\

下面。 注意:数据库的初始化参数文件记载着数据库的所有初始化信息,此文件的正确性是整个数据库能否恢复关键。后面在重建新实例时会详细说明如何编辑初始化参数文件。密码文件是二进制加密的数据文件,千万不能使用文本打开手动编辑,否则密码文件将失效,将可能无法还原用户数据库。 初始化参数文件位置:Oracle安装目录\product\11.2.0\dbhome_1\database\init数据库_sid.ora。 如:E:\Oracle\product\11.2.0\dbhome_1\database\INITorcl.ORA 密码文件位置:Oracle安装目录\product\11.2.0\dbhome_1\database\pwd数据库_sid.ora。如:E:\Oracle\product\11.2.0\dbhome_1\database\PWDorcl.ora。 3、必须要明确知道数据库名db_name、全局数据库名db_unique_name、数据库实例名SID 。事实上这三个数据库关键名称前两个都已加载在初始化参数文件,使用文本可以打开查看到参数db_name=’xxx’和db_unique_name=’xxx’,数据库实例名SID就是初始化参数文件名称去掉init部分,如E\Oracle\product\11.2.0\dbhome_1\database\initorcl.ora 文件orcl就是SID。 二、安装数据库服务端 如果是在原机器上。请重新安装oracle服务端。 如果是在新机器上。若已经安装有完好可用的oracle数据库服务端,可以忽略这第二步,直接到第三步,要是现版本和原来的数据库版本不一致不妨先到第三步试试版本不一致的情况是否可以行(答案等着你来回答)。不放心的可以卸载后重新安装一致的版本。 注:要是时间比较紧迫,建议安装数据库服务端时先不要创建默认数据库orcl,这样可以快很多(节省时间)。 很多人说安装oracle数据库服务端版本要与原数据库版本一致,所以最好安装跟原来版本一致的oracle服务端。至于版本不一致的情况打个疑问号(谁要是有时间可以试试,并把答案在评论上发表出来,感激不尽)。 三、创建实例 注:安装好oracle数据库服务端后,打开开始菜单找到oracle安装主目录下面有若干工具,其中有一个叫Database Configuration Assistant 。 创建oracle实例有两种方式 第一种方式是使用oracle服务端工具Database Configuration Assistant 简称DBCA工具创建。

Linux_oracle数据库的备份与恢复

1 数据库备份和恢复 (备份和恢复均已做成脚本自动运行,下列操作供参考,请不要在生产机上做测试) 1)数据库备份: ◆将dbexp.parm,dbexp.sh 拷贝至/home/oracle/backup/. 以oracle用户登录系统 $ cd /home/oracle/backup $ dos2unix * $ chmod 755 dbexp.sh ◆手工执行备份,用oracle用户登录: $ cd /home/oracle/backup $ ./dbexp.sh ◆自动执行备份,用root用户登录: #crontab -e 00 01 * * * su - oracle -c "/home/oracle/backup/dbexp.sh" 2)数据库恢复: 以oracle用户登录系统 ◆删除用户: sqlplus /nolog >connect / as sysdba; >drop user center cascade; >create user center identified by center; >grant connect,resource,dba to center ◆恢复数据库 $imp center/center full=y grants=y INDEXES=y constraints=y LOG=/tmp/backup.log rows=y ignore=y file=xxx (xxx--为以前备份的数据文件,如checkid_20041123.dat) oracle数据库的备份与恢复 原理及方法: 导出(备份) exp 用户名/密码@服务名file=d:daochu.dmp (rows=no(导出空结构)) 导入(恢复) imp 用户名/密码@服务名file=d:daochu.dmp fromuser=原用户名touser=新用户名 ---- 当我们使用一个数据库时,总希望数据库的内容是可靠的、正确的,但由于计算机系统的故障(包括机器故障、介质故障、误操作等),数据库有时也可能遭到破坏,这时如何尽快恢复数据就成为当务之急。如果平时对数据库做了备份,那么此时恢复数据就显得很容易。由此可见,做好数据库的备份是多么的重要,下面笔者就以oracle7为例,来讲述一下数据库的备份和恢复。oracle 数据库有三种标准的备份方法,它们分别为导出/导入(export/import)、冷备份、热备份。导出备份是一种逻辑备份,冷备份和热

相关文档
相关文档 最新文档