Server On Linux Relocatable Driver Configuration

Version 1

    Occasionally you may want to change the way ODBC drivers are installed so that they are not located under /opt/tableau/tableau_driver/ or the driver location provided by the driver vendor. You can do this by moving the shared objects for the drivers to the new location can then pointing odbcinst.ini at the new location. How this is accomplished varies by driver, but here are the rough steps.

     

    Relocation of odbcinst.ini and odbc.ini

     

    odbcinst.ini and odbc.ini can be relocated by explicitly setting ODBCSYSINI for tabsvc_0.service.

     

    1. Move odbcinst.ini and odbc.ini to a user's home directory:

     

     

    > sudo mv /etc/odbcinst.ini ~

     

    > sudo mv /etc/odbc.ini ~

     

    2. Configure ODBCSYSINI in /etc/systemd/system/tabsvc_0.service:

     

     

    > sudo vi /etc/systemd/system/tabsvc_0.service

     

    [Service]

    Environment=ODBCSYSINI=/home/local/KERB/tabsrv

    > sudo systemctl daemon-reload

    > sudo systemctl restart tabsvc_0.service

    > tsm login -u username -p 'password'

    > tsm restart --request-timeout 900

     

    Note: Configuring ODBCSYSINI in ~/.bash_profile or /etc/profile won't work on this.

     

    Relocation of Linux Drivers Provided By Tableau

     

    1. Move /opt/tableau/tableau_driver to a user's home directory:

     

    > mkdir ~/drivers

    > sudo chmod 755 ~/drivers

    > sudo mv /opt/tableau/tableau_driver/ ~/drivers/

     

    2. Change a path to a database driver:

     

    [PostgreSQL]

    > sudo vi ~/odbcinst.ini

     

    [PostgreSQL Unicode]

     

    Description=ODBC for PostgreSQL

    Driver=/home/local/KERB/tabsrv/drivers/tableau_driver/postgresql-odbc/psqlodbcw.so

    FileUsage=1

     

    [MS SQL (FreeTDS)]

    > sudo vi ~/odbcinst.ini

     

    [FreeTDS]

     

    Description=FreeTDS for Microsoft SQL Server

    Driver=/home/local/KERB/tabsrv/drivers/tableau_driver/freetds/lib/libtdsodbc.so

    FileUsage=1

     

    [Essbase and Oracle]

    > sudo vi /etc/ld.so.conf.d/tableau-essbase-driver-x86_64.conf

    /home/local/KERB/tabsrv/drivers/tableau_driver/essbase/bin

     

    > sudo vi /etc/ld.so.conf.d/tableau-oracle-driver-x86_64.conf

     

    /home/local/KERB/tabsrv/drivers/tableau_driver/oracle

    > sudo ldconfig

     

    [JDBC Drivers]

     

    > tsm configuration set -k native_api.jdbc_driver_dir -v /home/local/KERB/tabsrv/drivers/tableau_driver/jdbc

     

    > tsm pending-changes apply -r

     

    Relocation of other ODBC drivers

     

    1. Install a driver in a custom location (other than /opt).

    2. Specify a path to the driver in: odbcinst.ini

     

    [Vertica]

     

    Driver=/home/local/KERB/tabsrv/drivers/vertica/lib64/libverticaodbc.so