oracle 数据库备份和恢复,可能发生的故障类型,可传输表空间的操作方法,数据泵的使用,针对不同的生产环境而采取不同的逻辑备份方法


备份和恢复

1. 备份和恢复概念

  备份是数据库的数据副本,可以保护数据在出现意外损失时最大限度的恢复;
  Oracle 数据库的备份包括两种类型:
    物理备份是对数据库的操作系统物理文件(如数据文件、控制文件和日志文件等)的备份,主要通过RMAN
    逻辑备份是对数据库逻辑组件(如表、视图和存储过程等数据库对象)的备份

2. 可能发生的故障类型

  语句故障:在执行 SQL 语句无效可导致语句故障。(不需要处理)
  用户进程故障:当用户程序出错而无法访问数据库时发生用户进程故障。导致用户进程故障的原因是异常断开连接或异常终止进程。(不需要处理,PMON进程自动处理)
  实例故障:当 ORACLE 的数据库实例由于硬件或软件问题而无法断续运行时,就会发生实例故障(重启数据库)
  介质故障:在数据库无法正确读取或写入某个数据库文件时,会发生介质故障


3.传统的导出和导入程序 exp/imp (了解内容)

3.1 传统的导出导入程序用于实施数据库的逻辑备份和恢复

  导出程序将数据库中的对象定义和数据备份到一个操作系统二进制文件中;导入程序读取二进制导出文件并将对象和数据载入数据库中;
  传统的导入程序是客户端工具,导出的二进制文件位于客户端;
在这里插入图片描述

3.2 优点

  可以按时间保存表结构和数据;允许导出指定的表,并重新导入到新的数据库中;可以把数据库迁移到另外一台异构服务器上;在两个不同版本的 Oracle 数据库之间传输数据;在联机状态下进行备份和恢复;可以重新组织表的存储结构,降低HWM,减少链接及磁盘碎片

3.3 使用调用导出和导入实用程序的三种方法

交互提示符:
  以交互的方式提示用户逐个输入参数的值
在这里插入图片描述

命令行参数:
  在命令行指定执行程序的参数和参数值

参数文件:
  允许用户将运行参数和参数值存储在参数文件中,以便重复使用参数

新建一个参数文件在这里插入图片描述

exp  parfile=参数文件路径
3.4 导出和导入数据库对象的四种模式(四种模式之间互斥)

  数据库模式:导出和导入整个数据库中的所有对象; full
  表空间模式:导出和导入一个或多个指定的表空间中的所有对象;
  用户模式:导出和导入一个用户模式中的所有对象;
  表模式:导出和导入一个或多个指定的表或表分区;

3.5 exp

exp命令

  格式:  EXP KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)
  例如: EXP SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR)TABLES=(T1:P1,T1:P2), 如果 T1 是分区表

参数说明:

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

如:
(1) 导出scott的emp、dept表

exp scott/123456@orcl  tables=(emp,dept) file=D:\c\scott1.dmp log=D:\c\scott1.log

在这里插入图片描述
在这里插入图片描述
(2) 导出scott所有对象

exp scott/123456@orcl owner=scott file=D:\c\scott2.dmp log=D:\c\scott2.log

在这里插入图片描述

3.6 imp
 格式:  IMP KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)
 例如: IMP SCOTT/TIGER IGNORE=Y TABLES=(EMP,DEPT) FULL=N
           或 TABLES=(T1:P1,T1:P2), 如果 T1 是分区表

参数说明:

USERID   用户名/口令
BUFFER   数据缓冲区大小
FILE     输入文件 (EXPDAT.DMP)
SHOW     只列出文件内容 (N)
IGNORE   忽略创建错误 (N)
GRANTS   导入权限 (Y)
INDEXES   导入索引 (Y)
ROWS     导入数据行 (Y)
LOG     屏幕输出的日志文件
FULL       导入整个文件 (N)
FROMUSER    所有者用户名列表
TOUSER     用户名列表
TABLES      表名列表
RECORDLENGTH  IO 记录的长度
INCTYPE     增量导入类型
COMMIT       提交数组插入 (N)
PARFILE      参数文件名
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)
DATA_ONLY              仅导入数据 (N)

