DUL Oracle Data Unloaderダウンロード

オラクルDULは、オランダからは、Oracleサポート、バーナードバンDuijnen開発企業内のOracleデータベースの回復ツールです:
DULは、Oracleの製品ではありません
DULは、Oracleでサポートされて製品ではありません
DULは、内部使用のためにOracle Supportの営業サポート部門に厳密に制限されている
DULは、海外で使用するOracleの内部承認を通過する必要が、あなたは最初のPS Oracleの標準サービスを購入する必要がありますのみDULを使用してもよいし、そうでなければそれもDULを使用する資格はありません
DULが厳密に制御されている一つの理由は、Oracleソースコードの使用であり、それは厳密に制御されなければならない

約DUL9最初から、DULソフトウェアタイムロックDULの使用を制限するため、与えるためにバーナードバンDuijnen外の世界は、彼が定期的にDULは(C言語に基づくDUL)を異なるプラットフォーム上でコンパイルし、定期的にOracleの内部DULにアップロードすることを追加ワークスペース(ベースstbeehiveスペース)、Oracleサポート·ダウンロードするために、内部VPNログインを使用することができます。つまり、ロック日付のバージョンをリリース10月1日bernard.van.duijnenのようなものです、30日、11月1日DULは、単に読んでいない、基本的には効果のないOS時間に、このバージョンなので、OSを変更するための時間ですそれは無用だ。 DULが時間内にデータファイルを読み込むように、Oracleのデータファイル·レーンはまた、現在の時刻を記録したため。 DULとの時間を変更するには、平均的なユーザーのために不可能。
DULには、HP-UXのバージョンを、対応するようにbernard.van.duijnen学生は、DULプラットフォームは、HP-UXを提供しないわけではないので注意してください。
古すぎるため、現在の10グラム、11グラム、12cのデータベースで使用されるOracle DULバージョンの一方、以前のバージョンでは、基本的に機能していません。米国での使用DULが厳密に中国で制御され、その後、基本は、Oracle ACSの高度な顧客サービス部門は、ORACLEのACSフィールドサービス価格はまだ高価で購入し、使用中に持っているである。
附属書は、Oracle ACSプレゼンテーション文書DULサービスを提供(もちろん元のサイトサービスは、より高価であり、ユーザーは毎年、PS標準サービスを購入したことを条件とする、そうでなければ、あなたも、ACSの高度なサービスのオンサイトサービスを購入することはできません):

https://www.askmac.cn/wp-content/uploads/2014/01/DUL.pdf

 

 

DUL 10 Manual:

DUL User’s and Configuration Guide V10.2.4.27

https://www.askmac.cn/wp-content/uploads/2014/01/DUL-Users-and-Configuration-Guide-V10.2.4.27.pdf

 

以下は、ダウンロードリンクDUL10であるが、ためにロックのため、定期的に失敗する。

 

DUL FOR LINUX平台

DUL FOR Windows平台

 

詩タンソフトウェア(マクリーンが置かれている会社)はDUL類似製品、PRM-DULを開発しました。グラフィカルインターフェース(GUI)の導入に基づいてDULとデータブリッジ(SQLLDRファイルになって着陸せずにデータを直接DBLINKとしてターゲット·データベースに同じを転送)およびその他の機能、およびPRM-DULがJavaベースで書かれているので、あなたはすべてのプラットフォームを横断することができますので、 HP-UXを含む。

 

PRM-DUL無料版のダウンロード:
http://parnassusdata.com/sites/default/files/ParnassusData_PRMForOracle_3206.zip

 

PRM-DULマニュアルhttp://www.parnassusdata.com/sites/default/files/ParnassusData%20Recovery%20Manager%20For%20Oracle%20Database%E7%94%A8%E6%88%B7%E6%89% 8B%E5%86%で8C%の20v0.3.pdf

PRM-DUL無料版各テーブルをデフォルトでは、唯一のデータベースにデータテーブルのこれ以上1万超える行ほど小さい場合は、直接、自由PRM-DULを使用することができ、データの1万行を抽出することができます。あなたのデータベースが大きくなり、データが非常に重要です、あなたはEnterprise EditionのPRM-DUL、データベースのライセンス·ソフトウェア·ライセンスをPRM-DULのEnterprise Editionを購入を検討することができ、ライセンス価格は17を含む7500元(ある場合%の付加価値税)。
一方PRM-DULもいくつかの無料ライセンスを提供します。
自由で開かれた、いくつかのPRM-DUL Enterprise Editionのライセンスキー

