最近在学习oraclel备份与恢复的知识,特总结了逻辑备份与恢复的使用方法:
一、逻辑备份的介绍:
所谓备份 ,就是把数据库复制到转储设备的过程。其中,转储设备是指用于放置数据库拷贝的磁带或磁盘。
Oracle数据库有三种标准的备份方法,它们分别是导出/导入(EXP/IMP)、热备份和冷备份。导出备件是一种逻辑备份,冷备份和热备份是物理备份。
下面咱们就来讲讲导入导入(EXP/IMP)用法。
二、EXP/IMP工具介绍:
利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回到Oracle数据库中去。
1、简单导出数据(Export)和导入数据(Import)
Oracle支持三种方式类型的输出:
(1) 表方式(Table方式),将指定表的数据导出。
(2) 用户方式(User方式),将指定用户的所有对象及数据导出。
(3) 全库方式(Full方式),瘵数据库中的所有对象导出。
数据导入(Import)的过程是数据导出(Export)的逆过程,分别将数据文件导入数据库和将数据库数据导出到数据文件。
2、增量导出/导入
增量导出是一种常用的数据备份方法,它只能对整个数据库来实施,并且必须作为SYSTEM来导出。在进行此种导出时,系统不要求回答任何问题。导出文件名缺省为export.dmp,如果不希望自己的输出文件定名为export.dmp,必须在命令行中指出要用的文件名。
增量导出包括三种类型:
(1)“完全”增量导出(Complete)
即备份三个数据库,比如:
exp system/admin inctype=completefile=040731.dmp
(2)“增量型”增量导出
备份上一次备份后改变的数据,比如:
exp system/admin inctype=incrementalfile=040731.dmp
(3)“累积型”增量导出
累计型导出方式是导出自上次“完全”导出之后数据库中变化了的信息。
exp system/admin inctype=cumulativefile=040731.dmp
三、EXP/IMP与字符集
Export和 Import是一对读写Oracle数据的工具。Export将 Oracle数据库中的数据输出到操作系统文件中, Import把这些文件中的数据读到Oracle数据库中,由于使用exp/imp进行数据迁移时,数据从源数据库到目标数据库的过程中有四个环节涉及到字符集,如果这四个环节的字符集不一致,将会发生字符集转换。
四个字符集是
(1)源数据库字符集
(2)Export过程中用户会话字符集(通过NLS_LANG设定)
(3)Import过程中用户会话字符集(通过NLS_LANG设定)
(4)目标数据库字符集
详见:http://blog.csdn.net/indexman/article/details/7759318
四、应用实例如下:
1. EXP
1) EXP语法与参数介绍:
格式: EXP KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)
例如: EXP SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR)
或 TABLES=(T1:P1,T1:P2), 如果 T1 是分区表
USERID 必须是命令行中的第一个参数。
关键字 说明 (默认值) 关键字 说明 (默认值)
--------------------------------------------------------------------------
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 模式导出的模板名
2) 导出表:
C:\Documents and Settings\Administrator>exp userid=system/admin tables=(scott.emp) file=e:\emp.dmp
Export: Release 10.2.0.1.0 - Production on 星期日 8月 5 14:08:55 2012
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
即将导出指定的表通过常规路径...
当前的用户已更改为 SCOTT
. . 正在导出表 EMP导出了 14 行
成功终止导出, 没有出现警告。
3)导出表结构:
exp userid=system/admin tables=(scott.emp) file=e:\emp1.dmp rows=n
4)直接导出
exp userid=system/admin tables=(scott.emp) file=e:\emp1.dmp direct=y
5)导出方案
exp system/admin owner=(system,scott) file=e:\system_scott.dmp
6) 增量导出
exp userid=system/admin full=y inctype=complete file=e:\orcl.dmp
2. IMP
1) 语法如下:
格式: IMP KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)
例如: IMP SCOTT/TIGER IGNORE=Y TABLES=(EMP,DEPT) FULL=N
或 TABLES=(T1:P1,T1:P2), 如果 T1 是分区表
USERID 必须是命令行中的第一个参数。
关键字 说明 (默认值) 关键字 说明 (默认值)
--------------------------------------------------------------------------
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 拥有可传输表空间集中数据的用户
2) 导入表:
SQL> conn scott/tiger
已连接。
SQL> drop table emp;
表已删除。
C:\Documents and Settings\Administrator>imp userid=system/admin tables=(emp) file=e:\emp.dmp fromuser=scott touser=scott
Import: Release 10.2.0.1.0 - Production on 星期日 8月 5 15:36:07 2012
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
经由常规路径由 EXPORT:V10.02.01 创建的导出文件
已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入
. 正在将 SCOTT 的对象导入到 SCOTT
. . 正在导入表 "EMP"导入了 14 行
即将启用约束条件...
成功终止导入, 没有出现警告。
3)导入方案:
imp system/admin file=e:\scott.dmp log=e:\scott.log fromuser=scott
imp system/manager file=e:\system_scott.dmp log=e:\system_scott.log fromuser=(system, scott)
4) 导入完整数据库:
imp system/admin file=e:\orcl.dmp log=e:\orcl.log full=y ignore=y
made by dylan.