如:
(1) 导入scott的emp、dept表

在这里插入图片描述

imp scott/123456@orcl  file=D:\c\scott1.dmp

在这里插入图片描述
仅导入部分表:
在这里插入图片描述

imp scott/123456@orcl  file=D:\c\scott1.dmp tables=(dept)

在这里插入图片描述

(2) 导入其他用户的表

imp cz/123456@orcl file=D:\c\scott2.dmp  fromuser=scott touser=cz
3.7.可传输表空间(迁移的数据量很大)

步骤:
  检查要传输的表空间是否是自包含的;
  将表空间设置成只读;
  exp 进行可传输表空间模式的导出;
  将导出文件和数据文件复制到目标数据库上;
  目标数据库上,imp 进行可传输表空间模式的导入;
  目标数据库上,把表空间设置成读写状态;


4. 数据泵(expdp /impdp)

4.1 简介

  exp/imp缺点在于速度太慢,oracle设计了一个服务器端工具,数据泵为数据库提供高速并行和大数据的迁移;

4.2 expdp 格式说明、参数说明、使用说明

  在 expdp 进行导出时,先创建了 MT 表,并把对象的信息插入到 MT 表,之后进行导出动作;导出完成后,MT 表也导出到转储文件中;导出任务完成后、或者删除了导出任务后,MT 表自动删除;如果导出任务异常终止,MT 表仍然保留

expdp 具有四种模式:表、用户、可传输表空间、全库

  格式:  expdp KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)
  示例: expdp scott/tiger DUMPFILE=scott.dmp DIRECTORY=dmpdir SCHEMAS=scott
               或 TABLES=(T1:P1,T1:P2), 如果 T1 是分区表

参数说明:

ATTACH
连接到现有作业。
例如, ATTACH=job_name。

COMPRESSION
减少转储文件大小。
有效的关键字值为: ALL, DATA_ONLY, [METADATA_ONLY] 和 NONE。

CONTENT
指定要卸载的数据。
有效的关键字值为: [ALL], DATA_ONLY 和 METADATA_ONLY。
ALL 导出表定义和数据,DATA_ONLY仅导出数据,METADATA_ONLY仅导出定义

DATA_OPTIONS
数据层选项标记。
有效的关键字值为: XML_CLOBS。

DIRECTORY
用于转储文件和日志文件的目录对象。

DUMPFILE
指定目标转储文件名的列表 [expdat.dmp]。
例如, DUMPFILE=scott1.dmp, scott2.dmp, dmpdir:scott3.dmp。

ENCRYPTION
加密某个转储文件的一部分或全部。
有效的关键字值为: ALL, DATA_ONLY, ENCRYPTED_COLUMNS_ONLY, METADATA_ONLY 和 NONE
。

ENCRYPTION_ALGORITHM
指定加密的方式。
有效的关键字值为: [AES128], AES192 和 AES256。

ENCRYPTION_MODE
生成加密密钥的方法。
有效的关键字值为: DUAL, PASSWORD 和 [TRANSPARENT]。

ENCRYPTION_PASSWORD
用于在转储文件中创建加密数据的口令密钥。

ESTIMATE
计算作业估计值。
有效的关键字值为: [BLOCKS] 和 STATISTICS。

ESTIMATE_ONLY
计算作业估计值而不执行导出。

EXCLUDE
排除特定对象类型。
例如, EXCLUDE=SCHEMA:"='HR'"。

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
用于导出表的子集的谓词子句。
例如, QUERY=employees:"WHERE department_id > 10"。

REMAP_DATA
指定数据转换函数。
例如, REMAP_DATA=EMP.EMPNO:REMAPPKG.EMPNO。

REUSE_DUMPFILES
覆盖目标转储文件 (如果文件存在) [N]。

SAMPLE
要导出的数据的百分比。

SCHEMAS
要导出的方案的列表 [登录方案]。

SOURCE_EDITION
用于提取元数据的版本。

STATUS
监视作业状态的频率, 其中
默认值 [0] 表示只要有新状态可用, 就立即显示新状态。

TABLES
标识要导出的表的列表。
例如, TABLES=HR.EMPLOYEES,SH.SALES:SALES_1995。