使用DUL後にOracleデータベース·リカバリ·ケースがまだ作業した場合は、サービス復旧の採用を検討することができます:
詩タンソフトウェアは今やなど、Oracle回復のほぼ全てのシーンを提供しています:データベースを開くことができなかった、テーブル等、間違わDROP、TRUNCATE、DELETEで、ASMのディスク·グループができないMOUNTが好き。

彼らが扱うことができない場合は、あなたが回復を助けるために詩タンORACLEデータベースの修復ソフトウェア専門のチームメンバーを見つけることができます!
タン詩データベースの修復ソフトウェア専門家チーム

 

電話番号:086-13764045638        メール:[email protected]

 

 

 

Current recovery options 
restore and rollforward
export/import
use SQL*Loader to re-load the data
(parallel) create table as select (PCTS)
Transportable Tablespace


Diagnostic tools
orapatch
BBED (block browser/editor) 
Undocumented parameters
_corrupted_rollback_segments, _allow_resetlogs_corruption  etc... 


No alternatives in the case of loss of SYSTEM tablespace datafile(s) 
The database must be in ‘reasonably’ good condition or else recovery is not possible (even with the undocumented parameters!) 
Patching is very ‘cumbersome’ and is not always guaranteed to work
Certain corruptions are beyond patching
Bottom line - loss of data!!


The most common problem is the fact that customer’s backup strategy does not match their business needs. 
Eg.  Customer takes weekly backups of the database, but in the event of a restore their business need is to be up and running within (say) 10 hours.   This is not feasible since the ‘rollforward’ of one week’s worth of archive logs would (probably) take more than 10 hours!!


Building a cloned database exporting data, and importing into the recovery database.
Building a cloned database and using Transportable Tablespaces for recovery. 


DUL could be a possible solution
DUL (?) - Bernard says ‘Life is DUL without it!’
bottom line - salvage as much data as possible



DUL is intended to retrieve data that cannot be retrieved otherwise
It is NOT an alternative for restore/rollforward, EXP, SQL*Plus etc. 
It is meant to be a last resort, not for normal production usage
Note: There are logical consistency issues with the data retrieved


DUL should not be used where data can be salvaged using one of the supported mechanisms (restore/rollforward, exp/imp etc…)


Doesn’t need the database or the instance to be open
Does not use recovery, archive logs etc…
It doesn’t care about data consistency
more tolerant to data corruptions
Does not require the SYTEM tablespace to recover


DUL is a utility that can unload data from “badly damaged” databases. 
DUL will scan a database file, recognize table header blocks, access extent information, and read all rows 
Creates a SQL*Loader or Export formatted output
matching SQL*Loader control file is also generated




DUL version 3 (still in testing!) supports IMP loadable dump file.  More on DUL version 3 later...



Read the Oracle data dictionary if the SYSTEM tablespace files are available 
Analyze all rows to determine 
number of columns, column datatypes and column lengths


If the SYSTEM tablespace datafiles are not available DUL does its own analysis, more on this later...



DUL can handle all row types
normal rows, migrated rows, chained rows, multiple extents, clustered tables, etc. 
The utility runs completely unattended, minimal manual intervention is needed.
Cross platform unloading is supported



DUL can open other datafile(s) if there are extents in that datafile(s).
Although DUL can handle it, LONG RAW presents a problem for SQL*Loader - we’ll talk about this shortly...

For cross platform unloading the configuration parameters within "init.dul" will have to be modified to match those of the original platform and O/S rather than the platform from which the unload is being done.
DUL unloads in the physical order of the columns. The cluster key columns are always unloaded first.


Recovers data directly from Oracle data files 
the Database (RDBMS) is bypassed 
Does dirty reads, it assumes that every transaction is committed
Does not check if media recovery has been done
DATABASE CORRUPT - BLOCKS OK 
Support for Locally Managed Tablespaces


DUL does not require that media recovery be done.
Since DUL reads the data directly from datafiles,  it  reads data that is committed as well as uncommitted.  Therefore the data that is salvaged by DUL can potentially be logically corrupt.  It is upto the DBA and/or the Application programmers to validate the data.


The database can be copied from a different operating system than the DUL-host 
Supports all database constructs: 
row chaining, row migration, hash/index clusters, longs, raws, rowids, dates, numbers, multiple free list groups, segment high water mark, NULLS, trailing NULL columns etc...
DUL should work with all versions 6 , 7, 8 and 9
Enhanced to support 9i functionality. 


