oracle --工具 ODU
一,什么是ODU
ODU全称为Oracle Data ba se Unloader ,是用于Oracle 数据库紧急恢复的软件,在各种原因
造成的数据库不能打开或数据删除后没有备份时,使用ODU抢救数据,最大限度地减少数
据丢失。 现实中总会有很多的意外,数据被意外删除、硬件问题导致数据库损坏、错误地格式化了
ASM磁盘等等,在没有备份的情况下,ODU能够通过直接访问Oracle 数据库数据文件或直
接访问ASM磁盘,恢复出所有完好的数据,以避免所有数据丢失造成的损失。
二,odu功能特点
01, 不需要运行Oracle 数据库软件,ODU直接读取数据库文件和ASM磁盘进行数据解析。
在由于硬件问题或人为误操作引起数据损坏时,Oracle 数据库软件为遵行数据完整性和
一致性原则,往往不能打开数据库对数据库进行访问,而ODU可以绕过Oracle 数据库
软件,直接从Oracle 数据库文件和ASM磁盘中解析数据,从而恢复数据。
02, 支持ASM,能够直接从ASM磁盘中解析数据。即使Oracle 数据文件存储在ASM磁盘
中,ODU仍然能够直接从ASM磁盘中读取数据,即使由于硬件或错误地FORMAT 导
致ASM磁盘头部数据损坏而导致ASM 磁盘组不能加载时,ODU仍然能够从ASM中
恢复数据。
03, 支持从ASM磁盘组中直接抽取出数据文件和其他任意存储在ASM磁盘组中的文件,
并保存为文件。比如可以将ASM磁盘组中的在线日志文件、控制文件等文件抽取出来
保存到文件系统中。
04, 多版本Oracle 支持,支持的Oracle 数据库版本包括7, 8i,i, 10g, g 。
05, 自动检测数据文件的表空间号和文件号,在只知道数据文件名而不知道数据文件所属表
空间等信息时,ODU能够自动获取这些信息。
06, 在有SYSTEM 表空间的情况下,自动解析和获取数据字典信息。这样使用ODU恢复
的数据能够生成与原来一样的用户名以及列类型。
07, 支持各种类型的表,包括普通的HEAP 表,IOT 表和聚簇(CLUSTER)表。
08, 支持类似于SQLPLUS 的DESC 命令,以显示表的列定义。
09, 支持10g 及以上的大文件(BigFile) 表空间。
10, 可以列出表的分区和子分区,并能够指定只需要恢复的分区和子分区。
11, 支持表被Truncate 后的数据恢复。由于表被Truncate 之后,只能使用备份或database
级的flashb ac k( g 以上的新功能)才能恢复Truncate 的数据。在没有备份、备份不可
用或Data base Fl ashb ack 没有开启时,将不能使用正常的方法来恢复数据。ODU可以在
Truncat e 的表的空间没有被占用的情况下恢复出Trunca t e 之前的数据。
12, 支持表被Drop 之后的数据恢复,如果表被Drop 同时Drop 的表之前的空间没有被占用,
则可以使用ODU恢复被Drop 的表之前的数据。
13, 支持压缩表,ODU能够恢复Oracle 压缩表的数据。
14, 支持在没有SYSTEM 表空间和数据字典损坏的情况下恢复数据,在没有数据字典可用
时,ODU能够自动判断数据的类型。
15,支持IOT 表的恢复:
支持普通IOT 表
支持压缩IOT 表
支持IOT 表溢出段
支持IOT 表分区(包括子分区)
16,支持多种平台的数据库和跨平台数据恢复,包括AIX 、LI NUX、HPU X 、SOLARI S 、
WINDOWS所有主流的操作系统和平台。这里包括有两种含义,第一是ODU有多个平
台的版本,能够在所有主流的操作系统上运行;其二是能够在一个平台上恢复其他平台
上的Oracle 数据库数据,比如在可以将AIX 系统上的Oracle 数据文件复制到Li nu x 系
统上,然后使用Li nux 系统的ODU来恢复,反之亦然。
17,支持的数据类型包括:NUMBER, CHAR, VARCHAR2, NCHAR,NVARHCAR2, LONG,
DATE, RAW, LONG RAW, BLOB, CLOB, TIMESTAMP (9i+) , BINARY FLOAT,
BINARY DO UBLE (10g +) 。
18,恢复的数据能够以纯文本和DMP文件两种格式存储。以纯文本导出时,能够自动生成
建表所需的SQL 语句和SQLLDR 导入所需的CONTROL 文件(.CTL) ,以DMP文件
格式存储的数据,能够使用Oracle 自带的imp 命令导入到数据库中。
19,支持同一个库中不同的块大小的数据文件。
全面支持LOB 字段:
支持CLOB、NCLOB和BLOB
CLOB 支持Bi g En di an 和Little E n di an 字节序
支持LOB 分区,子分区
支持同一个表中,不同LOB 列使用不同CHUNK SIZE 的情况
CLOB 数据可以导出到与其他列相同的文件中,或存储到单独的文件中
LOB 列在没有SYSTEM 表空间的情况下仍然能够导出
20, 支持多种字符集之间的转换,能够正确的转换CLOB 、NCLOB、NVARCHAR2 列类型
的数据到与数据库相同的字符集。
ODU全面支持64 位系统,支持超过4G大小的数据文件。
21, 支持复制操作系统命令不能复制的坏文件。由于存储硬件问题导致数据库中数据文件
部分损坏,并且此时操作系统的相关操作不能正常读取该文件时,可以使用ODU复制
这样的文件到其他位置,以替换掉损坏的文件或存储阵列。
三,安装使用
01,初步使用
软件下载:https://files.cnblogs.com/files/kingle-study/odu_433_linux_x86.tar.gz
解压软件
tar zxvf odu_433_linux_x86.tar.gz
[oracle@standby2 odu]$ ll
total
-rwxrwxrwx oracle oinstall May : asmdisk.txt
-rwxrwxrwx oracle oinstall Apr config.txt
-rwxrwxrwx oracle oinstall Mar control.txt
drwxr-xr-x oracle oinstall May data
-rwxr-xr-x oracle oinstall Apr odu
ODU软件解压后,通常有下列文件和目录:
odu ODU 可执行文件,这是ODU主程序。
config txt ODU 配置文件。
control.txt ODU 控制文件,用于在数据恢复时指定使用的Oracle 数据库文件。
asmdisk.txt ASM 磁盘信息设置文件,用于在数据恢复时指定使用的ASM磁盘组磁盘。
lib ODU 软件库文件目录,在某些平台上没有此目录。
data ODU 默认的数据目录,用于存储ODU恢复出来的数据。
02,软件使用
编辑文件
[oracle@standby2 odu]$ cat control.txt
#ts fno rfno filename block_size is_big_file header_offset blocks /oradata/oracle01/sysaux01.dbf
/oradata/oracle01/system01.dbf
/oradata/oracle01/temp01.dbf
/oradata/oracle01/undotbs01.dbf
/oradata/oracle01/users01.dbf
写上数据文件的路径
然后运行odu主程序
[oracle@standby2 odu]$ ./odu Oracle Data Unloader:Release 4.3. Copyright (c) - XiongJun. All rights reserved. Web: http://www.oracleodu.com
Email: magic007cn@gmail.com loading default config....... byte_order little
block_size
block_buffers
db_timezone -
Invalid db timezone:-
client_timezone
Invalid client timezone:
asmfile_extract_path /asmfile
data_path data
lob_path /odu/data/lob
charset_name US7ASCII
ncharset_name AL16UTF16
output_format text
lob_storage infile
clob_byte_order big
trace_level
delimiter |
unload_deleted no
file_header_offset
is_tru64 no
record_row_addr no
convert_clob_charset yes
use_scanned_lob yes
trim_scanned_blob yes
lob_switch_dir_rows
db_block_checksum yes
db_block_checking yes
rdba_file_bits
compatible
load config file 'config.txt' successful
loading default asm disk file ...... grp# dsk# bsize ausize disksize diskname groupname path
---- ---- ----- ------ -------- --------------- --------------- -------------------------------------------- load asm disk file 'asmdisk.txt' successful
loading default control file ...... ts# fn rfn bsize blocks bf offset filename
---- ---- ---- ----- -------- -- ------ --------------------------------------------
N /oradata/oracle01/sysaux01.dbf
N /oradata/oracle01/system01.dbf
N /oradata/oracle01/temp01.dbf
N /oradata/oracle01/undotbs01.dbf
N /oradata/oracle01/users01.dbf
load control file 'control.txt' successful
loading dictionary data......done loading scanned data......done ODU>
ODU> save control The file write completed.
ODU> exit
ODU> 保存文件,这时候在在目录下面生成一个新的文件
[oracle@standby2 odu]$ ls
asmdisk.txt config.txt control.txt data odu oductl.txt odu_trace.txt
oracle --工具 ODU的更多相关文章
- 使用Navicat for Oracle工具连接oracle的图文教程
点评:今天上网的时候偶然发现了一款oracle的客户端的图形化管理和开发工具,当看到这个界面的时候,感觉很舒服,便上网搜了一下这个工具,看百度百科之后感觉很出乎我的意料,这个产品对于许多的数据库竟都有 ...
- [转]使用Navicat for Oracle工具连接oracle的
使用Navicat for Oracle工具连接oracle的 这是一款oracle的客户端的图形化管理和开发工具,对于许多的数据库都有支持.之前用过 Navicat for sqlserver,感觉 ...
- oracle删除dbf导致的oracle工具不能正常使用
1.使用cmd命令登录Oracle:sqlplus / as sysdba;就可以,中间两个空格.2.删除了dbf导致Oracle工具不能正常使用解决办法(oracle initialization ...
- 使用Navicat for Oracle工具连接oracle
使用Navicat for Oracle工具连接oracle的 这是一款oracle的客户端的图形化管理和开发工具,对于许多的数据库都有支持.之前用过 Navicat for sqlserver,感觉 ...
- 使用Navicat for Oracle工具连接oracle出错:ORA-12737
今天上网的时候偶然发现了一款oracle的客户端的图形化管理和开发工具,当看到这个界面的时候,感觉很舒服,便上网搜了一下这个工具,看百度百科之后感觉很出乎我的意料,这个产品对于许多的数据库竟都有支持, ...
- Oracle工具之DBNEWID
DBNEWID是Oracle提供的一个用于修改数据库DBID和DBNAME的工具. 在引进该工具之前,如果我们想修改数据库的数据库名,必须重建控制文件.但即便如此,也无法修改该数据库的DBID.众所周 ...
- oracle工具 sqlplus 用户管理
可以通过system用户对普通用户解锁.alter user scott account unlock; 工具:1/ sqlplusw sqlplus 自带.调用oracle安装目录下bin目录下的e ...
- Oracle工具——ADRCI
ADRCI工具是Oracle11g才推出的新工具,主要用来管理alert文件.trace文件.dump文件.健康监事报告等. 这一篇简单介绍ADRCI工具. 用过11g的人都会发现,11g中alert ...
- JDBC连接Oracle工具类
import java.sql.*;import java.util.ResourceBundle; /** * jdbc工具类,负责: * 1. 加载/注册数据库驱动程序 * 2. 获取数据库连接 ...
随机推荐
- 【译】.NET Core 是 .NET 的未来
为什么要翻译咧,.NET 5 都宣布在 .NET Core 之后发布咯,何不再给 .NET Core 打打鸡血,我这个 .NET Core 的死忠粉. 原文:<.NET Core is the ...
- Kubernetes 弹性伸缩全场景解读(二)- HPA 的原理与演进
前言 在上一篇文章 Kubernetes 弹性伸缩全场景解析 (一):概念延伸与组件布局中,我们介绍了在 Kubernetes 在处理弹性伸缩时的设计理念以及相关组件的布局,在今天这篇文章中,会为大家 ...
- JDBC与Druid简单介绍及Druid与MyBatis连接数据库
序言 java程序与数据建立连接,首先要从jdbc说起,然后直接上阿里认为宇宙最好的数据库连接池druid,然后再说上层程序对象与数据源映射关联关系的orm-mybatis. JDBC介绍 JDBC( ...
- 深入理解TCP/IP应用层
TCP/IP四层模型分为: 应用层,传输层(只关注起点(发送者)和终点(接收者)),网络层(规划出一条或几条路线),数据链路层(关注两个相邻点之间怎么传输) 协议 应用层 DNS,URI,HT ...
- Python - 字符串 - 第七天
Python 字符串 字符串是 Python 中最常用的数据类型.我们可以使用引号( ' 或 " )来创建字符串. 创建字符串很简单,只要为变量分配一个值即可.例如: var1 = 'Hel ...
- Web Api 模型绑定 二
[https://docs.microsoft.com/zh-cn/aspnet/core/web-api/?view=aspnetcore-2.2] 1.ApiController属性使模型验证错误 ...
- 深入浅出《设计模式》之工厂模式(C++)
前言 模式介绍 在之前简单工厂模式中,我们介绍了简单工厂模式的缺陷是违背了开放-封闭原则.如果在面馆中添加了烤海参,那将会修改waiter工厂类.违背了类内封闭原则. 还以面馆为例,现在两种面,用一个 ...
- FCC-学习笔记 Spinal Tap Case
FCC-学习笔记 Spinal Tap Case 1>最近在学习和练习FCC的题目.这个真的比较的好,推荐给大家. 2>中文版的地址:https://www.freecodecamp. ...
- python通过连接池连接redis,操作redis队列
在每次使用redis都进行连接的话会拉低redis的效率,都知道redis是基于内存的数据库,效率贼高,所以每次进行连接比真正使用消耗的资源和时间还多.所以为了节省资源,减少多次连接损耗,连接池的作用 ...
- Django 使用 mysql 数据库连接
启用 mysql 数据库连接 修改 app01 下的 __init__.py import pymysql pymysql.install_as_MySQLdb() 修改 settings.py DA ...