TABLESPACES
标识要导出的表空间的列表。

TRANSPORTABLE
指定是否可以使用可传输方法。
有效的关键字值为: ALWAYS 和 [NEVER]。

TRANSPORT_FULL_CHECK
验证所有表的存储段 [N]。

TRANSPORT_TABLESPACES
要从中卸载元数据的表空间的列表。

VERSION
要导出的对象版本。
有效的关键字值为: [COMPATIBLE], LATEST 或任何有效的数据库版本。


ADD_FILE
将转储文件添加到转储文件集。

CONTINUE_CLIENT
返回到事件记录模式。如果处于空闲状态, 将重新启动作业。

EXIT_CLIENT
退出客户机会话并使作业保持运行状态。

FILESIZE
用于后续 ADD_FILE 命令的默认文件大小 (字节)。

HELP
汇总交互命令。

KILL_JOB
分离并删除作业。

PARALLEL
更改当前作业的活动 worker 的数量。

REUSE_DUMPFILES
覆盖目标转储文件 (如果文件存在) [N]。

START_JOB
启动或恢复当前作业。
有效的关键字值为: SKIP_CURRENT。

STATUS
监视作业状态的频率, 其中
默认值 [0] 表示只要有新状态可用, 就立即显示新状态。

STOP_JOB
按顺序关闭作业执行并退出客户机。
有效的关键字值为: IMMEDIATE。

如:
使用sysdba用户创建目录对象

create directory MY_DIR as 'D:\d';
grant read,write on directory MY_DIR to scott;
(1)导出scott的 emp、dept表,默认会导出表上的约束和索引

在命令行输入

expdp scott/123456@orcl DUMPFILE=scott1.dmp DIRECTORY=MY_DIR TABLES=(emp,dept)

在这里插入图片描述

(2)导出scott的 emp、dept表,仅导结构,不导出数据,导出文件名若存在则覆盖

在命令行输入

expdp scott/123456@orcl DUMPFILE=scott1.dmp DIRECTORY=MY_DIR TABLES=(emp,dept) CONTENT=METADATA_ONLY REUSE_DUMPFILES=y
(3)导出scott和hr用户

用户必须是管理员用户,在命令行输入

expdp system/123456@orcl DUMPFILE=system1.dmp DIRECTORY=MY_DIR SCHEMAS=(scott,hr)  JOB_NAME=expdp1

JOB_NAME 若指定则生成的MT表名称为JOB_NAME的属性值
在这里插入图片描述

(4)导出scott的 emp、dept表,不导出索引和约束

在命令行输入

expdp scott/123456@orcl DUMPFILE=scott2.dmp DIRECTORY=MY_DIR TABLES=(emp,dept) exclude=index,constraint

在这里插入图片描述

(5)导出scott的所有表,除了 emp、dept表

在命令行输入

expdp scott/123456@orcl DUMPFILE=scott3.dmp DIRECTORY=MY_DIR exclude=table:"in('EMP')" exclude=table:"in('DEPT')"

在这里插入图片描述

(6)导出scott的 emp、dept表,但不导出emp的约束和索引

在命令行输入

expdp scott/123456@orcl DUMPFILE=scott4.dmp DIRECTORY=MY_DIR TABLES=(emp,dept) exclude=constraint:"in('PK_DEPT')"  exclude=index:"in('PK_DEPT')" 

在这里插入图片描述

(7)导出scott的 emp、dept表,带条件expdp,并使用parfile

创建parfile文件
在这里插入图片描述
在创建的文件的目录执行

expdp scott/123456@orcl  parfile=exp1.txt

在这里插入图片描述

4.3 impdp 格式说明、参数说明、使用说明
  格式:  impdp KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)
  示例: impdp scott/tiger DIRECTORY=dmpdir DUMPFILE=scott.dmp

参数说明:

ATTACH
连接到现有作业。
例如, ATTACH=job_name。

CONTENT
指定要加载的数据。
有效的关键字为: [ALL], DATA_ONLY 和 METADATA_ONLY。

DATA_OPTIONS
数据层选项标记。
有效的关键字为: SKIP_CONSTRAINT_ERRORS。