DUL has been tested with versions from 6.0.36 up to 7.2.2. The old block header layout (pre 6.0.27.2) also works! 


The main new features are: 
  Support for Oracle version 6, 7, 8 and 9 
  Support for Automatic Space Managed Segments 
  New bootstrap procedure: just use ‘bootstrap;’.   No more 
       dictv6,7 or 8.ddl files 
  LOB are supported in SQL*Loader mode only 
  (Sub)Partitioned tables can be unloaded 
  Unload a single (Sub)Partition 
  Improved the scan tables 
  The timestamp and interval datatypes 
  Stricter checking of negative numbers 
  (Compressed) Index Organized Tables be unloaded 
  Very strict checking of row status flags 
  Unload index to see what rows you are missing 
  Objects, nested tables and varrays are not supported (internal  
        preparation for varray support ) 


DUL has been tested with versions from 6.0.36 up to 9.0.1. The old block header layout (pre 6.0.27.2) also works! 
DuL 92 is mostly bug fixes:
The latest version is DUL92. The main new features are: 
     fix for problem with startup when db_block_size = 16K 
     fix for scan database and Automatic Space Managed Segments 
     fix for block type errors high block types; new max is 51 
     Support for Automatic Space Managed Segments 
     phase zero of new unformat command 
     internal preparation for varray support 
     Bug fix in the stricter checking of negative numbers 
     Bug fix in the unloading of clustered tables 


The database can be corrupted, but an individual data block used must be 100% correct
blocks are checked to make sure that they are not corrupt and belong to the correct segment
DUL can and will only unload table/cluster data. 
it will not dump triggers, constraints, stored procedures nor create scripts for tables or views
But the data dictionary tables describing these can be unloaded


Note: If during an unload a bad block is encountered, an error message is printed in the loader file and to standard output. Unloading will continue with the next row or block. 


MLSLABELS (trusted oracle) are not supported
No special support for multi byte character sets
DUL can unload (LONG) RAWs, but there is no way to reload these 1-to-1 with SQL*Loader
SQL*Loader cannot be used to load  LONG RAW data.



DUL can unload (long) raws, but there is no way to reload these 1-to-1 with SQL*Loader. There is no suitable format in SQL*Loader
to preserve all long raws. Use the export mode instead or write a Pro*C program to load the data.



DUL and large files (files > 2GB) 
Starting from DUL version 8.0.6.7 DUL will report if it can do 32-bit i/o(no large file support) or 64-bit i/o with large file suport.
DUL support for raw devices
DUL will work on raw devices. But DUL is not raw device aware.


Raw Devices:
On some platforms we skip the first part of the raw device. DUL does not automatically skip this extra part. The easiest way to configure DUL in this is the optional extra offset in the control file. These extra offsets that I am aware of are 4K on AIX raw devices and 64K for Dec Unix. 
DUL does not use the size as stored in the file header. So DUL will read the whole raw device including the unused part at the end.


There are two configuration files for DUL
init.dul
control.dul
Configuration parameters are platform specific.


If you do decide that DUL is the only way to go, then here is how to go about configuring and using DUL.  Good Luck!!


Contains parameters to help DUL understand the format of the database files 
Has information on  
DUL cache size
Details of header layout
Oracle block size
Output file format
Sql*Loader format and record size. 
etc...


Sample init.dul file for Solaris looks like:
# The dul cache must be big enough to hold all entries from the Dictionary dollar tables.
dc_columns = 200000
dc_tables = 20000
dc_objects = 20000
dc_users = 40
# OS specific parameters
big_endian_flag = true
dba_file_bits = 6
align_filler = 1
db_leading_offset = 1
# Database specific parameters
db_block_size = 2048
# Sql*Loader format parameters
ldr_enclose_char = "
ldr_phys_rec_size = 81


Used to translate the file numbers to file names
Each entry on a separate line, first the file_number then the data_file_name
A third optional field is an extra positive or negative byte offset, that will be added to all fseek() operations for that datafile.


This optional field makes it possible to skip over the extra block for AIX on raw devices or to unload from fragments of a datafile.

The control file would look like : 
  1  /u04/bugmnt/tar9569610.6/gs/sysgs.dbf                                
  2  /u04/bugmnt/tar9569610.6/gs/rbs.dbf                                  
  3  /u04/bugmnt/tar9569610.6/gs/user.dbf         
  4  /u04/bugmnt/tar9569610.6/gs/index.dbf                   
  5  /u04/bugmnt/tar9569610.6/gs/test.dbf
When the database is up and running v$dbfile contains the above information.



