http://www.360doc.com/content/10/1015/15/3267996_61218717.shtml

--------摘自 360doc

为了能有效地备份和恢复数据库,建议大家将数据库修改为归档方式。

数据库的备份

一、物理备份数据库

1、完全数据库脱机备份

A、编写一个要备份的最新文件列表,备份数据文件,日志文件和控制文件。

SQL> select file_name from dba_data_files;

FILE_NAME
------------------------------------------

E:\ORACLE\ORADATA\TRNG2\USERS01.DBF
E:\ORACLE\ORADATA\TRNG2\SYSAUX01.DBF
E:\ORACLE\ORADATA\TRNG2\UNDOTBS01.DBF
E:\ORACLE\ORADATA\TRNG2\SYSTEM01.DBF

SQL> select member from v$logfile;

MEMBER
-----------------------------------

E:\ORACLE\ORADATA\TRNG2\REDO01.LOG
E:\ORACLE\ORADATA\TRNG2\REDO03.LOG
E:\ORACLE\ORADATA\TRNG2\REDO02.LOG

SQL> select name from v$controlfile;

NAME
--------------------------------------

E:\ORACLE\ORADATA\TRNG2\CONTROL01.CTL
E:\ORACLE\ORADATA\TRNG2\CONTROL02.CTL
E:\ORACLE\ORADATA\TRNG2\CONTROL03.CTL

B、用shutdown命令来关闭数据库。

C、用操作系统的备份工具来备份所用数据文件,日志文件和控制文件。

D、重启动数据库。

2、部分数据库联机备份

A、设置表空间为备份状态。

SQL> select tablespace users begin backup;

在备份期间系统拒绝关闭数据库。

B、备份表空间的数据文件。

C、恢复表空间为正常状态。

SQL>alter tablespace users end backup;

3、部分数据库的脱机备份

A、将表空间设置为脱机。

SQL>alter tablespace users offline;

B、备份表空间的数据文件

C、将表空间设置为联机。

SQL>alter tablespace online;

SYSTEM表空间不允许设置为offline。

4、控制文件的在线备份

SQL>alter database backup controlfile to D:\oracle\product\10.2.0\admin\TRNG2\udump\control.backup;

or

SQL>alter database backup controlfile to 'trace;

在       D:\oracle\product\10.2.0\admin\TRNG2\udump\*.trc文件中

STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "TRNG2" NORESETLOGS      ARCHIVELOG
        MAXLOGFILES 16
        MAXLOGMEMBERS 3
        MAXDATAFILES 100
        MAXINSTANCES 8
        MAXLOGHISTORY 292
LOGFILE
      GROUP 1 'E:\ORACLE\ORADATA\TRNG2\REDO01.LOG'      SIZE 50M,
      GROUP 2 'E:\ORACLE\ORADATA\TRNG2\REDO02.LOG'      SIZE 50M,
      GROUP 3 'E:\ORACLE\ORADATA\TRNG2\REDO03.LOG'      SIZE 50M
-- STANDBY LOGFILE
DATAFILE
      'E:\ORACLE\ORADATA\TRNG2\SYSTEM01.DBF',
      'E:\ORACLE\ORADATA\TRNG2\UNDOTBS01.DBF',
      'E:\ORACLE\ORADATA\TRNG2\SYSAUX01.DBF',
      'E:\ORACLE\ORADATA\TRNG2\USERS01.DBF'
CHARACTER SET ZHS16GBK
;
-- Commands to re-create incarnation table
-- Below log names MUST be changed to existing filenames on
-- disk. Any one log file from each branch can be used to
-- re-create incarnation records.
-- ALTER DATABASE REGISTER LOGFILE 'D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TRNG2\ARCHIVELOG\2007_04_30\O1_MF_1_1_%U_.ARC';
-- Recovery is required if any of the datafiles are restored backups,
-- or if the last shutdown was not normal or immediate.
RECOVER DATABASE
-- All logs need archiving and a log switch is needed.
ALTER SYSTEM ARCHIVE LOG ALL;
-- Database can now be opened normally.
ALTER DATABASE OPEN;

直接运行上述sql语句可以重新创建控制文件。

二、数据库的逻辑备份

1、逻辑导出