DIRECTORY
用于转储文件, 日志文件和 SQL 文件的目录对象。

DUMPFILE
要从中导入的转储文件的列表 [expdat.dmp]。
例如, DUMPFILE=scott1.dmp, scott2.dmp, dmpdir:scott3.dmp。

ENCRYPTION_PASSWORD
用于访问转储文件中的加密数据的口令密钥。
对于网络导入作业无效。

ESTIMATE
计算作业估计值。
有效的关键字为: [BLOCKS] 和 STATISTICS。

EXCLUDE
排除特定对象类型。
例如, EXCLUDE=SCHEMA:"='HR'"。

FLASHBACK_SCN
用于重置会话快照的 SCN。

FLASHBACK_TIME
用于查找最接近的相应 SCN 值的时间。

FULL
导入源中的所有对象 [Y]。

HELP
显示帮助消息 [N]。

INCLUDE
包括特定对象类型。
例如, INCLUDE=TABLE_DATA。

JOB_NAME
要创建的导入作业的名称。

LOGFILE
日志文件名 [import.log]。

NETWORK_LINK
源系统的远程数据库链接的名称。

NOLOGFILE
不写入日志文件 [N]。

PARALLEL
更改当前作业的活动 worker 的数量。

PARFILE
指定参数文件。

PARTITION_OPTIONS
指定应如何转换分区。
有效的关键字为: DEPARTITION, MERGE 和 [NONE]。

QUERY
用于导入表的子集的谓词子句。
例如, QUERY=employees:"WHERE department_id > 10"。

REMAP_DATA
指定数据转换函数。
例如, REMAP_DATA=EMP.EMPNO:REMAPPKG.EMPNO。

REMAP_DATAFILE
在所有 DDL 语句中重新定义数据文件引用。

REMAP_SCHEMA
将一个方案中的对象加载到另一个方案。

REMAP_TABLE
将表名重新映射到另一个表。
例如, REMAP_TABLE=EMP.EMPNO:REMAPPKG.EMPNO。

REMAP_TABLESPACE
将表空间对象重新映射到另一个表空间。

REUSE_DATAFILES
如果表空间已存在, 则将其初始化 [N]。

SCHEMAS
要导入的方案的列表。

SKIP_UNUSABLE_INDEXES
跳过设置为“索引不可用”状态的索引。

SOURCE_EDITION
用于提取元数据的版本。

SQLFILE
将所有的 SQL DDL 写入指定的文件。

STATUS
监视作业状态的频率, 其中
默认值 [0] 表示只要有新状态可用, 就立即显示新状态。

STREAMS_CONFIGURATION
启用流元数据的加载

TABLE_EXISTS_ACTION
导入对象已存在时执行的操作。
有效的关键字为: APPEND, REPLACE, [SKIP] 和 TRUNCATE。

TABLES
标识要导入的表的列表。
例如, TABLES=HR.EMPLOYEES,SH.SALES:SALES_1995。

TABLESPACES
标识要导入的表空间的列表。

TARGET_EDITION
用于加载元数据的版本。

TRANSFORM
要应用于适用对象的元数据转换。
有效的关键字为: OID, PCTSPACE, SEGMENT_ATTRIBUTES 和 STORAGE。

TRANSPORTABLE
用于选择可传输数据移动的选项。
有效的关键字为: ALWAYS 和 [NEVER]。
仅在 NETWORK_LINK 模式导入操作中有效。

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 的数量。

START_JOB
启动或恢复当前作业。
有效的关键字为: SKIP_CURRENT。

STATUS
监视作业状态的频率, 其中
默认值 [0] 表示只要有新状态可用, 就立即显示新状态。

STOP_JOB
按顺序关闭作业执行并退出客户机。
有效的关键字为: IMMEDIATE。
(1)改变所有者,REMAP_SCHEMA的使用
grant read,write on directory MY_DIR to hr;

在命令行输入

expdp scott/123456@orcl DUMPFILE=scott7.dmp DIRECTORY=MY_DIR SCHEMAS=(scott)  
impdp hr/123456@orcl DUMPFILE=scott7.dmp DIRECTORY=MY_DIR  remap_schema=scott:hr

在这里插入图片描述

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

但行益事莫问前程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值