oracle foreign key primary key constraints performance tuning MTS IOT 9i block size backup rman corrupted column drop rename recovery controlfile backup clone architecture database archives export dump dmp duplicate rows extents segments fragmentation hot cold blobs migration tablespace locally managed redo undo new features rollback ora-1555 shrink free space user password link TNS tnsnames.ora listener java shutdown sequence
Convert to study materialsBETA
Transform any presentation into ready-made study materialselect from outputs like summaries, definitions, and practice questions.
1 of 6
Download to read offline
More Related Content
Exportversions
1. Export/Import with different Oracle Versions Backup and Recovery Tips
Export/Import with different Oracle Versions
Export and Import are not backwardly compatible. That is, running the 9i version of
export against an 8i database will produce errors. Similarly, running 8i export against a 7
or 8.0 database will produce fireworks.
To prove the point, heres what happens when I try to run 9i export against my 8.1.6
database:
C:>EXP SYSTEM/MANAGER@HJR816 FULL=Y
EXPORT: RELEASE 9.0.1.1.1 - PRODUCTION ON TUE OCT 30 07:40:45 2001
(C) COPYRIGHT 2001 ORACLE CORPORATION. ALL RIGHTS RESERVED.
CONNECTED TO: ORACLE8I ENTERPRISE EDITION RELEASE 8.1.6.0.0 - PRODUCTION
WITH THE PARTITIONING OPTION
JSERVER RELEASE 8.1.6.0.0 - PRODUCTION
EXP-00056: ORACLE ERROR 942 ENCOUNTERED
ORA-00942: TABLE OR VIEW DOES NOT EXIST
EXP-00000: EXPORT TERMINATED UNSUCCESSFULLY
Much the same happens when I try to use the 8.1.7 version of export against an 8.1.6
database (which goes to show that point releases are frequently significant):
D:ORACLEORA817BIN>EXP SYSTEM/MANAGER@HJR816 FULL=Y FILE=TEST.DMP
EXPORT: RELEASE 8.1.7.0.0 - PRODUCTION ON TUE OCT 30 07:47:29 2001
(C) COPYRIGHT 2000 ORACLE CORPORATION. ALL RIGHTS RESERVED.
CONNECTED TO: ORACLE8I ENTERPRISE EDITION RELEASE 8.1.6.0.0 - PRODUCTION
WITH THE PARTITIONING OPTION
JSERVER RELEASE 8.1.6.0.0 - PRODUCTION
EXPORT DONE IN WE8ISO8859P1 CHARACTER SET AND WE8ISO8859P1 NCHAR CHARACTER SET
ABOUT TO EXPORT THE ENTIRE DATABASE ...
. EXPORTING TABLESPACE DEFINITIONS
. EXPORTING PROFILES
. EXPORTING USER DEFINITIONS
. EXPORTING ROLES
. EXPORTING RESOURCE COSTS
. EXPORTING ROLLBACK SEGMENT DEFINITIONS
EXP-00008: ORACLE ERROR 904 ENCOUNTERED
ORA-00904: INVALID COLUMN NAME
EXP-00000: EXPORT TERMINATED UNSUCCESSFULLY
Youll notice it gets a bit further than version 9 export against the 8i database, but
essentially, it still falls over.
Copyright 息 Howard Rogers 2001 30/10/2001 Page 1 of 6
2. Export/Import with different Oracle Versions Backup and Recovery Tips
The same, of course, happens if you try to run version 8.x or 9i export against a version 7
database.
What we learn from this is that the higher version of export can NOT be used against a
lower version of the database. 9i export wont work when pointed at 8i or 8.0 databases;
8i export wont work when pointed at 7 or 8.0 databases (nor even when pointed at a
lower point release of 8i). And so on.
However, it is perfectly permissible to use the lower version of export against a higher
version of the database. For example, if I run the 8.1.6 version of export against the 8.1.7
database, this is what happens (trimmed a bit for space reasons):
D:ORACLEORA81BIN>EXP SYSTEM/MANAGER@HJR817 FULL=Y FILE=TEST.DMP
EXPORT: RELEASE 8.1.6.0.0 - PRODUCTION ON TUE OCT 30 08:10:27 2001
(C) COPYRIGHT 1999 ORACLE CORPORATION. ALL RIGHTS RESERVED.
CONNECTED TO: ORACLE8I ENTERPRISE EDITION RELEASE 8.1.7.0.0 - PRODUCTION
WITH THE PARTITIONING OPTION
JSERVER RELEASE 8.1.7.0.0 - PRODUCTION
EXPORT DONE IN WE8ISO8859P1 CHARACTER SET AND WE8ISO8859P1 NCHAR CHARACTER SET
ABOUT TO EXPORT THE ENTIRE DATABASE ...
. EXPORTING TABLESPACE DEFINITIONS
. EXPORTING PROFILES
. EXPORTING USER DEFINITIONS
. EXPORTING ROLES
. EXPORTING RESOURCE COSTS
. EXPORTING ROLLBACK SEGMENT DEFINITIONS
[SNIP]
. ABOUT TO EXPORT SYSTEM'S TABLES VIA CONVENTIONAL PATH ...
. . EXPORTING TABLE DEF$_AQCALL 0 ROWS EXPORTED
. . EXPORTING TABLE DEF$_AQERROR 0 ROWS EXPORTED
. . EXPORTING TABLE DEF$_PUSHED_TRANSACTIONS 0 ROWS EXPORTED
. . EXPORTING TABLE DEF$_TEMP$LOB 0 ROWS EXPORTED
. . EXPORTING TABLE SQLPLUS_PRODUCT_PROFILE 0 ROWS EXPORTED
[SNIP]
. EXPORTING REFRESH GROUPS AND CHILDREN
. EXPORTING DIMENSIONS
. EXPORTING POST-SCHEMA PROCEDURAL OBJECTS AND ACTIONS
. EXPORTING USER HISTORY TABLE
. EXPORTING DEFAULT AND SYSTEM AUDITING OPTIONS
. EXPORTING STATISTICS
EXPORT TERMINATED SUCCESSFULLY WITHOUT WARNINGS.
Copyright 息 Howard Rogers 2001 30/10/2001 Page 2 of 6
3. Export/Import with different Oracle Versions Backup and Recovery Tips
What about 8.1.6-version export being applied to a 9i database? Does that work?
D:ORACLEORA81BIN>EXP SYSTEM/MANAGER@HJR9 FULL=Y FILE=TEST.DMP
EXPORT: RELEASE 8.1.6.0.0 - PRODUCTION ON TUE OCT 30 08:16:33 2001
(C) COPYRIGHT 1999 ORACLE CORPORATION. ALL RIGHTS RESERVED.
CONNECTED TO: ORACLE9I ENTERPRISE EDITION RELEASE 9.0.1.1.1 - PRODUCTION
WITH THE PARTITIONING OPTION
JSERVER RELEASE 9.0.1.1.1 - PRODUCTION
EXPORT DONE IN WE8ISO8859P1 CHARACTER SET AND UTF8 NCHAR CHARACTER SET
SERVER USES WE8MSWIN1252 CHARACTER SET (POSSIBLE CHARSET CONVERSION)
ABOUT TO EXPORT THE ENTIRE DATABASE ...
. EXPORTING TABLESPACE DEFINITIONS
[SNIP]
. ABOUT TO EXPORT SYSTEM'S TABLES VIA CONVENTIONAL PATH ...
. . EXPORTING TABLE AQ$_INTERNET_AGENTS 0 ROWS EXPORTED
[SNIP]
. ABOUT TO EXPORT OUTLN'S TABLES VIA CONVENTIONAL PATH ...
. . EXPORTING TABLE OL$ 0 ROWS EXPORTED
[SNIP]
. ABOUT TO EXPORT DBSNMP'S TABLES VIA CONVENTIONAL PATH ...
. ABOUT TO EXPORT SCOTT'S TABLES VIA CONVENTIONAL PATH ...
. . EXPORTING TABLE BLAH 0 ROWS EXPORTED
. . EXPORTING TABLE DEPT 4 ROWS EXPORTED
. . EXPORTING TABLE EMP 14 ROWS EXPORTED
[SNIP]
EXPORT TERMINATED SUCCESSFULLY WITHOUT WARNINGS.
obviously, it does. So, lower versions of export can quite happily run against higher
versions of the database, but the dump file produced is a lower-version dump file. Its
also important to realise that the lower version of export may encounter new data
structures in the higher version of the database and wont have a clue as to how to deal
with them. All higher-version structures are therefore ignored during the export, and
wont get included in the dump file.
Incidentally, the rules Ive outlined here break down slightly for version 7. The version 7
export can not be run against a version 8 or higher database not unless, at any rate, you
run the catexp7.sql script provided by Oracle (and found in ORACLE_HOME/rdbms/admin)
in the version 8 or higher database first. That script creates a bunch of views which the
version 7 export utility needs to see before it can function properly.
So, to sum up: a lower version of export can be run against a higher version of the
database, but the dump file produced will be lower version compatible, ignoring any
higher version-specific features it encounters during the export. Version 7 of export is a
Copyright 息 Howard Rogers 2001 30/10/2001 Page 3 of 6
4. Export/Import with different Oracle Versions Backup and Recovery Tips
law unto itself, and requires the running of a special script in the higher version of the
database before it can work against that higher version database.
Import has its own set of rules.
First, a higher version of import has no trouble understanding the contents of a lower
version dump file (that is, a dump file produced by running a lower version of export,
regardless of the version of the database it was run against).
To prove, the point, here we see a dump file produced by version 8.1.6 of export being
successfully interpreted by a 9i version of import (which is loading into a 9i database):
D:>IMP SYSTEM/MANAGER FILE=D:ORACLEORA81BIN816.DMP FROMUSER=SCOTT
TABLES=EMP IGNORE=Y
IMPORT: RELEASE 9.0.1.1.1 - PRODUCTION ON TUE OCT 30 08:31:52 2001
(C) COPYRIGHT 2001 ORACLE CORPORATION. ALL RIGHTS RESERVED.
CONNECTED TO: ORACLE9I ENTERPRISE EDITION RELEASE 9.0.1.1.1 - PRODUCTION
WITH THE PARTITIONING OPTION
JSERVER RELEASE 9.0.1.1.1 - PRODUCTION
EXPORT FILE CREATED BY EXPORT:V08.01.06 VIA CONVENTIONAL PATH
. IMPORTING SCOTT'S OBJECTS INTO SCOTT
. . IMPORTING TABLE "EMP" 14 ROWS IMPORTED
ABOUT TO ENABLE CONSTRAINTS...
IMPORT TERMINATED SUCCESSFULLY WITHOUT WARNINGS.
But if we try running 8.1.6 against a version 9i dump file, what happens?
D:ORACLEORA81BIN>IMP SYSTEM/MANAGER@HJR816 FILE=D:9011.DMP FROMUSER=SCOTT
TABLES=EMP
IMPORT: RELEASE 8.1.6.0.0 - PRODUCTION ON TUE OCT 30 08:38:21 2001
(C) COPYRIGHT 1999 ORACLE CORPORATION. ALL RIGHTS RESERVED.
CONNECTED TO: ORACLE8I ENTERPRISE EDITION RELEASE 8.1.6.0.0 - PRODUCTION
WITH THE PARTITIONING OPTION
JSERVER RELEASE 8.1.6.0.0 - PRODUCTION
IMP-00010: NOT A VALID EXPORT FILE, HEADER FAILED VERIFICATION
IMP-00000: IMPORT TERMINATED UNSUCCESSFULLY
Clearly, the lower version of import can make no sense of the higher version dump file.
Bear in mind that it is the versions of import and the dump file that are at issue here, not
what version of the database the dump file originally came from. So, for example, using
an 8.1.6 dump file, and version 8.1.6 of import, I can import the EMP table into a 9i
database without any difficulties:
Copyright 息 Howard Rogers 2001 30/10/2001 Page 4 of 6
5. Export/Import with different Oracle Versions Backup and Recovery Tips
D:ORACLEORA81BIN>IMP SYSTEM/MANAGER@HJR9 FILE=816.DMP FROMUSER=SCOTT
TABLES=EMP
IMPORT: RELEASE 8.1.6.0.0 - PRODUCTION ON TUE OCT 30 08:44:54 2001
(C) COPYRIGHT 1999 ORACLE CORPORATION. ALL RIGHTS RESERVED.
CONNECTED TO: ORACLE9I ENTERPRISE EDITION RELEASE 9.0.1.1.1 - PRODUCTION
WITH THE PARTITIONING OPTION
JSERVER RELEASE 9.0.1.1.1 - PRODUCTION
EXPORT EXPORT:V08.01.06 VIA CONVENTIONAL PATH
FILE CREATED BY
IMPORT DONE IN WE8ISO8859P1 CHARACTER SET AND UTF8 NCHAR CHARACTER SET
IMPORT SERVER USES WE8MSWIN1252 CHARACTER SET (POSSIBLE CHARSET CONVERSION)
. IMPORTING SCOTT'S OBJECTS INTO SCOTT
. . IMPORTING TABLE "EMP" 14 ROWS IMPORTED
ABOUT TO ENABLE CONSTRAINTS...
IMPORT TERMINATED SUCCESSFULLY WITHOUT WARNINGS.
Certainly, at any rate, this works with simple User tables quite what happens when you
try using 8.1.6 import to load system tables into a higher version of the database is
anyones guess (Im not brave enough to try it out!), but I wouldnt recommend it.
The real point is that version 8.1.6 import can interpret the 8.1.6 version dump file (and
youll recall that the dump file version is governed by the export version used, not what
version database export happened to be run against).
What about using 9.0.1 version import with a 9.0.1 dump file to load into an 8.1.6
database? Well, that doesnt work:
D:>IMP SCOTT/TIGER@HJR816 TABLES=EMP FILE=9011.DMP
IMPORT: RELEASE 9.0.1.1.1 - PRODUCTION ON TUE OCT 30 09:00:10 2001
CONNECTED TO: ORACLE8I ENTERPRISE EDITION RELEASE 8.1.6.0.0 - PRODUCTION
WITH THE PARTITIONING OPTION
JSERVER RELEASE 8.1.6.0.0 - PRODUCTION
IMP-00003: ORACLE ERROR 942 ENCOUNTERED
ORA-00942: TABLE OR VIEW DOES NOT EXIST
IMP-00023: IMPORT VIEWS NOT INSTALLED, PLEASE NOTIFY YOUR DBA
IMP-00000: IMPORT TERMINATED UNSUCCESSFULLY
Whilst this version of import has no trouble reading the dump file, we encounter another
rule: that a higher version of import cannot be used to load into a lower version of the
database, even if the import version can make perfect sense of the dump file.
The net result of this entire discussion is that multi-versions of import and export dont
have to be a problem, provided you keep your wits about you. Lower versions of export
Copyright 息 Howard Rogers 2001 30/10/2001 Page 5 of 6
6. Export/Import with different Oracle Versions Backup and Recovery Tips
can be run against higher versions of databases; higher versions of import can make sense
of lower version dump files, but cant be run against a lower version of the database.
And all of that can perhaps best be summarised by the following table:
Database Export Dump File Import Version that works
Version Version Version
7.x 7.x 7.x 7.x
8.0.x 7.x(#) 7.x 8.0.x, 7.x
8.0.x 8.0.x 8.0.x,
8.1.6 7.x(#) 7.x 8.1.6, 8.0.x, 7.x
8.0.x 8.0.x 8.1.6, 8.0.x
8.1.6 8.1.6 8.1.6
8.1.7 7.x(#) 7.x 8.1.7,8.1.6,8.0.x,7.x
8.0.x 8.0.x 8.1.7,8.1.6,8.0.x
8.1.6 8.1.6 8.1.7,8.1.6
8.1.7 8.1.7 8.1.7
9.0.1 7.x(#) 7.x 9.0.1, 8.1.7,8.1.6,8.0.x,7.x
8.0.x 8.0.x 9.0.1, 8.1.7,8.1.6,8.0.x
8.1.6 8.1.6 9.0.1, 8.1.7,8.1.6
8.1.7 8.1.7 9.0.1, 8.1.7
9.0.1 9.0.1 9.0.1
(#) provided catexp7.sql is run in the database first.
Interpreting the table
Given an 8.1.7 database (the fourth main division of the table), we can use 8.1.6 to export
from it (row three in that division), thus producing an 8.1.6 dump file.
Now we locate 8.1.6 in the Dump File Version column, and see what options we have.
We could, for example, use the 8.1.6 version of import to load it into an 8.1.6
database (main division 3, row 3, only option).
Or we could use 8.1.7 import to load it into a 8.1.7 database (main division 4, row 3,
first option).
Or we could use 8.1.6 import to load it into a 9.0.1 database (main division 5, row 3,
third option).
But we cant use 9.0.1 import to load it into a 8.1.7 database (main division 4, no
rows have 9.0.1 as an import option). That would violate the rule about higher
versions of import not running against lower versions of the database.
I confess to not having tested the tables predictions for 7.x and 8.0.x (neither of which
versions run on my Windows 2000 test-bed). Perhaps youd like to try it?!
Copyright 息 Howard Rogers 2001 30/10/2001 Page 6 of 6