EXP命令用于逻辑导出,使用exp命令有三种导出方式:表方式、用户方式、全部数据库方式。

EXP导出关键字说明:

USERID       用户名/口令               FULL            导出整个文件 (N)
BUFFER       数据缓冲区大小            OWNER            所有者用户名列表
FILE         输出文件 (EXPDAT.DMP)      TABLES         表名列表
COMPRESS      导入到一个区 (Y)       RECORDLENGTH       IO 记录的长度
GRANTS        导出权限 (Y)              INCTYPE         增量导出类型
INDEXES       导出索引 (Y)             RECORD           跟踪增量导出 (Y)
DIRECT        直接路径 (N)             TRIGGERS         导出触发器 (Y)
LOG          屏幕输出的日志文件        STATISTICS        分析对象 (ESTIMATE)
ROWS          导出数据行 (Y)            PARFILE          参数文件名
CONSISTENT 交叉表的一致性 (N)       CONSTRAINTS      导出的约束条件 (Y)

OBJECT_CONSISTENT        只在对象导出期间设置为只读的事务处理 (N)
FEEDBACK                 每 x 行显示进度 (0)
FILESIZE                 每个转储文件的最大大小
FLASHBACK_SCN            用于将会话快照设置回以前状态的 SCN
FLASHBACK_TIME           用于获取最接近指定时间的 SCN 的时间
QUERY                    用于导出表的子集的 select 子句
RESUMABLE                遇到与空格相关的错误时挂起 (N)
RESUMABLE_NAME           用于标识可恢复语句的文本字符串
RESUMABLE_TIMEOUT        RESUMABLE 的等待时间
TTS_FULL_CHECK           对 TTS 执行完整或部分相关性检查
TABLESPACES              要导出的表空间列表
TRANSPORT_TABLESPACE 导出可传输的表空间元数据 (N)
TEMPLATE                 调用 iAS 模式导出的模板名

如:

A、按表方式导出

exp userid=symbols/symbols direct=y tables=(RB_ACCT) file=d:\oracle\backup\RB_ACCT_2007-04_30.dmp log=d:\oracle\backup\RB_ACCT_2007-04_30.log

B、按用户方式导出

exp userid=symbols/symbols direct=y      file=d:\oracle\backup\symbols_2007-04_30.dmp log=d:\oracle\backup\symbols_2007-04_30.log

C、按数据库方式导出

exp userid=system/symbols direct=y full=y file=d:\oracle\backup\symbolfull_2007-04_30.dmp log=d:\oracle\backup\ymbolfull_2007-04_30.log

2、逻辑导入

IMP 逻辑导入关键字:

USERID       用户名/口令               FULL           导入整个文件 (N)
BUFFER       数据缓冲区大小            FROMUSER        所有者用户名列表
FILE         输入文件 (EXPDAT.DMP)      TOUSER         用户名列表
SHOW         只列出文件内容 (N)         TABLES          表名列表
IGNORE       忽略创建错误 (N)        RECORDLENGTH      IO 记录的长度
GRANTS       导入权限 (Y)              INCTYPE         增量导入类型
INDEXES       导入索引 (Y)             COMMIT           提交数组插入 (N)
ROWS         导入数据行 (Y)            PARFILE          参数文件名
LOG         屏幕输出的日志文件        CONSTRAINTS        导入限制 (Y)
DESTROY                    覆盖表空间数据文件 (N)
INDEXFILE                  将表/索引信息写入指定的文件
SKIP_UNUSABLE_INDEXES      跳过不可用索引的维护 (N)
FEEDBACK                   每 x 行显示进度 (0)
TOID_NOVALIDATE            跳过指定类型 ID 的验证
FILESIZE                   每个转储文件的最大大小
STATISTICS                 始终导入预计算的统计信息
RESUMABLE                  在遇到有关空间的错误时挂起 (N)
RESUMABLE_NAME             用来标识可恢复语句的文本字符串
RESUMABLE_TIMEOUT          RESUMABLE 的等待时间
COMPILE                    编译过程, 程序包和函数 (Y)
STREAMS_CONFIGURATION      导入流的一般元数据 (Y)
STREAMS_INSTANTIATION      导入流实例化元数据 (N)

