Installing Oracle and ArcSDE on separate servers

If you are installing the ArcSDE application server on a different server than Oracle, there are additional steps you must take to setup a geodatabase. These include installing and configuring the Oracle client on the ArcSDE server, copying shared libraries from the ArcSDE server to the Oracle server, configuring the EXTPROC to find the libraries, and setting the TWO_TASK or LOCAL environment variable on the ArcSDE server.

Steps:
  1. Make sure Oracle is installed and running on a server.
  2. Install ArcSDE on the ArcSDE server as described in the topics Installing ArcSDE for Oracle on Linux or UNIX or Installing ArcSDE for Oracle on Windows.
  3. Install the Oracle client software on the server where ArcSDE is installed and configure it to connect to the Oracle database.
  4. Ensure that you can access the remote Oracle database using SQL from the client server.
  5. Configure the Oracle database, adding an sde user and Setting variables for the sde OS user on Linux or UNIX if necessary.
  6. Copy the st_shape shared library used by EXTPROC to the Oracle server. If you plan to use the ST_Raster storage type, also copy the libst_raster_ora shared library to the Oracle server. The exact names of these files vary depending on what operating system (OS) you are using. The complete names for each supported OS are listed in Table 1.

    Be sure the files copied to the Oracle server are designed to run on the operating system of the Oracle server. For example, if ArcSDE is installed on a Linux machine, but Oracle is installed on a Solaris machine, the library files you copy to the Oracle server must be for Solaris. To get the files for a different operating system, you can install the software files of the ArcSDE component on the Oracle server, creating the SDEHOME files, and delete everything but the required library files.

    Or, if your Oracle database is installed on a Windows server, you can copy the libraries from the bin directory of ArcGIS Desktop. Just be sure ArcGIS Desktop is at the same release as ArcSDE you are using.

    Table 1

    Library name

    OS-dependent file names

    ST_Shape

    st_shapelib.dll (Windows), libst_shapelib.so (Solaris, Linux, and HP-UX Itanium), or libst_shapelib_64.so (IBM)

    ST_Raster

    NoteNote:

    ST_Raster installation is optional. See Installing the ST_Raster type in Oracle for instructions if you want to use this type.

    libst_raster_ora.dll (Windows), libst_raster_ora.so (Solaris, Linux, and HP-UX Itanium), or libst_raster_ora_64.so (IBM)

    These files can be found in the bin (Windows) or lib (UNIX/Linux) directory of SDEHOME after you have installed ArcSDE. You can copy these files to the ORACLE_HOME\bin (Windows) or ORACLE_HOME/bin (UNIX/Linux) directory on the Oracle server, which is the default location that Oracle searches for shared libraries. Or, you can move these files into any directory that is accessible to the user that owns ORACLE_HOME.

  7. The library definition in the Oracle data dictionary must be updated with the correct library path to the file containing st_shapelib and libst_raster_ora. The path must point to the location on the Oracle server, not to the ArcSDE installation location.
    NoteNote:

    Altering the definition of the library path invalidates package bodies that refer to it, so the package bodies of some ArcSDE stored procedure packages should be recompiled using Oracle.

  8. Create the Oracle library entries for these ArcSDE libraries with the following SQL command as the ArcSDE administrative user (the sde user).

    For Windows servers, substitute the path to the libraries for <full_path> and execute the following commands:

    CREATE OR REPLACE LIBRARY st_shapelib AS '<full_path>\st_shapelib.dll' 
    CREATE OR REPLACE LIBRARY libst_raster AS '<full_path>\libst_raster_ora.dll'

    For UNIX or Linux servers, substitute the path to the libraries for <full_path>, provide the correct library names, and execute the following commands:

    CREATE OR REPLACE LIBRARY st_shapelib AS '<full_path>/libst_shapelib.so'
    CREATE OR REPLACE LIBRARY libst_raster AS '<full_path>/libst_raster_ora.so'

    NoteNote:

    The exact name of the library on UNIX platforms varies. See Table 1 for the correct name of the library for the operating system you are using.

  9. Configure the Oracle EXTPROC so it can find the st_shapelib and libst_raster_ora libraries. This is done in the listener configuration file, listener.ora, and tnsnames.ora file on the database server.
    1. Add the following entry in the tnsnames.ora on the remote database server:

      EXTPROC_CONNECTION_DATA =
        (DESCRIPTION = 
        (ADDRESS_LIST = 
          (ADDRESS = 
           (PROTOCOL = IPC)
            (KEY = extproc)  
           ) 
         ) 
          (CONNECT_DATA = 
           (SID = PLSExtProc) 
            (PRESENTATION = RO) 
           ) 
        ) 

    2. Add the following entry to the SID_LIST in listener.ora on the remote database server:

      On Windows servers

      SID_LIST_LISTENER = 
       (SID_LIST =   
        (SID_DESC = 
         (SID_NAME = PLSExtProc) 
         (ORACLE_HOME =<ORACLE_HOME_PATH>) 
         (PROGRAM = extproc)
          (ENVS="EXTPROC_DLLS=<full_lib_path>\st_shapelib.dll;<full_lib_path>\libst_raster_ora.dll")  
         )
        )

      Notice that the entries for the st_shapelib and libst_raster_ora libraries are separated by a semicolon.

      On UNIX or Linux servers

      SID_LIST_LISTENER =
       (SID_LIST = 
        (SID_DESC = 
          (SID_NAME = PLSExtProc) 
          (ORACLE_HOME =<ORACLE_HOME_PATH>) 
          (PROGRAM = extproc)
             (ENVS="EXTPROC_DLLS=<full_lib_path>/libst_shapelib.so:<full_lib_path>\libst_raster_ora.so,LD_LIBRARY_PATH=<full_lib_path>")   
         )
        )

      NoteNote:

      The path variable (shown as LD_LIBRARY_PATH in the example) differs depending on your operating system. For HP-UX Itanium, the variable is SHLIB_PATH. For IBM AIX, it is LIBPATH.

      And, as previously mentioned, the library names vary depending on the operating system. Be sure to use the correct library name.

  10. Restart the Oracle listener.
  11. Be sure the sde user has the permissions required to create a geodatabase.
  12. Perform the ArcSDE postinstallation steps as described in the topics relevant to each OS. For Windows servers, see Creating a geodatabase in Oracle on Windows and Authorizing ArcSDE geodatabases in Oracle on Windows. For Linux or UNIX servers, see Creating a geodatabase in Oracle on Linux or UNIX and Authorizing ArcSDE geodatabases in Oracle on Linux or UNIX.
  13. Set up an ArcSDE service if you are going to use one to connect to the geodatabase. Depending on the operating system where ArcSDE is installed, do one of the following:
  14. For the Oracle client on the ArcSDE server to connect to a remote instance, an environment variable must be set to identify the remote Oracle instance through the net service name.
    • If the ArcSDE server is on UNIX or Linux, set TWO_TASK to the Oracle net service name in the $SDEHOME/etc/dbinit.sde file. The ORACLE_HOME variable must also be set.
    • If the ArcSDE server is on Windows, set LOCAL to the Oracle net service name in the %SDEHOME%\etc\dbinit.sde file.

    You could use the TWO_TASK or LOCAL variable to specify the Net Service Name of a local Oracle database. However, this is not recommended, because it results in additional overhead when making a connection to the database. For local connections, you should use the Oracle_SID.

  15. Set the TNS_ADMIN variable if the tnsnames.ora file is not stored in the default location.

Related Topics


11/18/2013