Lesson 3: Creating the remote database

In this lesson, you extract the remote database, and then replace the FILE message system at the remote database with the HTTP message system.

 Create the remote database
  1. From the c:\tutorial\rem directory, run the following command to create the remote database (rem):

    dbinit rem.db
  2. In this lesson, you use dbxtract to create the remote database. Run the following command to extract the database for the rem user from the consolidated database, and leave the database server for the remote database running after the extraction:

    dbxtract -xx -ac "SERVER=rem;DBN=rem;dbf=c:\tutorial\rem\rem.db;UID=DBA;PWD=sql;autostop=no" -c "SERVER=cons;DBN=cons;UID=DBA;PWD=sql" rem

    If you are not currently connected to the remote database (rem), run the following command:

     dbisql -c "SERVER=rem;DBN=rem;UID=DBA;PWD=sql"
  3. The consolidated database uses the FILE message system, so when dbxtract runs, it creates SQL Remote definitions assuming that the rem remote database also uses the FILE message system. To set the remote database to use the HTTP message system, execute the following statements on the remote database (rem) to remove the FILE message system for this remote database:

    CREATE REMOTE TYPE "FILE" ADDRESS '';
    SET REMOTE FILE OPTION public.directory='';
    SET REMOTE FILE OPTION public.debug=''; 
  4. Execute the following statements on the remote database (rem) to configure the HTTP message system for this remote database:

    CREATE REMOTE TYPE "HTTP" ADDRESS 'rem';
    GRANT CONSOLIDATE TO "cons" TYPE "HTTP" ADDRESS 'cons';
    SET REMOTE HTTP OPTION public.user_name='rem';
    SET REMOTE HTTP OPTION public.password='rem';
    SET REMOTE HTTP OPTION public.debug='yes';
    SET REMOTE HTTP OPTION public.https='no';
    SET REMOTE HTTP OPTION public.url='localhost:8033';
    COMMIT;
  5. Verify that the employees table in the remote database (rem) contains the two rows of data that existed in the consolidated database after the extraction. Execute the following statement to view the contents of the employees table:

    SELECT * FROM employees

    The query returns the following data from the employees table, although the hire_date column contains the time you inserted the row, and not the data you see in the following table:

    employee_id first_name last_name hire_date
    1 Kelly Meloy 2011-03-25 08:27:56.310
    2 Melisa Boysen 2011-03-25 08:27:56.310
  6. Disconnect from Interactive SQL.

  7. Proceed to Lesson 4: Adding and replicating data in the consolidated and remote databases.