下列关键字仅用于可传输的表空间
TRANSPORT_TABLESPACE 导入可传输的表空间元数据 (N)
TABLESPACES 将要传输到数据库的表空间
DATAFILES 将要传输到数据库的数据文件
TTS_OWNERS 拥有可传输表空间集中数据的用户

A、按用户和表的方式导入

imp userid=symbols/symbols file=d:\oracle\backup\symbols_2007-04_30.dmp log=d:\oracle\backup\symbols_2007-04_30.log full=y

B、按数据库导入

imp userid=system/symbols full=y file=d:\oracle\backup\symbolsfull_2007-04_30.dmp log=d:\oracle\backup\symbolsfull_2007-04_30.log

3、表空间的导入导出

A、检查表空间的自包含性。

SQL>exec dbms_tts.transport_set_check('users',true);

SQL>select * from transport_set_voilations;

如果未选定行,表示该表空间是自包含的,否则不得传输。

B、将表空间设置为只读。

SQL>alter tablespace users read only;

C、用exp导出

exp transport_tablespace=yes tabelspaces=users file=users.dmp;

如果要转换到不同平台上,需要使用rman进行转化

SQL〉select d.platform_name,endian_format from v$transportable_platform tp,v$database d where tp.platform_name=d.platform_name;

查询出平台,假如显示是Linux要想windows转移,使用rman工具:

$rman target sys/sys

RMAN>convert tablespace users to platform 'Microsoft Windows NT' format '/temp/%U;

转化完的结果在/temp下

D、复制文件到另外的服务器。

E、用imp导入

imp transport_tablespace=y datafiles=../users.dbf tablespaces=users file=users.dmp;

F、将表空间修改为读写状态。

SQL>alter tablespace users read write;

3、使用数据泵技术对数据库备份和恢复

EXPDP关键字:

ATTACH                 连接到现有作业, 例如 ATTACH [=作业名]。
COMPRESSION            减小有效的转储文件内容的大小
                       关键字值为: (METADATA_ONLY) 和 NONE。
CONTENT                指定要卸载的数据, 其中有效关键字为:
                       (ALL), DATA_ONLY 和 METADATA_ONLY。
DIRECTORY              供转储文件和日志文件使用的目录对象。
DUMPFILE               目标转储文件 (expdat.dmp) 的列表,
                       例如 DUMPFILE=scott1.dmp, scott2.dmp, dmpdir:scott3.dmp。
ENCRYPTION_PASSWORD    用于创建加密列数据的口令关键字。
ESTIMATE               计算作业估计值, 其中有效关键字为:
                       (BLOCKS) 和 STATISTICS。
ESTIMATE_ONLY          在不执行导出的情况下计算作业估计值。
EXCLUDE                排除特定的对象类型, 例如 EXCLUDE=TABLE:EMP。
FILESIZE               以字节为单位指定每个转储文件的大小。
FLASHBACK_SCN          用于将会话快照设置回以前状态的 SCN。
FLASHBACK_TIME         用于获取最接近指定时间的 SCN 的时间。
FULL                   导出整个数据库 (N)。
HELP                   显示帮助消息 (N)。
INCLUDE                包括特定的对象类型, 例如 INCLUDE=TABLE_DATA。
JOB_NAME               要创建的导出作业的名称。
LOGFILE                日志文件名 (export.log)。
NETWORK_LINK           链接到源系统的远程数据库的名称。
NOLOGFILE              不写入日志文件 (N)。
PARALLEL               更改当前作业的活动 worker 的数目。
PARFILE                指定参数文件。
QUERY                  用于导出表的子集的谓词子句。
SAMPLE                 要导出的数据的百分比;
SCHEMAS                要导出的方案的列表 (登录方案)。
STATUS                 在默认值 (0) 将显示可用时的新状态的情况下,
                       要监视的频率 (以秒计) 作业状态。
TABLES                 标识要导出的表的列表 - 只有一个方案。
TABLESPACES            标识要导出的表空间的列表。
TRANSPORT_FULL_CHECK   验证所有表的存储段 (N)。
TRANSPORT_TABLESPACES 要从中卸载元数据的表空间的列表。
VERSION                要导出的对象的版本, 其中有效关键字为:
                       (COMPATIBLE), LATEST 或任何有效的数据库版本。

