MEET DB2 - Migration Enablement Evaluation Tool for DB2
Table of Contents
About MEET DB2
MEET DB2 evaluates the degree to which DB2 will natively support the procedural logic and data definitions used in an Oracle or Sybase database.
Source procedural SQL and DDL from input files are processed by MEET DB2 to determine which statements and objects found are immediately transferable to DB2. All incompatibilities that are found are identified in a report that provides both summary information as well as detailed technical information about each incompatible feature.
MEET DB2 will also report the line number of every source code attribute it identifies that requires modification in order to execute normally with DB2.
Migrating a database from Oracle to DB2 is often the major technical effort for enabling a system to run on DB2, and therefore the MEET DB2 report can provide a robust assessment of the effort required to move to DB2. However, note that enabling to DB2 may not be the only technical challenge, and in some cases other barriers that MEET DB2 does not evaluate may dominate.
Installation and usage
Syntax of the input file
MEET DB2 expects valid syntax in the input source file. The input should be a text file containing procedures and/or data definitions that are actually executable either on a Sybase system, or in SQL*Plus on an Oracle system. If completely invalid syntax is encountered the MEET DB2 utility will report an unrecoverable parse error.
MEET User Authentication
-
On startup MEET DB2 will check for an intranet connection, and the user interface will not be displayed until the verification completes. If no connection is available, it may take up to 10-15 seconds until the interface is displayed.
-
IBMers - The first time that MEET is run it will request validation on the IBM intranet. Once MEET DB2 has verified your username and password you may use MEET DB2 for 14 days on the same computer without an intranet connection. If at any time you run meet while connected to the intranet meet will reset the day counter to 14, no further intranet verification is required. While authenticated you can evaluate files and generate reports. Note that you should be on the intranet the first time that you run MEET; if this was not the case, you must re-install MEET.
-
IBM Partners - The first time that MEET is run it will request your PartnerWorld ID. You will then be able to run MEET and evaluate files. In order to obtain a report, data about the PL/SQL and SQL features used in the file must be sent to the MEET server. MEET DB2 does NOT send any source code to the server. Only the line numbers and object names of the PL/SQL features that are detected are included in the report. You will be prompted to save the report data file using the 'Save Report' button, and e-mail it to the provided server e-mail address. You will then receive an answer from the MEET server a few minutes later.
-
Customers - MEET may be used by IBM customers solely to evaluate potential migration of their own applications. If you are a customer, you will need to provide your email address during the tool startup. In order to obtain a report, data about the PL/SQL and SQL features used in the file must be sent to the MEET server. MEET DB2 does NOT send any source code to the server. Only the line numbers and object names of the PL/SQL features that are detected are included in the report. You will be prompted to save the report data file using the 'Save Report' button, and e-mail it to the provided server e-mail address. You will then receive an answer from the MEET server a few minutes later. As an alternative, please contact your local IBM representative to run an analysis of your applications using MEET.
System Requirements
-
Java JRE 1.6 or higher installed.
-
NOTE: Some recent SUN JRE builds, for example version 1.6.0_19, cause the LDAP authentication to fail with the message "Unexpected LDAP error occurred."
If you experience this error, either install and use the IBM JRE,
or downgrade to an earlier SUN JRE version, such as 1.6.0_13.
-
NOTE: There is a performance problem with the SUN 1.6 JRE during the "Report: collecting context" phase of the reporting.
If you find this phase taking minutes on a large file you may want to use the IBM JRE.
-
Windows XP operating system
-
At least 1.5 GB of RAM installed
-
NOTE: If you do not have sufficient memory, it is possible to decrease the amount of memory that MEET uses, with the side effect of then not being able to process as large files. To do so, simply edit meet.bat and meetclp.bat and lower the figure of 1300 MB in "-Xmx1300m" to a smaller amount of memory that will work on your system.
-
A web browser with Javascript enabled
Installation
To install MEET DB2 simply copy the files from the MEET DB2 download archive.
Usage
-
GUI Interface - Navigate to the directory that the archive was extracted into, and execute
meet.bat
-
Command Line Interface - Navigate to the directory that the archive was extracted into, and execute
meetclp.bat
-
Usage: meetclp <filename>
-
If calling meetclp from a batch file, use "call meetclp <filename>"
-
Note: As in the GUI interface, the intranet authentication dialog box will be displayed the first time meetclp is executed, and then no further authentication will be required for 14 days.
-
The generated report can then be found in the directory that MEET was executed from. If the input filename was file.ext, the output filename will be file.ext_report.html
-
To run MEET on a group of files from the command line:
-
Windows command line: for %f in (*.sql) do meetclp.bat %f
-
Note: Replace *.sql as appropriate to your path and set of files. Also, if using this command in a batch file, use %%f instead of %f.
-
MEET DB2 can only accept a single file as input. To combine multiple files into a single source you can use either of the following commands:
-
Windows command line: for %f in (*.sql) do type "%f" >> MEET_TEST.txt
-
Windows command line: type *.sql >> MEET_TEST.txt
-
Note: When using the above two commands, the output file should have either a different extension or be written to a different directory than the input files, to prevent it from also being included and thus doubling the file.
Note: MEET DB2 does not require DB2, Oracle or Sybase to be installed.
All you need is the source for the objects which can be extracted with the IBM Data Movement Tool
or other utilities like TOAD for Oracle, or Sybase PowerDesigner or DB Artisian for Sybase.
For Oracle the source input should have all objects terminated with a forward slash "/".
For Sybase the source input should contain the keyword "go" separating SQL batches or statements.
License and Notices
License and notices are stored in and can be viewed in the "license" directory.
Feedback
Send any comments to: meetdb2@torolab.ibm.com
Oracle Mode
Syntax of the Input File
The source input should have all objects terminated with a forward slash "/".
General Info
The set of database characteristics that MEET DB2 examines includes:
-
Triggers
-
Anonymous blocks
-
Packages
-
Functions
-
Procedures
-
Create table
-
Create index
-
Create type
-
Create view
-
Create sequence
Other enablement evaluation considerations
MEET will not report syntax constructions that will be automatically corrected by the IBM DMT tool.
All Execute Immediate statements will be only partially evaluated and require review.
Special attention should be paid to the use of:
-
Oracle Forms
-
Pro*C
-
Heavy use of administrative APIs
File Splitting Utility
-
A perl script, splitfile.pl, has been included to split up files that are too large for MEET to process.
See splitfile.txt for further information.
Known Limitations
Supported but unrecognized
The following language constructs are supported by DB2 but currently being reported by MEET DB2 as unrecognized syntax:
-
For loops with parens at the beginning: for i in (x+1)..y
-
Cursors that have a select with a minus
Unrecognized and will not be supported by DB2 9.7
The following are features currently not reported on
- Some DBMS_ packages are not reported
- Pragma are not reported
- Some SQL statement syntax is not reported
- TIMESTAMP WITH TIME ZONE is not reported.
- Nested tables are not reported
- NLS functions with 3 parameters are not reported
- Substring with negative or 0 as first parameter is not reported.
The following are reported as unrecognized and need to be added to the unsupported report:
- Triggers using DDL/DB events
- Functions in packages that use Parallel_enable
- Subtype
DDL Limits
The following are not evaluated at this time:
-
Alter statements
-
Libraries
When manual evaluation is required
MEET will print informational messages for functionality that needs to be evaluated manually, such as:
- Execute Immediate statements
- Before triggers that update the database
- Oracle global dynamic performance views created to support RAC databases
- Numeric data types with a precision beyond 31 digits in DDL
- NOT NULL table columns that are unique in DDL
- Parallel and Outline clauses
- Original Tablespace specifications
- LOB syntax in DDL
- Table range and hash partitioning definitions
- ROLLBACK in DDL
Please, review the items listed in the informational section.
False Positives
In rare cases if keywords are used within PL/SQL code MEET may falsely report them as unsupported functionality. If this occurs these statements should be excluded from the final reporting numbers.
Unrecognized Grammars
At the bottom of the detailed technical report, there is a section for unrecognized grammars. These are constructs in the source file which MEET DB2 does not currently recognize.
Currently known unrecognized grammars:
-
Using the word "function" as a parameter or variable name. DB2 in compatibility
mode does not allow the word function to be used as a variable name or a parameter name.
-
ALTER JAVA SOURCE
-
ALTER TRIGGER
-
CREATE OR REPLACE NOFORCE
If you encounter any unrecognized grammars (whether from the list above or others) please provide feedback to the MEET DB2 development team via the feedback link below. If possible, please attach both the MEET DB2 report and the input source file as well.
Sybase Mode
Syntax of the Input File
Sybase T/SQL must contain the keyword "go" separating SQL batches or statements to be evaluated, in the
same fashion as a script that is fed to the isql command.
It may be necessary to add "set quoted_identifier on" to the input file, if that option was being utilized by the client but was not put into the input file.
Known Limitations
Unrecognized and will not be supported by DB2 9.7.2
The analysis process performed is a syntactical analysis and does not maintain nor can it access table
metadata during the analysis process, making certain types of checks unfeasible.
- GROUP BY's that do not contain all non-aggregate expressions
- Certain outer join operator (=* and *=) conditions.
- Outer tables with non-outer join conditions:
- select t1.a from t1, t2 where t1.a =* t2.c and t1.b = 3
- Use of an inner table in more than one outer join
- select t1.a from t1, t2, t3 where t1.a *= t2.c and t2.d =* t3.x
- More than two tables involved in a TSQL outer join
- select * from t1, t2, t3 where t1.a + t3.x *= t2.c
- Execution of a COMMIT or an implicitly committed statement in unchained mode prior to executing an
UPDATE WHERE CURRENT OF or DELETE WHERE CURRENT OF. This condition is identified generically as a
warning when these statements are encountered, but the analyzer cannot detect if the program flow is
capable of causing this condition.
- Certain unsupported implicit or explicit datatype conversions. Since no metadata is available
during analysis, the analyzer cannot detect when an unsupported implicit conversion may need to take
place. Currently most binary/varbinary implicit conversion are not supported (e.g. datatime to
varbinary).
- Situations in which a run-time behavioral difference may occur.
Unrecognized Grammars
The following are not evaluated at this time:
- ALTER DATABASE
- Statements involving partitioning syntax (ALTER TABLE PARTITION, CREATE TABLE .. PARTITION)
- CREATE TABLE and ALTER TABLE with materialized/non-materialized columns
- CREATE INDEX with function-based indexes
- CONNECT TO/DISCONNECT
- CREATE EXISTING TABLE
- CREATE FUNCTION (SQLJ)
- CREATE PROCEDURE ... EXTERNAL NAME
- CREATE PROXY TABLE
- DBCC
- DELETE STATISTICS
- DISK INIT/MIRROR/REFIT/REMIRROR/RESIZE/UNMIRROR
- DUMP DATABASE/TRANSACTION
- DUMP TRANSACTION
- LOAD TRANSACTION
- MOUNT
- ONLINE DATABASE
- QUIESCE DATABASE
- REMOVE JAVA
- REORG
- UNMOUNT
- UPDATE STATISTICS
- UPDATE TABLE STATISTICS
False positives/Manual intervention
These will be described in the report within any potentially questionable features that are found.
© Copyright IBM Corporation 2010
All Rights Reserved.