1 IMPORT ___________________________ Note _________________________________ The RDO IMPORT command does not support new features introduced in Oracle Rdb V6.0 and higher. The RDO IMPORT command displays the following warning: %RDO-W-UNSIMPORT, RDO IMPORT does not support all DEC Rdb features, please use SQL IMPORT __________________________________________________________________ The RDO IMPORT statement replaces the RDO RESTORE statement. The IMPORT statement restructures an intermediate (RBR) file to a database (RDB) file according to the parameters you specify. An EXPORT statement translates the definitions and data in a database into an intermediate form in a special type of RMS sequential file called an interchange file. The IMPORT statement reads the records in the interchange file and uses them to create an Oracle Rdb database. The RMU/DUMP/EXPORT command can be used to view the contents of an interchange file. 2 More You must have the Oracle Rdb ADMINISTRATOR privilege to use the IMPORT statement. Use the EXPORT and IMPORT statements to: o Restructure an Oracle Rdb single-file database into a multifile database o Restructure a multifile database o Migrate a database from one DSRI-compliant database management system to another o Create a version-independent copy of the database for archiving purposes o Create an empty target database that uses the same data definitions as a source database by copying the metadata, but not the data, to the target database o Change database and storage area characteristics that you cannot change with the CHANGE DATABASE statement The IMPORT and EXPORT statements are not intended for regular backups of the database. For regular backups and restorations of Oracle Rdb databases, use the RMU/BACKUP and RMU/RESTORE commands. The IMPORT operation leaves you attached to the database, with a database handle equal to the name of the database. 2 Format (B)0IMPORT q> interchange-file-spec q> INTO qqq> database-file-spec qqk lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqwqqwqqwqqqqqqqq>qqqqqqwq> . x tq> invoke-options qqqqqqqqqqqqqqqu x mq> END IMPORT qj x tqwqwq> db-wide-options-1 qwqwqqqqu x x x x mq> db-wide-options-2 qj x x x x x mqqqqqqqqqq storage-area-options qqqqqqqqqu x x tq> import-options qqqqqqqqqqqqqqqu x x mq> metadata-options qqqqqqqqqqqqqj x mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqwqqqqqqqqqqqqqqqqq> tqqqqq> DB_HANDLE IS qqqqqqq> db-handle qqqqqqqu mqqqqq> DBKEY SCOPE IS qqwqq> COMMIT qqqwqqqqqqj mqq> FINISH qqqj 4 db-handle A host language variable or name that you associate with the database. Use a database handle when you are accessing more than one database at a time. 4 COMMIT During the session of the user who entered IMPORT, specifies that the database key of each record used is guaranteed not to change during each transaction this user may execute. 4 FINISH During the session of this user who entered IMPORT, specifies that the database key of each record used is guaranteed not to change until this user ends the RDO session or executes a FINISH statement. 3 db-wide-options-1 These options are the same database wide options that are available with the DEFINE DATABASE statement. (B)0db-wide-options-1 = qqwq> IN qqqqqq> path-name qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqwq tq> COLLATING_SEQUENCE IS sequence-name qqk x x lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj x x mqwqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqwqq> ncs-name qqk x x mq> DESCRIPTION IS qq> /* text */ qqj x x x lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj x x mqwqqqqqqqqqqqqqqqqqqqqqqqwqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqu x mq> FROM library-name qqj x tq> DESCRIPTION IS qqqqqqq> /* text */ qqqqqqqqqqqqqqqqqqqqqqqqqqu tq> NUMBER OF USERS IS qq> number-users qqqqqqqqqqqqqqqqqqqqqqqqqu tq> NUMBER OF BUFFERS IS qqqqq> number-buffers qqqqqqqqqqqqqqqqqqu tq> NUMBER OF qqwqq> CLUSTER qqqqwq> NODES IS qq> number-nodes qqu x mqq> VAXCLUSTER qj x tq> NUMBER OF RECOVERY BUFFERS IS qqq> recovery-buffers qqqqqqqqqu mq> global-buffer-params qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj 4 path-name The data dictionary path name for the dictionary path name where the database definition is stored. Use this qualifier to store the data dictionary definitions for the database in a data dictionary entity other than the default path, which is defined by the name of the database file. 4 COLLATING_SEQUENCE Specifies a collating sequence to be used for all fields in the database. Sequence-name is a name of your choosing; use this sequence-name in any subsequent statements that refer to this collating sequence. The OpenVMS National Character Set (NCS) Utility provides a set of pre-defined collating sequences and also lets you define collating sequences of your own. The COLLATING_SEQUENCE clause accepts both pre-defined and user-defined NCS collating sequences. If you do not specify a collating sequence, the default is ASCII (shown as "no collating sequence" in some displays). 4 ncs-name Specifies the name of a collating sequence in the default NCS library, SYS$LIBRARY:NCS$LIBRARY, or in the NCS library specified by the argument library-name. (In most cases, it is probably simplest to make the sequence-name the same as the ncs-name: for example, COLLATING_SEQUENCE IS FRENCH FRENCH.) You can view the collating sequence names by using the command NCS/LIST at DCL level. The collating sequence can be either one of the pre-defined NCS collating sequences or one that you have defined yourself using NCS. 4 text Provides a comment for a collating sequence or database being defined. 4 library-name Specifies the name of an NCS library other than the default. The default NCS library is SYS$LIBRARY:NCS$LIBRARY. 4 number-users The maximum number of users allowed to access the database at one time. The default is 50 users. The largest number of users you can specify is 2032, and the fewest number of users is 1. 4 number-buffers The number of buffers Oracle Rdb allocates per process using this database. Specify an unsigned integer between 2 and 32768. The default is 20 buffers. 4 number-nodes The NUMBER OF CLUSTER NODES is clause and the NUMBER OF VAXCLUSTER NODES is clause have exactly the same effect. The option of using NUMBER OF CLUSTER NODES has been added to reflect the fact that Oracle Rdb can run on different hardware platforms (in addition to VAXclusters). Sets the upper limit on the maximum number of nodes in the cluster from which users can access the shared database. The default is 16 nodes. The range is 1 node to 96 nodes. The actual maximum limit is the current cluster limit. 4 recovery-buffers The number of database buffers used during the automatic recovery process that is initiated after a system or process failure. This recovery process uses the recovery-unit journal file. Specify an unsigned integer between 2 and 32768. The default is 20 buffers. 4 global-buffer-params (B)0global-buffer-params= q> GLOBAL BUFFERS ARE qwq> ENABLED qqwqk mq> DISABLED qj x lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqwqq> mq> ( qq> NUMBER IS number-glo-buffers qq> , qk x lqqqqqqqqqqqqqqq USER LIMIT IS max-glo-buffers qq> ) qqqqqj 5 GLOBAL_BUFFERS The GLOBAL BUFFERS ARE ENABLED clause specifies that Oracle Rdb maintain one global buffer pool per node in the cluster for each database. By default, Oracle Rdb maintains a local buffer pool for each user. For more than one user to use the same page, each must read it from disk into their local buffer pool. When the GLOBAL BUFFERS ARE ENABLED clause has been specified, a page in the global buffer pool may be read by more than one user at the same time, although only one user reads the page from disk into the global buffer pool. Global buffering provides improved performance because I/O is reduced and memory is better utilized. The default is GLOBAL BUFFERS ARE DISABLED, in which Oracle Rdb maintains a local buffer pool for each user, and global buffers are not enabled. 5 NUMBER When global buffers are enabled, the NUMBER IS clause is used to specify the default number of global buffers per node. In database parameter syntax, a user designates an attach to the database, not a person who uses the database. The default number of global buffers is the maximum number of users multiplied by 5. (In the RDO syntax for database parameters, a user is the same as an attach.) You can override the default by defining a value for the logical name RDM$BIND_ BUFFERS. Although you can change the NUMBER IS parameter online, the change will only take effect the next time that the database is opened. By default, a database can be opened automatically (that is, by any user who invokes the database and executes a data manipulation language statement). If the database was modified so that it must be manually opened, the RMU/OPEN command must be used to open it. 5 USER_LIMIT The USER LIMIT clause specifies the maximum number of global buffers each user allocates. Because global buffer pools are shared by all users, you must define an upper limit on how many global buffers a single user can allocate. This limit prevents a user from defining the RDM$BIND_BUFFERS to use all the buffers in the global buffer pool. The user limit cannot be greater then the total number of global buffers. The default is 5. See the Oracle Rdb Guide to Database Performance and Tuning for information on determining the maximum number of global buffers a user can allocate. Although you can change the USER LIMIT IS parameter online, the change will only take effect the next time that the database is opened. By default, a database can be opened automatically (that is, by any user who invokes the database and executes a data manipulation language statement). If the database was modified so that it must be manually opened, the RMU/OPEN command must be used to open it. 3 db-wide-options-2 These options are the same database wide options that are available with the DEFINE DATABASE statement. (B)0db-wide-options-2 = qwq> BUFFER SIZE IS qqqqq> buffer-blocks qq> BLOCKS qqqqqqwq> tq> ADJUSTABLE LOCK GRANULARITY IS qwqqq> ENABLED qqqwqqqu x mqqq> DISABLED qqj x tq> SNAPSHOT IS qqqqwqqqqq> ENABLED qwqq> IMMEDIATE qwqwqu x x mqq> DEFERRED qqj x x x mqqqqq> DISABLED qqqqqqqqqqq>qqqqqqj x tq> DICTIONARY IS qqqwqqq> REQUIRED qqqqqqqwqqqqqqqqqqqqqu x tqqq> NOT REQUIRED qqqu x x tqqq> USED qqqqqqqqqqqu x x mqqq> NOT USED qqqqqqqj x tq> CARRY OVER LOCKS ARE qqwq> ENABLED qwqqqqqqqqqqqqqqqqu x mq> DISABLED j x mq> LOCK TIMEOUT INTERVAL IS number-seconds SECONDS qqqqqj 4 buffer-blocks The number of blocks Oracle Rdb allocates per buffer. Specify an unsigned integer greater than zero. If you do not specify this parameter, Oracle Rdb uses a buffer size that is three times the PAGE SIZE value. 4 ADJUSTABLE_LOCK The ADJUSTABLE LOCK GRANULARITY clause enables or disables adjustable locking granularity. Generally, enabling adjustable locking granularity results in fewer locks being used. However, when contention for database pages is high, performance may be impaired as locking granularity is adjusted to a lower level. If your application is query intensive, enable adjustable locking granularity. If your application processes specific records and performs a substantial number of update operations, you might want to disable adjustable locking granularity. Disabling adjustable locking granularity may require that the OpenVMS SYSGEN parameters for locks be increased. 4 ENABLED-IMMEDIATE The default, ENABLED IMMEDIATE causes read/write transactions to write copies of records to the the snapshot file before those records are modified, regardless of whether a read-only transaction is active. If you use the SNAPSHOT IS ENABLED clause to enable snapshots on a multifile database, writing to all snapshot files for all storage areas is enabled. 4 ENABLED-DEFERRED Specifies that read/write transactions not write copies of records they modify to the snapshot file unless a read-only transaction is active. Read-only transactions that attempt to start after an active read/write transaction begins must wait for all active read/write users to complete their transactions. If you use the SNAPSHOT IS ENABLED clause to enable snapshots on a multifile database, writing to all snapshot files for all storage areas is enabled. 4 DISABLED Disables snapshot transactions. If you use the SNAPSHOT IS DISABLED clause to disable snapshots on a multifile database, writing to all snapshot files for all storage areas is disabled. 4 DICTIONARY The DICTIONARY IS [NOT] REQUIRED clause determines whether the database must be invoked by path name for data definition changes to occur. If you specify the DICTIONARY IS REQUIRED option, the database must be invoked by path name to change metadata and the data dictionary will be maintained. If you specify the DICTIONARY IS NOT REQUIRED option, the database can be invoked by either file name or path name to change metadata. The default is DICTIONARY IS NOT REQUIRED. The DICTIONARY IS [NOT] USED clause determines whether the definition of the database and definitions of database elements will be stored in the data dictionary. If you specify the DICTIONARY IS USED option, the definition of the database and definitions of database elements will be stored in the data dictionary. If you specify the DICTIONARY IS NOT USED option, no definitions will be stored in the data dictionary. The default is DICTIONARY IS USED. You receive an error message if you specify incompatible options, such as the DICTIONARY IS REQUIRED option and the DICTIONARY IS NOT USED option. 4 CARRY_OVER_LOCKS The carry-over locks option is a database-wide parameter that allows you to disable carry-over lock optimization. This optimization is enabled by default. Although this is an advantage in more environments, it can result in false lock conflicts in some applications. The carry-over locks optimization holds area and record locks across transactions and depends on NOWAIT transactions asking for and acquiring the NOWAIT lock. This can result in long delays if concurrent users are executing long verbs. You should consider disabling the carry-over locks optimization if transactions experience noticeable delays in acquiring the NOWAIT lock (as seen in the output of the RMU/SHOW STATISTICS command). Note that if you do disable the carry-over locks option, there may be some performance degradation because transactions will acquire and release area and top level ALG locks for every transaction. 4 LOCK_TIMEOUT Specifies the number of seconds for processes to wait during a lock conflict before timing out. The number of seconds can be between one and 65,000. Sets the default database lock timeout interval. This is the database wide timeout interval. It is used as the default as well as the upper limit in determining the timeout interval to use. For example, if LOCK TIMEOUT INTERVAL IS 25 SECONDS is specified with the CHANGE DATABASE or DEFINE DATABASE statement, and a user specifies 30 seconds with the SQL SET TRANSACTION WAIT 30 statement or sets the logical name RDM$BIND_LOCK_TIMEOUT_INTERVAL to 30, RDO would still use the interval of 25 specified with the LOCK TIMEOUT INTERVAL clause. 3 storage-area-options These options are the same storage-area-options that are available with the DEFINE DATABASE statement. (B)0storage-area-options = qwwqqqqqqqqqqqqqqqqqqqqqqqqqqq>qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqwwq> xtqq> ALLOCATION IS qqq> number-pages qqqq>qqqqqqqqq PAGES qqqqux xtqq> PAGE SIZE IS qqqq> page-blocks qqqqq>qqqqqqqqq BLOCKS qqqux xtqq> PAGE FORMAT IS qqwqqqq> UNIFORM qqqqwqqqqqqqqqqqqqqqqqqqqux xx mqqqq> MIXED qqqqqqj xx xtqq> THRESHOLDS ARE q> ( q> val1 wqqqqqqqqqqqqqqqqqqqqwq> ) qqux xx m> ,val2 wqqqqqqqqqwqj xx xx m> ,val3 qj xx xtqq> INTERVAL IS qqqqqqq> number-data-pages qqqqqqqqqqqqqqqqqqux xtqq> SNAPSHOT_FILENAME IS qqqq> file-spec qqqqqqqqqqqqqqqqqqqqux xtqq> SNAPSHOT ALLOCATION IS qqq> snp-pages qqq> PAGES qqqqqqqqux xtwq> SNAPSHOT EXTENT IS qwqqwq> extent-pages qqqq> PAGES qwqqqux xxmq> EXTENT IS qqqqqqqqqqj mq> extension-options qqqqqqqqj xx xmqq> WRITE_ONCE qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqjx mqqqqqqqqqqqqqqqqqqqqqqqqqqqq ( qqq> MINIMUM OF qq> min-pages qqq> PAGES, qk lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj mqq> MAXIMUM OF qq> max-pages qq> PAGES,qk lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj mqq> PERCENT GROWTH IS qqq> growth qqqq> ) qqq> 5 min-pages Specifies the minimum number of pages of each extent. The default is 99 pages. 5 max-pages Specifies the maximum number of pages of each extent. The default is 9,999 pages. 5 growth Specifies the percent growth of each extent. The default is 20 percent growth. 3 import-options (B)0import-options = qwqwqqqqqqqqqqqqq>qqqqqqqqqqqwqwqq> x tqwqq> ACL qqqqqqqqqqqqwqqu x x x mqq> NOACL qqqqqqqqqqj x x x tqwqq> BATCH_UPDATE qqqwqqu x x x mqq> NOBATCH_UPDATE qj x x x tqwqq> CDD_LINKS qqqqqqwqqu x x x mqq> NOCDD_LINKS qqqqj x x x tqwqq> DATA qqqqqqqqqqqwqqu x x x mqq> NODATA qqqqqqqqqj x x x mqwqq> TRACE qqqqqqqqqqwqqj x x mqq> NOTRACE qqqqqqqqj x mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqwqwqq> x tq> define-storage-map-statement qqqqqqqqqqqqqqqqqqqqqqqqqqqu x x tq> delete-storage-map-statement qqqqqqqqqqqqqqqqqqqqqqqqqqqu x x tq> define-storage-area-clause qqqqqqqqqqqqqqqqqqqqqqqqqqqqqu x x tq> DELETE STORAGE AREA qqqqqqqqqqqqqq> storage-area-name qqu x x tq> SEGMENTED STRING STORAGE AREA IS q> storage-area-name qqu x x tq> define-index-statement qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqu x x mq> delete-index-statement qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj x mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq map-name qqqqqqqqk lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqwqqqqqqqqqqqqk mq> DESCRIPTION IS /* text */ qqj x lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj mqqq> FOR qqq> relation-map-clause qqqqqqqqqqqqqqk lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq END qwqqqqqqq>qqqqqqqwqq> STORAGE MAP qq> mq> map-name qqqj This statement defines a new storage map replaces the definition of an existing storage map contained in the interchange file. For more information on the DEFINE_STORAGE_MAP statement, see the top-level help topic DEFINE_STORAGE_MAP. 4 delete-storage-map (B)0delete-storage-map-statement = DELETE STORAGE MAP qqqqq> map-name qqqqq> This statement prevents use of a storage map definition from the interchange file. The relation that would have used the storage map definition is placed in the system default storage area. For more information on the DELETE_STORAGE_MAP statement, see the top-level help topic DELETE_STORAGE_MAP. 4 define-storage-area (B)0define-storage-area-clause = qqqq> DEFINE STORAGE AREA qqwqqqq> storage-area-name qqqqwqqqqqqk mqqqq> RDB$SYSTEM qqqqqqqqqqqj x lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq FILENAME qqqqq> file-spec qqwqqqqqqqqqqqq>qqqqqqqqqqqqqwqqqk mq> storage-area-options qqj x lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq END qqqqqqqwqqqqqqqqqq>qqqqqqqqqqqwq> STORAGE AREA qqqq> tq> storage-area-name qu mq> RDB$SYSTEM qqqqqqqqj The define-storage-area-clause adds a new storage area or replaces the definition of an existing storage area contained in the interchange file. For more information on the define-storage-area-clause, see the help topic for DEFINE_DATABASE Format define-storage-area. 4 DELETE_STORAGE_AREA Prevents a storage area that was defined in the interchange file from being created in the new database. You must also delete or redefine all storage maps and indexes that refer to this storage area. You cannot delete the RDB$SYSTEM storage area. 4 SEGMENTED_STRING The name of the storage area that will hold all segmented strings. You can only specify the SEGMENTED STRING STORAGE AREA clause in a multifile database. In a multifile database, if you do not explicitly define a storage area for segmented strings, they will be stored in the default storage area (RDB$SYSTEM). The page format for the segmented string storage area can be UNIFORM or MIXED. However, Rdb recommends that if you store segmented strings in a MIXED storage area, the storage area contain only segmented strings. 4 define-index (B)0DEFINE_INDEX name wqqqqqqqqqqqqqqq>qqqqqqqqqqqqwq> FOR relation-name qk m> DESCRIPTION IS /* text */ j x lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqwqqqqwqqqqqqqqqqq>qqqqqqqqqqqqwqqqqqqqk m> duplicates-clause j m> index-storage-clause qj x lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqwqqqqqqqqqqqqqqqqqqqqqqqqqqqwqqk tq> TYPE IS qqwqqq> HASHED qqqj x x x mqqq> SORTED qq> sorted-index-param-list qqqu x mqqqqqqqqqqqqqq> sorted-index-param-list qqqqqqqqqqqqqqqqqj x lqqqqqqqqqqqqqqqqqqqqqqqqq . field-name qqwqwqqqqqqqqqqqqqqqqqq>qqqqqqqqqqqqqqqqwqwqqwqk x x t> ASCENDING qqqqqqqqqqqqqqqqqqqqqqqu x x x x x t> DESCENDING qqqqqqqqqqqqqqqqqqqqqqu x x x x x t> SIZE IS n qqqqqqqqqqqqqqqqqqqqqqqu x x x x x m> MAPPING VALUES lo-val TO hi-val qj x x x x mqqqqqqqqqqqqqqqqqqqq END wqqq>qqqqw> INDEX q> mq> name j This statement defines a new index or replaces an existing index definition contained in the interchange file. For more information on the DEFINE INDEX statement, see the top level help topic DEFINE_INDEX. 4 delete-index (B)0delete-index-statement = DELETE INDEX qq> index-name qq> This statement prevents creation of an index defined in the interchange file. For more information on the DELETE INDEX statement, see the top- level help topic DELETE_INDEX. 2 Examples Example 1 The following example imports a database. It also specifies the number of buffers and the length of each buffer in the imported database: RDO> IMPORT cont> 'DISK1:PERSONNEL.RBR' cont> INTO 'DEPT3:NEW_PERSONNEL' cont> NUMBER OF BUFFERS IS 10 cont> BUFFER SIZE IS 10 BLOCKS cont> END IMPORT. Example 2 The following example imports a database without including its data. The NODATA option with the IMPORT statement creates an Oracle Rdb database whose metadata is identical to the metadata in the intermediate RBR file. RDO> IMPORT cont> 'DISK1:PERSONNEL.RBR' cont> INTO 'DEPT3:NEW_PERSONNEL' cont> NODATA cont> END IMPORT. Example 3 The following example imports a database from a magnetic tape. $ MOUNT MUA0: _Label: PERS _Log name: $ RDO RDO> IMPORT cont> 'MUA0:PERSONNEL' INTO cont> 'DEPT3:PERSONNEL' cont> END IMPORT. This statement reads the export copy of the database from the magnetic tape volume labeled PERS, mounted on device MUA0:. It creates a new database in DEPT3:PERSONNEL.RDB, where DEPT3 is a logical name for a device and directory. Example 4 The following example uses the RMU/DUMP command to check the current value of the node count, and then uses the IMPORT statement with the NUMBER CLUSTER NODES clause to lower the node count parameter. In this case, the Local Area cluster contains 22 nodes; the default maximum for the CLUSTER NODES parameter is 16. This example sets the upper limit of user access from VAX nodes at 20. $ RMU/DUMP ACCTING . . . Maximum node count is 22 . . . $ RDO RDO> EXPORT ACCTING.RDB INTO ACCOUNTING_TEST.RBR RDO> IMPORT ACCOUNTING_TEST.RBR INTO ACCOUNTING_TEST.RDB cont> NUMBER OF CLUSTER NODES IS 20 cont> END IMPORT. Example 5 The following example uses the IMPORT statement to restructure a single-file database into a multifile database. This example does not include all the storage areas and storage maps that are in the sample multifile MF_PERSONNEL database. $ RDO ! ! Invoke a command file that has the IMPORT statement in it ! RDO> @IMPORT_PERS.RDO ! ! IMPORT 'DISK$BACK:PERSONNEL.RBR' INTO 'DB_DISK:MULTI_PERSONNEL.RDB' ! ! Specify database-wide characteristics ! NUMBER OF USERS IS 40 NUMBER CLUSTER NODES 12 SNAPSHOT IS ENABLED IMMEDIATE DICTIONARY IS REQUIRED NUMBER RECOVERY BUFFERS 200 ! ! ! Specify global defaults to override Oracle Rdb defaults ! for all storage areas ! ALLOCATION IS 500 PAGES PAGE FORMAT IS MIXED THRESHOLDS ARE (55,65,75) INTERVAL IS 300 ! ! ! Define the default storage area ! DEFINE STORAGE AREA RDB$SYSTEM FILENAME IS DISK1:PERS_DEFAULT PAGE FORMAT IS UNIFORM SNAPSHOT_FILENAME IS DISK2:PERS_DEFAULT END RDB$SYSTEM STORAGE AREA ! ! ! Define storage area for segmented strings ! DEFINE STORAGE AREA PERS_SEGSTR FILENAME IS DISK1:PERS_SEGSTR PAGE FORMAT IS MIXED SNAPSHOT_FILENAME IS DISK2:PERS_SEGSTR END PERS_SEGSTR STORAGE AREA ! ! Put the segmented strings in the named storage area ! SEGMENTED STRING STORAGE AREA IS PERS_SEGSTR ! ! ! Define other storage areas ! Storage area parameters specified within the DEFINE STORAGE AREA ! clause override the global defaults, and the Oracle Rdb defaults ! DEFINE STORAGE AREA EMPIDS_LOW FILENAME IS DISK3:EMPIDS_LOW SNAPSHOT_FILENAME IS DISK4:EMPIDS_LOW END EMPIDS_LOW STORAGE AREA ! ! DEFINE STORAGE AREA EMPIDS_MID FILENAME IS DISK5:EMPIDS_MID SNAPSHOT_FILENAME IS DISK6:EMPIDS_MID END EMPIDS_MID STORAGE AREA ! ! DEFINE STORAGE AREA EMPIDS_OVER FILENAME IS DISK7:EMPIDS_OVER SNAPSHOT_FILENAME IS DISK8:EMPIDS_OVER END EMPIDS_OVER STORAGE AREA ! ! DEFINE STORAGE AREA EMP_INFO FILENAME IS DISK1:EMP_INFO ! Local definition overrides the global default THRESHOLDS ARE (65,75,85) INTERVAL IS 400 SNAPSHOT_FILENAME IS DISK2:EMP_INFO END EMP_INFO STORAGE AREA ! ! ! DEFINE INDEX EMPLOYEES_HASH DESCRIPTION IS /* hashed index for employees relation */ FOR EMPLOYEES STORE USING EMPLOYEE_ID WITHIN EMPIDS_LOW WITH LIMIT OF "00200"; EMPIDS_MID WITH LIMIT OF "00500"; EMPIDS_OVER TYPE IS HASHED. EMPLOYEE_ID. END EMPLOYEES_HASH INDEX ! ! DEFINE STORAGE MAP EMP_MAP DESCRIPTION IS /* Employees records partitioned by EMPLOYEE_ID */ FOR EMPLOYEES RELATION STORE USING EMPLOYEE_ID WITHIN EMPIDS_LOW WITH LIMIT OF "00200"; EMPIDS_MID WITH LIMIT OF "00500"; EMPIDS_OVER PLACEMENT VIA INDEX EMPLOYEES_HASH END EMP_MAP STORAGE MAP ! ! ! End the IMPORT statement ! END IMPORT. Example 6 The following example shows how to use the DICTIONARY IS NOT USED clause to prevent metadata from being written to the data dictionary. The IMPORT statement creates a database called RALLY$COMMERCE. Because the DICTIONARY IS NOT USED clause is specified, no metadata is written to the data dictionary during the IMPORT operation. RDO> IMPORT RALLY$COMMERCE.RBR INTO RALLY$COMMERCE cont> NOCDD LINKS cont> NOACL cont> DICTIONARY IS NOT REQUIRED cont> DICTIONARY IS NOT USED cont> END IMPORT. Example 7 If you use the IMPORT statement to restructure a data dictionary, be sure to use the DICTIONARY IS NOT USED clause to prevent RDO from using the dictionary in any way: RDO> IMPORT CDDPLUS.RBR INTO CDD$DATABASE cont> DICTIONARY IS NOT USED . . . cont> END IMPORT.