下列命令在交互模式下有效。
注: 允许使用缩写

命令                说明
------------------------------------------------------------------------------
ADD_FILE               向转储文件集中添加转储文件。
CONTINUE_CLIENT        返回到记录模式。如果处于空闲状态, 将重新启动作业。
EXIT_CLIENT            退出客户机会话并使作业处于运行状态。
FILESIZE               后续 ADD_FILE 命令的默认文件大小 (字节)。
HELP                   总结交互命令。
KILL_JOB               分离和删除作业。
PARALLEL               更改当前作业的活动 worker 的数目。
                       PARALLEL=<worker 的数目>。
START_JOB              启动/恢复当前作业。
STATUS                 在默认值 (0) 将显示可用时的新状态的情况下,
                       要监视的频率 (以秒计) 作业状态。
                       STATUS[=interval]
STOP_JOB               顺序关闭执行的作业并退出客户机。
                       STOP_JOB=IMMEDIATE 将立即关闭
                       数据泵作业。

IMPDP关键字:

ATTACH                 连接到现有作业, 例如 ATTACH [=作业名]。
CONTENT                指定要加载的数据, 其中有效关键字为:
                       (ALL), DATA_ONLY 和 METADATA_ONLY。
DIRECTORY              供转储文件, 日志文件和 sql 文件使用的目录对象。
DUMPFILE               要从 (expdat.dmp) 中导入的转储文件的列表,
                       例如 DUMPFILE=scott1.dmp, scott2.dmp, dmpdir:scott3.dmp。
ENCRYPTION_PASSWORD    用于访问加密列数据的口令关键字。
                       此参数对网络导入作业无效。
ESTIMATE               计算作业估计值, 其中有效关键字为:
                       (BLOCKS) 和 STATISTICS。
EXCLUDE                排除特定的对象类型, 例如 EXCLUDE=TABLE:EMP。
FLASHBACK_SCN          用于将会话快照设置回以前状态的 SCN。
FLASHBACK_TIME         用于获取最接近指定时间的 SCN 的时间。
FULL                   从源导入全部对象 (Y)。
HELP                   显示帮助消息 (N)。
INCLUDE                包括特定的对象类型, 例如 INCLUDE=TABLE_DATA。
JOB_NAME               要创建的导入作业的名称。
LOGFILE                日志文件名 (import.log)。
NETWORK_LINK           链接到源系统的远程数据库的名称。
NOLOGFILE              不写入日志文件。
PARALLEL               更改当前作业的活动 worker 的数目。
PARFILE                指定参数文件。
QUERY                  用于导入表的子集的谓词子句。
REMAP_DATAFILE         在所有 DDL 语句中重新定义数据文件引用。
REMAP_SCHEMA           将一个方案中的对象加载到另一个方案。
REMAP_TABLESPACE       将表空间对象重新映射到另一个表空间。
REUSE_DATAFILES        如果表空间已存在, 则将其初始化 (N)。
SCHEMAS                要导入的方案的列表。
SKIP_UNUSABLE_INDEXES 跳过设置为无用索引状态的索引。
SQLFILE                将所有的 SQL DDL 写入指定的文件。
STATUS                 在默认值 (0) 将显示可用时的新状态的情况下,
                       要监视的频率 (以秒计) 作业状态。
STREAMS_CONFIGURATION 启用流元数据的加载
TABLE_EXISTS_ACTION    导入对象已存在时执行的操作。
                       有效关键字: (SKIP), APPEND, REPLACE 和 TRUNCATE。
TABLES                 标识要导入的表的列表。
TABLESPACES            标识要导入的表空间的列表。
TRANSFORM              要应用于适用对象的元数据转换。
                       有效的转换关键字: SEGMENT_ATTRIBUTES, STORAGE
                       OID 和 PCTSPACE。
TRANSPORT_DATAFILES    按可传输模式导入的数据文件的列表。
TRANSPORT_FULL_CHECK   验证所有表的存储段 (N)。
TRANSPORT_TABLESPACES 要从中加载元数据的表空间的列表。
                       仅在 NETWORK_LINK 模式导入操作中有效。