# sample init.dul configuration parameters
# these must be big enough for the database in question
# the cache must hold all entries from the dollar tables.
dc_columns = 200000
dc_tables = 10000
dc_objects = 10000
dc_users = 40

# OS specific parameters
osd_big_endian_flag = false
osd_dba_file_bits = 6
osd_c_struct_alignment = 32
osd_file_leader_size = 1

# database parameters
db_block_size = 8192

# loader format definitions
LDR_ENCLOSE_CHAR = "
LDR_PHYS_REC_SIZE = 81

#ADD PARAMETERS
export_mode=true  # still needed with dul9
compatible=9


# AIX version 7 example with one file on raw device
   1 /usr/oracle/dbs/system.dbf
   8 /dev/rdsk/data.dbf 4096

   # Oracle8 example with a datafile split in multiple parts, each part smaller than 2GB
   0  1 /fs1/oradata/PMS/system.dbf
   1  2 /tmp/huge_file_part1 startblock 1 endblock 1000000
   1  2 /tmp/huge_file_part2 startblock 1000001 endblock 2000000
   1  2 /mnt3/huge_file_part3 startblock 2000001 endblock 2550000



Case1: Data dictionary usable


Case 1:  
SYSTEM tablespace available
Case 2:  
Using DUL without the SYSTEM tablespace


Straight forward method  	                     
Execute ‘dul’ from os prompt then ‘bootstrap’ from DUL
Don’t need to know about the application tables structure, column types etc...


DUL> unload table hr.emp_trunc;

DUL: Error: No entry in OBJ$ for "EMP_TRUNC" type = 2
DUL: Error: Could not resolve object id
DUL: Error: Missing dictionary information, cannot unload table
DUL> scan database;

Case2: Without the SYSTEM tablespace 

Needs an in depth knowledge about the application and the application tables
The unloaded data does not have any value, if you do not know from which table it came from
Column types can be guessed by DUL but table and column names are lost
The guessed column types can be wrong


Note: 
1) Any old SYSTEM tablespace from the same database but weeks old can be of great help!
2) If you recreate the tables (from the original CREATE TABLE scripts) then the structural information of a "lost" table can be matched to the "seen" tables scanned with two SQL*Plus scripts. (fill.sql andgetlost.sql)

Steps to follow: 
1.configure DUL for the target database. This means creating a correct init.dul and control.dul. 
2.SCAN DATABASE; : scan the database for extents and segments. 
3.SCAN TABLES; : scan the found segments for rows. 
4.SCAN EXTENTS; : scan the found extents. 
5.Identify the lost tables from the output of step 3. 
6.UNLOAD the identified tables. 



DUL will not find “last” columns that only contain NULL's
Trailing NULL columns are not stored in the database
Tables that have been dropped can be seen
When a table is dropped, the description is removed from the data dictionary only
Tables without rows will go unnoticed


During startup DUL goes through the following steps: 
the parameter file "init.dul" is processed
the DUL control file (default "control.dul") is scanned
try to load dumps of the USER$, OBJ$, TAB$ and COL$ if available into DUL's data dictionary cache
try to load seg.dat and col.dat. 
accept DDL-statements or run the DDL script specified as first argument



DUL version 3, 8, 9 and 92 are available. 

http://www-sup.nl.oracle.com/dul/index.html

 exceutables, user’s and configutration guide
Available on most common platforms
Solaris
AIX
NT
HP etc...


DUL version 9 is currently available on: 
aix
alphavms62
att3000
dcosx
hp.tar.bin
osf1
rm4000.tar.bin   
sco
sequen
sunos
sunsol2
vaxvms55
vaxvms61
win95
winnt 

DuL with Dictionary


 Configure init.dul and control.dul
 Load DuL
 Bootstrap
 Unload database, user, table


DuL without Dictionary


 Configure init.dul and control.dul (control will include
   the datafiles needing to be recovered only).
 Load DuL
 alter session set use_scanned_extent_map = true
 scan database
 scan tables
 Using the found table definitions construct an uload 
   statement:
unload table dul2.emp (EMPLOYEE_ID number(22), FIRST_NAME varchar2(20), 
LAST_NAME varchar2(25), 
EMAIL varchar2(25),PHONE_NUMBER varchar2(20), HIRE_DATE date, JOB_ID varchar2 (10),
SALARY number(22), COMMISSION_PCT number(22),MANAGER_ID number(22), 
DEPARTMENT_ID number(22))
storage (dataobjno 28200);





 


Posted

in

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *