GDUL入门指南
GDUL是老耿开发的一款类dul工具,当数据库由于某种原因无法打开时,可以利用GDUL把表数据直接读取出来。 导出表之前需要先配置数据文件列表、ASM磁盘列表等,然后才能导出表数据。
1. 配置GDUL
PeOny支持各Linux/Unix平台和Windows平台,以下步骤适用于数据库可以MOUNT的情况:
1) Unix/Linux平台配置
解压缩gdul<版本号>.tar.gz文件,bin_file中包含各Unix、Linux平台gdul可执行文件,osetup为初始配置程序。
文件清单:
文件名 | 说明 |
gdul |
gdul可执行文件, 使用时请ln -s bin_file/gdul_<平台> gdul建立符号链接。 |
osetup |
初始化程序,配置ASM磁盘、数据文件列表。 |
配置步骤:
1. 设置正确的ORACLE_HOME, ORACLE_SID $export ORACLE_HOME=<CURRENT_ORACLE_HOME> $export ORACLE_SID=<CURRENT_ORACLE_SID> $echo $ORACLE_HOME $echo $ORACLE_SID |
2. 运行osetup $./osetup 说明:该程序创建conf, dict, dump, log目录,并生成配置文件、数据文件、ASM磁盘列表文件。 |
3. 启动gdul ********************************************************************* GDUL for ORACLE DB. Version 4.6.0.5, build date: 2016.09.30. Copyright (c) 2007, 2016. Andy Geng. ALL RIGHTS RESERVED. Email: dbtool@qq.com WeChat official account: dbtool QQ group: 235019291 ********************************************************************* GDUL> bootstrap Bootstrap finish.
|
2) Windows平台配置
文件清单:
文件名 |
说明 |
gdul.exe |
gdul可执行文件。 |
注意:
1. gdul只支持64位操作系统。
2. Windows下无法执行osetup脚本,需要手工创建目录和conf/下的配置文件。
配置步骤:
1.手工创建目录和配置文件 1)创建gdul.ini 注意:需要更改db_compat_version为当前数据库版本,注意12c及以上版本需要指定详细版本号,如12.1.0.1,请参见sqlplus -v输出。 <!--DB compatiable version, 9, 10, 11, 12--> <!--default block size, 4096, 8192, 16384, 32768--> <!--default datafile raw offset, 0, 4096--> <!--extract DB files on different endian platform--> <block_checksum>true</block_checksum> <!--export to SQLLDR, EXP, EXPDP--> <!--text format splite char--> <!--unload block trace--> 2)创建datafile.ini SQL语句: 文件最终格式如下: 3)创建asmdisk.ini SQL语句: 文件最终格式: |
2. 启动gdul *********************************************************************
GDUL for ORACLE DB. Version 4.6.0.5, build date: 2016.09.30. Copyright (c) 2007, 2016. Andy Geng. ALL RIGHTS RESERVED. Email: dbtool@qq.com WeChat official account: dbtool QQ group: 235019291 ********************************************************************* GDUL> bootstrap Bootstrap finish. |
3) 配置文件说明
osetup会生成conf/gdul.ini配置文件,参数说明如下:
参数 |
描述 |
取值范围 |
默认值 |
db_compat_version |
数据库版本 |
sqlplus -v输出 |
11.1.0.0 |
db_block_size |
默认数据块大小 |
4096 |
8192 |
file_raw_offset |
默认文件头偏移量,仅适用于AIX |
0或4096 |
0 |
reverse_byte |
读取不同CPU平台的数据文件 |
false, true |
false |
export_format |
导出数据格式 |
SQLLDR |
EXPDP |
ldr_enclose_char |
文本方式导出时,字段分隔符 |
ascii字符 |
| |
trace_block |
导出时跟踪块 |
false, true |
false |
2. 导出表数据
1)获取数据字典 $./gdulGDUL> bootstrap
Bootstrap finish.
|
2)导出单张表 GDUL> unload table andy.t_blob
2019-01-20 11:57:02...unloading table T_BLOB 2 rows unloaded.
|
3)导出用户下所有表 GDUL> unload user andy parallel 3
Unloading ANDY's tables, total cnt: 8 [00] 2019-01-20 11:57:00 unloading table t_lower... [02] 2019-01-20 11:57:00 unloading table T_TEST2... [01] 2019-01-20 11:57:00 unloading table T_TEST1... [02] 2019-01-20 11:57:00 table T_TEST2 unloaded 0 rows. [02] 2019-01-20 11:57:00 unloading table T_PART1... [00] 2019-01-20 11:57:00 table t_lower unloaded 1 rows. [00] 2019-01-20 11:57:00 unloading table T_VARCHAR... [01] 2019-01-20 11:57:00 table T_TEST1 unloaded 1 rows. [01] 2019-01-20 11:57:00 unloading table T_TEST_PK... [01] 2019-01-20 11:57:00 table T_TEST_PK unloaded 0 rows. [01] 2019-01-20 11:57:00 unloading table T_NUM3... [00] 2019-01-20 11:57:00 table T_VARCHAR unloaded 7 rows. [02] 2019-01-20 11:57:00 table T_PART1 unloaded 86324 rows. [01] 2019-01-20 11:57:00 table T_NUM3 unloaded 0 rows. [01] 2019-01-20 11:57:00 unloading table T_TEST222... [01] 2019-01-20 11:57:00 table T_TEST222 unloaded 0 rows. Finished. |