text:
DB2 Universal Database versus Oracle data movement
A comparative guide
Data movement between two databases is a common daily DBA task. Most mature databases provide a means to move data from one database to another, either within the same platform or machine, or to other platforms or machines.
If you've experienced with Oracle and are now are beginning to learn DB2, this article will ease your learning process. The intention is to put Oracle DBAs into the DB2 Universal Database (DB2 UDB) fast track while keeping the differences between the two in mind. We'll take a look at the tools and commands you need to perform data movement, and compare and contrast the two database systems. We will also be looking at some scenarios for data movement.
Note that this article does not cover replication mechanisms for data movement such as Oracle Advanced Replication and WebSphere Information Integrator Q-Replication. Nor will we consider connectivity or data movement by using custom coding through JDBC, PERL DBI, and ODBC, as these interfaces are not meant for movement of large quantities of data.
This article highlights the data movement utilities provided with both databases together with their features and functions. Also, we'll consider the pros and cons of each utility or method. We will be considering the following topics. As we consider these topics, we'll look at some scenarios in order to better understand the features and capabilities of each utility.
- Import
- Export
- Tool comparisons
- Quick benchmarking
- Other tools available
- Data movement scenarios
Data movement requirements
On a typical day, a DBA might be involved in administrative tasks such as moving data files to a bigger file system on the production machine, creating a subset of production data for testing purposes, or duplicating the entire database for development use. With a duplicate set of data on a development machine, developers can test and trash the data without worrying about the consequences. Whenever a new set of data is required, a simple restore will bring the data back to its original state for another cycle of testing.
In an environment where terabytes(TB) of data are involved, especially in a warehouse environment, duplicating an entire database for testing purposes is not viable. In this case, you might want a subset of data with referential integrity intact. Also, you might want to deploy proper multiple data sets in test machines for developers who are working on application modules. When testing is completed, there are times when data must be moved to production.
Another reason for data movement would be the requirement to migrate your database to a new platform for various reasons.
To summarize, here are the most common scenarios for data movement:
- Moving data files to another filesystem when the current one is full
- Moving entire database or database subsets for testing/development purposes
- Migrating databases from one platform to another.
The DBA generally chooses a method for data movement based on the size of database, the window of maintenance, and system resources, such as network/IO, CPU/memory, and so on. In the following sections we'll look at the various methods for data movement.
Import utilities
We will first examine the utilities provided by Oracle for data import. Oracle provides the following utilities to import data:
- Oracle - imp
- Oracle - SQL Loader
Oracle - imp
The Oracle import utility, imp, has been around for quite a while. The imp
utility is used to import small and medium size databases, for example between 100
MB to 10 GB. To hasten the import process, you can employ multiple imp jobs at one
time. In order to use imp, first you have to run either the
script or the
catexp.sql script residing in the /rdbms directory.
The privilege CREATE SESSION, which is included in the role CONNECT, is required in order to use import.
There are two import schema modes involved:
- Import into same user schema -
To import objects into the same user schema, both system and object privileges need to be granted to the user, especially the RESOURCE role.
- Import into other user schema -
Database objects can be exported by one user and imported by a different user. If importing into another schema, the IMP_FULL_DATABASE role must be enabled.
The syntax for import is shown in Listing 1. For a complete
explanation of all of the parameters, please refer to Oracle Utility Guide or simply
imp help=y from a command prompt.
Listing 1. Syntax for Oracle imp
imp keyword=value [,keyword=value,...] where keywords are USERID username/password BUFFER size of data buffer FILE input files (EXPDAT.DMP) SHOW list file contents (N) IGNORE ignore create errors (N) GRANTS import grants (Y) INDEXES import indexes (Y) ROWS import data rows (Y) LOG log file of screen output FULL import entire file (N) FROMUSER list of owner usernames TOUSER list of usernames TABLES list of table names RECORDLENGTH length of IO record INCTYPE incremental import type COMMIT commit array insert (N) PARFILE parameter filename CONSTRAINTS import constraints (Y)
Alternatively, you can obtain online help with the command,
imp help=y.
There are three ways to invoke the imp utility:
- Command line
For example:
imp system/password fromuser=scott touser=scott file=acct_pay.dmp
Figure 1. Invoking the Oracle import utility using the command line
- Command line with parfile option
For example:
imp system/manager parfile=Acct_Pay.txt
Figure 2. Invoking the Oracle import utility using the command line with parfile parameter
- Command line interactively
Figure 3. Invoking the Oracle import utility interactively
There are 4 different modes of import. Below you see some examples of the use of the import utility. As we begin to examine these examples, you will see a number of important considerations. For example, to minimize errors, it's best is to use CONSTRAINTS=N to disable referential integrity. At the end of import, constraints will be enabled. Also, triggers should be disabled as well. Normally the DBA executes a script to generate the triggers after import completes.
Only the export dump generated by the Oracle exp utility can be used. Higher versions of imp can read the export dump of the same or lower versions. However, errosr will occur when trying to import a dump file from a lower version of the export utility.
Here are examples of the 4 modes of import:
- Full import - FULL=Y.
With the parameter FULL=Y, all objects previously exported using FULL=Y will be imported. There are steps to be taken care of in order to make sure a full import can be carried successfully. Refer to the scenarios section for more details.
- User level import - FromUser and Touser
For example, to import all objects from user schema scott, issue the command:
imp system/password fromuser=scott Touser=allan file=Acct_Pay.dmp.
Figure 4. Importing using Fromuser and Touser parameters
- Table level import - Tables = (*)
- Importing using Table = (*). For example, to import all the tables in
schema Scott, issue the command:
imp system/password fromuser=scott touser=allan file=Acct_Pay.dmp tables=(*).
Figure 5. Importing All tables
- Importing using Tables = (A, B, C). For example,
imp system/password fromuser=scott touser=allan file=Acct_Pay.dmp tables=(BONUS,EMP) constraints=N.
Figure 6. Importing selected tables
- Importing partitioned tables, Tables = (T:p1, T:p2) - Eg. imp
scott/tiger file=Scottt.dmp tables=(empp:p1, empp:p2)
Figure 7. Importing partitioned tables
- Importing using Table = (*). For example, to import all the tables in schema Scott, issue the command:
- Tablespace level import - Transport_Tablepspace = Y and Tablespaces=(A,B,C) and Datafiles=xxx. Refer to the scenarios section for more details on tablespace level import for Oracle.
Oracle - SQL Loader
SQL Loader is a utility provided by Oracle to load external files into Oracle databases. SQL Loader is considered more powerful and flexible than imp. SQL Loader can filter data to be loaded and at the same time allows the Oracle SQL functions to massage the data to be loaded. Besides variable, fixed length and stream data, it can load object-oriented data, LOB data, and collections.
There are two modes of loading: conventional path and direct path. Starting with Oracle 9i, the fastest method is to use external tables (with parallelism and direct insert). With an external table, you can issue a SQL SELECT statement to load the contents of a file.
The syntax for Oracle SQL Loader is shown in Listing 2. Note
that you can obtain the complete syntax by issuing the
sqlldr command
at a command prompt.
Listing 2. Syntax for SQL Loader
SQLLDR keyword=value [,keyword=value,...] where keywords are userid -- ORACLE username/password control -- Control file name log -- Log file name bad -- Bad file name data -- Data file name discard -- Discard file name discardmax -- Number of discards to allow (Default all) skip -- Number of logical records to skip (Default 0) load -- Number of logical records to load (Default all) errors -- Number of errors to allow (Default 50)
There is only one way to invoke SQL Loader, and that is by using the command line. In order to use SQL Loader, you will need a control file. The control file is the "brain" of the SQL Loader, providing the locations of the files, formats, insert targets, and so on. A control file is a case insensitve, format free text file with particular paramters defined.
The listing below show some examples of the use of SQL Loader.
- Loading fixed length records
Issue the command,
sqlldr userid=scott/tiger log=course.log control=course.ctl.
Listing 3. Sample fixed length data, Course.dat
CS3121Theory of Computation I F Vari Hall***** CS3122Theory of Computation II W Norman Bethune CS4101Computer Robotics ****** W Stong College* CS4102Computer Graphics ****** W Earth Science* CS4120Advanced Relational **** F Winter College
Listing 4. Course.ctl
LOAD DATA INFILE 'course.dat' "fix 49" BADFILE 'course.bad' Insert INTO TABLE Course (courseid position (1:6) char, coursetitle position (7:30) char, term position (32:32) char, location position (34:47) char)
- Loading variable length records
Issue the command,
sqlldr scott/tiger control=emp.ctl, log=emp.log.
Listing 5. Sample variable length data, Emp.dat
1234, "Allan", "IT Specialist", 2345, "April-15-2002", 15000, 3000, 88 2345, Lily Ng, "HR", 7766, Jan-12-2000, 9000, 2000, 55 3456, "Odelia", "Fun", 8899, "June-11-2001", 8000,1000, 77 4567, "Titus", Fun, 6655,"Aug-03-2005", 5000,200, 76 5678, "Timothy", Sales, 7788, Aug-99-2005", 4000, 2000, 11
Listing 6. Emp.ctl
LOAD DATA INFILE 'emp.dat' -- emp.dat is the input file BADFILE 'emp.bad' -- bad file DISCARDFILE 'emp.dsc' -- discard file DISCARDMAX 2 -- Max discards allowed before load terminates APPEND INTO TABLE emp FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' -- terminated by comma. Allow double quote (empno, ename, job, mgr, hiredate date(30) "Month-DD-YYYY", sal, comm, deptno)
- Loading into multiple tables
Issue the command,
sqlldr scott/tiger control=mul.ctl, log=multables.log
Listing 7. Sample variable length data, EmpOrig.dat
Listing 8. Mul.ctl
LOAD DATA INFILE emporig.dat BADFILE multables.bad DISCARDFILE multables.dsc APPEND INTO TABLE emp1 when empno<>'7788' FIELDS TERMINATED BY X'2c' OPTIONALLY ENCLOSED BY '"' TRAILING NULLCOLS (empno POSITION(1:4) INTEGER EXTERNAL, ename POSITION(7:12) INTEGER EXTERNAL) INTO TABLE emp2 when job = 'CLERK' FIELDS TERMINATED BY X'2c' OPTIONALLY ENCLOSED BY '"' TRAILING NULLCOLS (empno POSITION(1:4) INTEGER EXTERNAL, job POSITION(14:22) INTEGER EXTERNAL)
- Loading into partitioned tables
Issue the command,
sqlldr scott/tiger control=partition.ctl log=partition.log.
Listing 9. Sample Emp_orig.dat
Listing 10. Partition.ctl
LOAD DATA INFILE 'emp_orig.dat' BADFILE 'emp_orig.bad' DISCARDFILE 'emp_orig.dsc' INSERT INTO TABLE empp PARTITION (sal_p2) -- salary with values less than 2000 FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY '"' (empno, ename, job, mgr, hiredate, sal)
- Loading LOB data
Issue the command,
sqlldr scott/tiger control=clob.ctl log=clob.log
Listing 11. Mybmp.lst
d:\mybmp\datamovement\impCmdline.png d:\mybmp\datamovement\imphelp.png d:\mybmp\datamovement\impIteractive.png d:\mybmp\datamovement\impParfile.png
Listing 12. Clob.ctl
LOAD DATA INFILE mybmp.lst INTO TABLE MYBMP (filename CHAR(200), bmp LOBFILE(filename) TERMINATED BY EOF)
- Loading via external table
Create first the load directory using create directory load_dir as 'd:/tmp' and then run the command
Sqlplus scott/tiger @external.sql.
Listing 13. Sample Emp_Orig.dat
Listing 14. External.sql
create table empp (EMPNO NUMBER(4), ENAME VARCHAR2(10), JOB VARCHAR2(9), MGR NUMBER(4), HIREDATE DATE, SAL NUMBER(7,2), COMM NUMBER(7,2), DEPTNO NUMBER(2)) organization external( type oracle_loader default directory load_dir access parameters ( records delimited by newline fields terminated by ',' missing field values are null (empno, ename, job, mgr, hiredate char date_format date mask "dd-mon-yyyy", sal, comm, deptno )) location ('emp_orig.dat')) reject limit 5;
DB2 - import
DB2 Universal Database provide a similar utility for importing data, the IMPORT utility. There are four file formats supported for import and export. The format chosen usually reflects the source it comes from or the target tools to be used. Usually the extension of files such as .ixf, .del or .asc reveal the content format. For example, employee.ixf will contain uneditable DB2 UDB interchange format. Import has the ability to traverse the hierachy of typed tables in ixf format.
The four supported file formats are:
- Delimited ASCII files - DEL
In this format, delimiters can be either character delimited, column delimited or row delimited. The default delimiter for character delimited format is double quote ("), and the default for column delimited is comma (,). Note that the default delimiters can be changed. For row delimited, the hex code for UNIX® is X'0A' and Windows® is X'0D0A'
- Non-delimited ASCII files - ASC
Non-delimited ASCII files are those with fixed length fields. It is a sequential rows of records delimited by rows. Usually, this format is used for data exchange with external applications that comes with aligned columns.
- Integrated Exchange Format files - IXF
This is the preferred method for data exchange between DB2 UDB databases. IXF files contain structured descriptions of the database tables and indexes. Note, this format normally is not editable using a text editor.
- Worksheet Format files - WSF
This format is used for data interchange between Lotus 1-2-3 and Symphony products.
In order to use DB2 import, you must have the proper authorizations and privileges. You will either need to have sysadm or dbadm authority level, or else have privileges such as CREATETAB, CONTROL, SELECT and INSERT for the participating objects, depending on the options chosen.
The syntax for DB2 UDB import is very straightforward. Refer to the syntax below. To
get the syntax online, enter
db2 ? import at a DB2 command line.
Listing 15. DB2 UDB import syntax
IMPORT FROM filename OF {IXF | ASC | DEL | WSF} [LOBS FROM lob-path [ {,lob-path} ... ] ] [MODIFIED BY filetype-mod ...] [METHOD {L ( col-start col-end [ {,col-start col-end} ... ] ) [NULL INDICATORS (col-position [ {,col-position} ... ] )] | N ( col-name [ {,col-name} ... ] ) | P ( col-position [ {,col-position} ... ] )}] [ALLOW {NO | WRITE} ACCESS] [COMMITCOUNT {n | AUTOMATIC}] [{RESTARTCOUNT | SKIPCOUNT} n] [ROWCOUNT n] [WARNINGCOUNT n] [NOTIMEOUT] [MESSAGES message-file] {{INSERT | INSERT_UPDATE | REPLACE | REPLACE_CREATE} INTO {table-name [( insert-column , ... )] | hierarchy-description} | CREATE INTO {table-name [( insert-column , ... )] | hierarchy-description {AS ROOT TABLE | UNDER sub-table-name} [IN tablespace-name [INDEX IN tablespace-name] [LONG IN tablespace-name]]} [datalink-specification] filetype-mod: COMPOUND=x, INDEXSCHEMA=schema, FORCEIN, INDEXIXF, IMPLIEDDECIMAL, NOCHECKLENGTHS, NOEOFCHAR, NULLINDCHAR, RECLEN=x, STRIPTBLANKS, STRIPTNULLS, NO_TYPE_ID, NODOUBLEDEL, LOBSINFILE, USEDEFAULTS, CHARDELx, COLDELx, DLDELx, DECPLUSBLANK, DECPTx, DATESISO, DELPRIORITYCHAR, IDENTITYMISSING, IDENTITYIGNORE, GENERATEDMISSING, GENERATEDIGNORE, DATEFORMAT=x, TIMEFORMAT=x, TIMESTAMPFORMAT=x, KEEPBLANKS, CODEPAGE=x, NOROWWARNINGS, NOCHARDEL, USEGRAPHICCODEPAGE hierarchy-description: {ALL TABLES | (sub-table-name [(insert-column, ...)], ...)} [IN] HIERARCHY {STARTING sub-table-name | (sub-table-name, ...)} datalink-specification: ([DL_LINKTYPE URL][{DL_URL_REPLACE_PREFIX prefix | DL_URL_DEFAULT_PREFIX prefix}] [DL_URL_SUFFIX suffix], ...)
There are three ways to invoke DB2 UDB import, as follows:
- Control Centre - GUI approach
The Control Centre is an interactive, easy-to-use approach, with wizards provided to guide you step by step. Here are some examples of using the Control Centre to perform imports, using the SAMPLE database. If don't already have the SAMPLE database created, go to a command line and enter
db2samplto create it.
Example 1 - Importing a comma delimited files, employee.del. into the existing employee table.
Listing 16 shows a few rows and from the employee.del file.
Listing 16. Sample content for employee.del
In this example, navigate using Control Centre. Go to Start -> Programs -> IBM DB2 -> General Administration Tools -> Control Centre. Select the Sample database, click on Tables, right click on the Employee table and select Import.
Figure 8. Invoking import of a table using Control Centre
Note that since this is delimited format (DEL), choosing this option will allow you to select more options for finer control over the import. We will not go into the nitty gritty of all these options. In this case, we specify the Employee.del file to be imported as well as the log file to write to. Note also, we choose the INSERT mode. You can have either INSERT, INSERT_UPDATE or REPLACE. For INSERT, import will just append to the existing table without disturbing the rest of the data. For INSERT_UPDATE, you must have at least a primary key. New records will be inserted and existing records will be updated. For REPLACE, the data in the table will be deleted first before insert takes place.
Figure 9. Import - the file tab
You will then receive a message stating successful import.
Example 2 - In this example, we are given a delimited file with the last two columns omitted. We will import some columns with INSERT-REPLACE option. The format of the file is asterisk, '*' delimited.
Listing 17 shows sample content from Employee.del.
Listing 17. Sample Employee Data
From the Control Centre, repeat the same steps you followed in Example 1. However, you need to perform some extra steps. Choose the DEL option button.
Choose Column Delimiter (COLDEL) and choose asterisk. '*'. Note other values listed in the dropdown list. These are the allowed column delimiters. Take the defaults for the rest. Click OK.
Figure 10. Choosing the delimiter
Now, go to the column tab and click on column button. This step is to select which column to import into and which to omit.
Figure 11. Choosing the columns to be included - part 1
Choose all the columns except two. Note that in this case, the last two columns, BONUS and SALARY, will be omitted. Click OK.
Figure 12. Choosing the columns to be included - part 2
Make sure you choose INSERT_REPLACE as import mode from File tab. The prerequisite for using the INSERT_REPLACE option is that the primary key must exist. If the primary key does not exist yet, you must first issue the SQL command to create the primary key, for example:
alter table employee add constraint empno primary key (pk_empno). Click OK. You will be see that the import is successful.
- Command Line Processor (CLP) - command prompt
Example 1 - As in the GUI approach example 1 above, we are importing a comma delimited files, employee.del. into the existing employee table.
From the DB2 CLP, issue the following commands:
Listing 18. Importing using command CLP - Example 1
CONNECT TO SAMPLE; IMPORT FROM "E:\tmp1\employee.del" OF DEL METHOD P (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14) MESSAGES "E:\tmp1\employee.log" INSERT INTO ADMINISTRATOR.EMPLOYEE (EMPNO, FIRSTNME, MIDINIT, LASTNAME, WORKDEPT, PHONENO, HIREDATE, JOB, EDLEVEL, SEX, BIRTHDATE, SALARY, BONUS, COMM); CONNECT RESET;
Example 2 - As in the GUI approach sample 2, we are given a delimited file with the last two columns omitted. We will import some columns with INSERT-REPLACE option. The format of the file is asterisk, '*' delimited.
Using the DB2 CLP, issue the following commands:
Listing 19. Importing using command CLP - Example 2
CONNECT TO SAMPLE; IMPORT FROM "E:\tmp1\employee.del" OF DEL MODIFIED BY COLDEL* METHOD P (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12) MESSAGES "E:\tmp1\employee.log" INSERT_UPDATE INTO ADMINISTRATOR.EMPLOYEE (EMPNO, FIRSTNME, MIDINIT, LASTNAME, WORKDEPT, PHONENO, HIREDATE, JOB, EDLEVEL, SEX, BIRTHDATE, SALARY); CONNECT RESET;
API - code approach
Refer to the DB2 Information Center for API instructions and samples. DB2 ships with sample code for C, C++ and COBOL.
Besides DB2 IMPORT, DB2 also provides a much faster loading tool, DB2 LOAD, to move massive amounts of data into a DB2 UDB database. Unlike DB2 IMPORT, which writes to the database via SQL INSERT, DB2 LOAD writes directly to the database files. Both DB2 IMPORT and LOAD support user-defined types (UDTs) and LOBs; however, DB2 LOAD can load data into a partitioned table. The primary difference and choice of usage between these tools is performance. DB2 LOAD is much faster than IMPORT.
DB2 LOAD does not provide logging for individual records. However, reloading data is supported. During the load process, the DB2 command LIST UTILITIES can be used to monitor the progress of the load. Also, DB2 LOAD employs table level locking where users will not be able to access the data during this load period.
To use DB2 LOAD, you will need authority level of SYSADM, DBADM, or SYSMAINT, or else have load authority on the database and privileges for INSERT and DELETE, depending on the operations chosen.
The DB2 LOAD syntax is shown in Listing 20. Alternatively,
db2 ? import at a DB2 command prompt to view the syntax.
Listing 20. DB2 Load Syntax
LOAD QUERY TABLE table-name [TO local-message-file] [NOSUMMARY | SUMMARYONLY] [SHOWDELTA] LOAD [CLIENT] FROM file/pipe/dev/cursor_name [ {,file/pipe/dev} ... ] OF {ASC | DEL | IXF | CURSOR} [LOBS FROM lob-path [ {,lob-path} ... ] ] [MODIFIED BY filetype-mod [ {filetype-mod} ... ] ]] [METHOD {L ( col-start col-end [ {,col-start col-end} ... ] ) [NULL INDICATORS (col-position [ {,col-position} ... ] )] | N ( col-name [ {,col-name} ... ] ) | P ( col-position [ {,col-position} ... ] )}] [SAVECOUNT n] [ROWCOUNT n] [WARNINGCOUNT n] [MESSAGES msg-file] [TEMPFILES PATH pathname] {INSERT | REPLACE | RESTART | TERMINATE} INTO table-name [( insert-column [ {,insert-column} ... ] )] [datalink-specification] [FOR EXCEPTION table-name] [STATISTICS {NO | USE PROFILE}] [{COPY {NO | YES { USE TSM [OPEN num-sess SESSIONS] | TO dir/dev [ {,dir/dev} ... ] | LOAD lib-name [OPEN num-sess SESSIONS]}} | NONRECOVERABLE} ] [HOLD QUIESCE] [WITHOUT PROMPTING] [DATA BUFFER buffer-size] [SORT BUFFER buffer-size] [CPU_PARALLELISM n] [DISK_PARALLELISM n] [INDEXING MODE {AUTOSELECT | REBUILD | INCREMENTAL | DEFERRED}] [CHECK PENDING CASCADE {DEFERRED | IMMEDIATE}] [ALLOW NO ACCESS | ALLOW READ ACCESS [USE tblspace-name]] [LOCK WITH FORCE] [[PARTITIONED DB CONFIG] partitioned-db-option [{partitioned-db-option}...]] filetype-mod: NOROWWARNINGS, ANYORDER, BINARYNUMERICS, CODEPAGE=x, DUMPFILE=x, FASTPARSE, NOHEADER, TOTALFREESPACE=x, INDEXFREESPACE=x, PAGEFREESPACE=x, FORCEIN, IMPLIEDDECIMAL, PACKEDDECIMAL, NOCHECKLENGTHS, NOEOFCHAR, NULLINDCHAR=x, RECLEN=x, STRIPTBLANKS, STRIPTNULLS, NODOUBLEDEL, LOBSINFILE, CHARDELx, COLDELx, DLDELx, DECPLUSBLANK, DECPTx, DATESISO, DELPRIORITYCHAR, USEDEFAULTS, DATEFORMAT=x, TIMEFORMAT=x, TIMESTAMPFORMAT=x, ZONEDDECIMAL, KEEPBLANKS, IDENTITYMISSING, IDENTITYIGNORE, IDENTITYOVERRIDE, GENERATEDMISSING, GENERATEDIGNORE, GENERATEDOVERRIDE, USEGRAPHICCODEPAGE partitioned-db-option: HOSTNAME x, FILE_TRANSFER_CMD x, PART_FILE_LOCATION x, OUTPUT_DBPARTNUMS x, PARTITIONING_DBPARTNUMS x, MODE x, MAX_NUM_PART_AGENTS x, OMIT_HEADER, ISOLATE_PART_ERRS x, STATUS_INTERVAL x, PORT_RANGE x, CHECK_TRUNCATION, MAP_FILE_INPUT x, MAP_FILE_OUTPUT x, TRACE x, NEWLINE, DISTFILE x datalink-specification: ([DL_LINKTYPE URL][{DL_URL_REPLACE_PREFIX prefix | DL_URL_DEFAULT_PREFIX prefix}] [DL_URL_SUFFIX suffix], ...)
The DB2 LOAD operation can be broken down into four phases. These four phases happen in a sequential manner:
- Load phase - In this phase, data from external files are loaded into tables. Indexes will be collected and sorted. An important event during this phase is the savepoint check for the load operation. This savepoint is needed in the event the load fails, and reload needs to be performed. Savepoint allows this reloadable feature to be carried out. In this phase, invalid records will be written to a message file.
- Build phase - In this phase, indexes will be built. In the event of failure during this phase, a restart of the load operation will cause the build phase to start from the very beginning. During this phase, messages will be generated.
- Delete phase - In this phase, the constraint violation of unique and primary keys will be taken care of. Violating rows will be written into an exception table. In the event of failure during this phase, a restart of the load operation will cause the delete phase to start from the very beginning. During this phase, messages will be generated.
- Index copy phase - In this phase, indexes are moved from system temporary table spaces to target tablespaces. This will only happen if system temporary table spaces are specified for index creation during load. In this phase, messages will be generated.
DB2 LOAD allows data to be appended or replaced. During the load operation, an intermediate table will be created to facilitate the loading. CURSOR file type can be used instead. Also, there are many options that can be selected such as
- WARNINGCOUNT - specifies when to stop the load. When n warnings are hit, the load operation will cease
- CPU_PARALLELISM - specifies the degree of parallelism for CPU. The default is an intelligent value that DB2 determines
- DISK_PARALLELISM - specifies the degree of parallelism for disks. This value determines the number of threads to spawn. The default is an intelligent value that DB2 determines
- DATA BUFFER - specifies the number of 4K pages to use
- TEMPFILES PATH - specifies the path to use when creating intermediate tables during load
- FOR EXCETION - specifies the table to write to for all problematic rows
- DUMPFILE - specifies the file name to dump the rejected rows errors to
- NOROWWARNING - specifies no warning will be written for rejected rows
DB2 LOAD provides for some performance tuning capabilites in that total space can be specified for pages created during load operation.
- PAGEFREESPACE - Percentage of each data page left free. Normally, leave it default for DB2 to decide.
- INDEXFREESPACE - Percentage of each index page left free. Normally, leave it default for DB2 to decide.
- TOTALFREESPACE - Percentage of the table size appended as free space
For all other options, refer to the DB2 UDB Data Movement Utilities Guide and Reference.
We will be looking at some examples of how DB2 LOAD can be used for day-to-day operations. Like IMPORT, there are three modes of calling DB2 LOAD, by using the interactive GUI, the command interface, and through APIs.
- Interactive GUI -
Example 1 - Loading a delimited file into a table.
Note, we will be using the same employee.del that we used in the IMPORT examples as the input file, with comma delimited. Start up the Control Centre. Go to Start -> Programs-> IBM DB2 -> General Administration Tools -> Control Centre. Click on Database, and open up the Sample database. Go to Tables, right click on Employee table. Select Load.
Figure 13. Invoking Load table using Control Centre
Note that you can either append or replace the data. You can also opt for read access during table load when you choose to append.
Figure 14. Choose Append or Replace
Enter the values for input file name and message file. Note that the DEL option is left alone since the default delimiter used is the comma, the same as our input file. In the event that another delimiter is used, click on the DEL button and choose from the COLDEL drop down list the desired delimiter. Note also that your database can be either local or remote.
Figure 15. Specifying paths and file names
In this case, we load every column except BONUS and COMM. Note you can specify the column behaviour as well.
Figure 16. Selecting columns to be included
Note the options you can have during LOAD to impact performance. We will take the defaults.
Figure 17. Performance and Statistics
On this page, you have three options namely, crash recovery, forward, or no recovery at all during the load period. We will take the defaults.
Figure 18. Fail and Recovery selection
Take the defaults for the following screen. These are the advanced settings that you can use. For example, you can specify parallelism of CPU, dump file to write to, and so on.
Figure 19. Choosing Advanced options
Take the default for the following screen and click Finish.
Figure 20. Scheduling or Running immediately
You will now see the successful load message.
Figure 21. Load success screen
Have a look into Employee.msg. You will see total rows read, skipped, loaded, rejected, deleted and committed.
- Command CLP
Using the same example as we examined for the interactive GUI approach, the command to be issued is as listed below.
Listing 21. DB2 Load using CLP command
CONNECT TO SAMPLE; LOAD FROM "E:\tmp1\employee.del" OF DEL METHOD P (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12) MESSAGES "E:\tmp1\employee.msg" INSERT INTO ADMINISTRATOR.EMPLOYEE (EMPNO, FIRSTNME, MIDINIT, LASTNAME, WORKDEPT, PHONENO, HIREDATE, JOB, EDLEVEL, SEX, BIRTHDATE, SALARY) COPY NO INDEXING MODE AUTOSELECT; CONNECT RESET;
- API - code approach
Refer to the DB2 UDB Information Center for API instructions and sample code. DB2 ships with code samples for C, C++, and COBOL
Tool comparisons
The following table compares the differences between the four utilities: Oracle imp, Oracle SQL Loader, DB2 UDB IMPORT and DB2 UDB LOAD.
Table 1. Import Utility Comparisons
|Oracle Import
|Oracle SQL Loader
|DB2 Import
|DB2 Load
|Invoke via command prompt
|Invoke via command prompt
|Invoke via command prompt & APIs
|Invoke via command prompt & APIs
|Only can read the dump file generated by Oracle Exp utility (See Exp/Imp compatible matrix, metalink note 132904.1)
|Reads from external files
|Reads from external files of either DEL, ASC, IXF or WSF formats
|Reads from external files of either DEL, ASC, IXF or WSF formats
|Meant for small databases - however, with proper conditions met, transportable tablespaces can be used for large environment
|Can handle larger data volume
|Meant for small databases
|Meant for large databases
|Can be used to generate DDL scripts with INDEXFILE parameter
|Will not generate DDL scripts
|Will not generate DDL scripts. DDL is contained in uneditable IXF format.
|Will not generate DDL scripts
|Not very fast in performance (doesn't allow direct=Y)
|Faster in performance
|Not very fast in performance. Using SQL INSERT
|Very fast in performance. Write directly into database.
|Less options for inclusion or exclusion of objects to be imported
|Slightly more flexible in terms of objects to be imported
|Quite flexible in terms of options and objects imported
|Very flexible
|Non restartable
|Restartable - bad records can be reloaded
|Tables must pre-exist
|Tables must pre-exist
|Tables must pre-exist
|Tables must pre-exist
|Import tables from the export dump files. No importing into multiple tables capability
|Loads into multiple tables concurrently
|Multiple table import from multiple sources using one pass is not supported
|Multiple table import from multiple sources using one pass is not supported
|Index creation can be suppressed
|Index creation cannot be suppressed
|No index re-generation. Existing indexes stay intact
|No index re-generation. Existing indexes stay intact
|Starting Oracle 8, the parameter, QUERY can be used to specify rows/columns to be imported
|Columns and Rows selection is possible using WHEN. However, not all operators are supported using WHEN.
|Where clause to filter rows and columns is a standard feature.
|Where clause to filter rows and columns is a standard feature.
|COMMIT=Y commits after each record imported. No way to specify commit after importing 100 rows for example.
|Use the option ROWS=n. For example ROWS=100 commits after 100 SQL Load
|Use the option COMMITCOUNT=5000 to commit after importing 5000 rows
|Use SAVECOUNT option
|Tables inserted will not be locked - Users can access while import takes place.
|Tables inserted will not be locked - Users can access while import takes place.
|Two modes are supported - offline mode 4 (ALLOW NO ACCESS) and online mode (ALLOW WRITE ACCESS)
|Table level lock. Users have full read and write access to all the tables in the table space, except for the table being loaded. For the table being loaded, the existing data in the table will be available for read access if the load is appending data to the table.
|Mainly use for backward compatibility
|Will be around for a while, no plan to remove it
|Will be around for a while, no plan to remove it
|Will be around for a while, no plan to remove it
|Gotcha's here and there, for example FULL=Y requires precaution steps, transportable tablespaces, and so on
|Numerous restrictions on direct path & parallel direct path load
|Restriction is that it cannot import into structure typed column (Refer to DB2 Data Movement Util for a list of restrictions.)
|Restriction is on the hierarchy table structure support .
|No native API provided
|No native API provided
|A rich API set is provided
|A rich API set is provided
Quick benchmarking
The following benchmark provides a quick view of how each tool provides performance in loading various amount of records into database. The code to generate the input files is listed below.
Listing 22. Sample Perl script to generate imp/load files
#!/usr/bin/perl -w my ($sec,$min,$hour,$mday,$mon,$year) = localtime time; $year+=100; # it starts counting at 1900 for ($i=1; $i<100000; $i++) { $datestr = sprintf "%4d%02d%02d", $year, $mon, $mday; print <<ENDLINE; "$i","This is benchmarking test for DB2...", $datestr, "Oracle and DB2 data ...", "Allan W. Tham", "Asean techline..." ENDLINE }
Refer to the Table 2 to see results of performance testing for DB2 UDB IMPORT and LOAD. Note that IMPORT is significantly slower. This exercise was carried out using an IBM pSeries P615 2-WAY 1.65GHz, 4GB RAM.
Table 2. Quick benchmark comparisons
|Total rows
|Import time (secs)
|Load time (secs)
Figure 22. Quick benchmark for DB2 Import and Load
Data movement - Export utilities
- Oracle - exp
- Oracle - good old SQL Plus
Oracle - exp
The Oracle exp utility is the counterpart of the Oracle imp utility. They co-exist even with version differences; for example, export of Oracle 8i can be imported into 9i. As mentioned earlier, export writes database objects in a specific sequence into a proprietory format that only imp utility can read. The exp utility is used to export small and medium size database. The exp comes with the parameter DIRECT=Y which bypasses the evaluation buffer ensure a much faster export processs. There are numerous advantages in using Oracle exp utility such as the ones listed below
- Logical backup - exp utility can be used to supplement the backup and recovery stragegy. For example, a good export ensure a recovery of a particular table dropped accidentally
- Reorg - An export will eliminate the fragmentation in the database
- Corruption check - An export will require a full table scan. Any physical or logical corruption will be detected. Physical corruption refers to the used blocks that may corrupt the data whereas logical corruption involves the data dictionary
The Oracle exp utility is exactly the opposite of imp utility. Whilst imp is like
inhaling, export is considered to be the exhaling or spitting part. The ways to
invoke the exp utility is the same as for invoking imp. The syntax for export are
very similar. The key differences are the presence of parameters such as COMPRESS
and DIRECT, and the absence of TOUSER and FROMUSER. To list the complete list, issue
the command
exp help=y. See the syntax below:
Listing 23. Syntax for Oracle exp
exp keyword=value [,keyword=value,...] where keywords are USERID username/password BUFFER size of data buffer FILE input files (EXPDAT.DMP) COMPRESS import into one extent (Y) IGNORE ignore create errors (N) GRANTS import grants (Y) INDEXES import indexes (Y) DIRECT direct path (N) ROWS import data rows (Y) CONSISTENT cross-table consistency(N) LOG log file of screen output FULL import entire file (N) OWNER list of owner usernames TABLES list of table names INCTYPE incremental import type RECORDLENGTH length of IO record RECORD track incr. export (Y) TRIGGERS export triggers (Y) STATISTICS analyze objects (ESTIMATE) PARFILE parameter filename CONSTRAINTS import constraints (Y)
Let's examine the four modes of export supported by this utility:
- Full Export - FULL=Y. With the parameter FULL=Y, all objects will be exported.
Issue the command,
exp system/password full=y file=scott.dmp log=scott.log direct=y.
- Particular Owner - OWNER=XYZ. With this parameter, you can export objects
pertaining to a specific user. For example, the command
exp system/password owner=scott file=scott.dmpwill export all objects belong to Scott.
- Table level export - TABLES = (*). With this parameter, specify tables owned by
a user schema can be exported. For example the command,
exp scott/tiger file=scott.dmp tables=(emp, dept)
- Tablespace level export - Transport_Tablepspace = Y and Tablespaces=(A,B,C). Refer to the scenario 3 in the scenarios section.
Oracle - SQLPLUS
SQL Plus is one of the quick ways to extract data from single or multiple tables. To use SQL Plus to extract data follow the steps below.
- SQLplus username/password@dblink
- Set the formatting parameters
- Spool <output_filename>
- Run the SQL statement to extract data
- Spool off
- Voila, you have your data!
The DB2 UDB EXPORT utility exports data into three different formats: DEL, WSF, and IXF. There is nothing fancy about DB2 UDB export. The examples below show how to use DB2 UDB EXPORT.
- Interactive GUI approach
Start up the Control Centre and right click on the desired table to choose the Export option.
Figure 23. Invoking export from DB2 UDB Control Center
Choose the output format, either DEL, WSF or IXF. Enter the export file name and message file name as well. Note, there is an SQL assist in the event you want to export a subset of the columns or rows for a particular table. If you know the table columns already, you can simply enter in the text box without using the SQL Assist. There are other tabs as well such as Columns and Schedule.
Figure 24. Choosing export format and output file names
If in previous step, you chose DEL, you will not be able to add in column tab. For WSF and IXF formats, you are able to add columns. These columns specify the names to be used for the output file. In our example, we leave it at the default. You can also specify where LOB data is to be found or file names to find LOB data.
Figure 25. Specifying columns for output files.
The last tab is the schedule tab. We choose run immediate. You can always schedule the task to run later.
Figure 26. Schedule task
You will see a successful message.
- Command CLP approach
Listing 24. Sample DB2 export using command CLP
CONNECT TO SAMPLE; EXPORT TO "E:\tmp1\employee_1.ixf" OF DEL MESSAGES "E:\tmp1\employee_1.msg" SELECT EMPLOYEE.EMPNO, EMPLOYEE.FIRSTNME, EMPLOYEE.LASTNAME, EMPLOYEE.WORKDEPT, EMPLOYEE.PHONENO FROM ADMINISTRATOR.EMPLOYEE AS EMPLOYEE; CONNECT RESET;
Other tools
Oracle - Data Pump (impdp/expdp)
Starting with Oracle 10g, Oracle provides a new high speed data and metadata pumping utility called Data Pump. Data Pump will maximize the throughput by achieving parallel streams during data pumping. What is new to Data Pump (impdp and expdp) is the ability to call it via custom code. The package that makes Data Pump available is DBMS_DATAPUMP. The key advtantage of Data Pump as compared to its predecessors is the speed of loading and unloading. Other then the speed (20-30 times faster than imp), the other benefit is the finer control over objects import and export. For example, Data Pump can exclude some data objects using the EXCLUDE keyword, or include using INCLUDE keyword. You can also specify whether data or metadata should be exported/imported using CONTENT keyword. The usual, APPEND, SKIP, TRUNCATE and REPLACE apply to the tables imported. Last but not least is the detailed monitoring during the load such as percentage done, work in progress and history. For a complete reference, refer to the Oracle 10g Utility Guide.
IBM DB2 High Performance Unload for Multiplatform
IBM DB2 High Performance Unload for Multiplatform is a high speed unload tool for UNIX, Windows and Linux®. This tool can be used in place of export when the data volume is huge. This tool unloads DB2 tables from either a table space or a backup copy.
IBM DB2 Test Database Generator
IBM DB2 Test Database Generator is a tool to generate test database from the database in the main production. A subset of the database can be created from the existing database or a new test database can be generated from scratch. This tool maintains the referential integrity of the database.
IBM Migration ToolKit (MTK)
MTK version 1.3 is designed to migrate data, the query and procedure language from the several source database management systems including Oracle 8i and partial support for Oracle 9i, to the following target systems:
- IBM DB2 UDB Universal Database for Workstation platforms, Version 8.1 or later
- IBM DB2 UDB Universal Database for i5/OS, Version 5.2 or later
- IBM DB2 UDB Universal Database for z/OS, Version 8
MTK can be useful to migrate from an Oracle repository to a DB2 repository since its features include:
- The migration source can be a database data source or a DDL script.
- It converts Transact-SQL or PL/SQL object definitions (including stored procedures, user-defined functions, triggers, packages, tables, views, indexes and sequences).
- It has a full-featured GUI interface (Toolkit) to further refine the migration and tailor options for complex databases conversions.
- It converts Transact-SQL or PL/SQL scripts to DB2 scripts.
- It generates and runs scripts to unload data from source and upload data to DB2.
The developerWorks DB2 library contains many references to material related to migration to DB2 topics, specifically a tutorial and technical articlse about MTK:
- Automate the Switch to DB2 Using the IBM DB2 Migration Toolkit
- Move data using the IBM DB2 Migration Toolkit
MTK runs on AIX®, Linux, Sun Solaris, and Windows. The only language available is English. MTK is available for a complementary download from IBM DB2 Migration Toolkit site
This section looks at some scenarios showing how things are accomplished in both the Oracle and DB2 UDB world. Note, presented solutions are not meant to be exhaustive.
- Scenario 1 - Data files movement
In Oracle, to relocate the datafiles in a tablespace (without shutting down the database) requires the following steps:
- Alter tablespace USERS read only - Make the tablespace read only.
- Copy the datafiles to new locations using OS level copy.
- Alter tablespace USERS offline - Once copying is done, take the tablespace, USERS offline.
- Alter database rename '/oldpath/old_datafile1.dbf' to '/newpath/new_datafile1.dbf' - Rename the datafiles one by one using the full old and new paths.
- Alter tablespace USERS online - Bring the tablespce online again.
- Alter tablespace USERS read write - Bring the tablespace out of read only mode.
In DB2 UDB, simply issue the command db2relocatedb with the right parameters. For example
db2relocatedb -f configFilenamewhere configFilename is as you see in Listing 25:
Listing 25. Sample config file for db2relocatedb
DB_NAME=oldName,newName DB_PATH=oldPath,newPath INSTANCE=oldInst,newInst NODENUM=nodeNumber LOG_DIR=oldDirPath,newDirPath CONT_PATH=oldContPath1,newContPath1 CONT_PATH=oldContPath2,newContPath2
Note that, unlike Oracle, DB2 allows the renaming of database name, path, instance name, and log directory all in one command as long as it is specified in the config filen.
- Scenario 2 - Migrating database from the same OS and DB
In Oracle, if for some reason you need to move a database from the same database version within the same operating system (for example moving Oracle 9i (release 2) in Windows 2000 to another machine with the same Oracle version in Windows 2000 as well), there is actually a quick way without using the Oracle imp/exp. In this event, you use the create controlfile option. Let's assume the old database name is 'AWT' and the new one is 'AWT1'. Note these steps are similar to the case where control file is totally missing.
- Alter database backup control file to trace - back up the control file to.
- Shutdown immediate - shut down the database clean on the source machine.
- Copy the dump files, init.ora, and redo to the target machine.
- Edit the trace file so that it reads 'Create controlfile reuse set database "AWT1" resetlogs' in the first line. Edit also any structural changes for your datafiles and log files in your new environment. Save the file to createControlFile.sql for example.
- Edit the init.ora file to reflect the new environment as well. That will include SID, including paths that were changed.
- Start up mount and run createControlFile.sql in new machine
- Alter database open resetlogs -- you have no choice but to reset log.
- You may want to rename the global name as well.
DB2 UDB is a whole lot simpler in this case. DB2 UDB provides the BACKUP and RESTORE commands. The BACKUP command backs up the database to a directory specified by the user. This backup can be copied using OS level copy. The restore will restore by overwriting the same database in the new environment or restoring to a new database name specified on the fly. Assume that 'SAMPLE' is the database in the old environment and 'SAMPLE1' is the target database in new environment. You can do the following from the command CLP. Note the following backup is an offline backup method.
- Back up using the command
db2 backup database sample to E:\SampleBKUP.
- Copy using the OS, copying the entire folder, SampleBKUP, to the new environment
- Restore using the command
db2 restore database sample from E:\YYY\SampleBKUP(restore into existing database) OR
db2 restore database sample from E:\YYY\SampleBKUP into SAMPLE1(restore into a new database).
- Scenario 3 - Migrating a database from lower to higher version
within the same OS (Oracle 8.1.7 to 9iR2 in different machines)
The best way is to use the supported migration path by using the import and export utility. Note that the lower version to higher version migration is a supported one before attempting it. Refer to Oracle Metalink Note Id 132904.1 for compatibility. In this case, you actually have a few choices:
- Full database export
- Tablespace level export
- Schema level export
- Table level export
We will consider using tablespace level transportable export/import. Assuming we have a tablespace USERS with schema LILY to be transported.
Do the following on the Oracle 8.1.7 (Source)
- Alter tablespace USERS read only
- exp \"sys/password as sysdba\" file=trans817.dmp tablespaces=users transport_tablespace=y
- Copy the data files belong to USERS tablespace and trans817.dmp to tape over to the new machine where Oracle 9iR2 is
- Drop tablespace users including contents (if USERS tablespace already exists)
- imp \"sys/password as sysdba\" file=trans817.dmp transport_tablespace=y datafiles=users01.dbf
Note that to use transportable tablespaces, the Oracle versions have to be 8i or 9i. You can transport to higher but not lower. Refer to Metalink note 77523.1 and 291024.1 Also, you have to adhere to the following restrictions before using transportable tablespace export/import.
- Operating need to be the same for Oracle 8i and 9i. For Oracle 10g, transportable tablespace can be used across different platforms. Also, transportable tablespace is not supported in Oracle 7
- Same data block size and charset for source and target databases
- Target should not have preexist tablespace name
- Snapshot/replication, function-based indexes,Scoped REFs, domain indexes etc are not supported
- The tablespace must be self contained
For DB2 UDB, since the operating system is the same for source and target databases, this scenario is the same as the first scenario 2 above. Simply copy the backup folder to the new machine and restore it.
- Scenario 4 - Migrating a database from within same DB versions
to different OS (for example from Windows 2000 SP4 to AIX 5.2 ML4)
In this scenario, you have no other choice in Oracle other than export and import. You can either do full database export, schema level or table level. Note, for transportable tablespaces across different platforms to work, you need to have at least Oracle 10g. Follow the steps below to do full export and import. Make sure the role IMP_FULL_DATABASE is enabled. To do a full database export and import, follow the steps below.
- imp system/manager full=y constraints=n indexes=n file=full817.dmp log=full817_1.dmp
- imp system/manager full=y constraints=y indexes=y rows=n ignore=y file=full817.dmp log=full817_2.log
Note that you will see a whole bunch of "objects already exist" errors, since the system and sys objects already existed.
In DB2 UDB, there are two ways to accomplish this.
- Using Backup and Restore - backup/restore works between AIX and Solaris and HPUX
- Using db2move utility - Moving databases in/out different platforms including Linux, Unix, Windows (LUW) and databases residing in host systems
To use Backup & Restore option, follow the steps below
- Issue the backup command from the source machine (for example AIX),
db2 'backup database sample to "/home/db2inst1/sample"'.
- FTP the file with long name over to the target (for example Solaris).
- Issue the restore command,
db2 'restore database sample from "/home/db2inst1"'
To use DB2move, Db2move will first export data into ixf format. Follow the steps below:
- Export data in DB2 UDB 8.2 in Windows by issuing the command,
db2move sample export -tc administrator
- FTP over to AIX machine.
- Precreate tables to reside in desired table space. Note, although
db2move creates the tables for you, it may not be on the desirable table
space. Use the command
db2look -d sample -u administrator -e -m -o sample.sqlto find out the table space for the tables.
- Issue the command in AIX,
db2move sample load -lo replace. If your table is not pre-created, you will get SQL3304N The table does not exist message. (Please refer to DB2 UDB Information Centre as db2move ofters many more options than are presented here).
- Scenario 5 Migrating a database from a lower to a higher
version between different operating systems
In Oracle, if your database is 8i or 9i, transportable tablespace cannot be used to go across platforms. In the event of 8i or 9i, the only option you have is imp/exp. However, if you are using 10g, the best way to go about this is to use transportable tablespaces.
In DB2 UDB, this is the same as Scenario 4. You have the options of using DB2 Backup and Restore or db2move.
Though there are many ways to accomplish data movement within Oracle and DB2 UDB, often the factor that decides one method over the other is an economical one. The DBA's tasks will often have to conform with the constraints of the current environment. In this article we've looked at some ways data movement can be accomplised in both the Oracle and DB2 worlds. In addition, we introduced some tools for managing DB2 databases such as the IBM DB2 Test Database Generator and the high speed unload tool, IBM DB2 High Performance Unload for Multiplatform. For users who want to migrate from Oracle to DB2 UDB, IBM MTK is a complementary tool to speed up the migration.
Special thanks to Amyris Rada, the team leader for the i2 Partner Integration Center, IBM Toronto, Canada. Amryis contributed to the IBM Migration Toolkit (MTK) portion of this article.
Downloadable resources
Related topics
- Oracle documentation can be found at http://tahiti.oracle.com.
- A good source of information is available in Oracle Metalink, Oracle Metalink
- A good source of information about all aspects of DB2 us the DB2 Information Center


text:
GENERAL ELECTRIC| Zoro #: G1758522| Mfr #: THHQB32020
Zoro #: G1758522Mfr. Part #: THHQB32020
$261.75 /ea
This item ships free. DetailsStandard ground shipping
Technical Specifications
|Zoro #: G1758522 Mfr #: THHQB32020
|DC Voltage Rating: Not Rated
|Depth: 2.38"
|Standards: UL Listed, CSA Certified
|Circuit Breaker Type: High Interrupting Capacity
|Terminal Connection: Screw Clamp
|Series: THHQB
|Frame Size: THQ
|Max. AIR Rating: 22kA
|Width: 3.00"
|AC Voltage Rating: 240VAC
|Number of Poles: 3
|Max. Wire Size: 8 AWG
|Length: 3.28"
|Min. Wire Size: 14 AWG
|Item: Bolt On Circuit Breaker
|Amps: 20
|Country of Origin (subject to change): Multiple
Product Description
Bolt On Circuit Breaker, 20 Amps, Number of Poles 3, Circuit Breaker Type High Interrupting Capacity, AC Voltage Rating 240VAC, DC Voltage Rating Not Rated, For Use With GE AQ Lighting Panels, Series THHQB, Terminal Connection Screw Clamp, Max. AIR Rating 22kA, Frame Size THQ, Min. Wire Size 14 AWG, Max. Wire Size 8 AWG, Length 3.28 In., Width 3.00 In., Depth 2.38 In., Standards UL Listed, CSA Certified

subset: commoncrawl


text:
Is there a certain place that feels like home to you?
Then our limited edition Home at the Castle shirt has your name all over it.
It's the perfect reminder of fun and family. Let the memories begin.
This is the shirt you've seen and heard so much about. You're going to absolutely love it!


text:
- Description
This cool contemporary upholstered bed will make a stunning focal point in your master bedroom. The storage headboard with low profile footboard are covered in a rich black PU for a luxurious look. Sleek covered side rails with pull out drawer complete this sophisticated look. This bed is available in queen, Eastern king, and California king sizes to meet your needs and fit your space.dIncludes
1 Queen BedDimensions
Queen Bed, 100" x 63" x 47"H
More from this collection: Kofi
- Additional Information
Additional Information
SKU 11302176 MPN 21270Q GTIN UPC 0840412950193 Brand Acme Collection Kofi Assemble Length No Assemble Width No Assemble Height 47 Assembly Required Yes Material PU Leather Finish Black Sizes Queen Bed Styles Storage Bed Styles Contemporary Shipping Time 1-2 Weeks Free Shipping No
- Reviews
Disclaimer: Pictures displayed may include optional products not included in the price. Computer monitors often display color variations. Color swatches are shown if alternative colors are available. Please call us or email us if you have any questions!


text:
Something that differentiates Hummingbird Farms body care is the fact that our primary ingredient is aloe vera (aloe barbadensis).
All of our body care products, including our liquid soaps and body washes, are aloe-based rather than water-based. What this means is that aloe will be the first ingredient listed, not water, which is the case in more than 90% of the products out there.
At Hummingbird Farms our bath & body products are aloe-based.
We infuse 100% pure essential oil of lavender, along with other antioxidant-rich plant ingredients into aloe for an extra thick and rich base. This is why you will find that you use one half to one third less of our products per application as you would a water-based product.
A little goes a long way….
So why aloe vera instead of water? Aloe vera has a long and very well established history of being a healing plant for the skin due to its hydrating and moisturizing properties. The earliest reference to aloe can be found back to 1500 BC, making it one of the most studied herbs in the natural products category. But more importantly, aloe vera contains protein, calcium, magnesium, zinc, vitamins A and E and naturally rich in Vitamin C (which promotes good circulation) and amino acids which are chains of atoms constructing protein in our body.
Aloe vera is of small molecular structure. This means that all of its active ingredients will be quickly and easily absorbed deep into the layers of your skin. Think of aloe as the carrier that brings all of the essential ingredients into your skin to hydrate and moisturize.


text:
|This exists primarily or exclusively within the Sonic the Comic continuity.
Information in this article may not be canonical to the storyline of the games or any other Sonic continuity.
Mandrake Root is a flora that appears in the Sonic the Comic series published by Fleetway Editions. They are plants that grow in the Mandrake Swamp of Planet Meridian in the Special Zone.[1] Blockhead Bill uses them to transform his companion, Society Max, into a dinosaur; the transformation appears to be instantaneous when the Mandrake Root touches Max's tongue.[2] However, the socialite Max dislikes the taste, requesting that Bill put some dressing on it next time. The roots also seem to get in his teeth, and Max has been seen using a toothpick after returning to normal.[3]
When Bill ran out of roots to feed his friend, the pair of them ventured into Mandrake Swamp to collect more. Before they could succeed, they were captured by Root and forced to carry out his plan.[1] Despite this, Bill was able to procure at least three more Mandrake Roots, which he later used to fight Sonic the Hedgehog and the Chaotix Crew.[2][3][4]
- The Mandrake Roots are named after (and loosely modelled after) the real world Mandrake, which has been used in magic rituals because of its bizarre shape and its hallucinagenic properties.
External links
- Mandrake Root at the Sonic the Comic Wiki
- ↑ 1.0 1.1 Sonic the Comic #137, "Roots, Part 3"
- ↑ 2.0 2.1 Sonic the Comic #135, "Roots, Part 1"
- ↑ 3.0 3.1 Sonic the Comic #134, "Back in the Special Zone"
- ↑ Sonic the Comic #138, "Roots, Part 4"


text: thanks, yeah, i was buying a more expensive version of it, they all work the same. but i offer it to every customer, even if i don't mulch for them. i have used a lot this year so far, and my brother came across these big containers for a good price it was hard to pass up.


text:
Auto Detailing
Car Detail in Seattle, WA
When you want to showcase your vehicle in all its glory, consider the benefits of a professional car detail service. In the Greater Seattle area, discerning motorists turn to All Season Window Tint to get their automobiles in fine shape.
From the windows and doors to the headlights and upholstery, we'll care for every aspect of your car's appearance. Because of our detail-oriented approach, you can count on us to correct blemishes both large and small. As an environmentally friendly company, we use supplies and materials that have been carefully selected for their ecological sustainability. Clients also appreciate our:
- Prompt project completion
- Quality workmanship
- Speedy responses
- Flexible appointment scheduling
Anyone in Seattle, WA, who wishes to return their set of wheels to a like-new state can trust the car detail team at All Season Window Tint. Contact us today to request an appointment. Our hours of operation are Monday – Wednesday, 9am – 6pm; Thursday, 9am – 9pm; and Friday – Saturday, 9am – 6pm.
Call Today
Contact Us
Message Sent. Thank you for contacting us. We will be in touch with you shortly.
There the best ever just love them Felix is the best out there!!😁
Awesome customer service
Excellent customer service , and they did really good job tinting my car .
Love ASWT!!!
I got my Acura tinted here and Felix and his team couldn't have been more helpful and professional. I highly recommend getting your window done here and I will be back as well and refer anyone to All Season WIindow Tint.
High quality and service
High quality and customer service!!!! Super recommended!!!!
100% satisfied
All Season Window Tint did a fantastic job with my new BMW. They are professional and courteous. Their work was done promptly and with exceptional care and quality. I highly recommend them.
Everything I could have asked for
All Season Window Tint was fantastic. They went through all of the options available, so I could really see examples of what my car would look like when it was done. They were very friendly and on time. The tint is exactly what we talked about and looks amazing! Thank you very much! I would definitely recommend using this business!
Wonderful Experience
We worked with Felix and he was very helpful and kind. I'm the administrator for a church in Lynnwood and we have huge windows in our Sanctuary. The sun would shine in and make it very unpleasant for our congregants so we called All Season Window Tint. We didn't want the film to be too dark so we went with a slight glare reduction. Felix installed the film and it looked great. However, it didn't solve the issue. Felix offered to work with us on installing a darker film and we couldn't be happier. I strongly recommend this company.
Really good customer service this place is the best thank you for fixing my window
Professional, Fast & Friendly
I recommend All Seasons for any of your tinting needs. Felix and staff are very friendly, they explained the % and what would look best. Thanks again for the great job....looks awesome.
Friendly, helpful, fast
Went in to get 7 windows tinted on my Outback. Felix explained tinting percentages to me, we decided what to go with, and he went to work. Took a couple of hours if I remember correctly. It's been a couple of weeks and so far so good. He did an excellent job, couldn't be happier.
Professional, Friendly, Great customer service
I was recommended by a few friends to come here because they have previously had there windows tinted here. I called in a little over a hour before they closed. They were kind enough to take my vehicle in and stay past closing time to finish. Felix at the front desk was very professional and very polite, and was very noligable. My windows turned out great and I couldn't be happier. I would highly recommend going here if you want professional quality tinting. I will deifently be coming back here in the near future.
These professionals are an example of how a business is supposed to be run. People look no further you have found your tinting needs. I highly recommend them! Needless to say I will be telling others about them.
Fast, helpful, convenient, quality, and thorough.
Felix did a great job on my truck. He educated me on the grades of film available and legal limits for tint. He gave me a great deal and value in providing a lifetime warranty as long as I own the truck. I scheduled on a Sunday by calling his cell for a Tuesday drop off appointment and he had my truck done in a couple hours. He was flexible in working with my work schedule. I am very pleased with his service, time, and effort. The quality of job is excellent and he cleaned up all edges very well. I have recommended him repeatedly to people. Great work performed here by kind people!!!
Excellent and speedy service
This is my second time coming to this shop and I couldn't be more pleased with their service. They do an amazing job, they're friendly, affordable pricing and they were able to get me in last minute and were very quick! Highly recommend!
Bright new headlights and running lights
We've coming to All Season window tint for several years now, just a few weeks back our headlights went out, they were able to fit us into their schedule, rather quickly. New headlights and running lights were installed on our Cadillac CTS. Once again Felix and his team did a flawless job! We are very happy with the end result, and feel like we just can't thank you guys enough. Thank you, thank you!!
Great and friendly service
I had two cars done the same day. They offered me great service. All three employees were really friendly , they don't talk to you as a costumer They talk to you as a friend I loved getting my windows tinted here and I would recommend it
3rd car great work!
This is the 3rd car I have done with them. Great work, never a failure or bubble. Looks like factory tinted windows. I liked having a waiting room with free wifi so I could keep working while my car was worked on. Roger Draper
All Season did a special project for me tinting three pieces of glass from a table. Even tho it was not a typical service they offer, they were very accommodating and gave me a fair price. The staff was friendly, helpful, professional and patient with my indecisiveness. After they did an awesome job on the glass pieces, I had them tint my two front car windows even tho I wasn't planning to do that just yet. Felix is a real pro. He pays close attention to detail and you can tell he takes pride in his work. Really glad I found this place.
Great, Fast Service at a very reasonable price
I purchased a used car with window tint that I wanted removed. I was told by other window tinting shops that this would cost about $75 and they would need to keep the car anywhere from an hour to all day. All Seasons Window Tint removed the tint in 20 minutes and charged me $20. The service was great. I can only assume that the other window tinting companies wanted to keep the car longer than necessary to justify the higher than necessary price. I do recommend All Seasons Window Tint for quality, friendly and affordable service.
Flawless job!
I have used All Season Window Tint 2 times in the past 3 years for my Cadillac CTS. I would not go anywhere else for my tinting needs. The service is 1st class and the work is completely flawless. They stand behind their work and products 100%. Don't look anywhere else, this is the only place you need to visit. Thank you Felix!
2p16 rav4 tint job
I would have to say that the ten job for the RAV4 is excellent. I showed a a friend at work and he has a tint job his self on his car. He said he was jealous and wished his was like mine. If you want a tint job that is perfect go to All Season window tint no joke.
Awesome window tinting
I just happened upon this place when I was having some alarm work next door at stereo warehouse. I had been looking to get some tint removed that was to dark for Seattle and replaced with some 50℅. I talked to Felix about his experience, and the products available as well as pricing and decided I would have All Season do the job. The car is a show quality 1990 300zx that I'm a little protective about and was having all 7 windows done on it (removal and retinting). I couldn't be more happy with the results. The car looks fantastic and was done on time and at the price quoted. I would highly recommend All Season for any of your tinting needs.
Attention to detail and service with a smile!
Felix takes what he does very seriously. I have very high standards for the work being done on my cars and was very pleased with the entire process at All Season. From walking me through the options, to the time it took to install the tint, everything was clean, professional and courteous.
Professional and friendly
The people here are great! Other than getting my car tinted, I didn't know much about the different levels of shade and/or different brands of window tint that were available. The guys here were super helpful in giving me all the information I needed, and they took the extra time to show me around and point out examples of how the different levels of tint would look. A few hours later my car was done and it looked great! The only negative (slight negative) is their website offers a feature for a quick and easy online estimate, but I did not receive a response. Also when I tried calling it took a few phone calls before they picked up. That being said, I think I called at time when there was just one person there and he was busy with another customer, so I understand there is only so much one person can do at time. Otherwise, the cost was competitive, the guys were professional, and the the quality of work was excellent. Great job All Season Window Tint!!
Best in the business!
Felix and his team are phenomenal! I refer everyone to All Season Window Tint! Their attention to detail and the time they take to make sure everything is immaculate makes them as close to perfection as you can get!
Great job
I took my truck into 3 different places including midnight tinting who was over priced and blew me off. Everybody was confused on the bronze factory tint that I needed matched in my 98 Toyota Tacoma Felix knew exactly what to do and executed the work perfectly! These guys stand by their work and know what they are doing!!!
High quality service
These guys are the best. They are easy to work with and are very friendly.. I recommend these guys when it comes to tint. They did a phenomenal tint job on my car. Ask for the 3M if you want to put tints on your windows!!
- English
- Spanish


text:
Princess Maria Cristina Amelia of Naples and Sicily
|Maria Cristina Amelia
17 January 1779
Caserta Palace, Kingdom of Naples
|26 February 1783
(aged 4)
Caserta Palace, Kingdom of Naples
|Basilica of Santa Chiara, Naples
|House of Bourbon
|Ferdinand IV of Naples
|Maria Carolina of Austria
Maria Cristina Amelia of Naples and Sicily (17 January 1779 – 26 February 1783[1]) was a Princess of Naples and Sicily and twin sister of the future Queen of Sardinia. She died of Smallpox 1783.
Maria Cristina Amelia was born at the Caserta Palace[1] in Naples. She was the youngest of twins born to Ferdinand IV of Naples and his Austrian consort Maria Carolina of Austria, daughter of Empress Maria Theresa.
A member of the House of Bourbon, she was a Princess of Naples and Sicily by birth. She was ineligiable to inherit the throne due to Salic Law, which forbade females from inheriting.
Her older sister Princess Maria Cristina, was the wife of the future Charles Felix of Sardinia. Her other sisters included a future Holy Roman Empress, Grand Duchess of Tuscany, Queen of the French[2] and Princess of Asturias. Her brothers included Francis (future King of the Two Sicilies) and Leopold, Prince of Salerno.
The infant princess and her twin sister were placed under the education of Vincenza D'Ambrogio. Her sister was her mother's favourite child. At the age of five, the princess caught Smallpox,[2] an illness which had previously killed her older brother, Prince Carlo, in 1777 and Prince Giuseppe[2] (who died only a week before Maria Cristina Amelia). She died at the Caserta Palace and was buried at the Church of Santa Chiara in Naples.
|Family of Maria Cristina Amelia in 1783
Titles, styles, honours and arms[edit]
Titles and styles[edit]
- 17 January 1779 – 26 February 1783 Her Royal Highness Princess Maria Cristina Amelia of Naples and Sicily


text:
The University of Maine is offering a limited number of International Presidential Scholarships. These scholarships are available for outstanding students to pursue an undergraduate degree program.
The University of Maine is a public research university located in Orono, Maine, United States. The university was established in 1865 as a land grant college and is the flagship university of the University of Maine System.
All applicants are required to submit a language proficiency: TOEFL: minimum score of 79 (iBT) or 550 (iTP), institution code 3916 and IELTS: minimum score of 6.5.
Applicants from non-English speaking countries must furnish proof of their proficiency in English. There are two major tests for this purpose, the Test of English as a Foreign Language (TOEFL) and tests from the International English Language Testing System (IELTS).
Course Level: Scholarships are available for pursuing the undergraduate program.
Study Subject: Scholarships are awarded to study the subjects offered by the university.
Scholarship Award: Each scholarship is valued at $25,000 per academic year. For students receiving the Undergraduate Canadian Resident tuition rate, the scholarship will be prorated to $15,000.
Scholarship can be taken in the USA
Eligibility: Scholarships are primarily limited to first-time, degree-seeking, undergraduate foreign nationals who qualify for the F-1 or J-1 student visa. Recipients of the award will be required to maintain their status as full-time students at the University of Maine. For students receiving the Undergraduate Canadian Resident tuition rate, the scholarship will be prorated to $15,000.
Nationality: International students can apply for these scholarships.
College Admission Requirement
Entrance Requirement: Students must maintain full-time enrollment and a cumulative grade point average (CGPA) of at least 3.00 in order for the scholarship to be renewed.
Test Requirement: University requires Graduate Record Examination (GRE) scores. They do not have a fixed minimum score for admittance, however, the average GRE scores are Verbal = 162; Quantitative = 159.
English Language Requirement: All applicants are required to submit a language proficiency:
- TOEFL: minimum score of 79 (iBT) or 550 (iTP), institution code 3916
- IELTS: minimum score of 6.5
- CEFR – Common European Framework of Reference for Languages: completed level C1.
- Waived language test if:
Native speaker of English (e.g., Australia, Canada, New Zealand, Republic of Ireland, U.K.)
SAT Verbal score is 550 or higher
ACT English score is 24 or higher
High school transcript clearly states that English is the language of instruction of all subjects
Student studying in the U.S. or Canada for two or more years and not in an ESL track
The student has successfully passed an English Composition course at a U.S. institution with a grade of C or higher, even if the student has not studied in the U.S. for two or more years.
How to Apply: To be considered for the International Presidential Scholarship, applicants must complete a University of Maine admission application and submit an International Presidential Scholarship Application application by February 1 each year for a fall-semester start.
Application Deadline: To be considered, applicants must have a completed University of Maine application and a completed International Presidential Scholarship application on file by February 1.
Visit the Official Scholarship Website for more details.
11 Comments
HEY, I am Benjamin Barkollie i to apply for international scholarship to continue my study. i lost my father upon my 1st year at the university of liberia in 2014.
Please help me I am jibril abidila sherif from Ethiopia you can address me at 251912765724.
Hi, my name is Guluma Etana,from Ethiopia. I have BSc degree in Biology. Now I would like to join MSc degree in HUMAN ANATOMY. Because of your high educational quality, I'm interested to study in your University. Please help me !
Hi, my name is Guluma Etana, from Ethiopia. I have BSc degree in BIOLOGY. Now, I would like to join MSc degree in HUMAN ANATOMY. Because of your high educationanal quality, I'm interested to study in your University. Please help me !
You can contact me by;
Phone: +251917707303
Email: [email protected]
Hie am Charity Kam'mwamba from Malawi I want any medical scholarship I have a high school certificate.+265882925158
i am from liberia and my parnt are all poor so how can i be past of this process
can those that don't have money apply
I,m claudine MAzimpaka , i,m orpherne Parents genocide Rwandan.I, m interested to study in your university.please help me.
this whole thing is a lie ryt?????? but if it is true pls just help me get this scholarship thank u


text:
Berlin Office Collection
Our Amish Furniture Office Furniture Solid Wood Office Side Chair is designed to give your clients and visitors to your office a comfortable place to site but can also be used for employees or even the boss! This Amish handcrafted Side Chair is ideal for low desks or as an accent chair to any office. Features gas lift and tilt lock. Proudly made in the USA from 100% solid hardwood!
© Copyrights 2003 - 2017 DutchCrafters All rights reserved.


text:
Rambutan Lovina Hotel
Deluxe Room
The Deluxe rooms are situated in the new wing. There are panoramic balcony views overlooking the main swimming pool with views of Balinese farm land to the side and of the ocean to the rear. It's also equipped with mini bar.
Deluxe Room
Email this URL!
Print this page!
Send feedback!
Get more info!


text:
The Role
The Account Executive is responsible for representing TripleLift to a list that will include major advertising agencies, mid-market agencies and advertisers. This person is outgoing, social, easily liked and extremely confident. The best candidates bring relationships with them and are comfortable presenting to 2 or 20 people, evangelizing, educating and influencing. Primary responsibilities include developing leads, building the pipeline, meeting quarterly and annual revenue goals.
About TripleLift
TripleLift makes native advertising simple, scalable, and effective. Leveraging pioneering computer vision technology, TripleLift seamlessly transforms visual content like images and video into native ads that match the unique look and feel of a publisher's site or app. TripleLift's native inventory is accessible through the industry's first real-time, native programmatic exchange, helping marketers reach millions of consumers across all devices, at scale. Since 2012, TripleLift has delivered meaningful results for some of the world's biggest brands through what we call the next evolution of display advertising.
- Develop leads and build the pipeline;
- Meet quarterly and annual revenue goals according to sales plan;
- Assess potential business deals, help negotiate favorable terms, and gain commitment;
- Build effective relationships with advertisers, agencies and agency trading desks;
- Effectively forecast monthly and quarterly sales.
Desired Skills and Attributes
- Solid understanding of Internet advertising, DSP's, programmatic, and general sales process;
- Proven track record of sales success, achieving goals, managing to a number;
- Motivated team player who consistently strives to exceed goals and push revenue expectations;
- Ability to work individually and collaboratively to drive business forward;
- Comfortable taking ownership of projects and showcasing key accomplishments;
- Strives for continued learning opportunities to build upon craft;
- Excellent communication and interpersonal skills;
- Excellent organizational skills and attention to detail;
- Ability to work quickly and independently with minimal oversight;
- Ability to work under pressure and multitask in a fast-paced start-up environment;
- Ability to accept feedback and constructive critique positively;
- Extremely strong and demonstrable work ethic;
- Proven academic and/or professional achievement.
Education Requirement
A Bachelor's degree in advertising, communications, marketing, or a related discipline is preferred, though candidates with relevant experience who hold other degrees will be considered.
Experience Requirement
3-5 years in digital sales, media or ad tech, possibly large ad agency experience.
San Francisco, CA
Benefits and Company Perks
- Amazing company culture
- Competitive salary and performance-based bonuses
- Ongoing professional development
- Comprehensive Medical, Dental and Vision insurance
- Equity options
- 401(k) program
- Snacks on snacks on snacks
- Yoga, massages, and meals
TripleLift Awards
#37 Crain's Best Places to Work (Crain's-2016)
Forbes Most Promising Companies in America (Forbes-2015)
Crain's Best Places to Work (Crain's-2015)
AdTech Startup of the Year Winner (NYTimes-2015)
Startup of the Year Finalist (AdWeek-2015)


text:
Product details
Geometric curves and gentile sloping profiles, Navassa is inspired by urban living and hotel chic fashions.
- Colour: White
- Guarantee: 10 year
- Material: Ceramic
- Effects and finish: Gloss
- Dimensions: (H)47.4, (W)60, (D)41.5cm
- Includes: Basin
- Fixings: Sold separately
- Assembly instructions: We recommend that this item is fitted by a qualified plumber
- Number of tap holes: 1
- Collection or Range name: Navassa
Navassa Basin and Semi Pedestal - 60cm 126092
Select product options
Navassa Basin and Semi Pedestal - 60cm
Available to order at the service desk in store for home delivery
Home delivery within 28 days
{"calculators": { "calculator": { "pimProductAttr": ["", "", "", ""], "calcType": "" } } }
Navassa Basin and Semi Pedestal - 60cm is rated out of 5 by 1.
Rated 3 out of 5 by Anonymous from Good service Nothing wrong with this product if you like the shape. My problem - I couldn't tell from the pic what depth of water the basin would contain. It actually measures only 65 mm from the plug hole to the overflow and I wanted more depth than this, may be more of a traditional shape, hence this turns out not to be the right one for me.
Date published: 2016-12-01


text:
My Cart
Most Canadian-born adults have memories of childhood tobogganing adventures down the nearest snow-covered hill—even if it's a little one made by a snow plough on a street corner. This tradition goes back to the very roots of how both Aboriginal peoples and early settlers survived in this vast and difficult country.
Long before the Europeans arrived and turned various forms of sledding into Olympic sports, Canada's First Peoples used handcrafted toboggans to transport people and goods across the snowy tundra of Canada's Far North. The Canadian Encyclopedia states that these devices "were constructed of two or more thin boards of larch or birch wood, secured to one another by crossbars, with the boards turned up at the front. The wood was bent while still green or wet, then held in position by lashing until the wood dried..."
Toboggans were often long—7 to 10 feet—but narrow, perhaps only 1 foot wide, pulled by a man or woman wearing a chest harness or, if available, sled dogs. The significance of the width was that a narrow sleigh could fit easily inside a snowshoe trail. Symbolic designs meant to attract helpful spirits during hunting and travelling were sometimes painted on the wood planks.
The word "toboggan" likely originates from the word for sled by the Mi'kmaq (tobâkun) and/or Abenaki (udãbãgan). French Canadians adopted the word in the early 1800s, but spelled it "tabaganne."
Along with the name, the early European settlers were quick to adopt the use of toboggans for transport, hunting and fur trading ventures, but they soon realized it could be used for recreation as well. It became a popular sport in the late 1800s. Clubs, such as the Montreal Tobogganing Club, founded in 1881, sponsored meets and competitions.
In 1860, Quebec City's wealthier residents often went tobogganing on the slopes of the Plains of Abraham. In 1872, the Governor General, Lord Dufferin, added a toboggan slide at Rideau Hall for the public to enjoy. In Quebec City, a quarter mile long, triple-chute toboggan run adjacent to The Fairmont Chateau Frontenac was built in 1935. This run is still operating today, popular with tourists and locals alike.
This recreational past-time has also evolved into serious competitive sports. Three modern Olympic sports were born out of downhill tobogganing: bobsledding, luging and skeleton racing. Bobsleds have teams of two or four racers who steer a sled down a track. They have two axles on runners that are steered by a wheel or pull rope. In the luge, one or two racers recline in a seated position while racing down a luge run, steered by flexing the sled's runners with the calf of each leg or exerting opposite shoulder pressure to the seat. In the skeleton competition, a racer rides a small sled on an iced track face-first and head down, steered using torque provided by the head and shoulders.
Today, toboggans are still used in Canada's north to transport people and goods. Sometimes they are powered by people or dogs, but are usually pulled by gas-powered snow machines.


text:
The Ravens' final drive of the opening half produced three points instead of seven, but still ended with Baltimore headed to the locker room ahead 17-14.
The 13-play, 77-yard possession was capped by Justin Tucker's 25-yard field goal with 7 seconds to go in the first half. But it was oh so close to being a seven-point advantage when Joe Flacco's well-placed pass went off Dallas Clark's hands inside the 5 to bring up fourth down.
An entertaining first half of football, following a 33-minute delay because of lightning, saw the Ravens dominate time of possession (19:10 to 10:43) and win the yardage battle (229-174). But Baltimore leads by just three points.
With little pressure in his face, Flacco is having a fine night. So far, he's 18-for-30 for 183 yards, one touchdown and one interception. Ray Rice had 10 rushes for 38 yards and a score, as well as four catches for 16 yards.
Torrey Smith, Jacoby Jones and Clark each have three receptions while Marlon Brown has two.
The Ravens have been hit with a couple of injuries already, as Jones is likely done for the night with a sprained knee and right tackle Michael Oher might be finished with a sprained ankle.
Peyton Manning is leading the Broncos by going 11-for-19 for 160 yards and two touchdown passes, both to tight end Julius Thomas.
Neither team has established much of a ground game, but they haven't had to in this one. Perhaps the second half has more of the same in store for what coach John Harbaugh called a budding rivalry.
Update: That didn't last long.
On the first drive of the second half, the Broncos went 80 yards in six plays to take their first lead - 21-17 on a beautiful 28-yard pass from Manning to Andre Caldwell.
Cornerback Jimmy Smith was beaten on the play, which involved a fingertips, bobbled catch by Caldwell as he was striding into the end zone. Smith also missed a tackle on a 34-yard catch by Demaryius Thomas on the drive.
That could have been avoided, however, if the Ravens challenged the previous play where replays clearly showed a 10-yard completion to Wes Welker hitting the ground. Coach John Harbaugh chose not to challenge and Denver went on to take the lead.
Update II: The third quarter isn't even five minutes old and the Broncos have already put up 14 points to turn a three-point deficit into a 28-17 lead.
The latest score came as a result of a blocked punt that gave Denver the ball at the Ravens' 10-yard line. Manning completed two passes to Welker for 10 yards, with the second being a 5-yard touchdown pass. Manning has now thrown for four touchdowns and there's plenty of time for him to add more.
Baltimore needs something positive to happen right now before things get out of hand.
Update III: It's officially out of hand.
Manning has passed for 292 yards, a ridiculous five touchdowns and no picks to give the Broncos a 35-17 advantage. Manning found Welker again for Denver's latest score, this time connecting for a 2-yard touchdown.
Update IV: Manning has passed for six touchdowns while Flacco has two touchdown throws and two picks.
With less than eight minutes to go, the Broncos lead 42-24. Will that be enough or is there another Mile High miracle ahead?
Update V: Tucker starts to chip away, using a 30-yard field goal to trim the Broncos' lead with 5:33 remaining.
Update VI: Manning just completed a 78-yard touchdown pass to Demaryius Thomas to make it 49-27 Denver.
Manning has tied an NFL record with his seventh touchdown pass of the game. He's the sixth in NFL history and first since Joe Kapp in 1969 to accomplish the feat.
Not a good start for the Ravens' new-look defense.


text:
Hallé Prize Draw Terms and Conditions
1. The Winner and Runners-up will be drawn at random from the total number of qualifying entries received.
2. The Winner and Runners-up will be notified either by email or telephone within 30 days of the closing date stated.
3. Prizes will be allocated according to availability from a pre-determined selection of concert dates and winners will be offered a first or second choice. Where a first choice is not available, a second choice will be allocated.
4. There is no cash alternative available.
5. Only one entry per person and per household will be accepted for the draw.
6. This competition is open to residents of the UK, Channel Islands and the Isle of Man, aged 18 or over, excluding employees of the Hallé and those professionally associated with this competition.
The Prizes
Main Prize:
4 x tickets for any concert in the 2016/17 season (subject to availability); a 2 course meal (inclusive of coffee) in the Charles Hallé Restaurant for 4 people (must be booked for the same evening as the chosen concert) and up to four complimentary concert programmes.
Runner-up Prizes:
500 pairs of tickets for a pre-determined selection of Hallé orchestra concert dates in the 2016-17 season at the Bridgewater Hall.


text:
Where Do I Vote?
My Voting Info
Register to Vote
Update My Address
Vote by Mail Application
VoterNotify/Track My Ballot
Cancel Registration
Using Optical Scan Ballots
ID Requirements
Declare or Change Party
Voter Info Guide
Vote by Mail Labels
Military and Overseas Voters
Provisional Voting
Provisional Ballot Notice
Election Information
View Ballots
Election Audit Information
Election Results History
Voter Registration Statistics
Polling Locations
Street Range Guide
Election Results
Committee Results
Candidate Requirements Guide
Candidate Filing
Filing Protests
Vote by Mail Labels/Ballot Tracking
Campaign Finance Information
Campaign Finance Handbook
Campaign Finance Forms
Campaign Finance Reports
Frequently Asked Questions
Ballot Issues
Initiative/Referendum Petitions
Local Options
Vote by Mail Application Requests
Become an Election Official
Training Materials
Election Official Feedback
Board Members & Staff
Board Meeting Calendar
Phone Numbers
Public Records Policy
Business with the Board
My Voting Info
Where Do I Vote?
What's On My Ballot?
Vote by Mail
VoterNotify/Track Ballot
Register to Vote
Update My Address
Upcoming events
Notice to View Ballots
Board Meeting
Board Meeting
Featured Items
Vote By Mail Labels
Voter Registration Card
Data Downloads
Safe at Home
Become an Election Official
Election Official Training Materials
Spanish Language Board
Business with the Board
Links and Resources
Historical Information
November 02, 2010 General Election
November 02, 2010 General Election
Event date:
Polls open: 6:30 AM - 7:30 PM
View Results
Sample Ballots
Official Certification Report
Notices of Election
Election Profile
Candidates List
Issues List
Vote By Mail Application
Hours to Vote at the Board of Elections
Vote By Mail Schedule and Labels
Vote By Mail Requests and Returns by City
Directive 2008-29: Rights of and limitations on election observers
Filing Deadlines – All filing deadlines are at 4:00 p.m.
07/28/2010 - Local Option Petition Pre-Check
08/04/2010 - Issues and Local Options
08/20/2010 - Protests against Local Options
08/23/2010 - Write-in Candidates (where applicable)
08/27/2010 - Write-in Candidate Protest Deadline
08/31/2010 - County Independent Candidate Petition Pre-Check
09/03/2010 - Charter Amendments
09/06/2010 - County Independent Candidate Petition Filing
09/10/2010 - 12:00 Noon Protests against County Independent Candidates
10/13/2010 - Petition to be Recognized as Committee to Appoint Observers Measure (Question) Submitted
10/21/2010 - Pre-General Election Campaign Finance Report (Close of books 10/13/2010)
10/22/2010 - Notice of Appointment of Observers
11/01/2010 - Amendment of Notice of Appointment of Observers
12/10/2010 - Post-General Election Campaign Finance Report (Close of books 12/3/2010)
Voter Deadlines
09/15/2010 8:30 a.m. - Vote by Mail application will be mailed
09/18/2010 - Mail Uniformed Services or Overseas Absent Voter's (USOAV) ballots only
09/28/2010 8:30 a.m. - Opening of Vote by Mail (Absentee) voting
10/04/2010 9:00 p.m. - Close of registration
10/30/2010 12:00 noon - Deadline for applications by mail for an absentee ballot to be mailed
Voting in person at the Board of Elections 8:30 a.m. - 12:00 noon
11/01/2010 4:30 p.m. - Absentee ballot voting in person at Board of Elections closes
11/01/2010 - All Vote by Mail / Absentee ballots mailed anywhere in the U.S. must be postmarked on or before this date and received at the Board of Elections on or before November 12, 2010 in order to be counted.
11/02/2010 - 6:30 a.m. - 7:30 p.m. - Election Day - Provisional voting at the Board of Elections
11/02/2010 - All Vote by Mail / Absentee ballots returned in person must be received at the Board of Elections by 7:30 p.m. in order to be counted.
All overseas Vote by Mail ballots must be postmarked on or before this date and received on or before November 12, 2010 in order to be counted.
Board of Elections | 2925 Euclid Avenue | Cleveland, OH 44115 | (216) 443-VOTE (8683)
Powered by the Department of Information Technology
Accessibility Statement
Privacy Policy
Public Records Policy


text:
Our New Car Guide features car insurance groups, reviews, car prices, specifications and images - all the resources a new car buyer needs.
Our Car Locator lists 83613 New & Used Cars for Sale.
Our car dealer locator will help you find local car dealers in your region and throughout the UK.
If you involved with a Contract Hire website that would be of interest to our readers, please submit it for free to our search engine.


text:
|Twilight Garden
|Time Limit
|sublevel 1 - 145
| Pokos (w/ no death bonus
& w/o time bonus)
|Yellow Pikmin
|Spicy Spray
The Twilight Garden is a Challenge Mode level in Pikmin 2. The level itself bears resemblance to a few of the early floors of the Snagret Hole. However, this level seems to take place in the afternoon. You are provided with one Ultra-Spicy Spray.
Much like other levels, there's a large assortment of enemies in the way of the key. Swarming the Sheargrubs is advised, as they don't bear much of a threat to the large force of Pikmin. The Bulborbs should be dealt with by throwing Pikmin on them, then the Ultra-Spicy Spray should be used while facing the Beady Long Legs. With any remaining time, the treasures can be collected.
- The Key
- Mirth Sphere x4
- Love Sphere x4
- Omniscient Sphere x2
- Tear Stone
- Petrified Heart
- Mirrored Element
- Lustrous Element
- Unknown Merit
- Twilight Garden was originally named "The Spider's Web."
- This is the only time you see the afternoon-time lighting in a level.
|Pikmin 2 Challenge Mode levels
Explorer's Cave | Novice Training | Lost Toy Box | Creator's Garden | Green Hole | Hot House | Brawny Abyss | Red Chasm | Trampled Garden | Twilight Garden | Cryptic Cavern | Concrete Maze | Collector's Room | Dweevil Nest | Cavernous Abyss | Snack Pit | Three Color Training | Hazard Training | Cave of Snarls | The Giant's Bath | Rumbling Grotto | Subterranean Lair | Hidden Garden | Abduction Den | Secret Testing Range | Breeding Ground | Cave of Pain | Bully Den | Sniper Room | Emperor's Realm


text:
Looking at new workstations for CAD, SolidWorks to be precise.
Anyone have recommendations on a benchmark software, preferably free or inexpensive, that we can run on our current and older workstation-class systems, and then on any new ones, to see how they compare?
Ideally we would be able to get a test system but I can't see Dell doing that.
Mar 31, 2010 at 2:55 UTC
This software is awesome! http://www.passmark.com/products/pt.htm
It tells you pretty much every aspect you want to test and then you can even compare it to other computers that are baselined on their website. Has an evaluation for I think thirty days but that should give you enough time.
9 Replies
Mar 31, 2010 at 1:33 UTC
PC Wizard is a free tool to inventory hardware on computers and it comes with benchmarking tools as well.
Mar 31, 2010 at 1:58 UTC
Limey, talk to your Dell rep and see if he can work something out. Post back the results :-)
Mar 31, 2010 at 2:55 UTC
This software is awesome! http://www.passmark.com/products/pt.htm
It tells you pretty much every aspect you want to test and then you can even compare it to other computers that are baselined on their website. Has an evaluation for I think thirty days but that should give you enough time.
Mar 31, 2010 at 3:25 UTC
Depending on what exactly you are after, I use Cinebench and Resident Evil 5 benchmarking. Those two seem to give me what I am looking for when comparing performance.
Funny you are looking for SolidWorks. I was too. We use Dell T3400 systems with Quadro 3700 cards. It didn't seem to be performing as well as I would've expected for the price. I then got a few Dell Alienware Aurora systems and they are amazing. With the GX260 card, the i7 processor and 9GB of RAM it really does the job well with a cheaper price tag.
We have another workhorse that cost 4 times more than the Alienware and it barely falls short of that.
Here is the link I did for a review of the Alienware.
Apr 1, 2010 at 5:40 UTC
There's tons out there, too many.
best bet is to look here for the hot ones
Apr 1, 2010 at 7:43 UTC
Jeffrey, interesting. We are now taking a look at the Alienware. I think I'd rather have the workstation from an IT point of view but we'll see.
Your graphics card, is that the GTX 260 at 1.8GB of RAM?
Apr 1, 2010 at 9:22 UTC
That is correct. Sorry about that.
I have tested the performance of SolidWorks with both a single card and having dual SLI setup. The dual GTX 260 1.8GB cards didn't perform any better that we noticed. They have a little better framerate in benchmarks, but in real world tests it wasn't noticeable. That is testing both SolidWorks 2008 SP5 and SolidWorks 2010. With Windows 7 you have to use SolidWorks 2010. We were able to track down all necessary drivers for the Alienware box to run Windows XP.
Apr 1, 2010 at 9:37 UTC
I'm planning on running W7.
One of our outside sales guys has the same system as we run, he upgraded it to 7 and sees a big performance boost. We are going to buy the Passmark, run it on his machine. He also upped his RAM so we'll see how that works out too.
I'm just concerned about the lack of SolidWorks certified drivers for the GTX. Our design computer geek thinks it's no big deal.
Apr 15, 2010 at 3:56 UTC
Going to purchase the Passmark software.
Now looking at the i7 proc and 12GB of RAM, base graphics and buy the Quadro FX1800 separately. We think the limits we are seeing will be overcome with proc speed and RAM, more than graphics.
Thanks all.
This discussion has been inactive for over a year.
You may get a better answer to your question by starting a new discussion.