VERSION                要导出的对象的版本, 其中有效关键字为:
                       (COMPATIBLE), LATEST 或任何有效的数据库版本。
                       仅对 NETWORK_LINK 和 SQLFILE 有效。

下列命令在交互模式下有效。
注: 允许使用缩写

命令                说明 (默认)
------------------------------------------------------------------------------
CONTINUE_CLIENT        返回到记录模式。如果处于空闲状态, 将重新启动作业。
EXIT_CLIENT            退出客户机会话并使作业处于运行状态。
HELP                   总结交互命令。
KILL_JOB               分离和删除作业。
PARALLEL               更改当前作业的活动 worker 的数目。
                       PARALLEL=<worker 的数目>。
START_JOB              启动/恢复当前作业。
                       START_JOB=SKIP_CURRENT 在开始作业之前将跳过
                       作业停止时执行的任意操作。
STATUS                 在默认值 (0) 将显示可用时的新状态的情况下,
                       要监视的频率 (以秒计) 作业状态。
                       STATUS[=interval]
STOP_JOB               顺序关闭执行的作业并退出客户机。
                       STOP_JOB=IMMEDIATE 将立即关闭
                       数据泵作业。

A、创建一个存储数据泵导出数据的目录。

SQL>create direcotry dpump_dir as '/oracle/oradata/orcl10/pumpdata';

SQL>grant read,write on directory to scott;

设置系统的环境变量:export DATA_PUMP_DIR=dpump_dir

B、进行数据的导入导出

expdp scott/tiger tables=emp dumpfile=emp.dmp directory=dpump_dir(按表导出)

impdp scott/tiger     dumpfile=emp.dmp directory=dpump_dir

expdp scott/tiger     dumpfile=emp.dmp directory=dpump_dir(按用户到出)

impdp scott/tiger     dumpfile=emp.dmp directory=dpump_dir

expdp 'sys/sys as sysdba'     schemas=scott dumpfile=emp.dmp directory=dpump_dir(按方案到出)

impdp 'sys/sys as sysdba'     dumpfile=emp.dmp directory=dpump_dir

表空间和exp,imp步骤相同

expdp system/password     dumpfile=emp.dmp directory=dpump_dir transport_tablespace=users

impdp system/password dumpfile=emp.dmp directory=dpump_dir transport_datafile='../users.dbf'

数据的恢复

一、完全数据库恢复

完全数据库恢复的语法如下:

SQL>alter database recover datafile

SQL>alter database recover database

SQL>recover datafile

SQL>recover database

SQL>recover tablespace

二、不完全数据恢复

1、基于时间的数据库恢复

SQL>alter databse recover database until time

SQL>alter databse recover until time using backup controlfile

SQL>recover database until time

SQL>recover database until time using backup controlfile

2、基于撤销的数据库恢复

SQL>alter database recover database until concel

SQL>recover database until concel

3、基于改变的数据库恢复

SQL>alter database recover database until change

SQL>recover database until change

三、Oracle10g的闪回操作

1、表数据的闪回

