I have written two scripts for migration, first: export only the definitions of database objects and second: export the rows. But I need to split the dump-file on size up to 2 GB, because Oracle doesn't understand dump-files more than 2 GB. But I don't know how to do this in Oracle 8.0.6. In Oracle 9i or 10g there are such parameters like FILESIZE. This parameter allows you to split a file on small size. And, how can I connect to a database like "internal," without inputting the password and username like "/as sysdba" in 9i or 10g?
mknod exp.pipe p
gzip < exp.pipe > exp.dmp.gz &
exp file=exp.pipe full=y ……
The trick above works because the exp utility writes to a pipe which is never more than a few bytes in size. The pipe just passes data to the gzip utility. To import, you can simply unzip the file and import with the 10.2 imp utility. Or, you can use the pipe as follows:
gunzip < exp.dmp.gz > exp.pipe &
imp file=exp.pipe full=y …
When done, you can remove the pipe like any other file. This works on Unix/Linux platforms. If using Windows, you can implement the same by implementing Cygwin.
In Oracle 9i+, there is no more INTERNAL user. But you can "connect / as sysdba" without a password in SQL*Plus. With the exp/imp utilities, you can specify 'username="/ as sysdba"'.
This was first published in May 2008