SQL>insert into emp (select * from emp as of timestamp to_timestamp('2007-01-01','YYYY-MM-DD HH24:MI:SS);

2、表操作的闪回

SQL>flashback table emp to timestamp to_timestamp('2007-01-01','YYYY-MM-DD HH24:MI:SS);

3、表删除的闪回

SQL>flashback table emp to before drop;

4、数据库的闪回

SQL>flashback database to scn 22222;

SQL>flashback database to timestamp to_timestamp('2007-01-01','YYYY-MM-DD HH24:MI:SS);

Oracle备份与恢复详解的更多相关文章

  1. ORACLE数据库备份与恢复详解

    ORACLE数据库备份与恢复详解 学习过程中的总结,有兴趣不妨看看,如果有不对的地方,高手不要留情!! Oracle的备份与恢复有三种标准的模式,大致分为两 大类,备份恢复(物理上的)以及导入导出(逻 ...

  2. oracle 数据类型详解---日期型(转载)

    oracle 数据类型详解---日期型 oracle数据类型看起来非常简单,但用起来会发现有许多知识点,本文是我对ORACLE日期数据类型的一些整理,都是开发入门资料,与大家分享: 注:由于INTER ...

  3. oracle 序列 详解

    序列: 是oacle提供的用于产生一系列唯一数字的数据库对象. l  自动提供唯一的数值 l  共享对象 l  主要用于提供主键值 l  将序列值装入内存可以提高访问效率 创建序列: 1.  要有创建 ...

  4. oracle checkpoint 详解

    Oracle checkpoint详解 topcheckpoint扫盲 top什么是checkpoint 在数据库系统中,写日志和写数据文件是数据库中IO消耗最大的两种操作,在这两种操作中写数据文件属 ...

  5. Oracle数据字典详解

    学习笔记:oracle数据字典详解 --- 本文为TTT学习笔记,首先介绍数据字典及查看方法,然后分类总结各类数据字典的表和视图.然后列出一些附例.   数据字典系统表,保存在system表空间中. ...

  6. oracle rowid 详解

    oracle rowid详解 今天是2013-09-15,存储在数据库中的每一行数据都有一个地址,oracle使用rowid数据类型在存储地址.rowid有如下类别: 1)physical rowid ...

  7. Oracle索引详解

    Oracle索引详解(二) --索引分类   Oracle 提供了大量索引选项.知道在给定条件下使用哪个选项对于一个程序的性能来说非常重要.一个错误的选择可能会引发死锁,并导致数据库性能急剧下降或进程 ...

  8. Oracle内存详解之 Library cache 库缓冲

    Oracle内存详解之 Library cache 库缓冲 2017年11月09日 11:38:39 阅读数:410更多 个人分类: 体系结构 Library cache是Shared pool的一部 ...

  9. Oracle date 详解

    oracle 数据类型详解---日期型 oracle数据类型看起来非常简单,但用起来会发现有许多知识点,本文是我对ORACLE日期数据类型的一些整理,都是开发入门资料,与大家分享:注:由于INTERV ...

随机推荐

  1. Zabbix数据库表分区

    zabbix的监控主机数量将近300,且运行了一年时间了,最近zabbix server服务监控历史数据等服务不断自身告警.查询性能也变得很低 关于历史数据的两个参数,在zabbix server的配 ...

  2. Web性能优化之-深入理解TCP Socket

    什么是Socket?    大家都用电脑上网,当我们访问运维社区https://www.unixhot.com的时候,我们的电脑和运维社区的服务器就会创建一条Socket,我们称之为网络套接字.那么既 ...

  3. fail-safe fail-fast知多少

    目录 简介 Fail-fast Iterator Fail-fast 的原理 Fail-safe Iterator 总结 fail-safe fail-fast知多少 简介 我们在使用集合类的时候,通 ...

  4. 在java中使用JMH(Java Microbenchmark Harness)做性能测试

    文章目录 使用JMH做性能测试 BenchmarkMode Fork和Warmup State和Scope 在java中使用JMH(Java Microbenchmark Harness)做性能测试 ...

  5. Linux发送邮件命令mail,mutt

    邮件常常是Linux下监控报警手段之一.Linux下的mail命令可以方便,快速的完成发送邮件. 1. Linux发邮件2种常见客户端命令 1.1 mail命令(推荐) 语法: 无邮件正文 mail ...

  6. 配置路由器/交换机的Telnet登录

    实验目的:给配置路由器/交换机管理IP地址.设置Telnet的登录帐号.密码. 第一步:配置路由器的名称.接口IP地址. Switch> Switch>en Switch# Switch# ...

  7. 解决layui动态追加的点击事件不起作用问题

    2019独角兽企业重金招聘Python工程师标准>>> //不起作用 $('#demo').on('click', function() { layer.msg('响应点击事件'); ...

  8. #Week3 Linear Regression with Multiple Variables

    一.Multiple Features 这节课主要引入了一些记号,假设现在有n个特征,那么: 为了便于用矩阵处理,令\(x_0=1\): 参数\(\theta\)是一个(n+1)*1维的向量,任一个训 ...

  9. html入门详细笔记

    Web的基本概念 什么是Web? 中文翻译"网页",它是一些列技术的总称,(包括网站的前台布局.后台程序.美工.数据库开发等),我们称它为网页. Web标准 结构标准(HTML) ...

  10. 图论--最短路--dijkstra(含路径输出)模板

    #include<iostream> #include<stack> #include<queue> #include<cstring> #includ ...