I have 3-4 years worth of notes on proper Teradata deployment across multiple operating systems.
The topic that is too large to cover succinctly in a blog entry. I'm trying something new: document a specific situation, consolidate the facts, document diagnostic procedures and then clone the structure to cover other obiee deployments (11g and other operating systems).
Until the icon below is removed, this blog entry may be revised frequently. No construction between June 6th through June 25th.
Getting started
obiee 10g certification: pg 24-25 Teradata V2R5.1.x - V2R6.2, Client 13.10, certified 10.1.3.4.1obiee 10g documentation: Deployment Guide, Server Administration, Install/Config Guideobiee overview: teradata connectivity downloads: ( requires registration )solaris odbc drivers: sparc 13.10: Choose 13.10.00.04 ( ReadMe ) sparc 14.00: probably would work, but not certified by Oracle on 10g
I assume you have obiee 10.1.3.4.1 installed; 10.1.3.4.2 would be a better choice.
Teradata odbc install
requires root for Solaris pkgadd
Only 1 version of Teradata odbc can be installed.symbolic links to the current version are created in /usr/lib at install
obiee implementation background
database access has two types of implementation: native and odbcnative drivers use DB vendor client interfaces for accessodbc drivers are provided by the DB vendor for DB accessTeradata is an odbc interface Database.
odbc drivers require an ODBC Driver Managerobiee uses Merant Data Direct driver manager
obiee servers communicate with one another using odbc.The internal odbc driver is implemented by the obiee team and requires Merant Driver Manager.
Teradata supplies a Driver Manager, which is built by Merant, but should not be used in obiee.
The nqsserver shared library deployment looks like this
OBIEE Server<->DataDirect Manager<->Teradata Driver<->Teradata Database
nqsserver startup
$ cd $BI/setup$ . ./sa-init64.sh$ run-sa.sh autorestart64
The following files are referenced from setup: .variant.sh user.sh NQSConfig.INI DBFeatures.INI $ODBCINI ( odbc.ini ) sqlnet.ora
How does nqsserver connect to Teradata?
A teradata DSN is created in the RPD. ( TD71 )setup/odbc.ini contains:
[ODBC Data Sources] TD71=tdata.so[TD71]Driver=/opt/tdodbc/odbc/drivers/tdata.soDescription=Teradata V7.1.0DBCName=###.##.##.### LastUser=Username=northwindPassword=northwindDatabase=DefaultDatabase=northwind
setup/user.sh contains
LIBPATH\=/opt/tdicu/lib_64\:/usr/odbc/lib\:/usr/odbc/drivers\:/usr/lpp/tdodbc/odbc/drivers\:$LIBPATHexport LIBPATH
setup/.variant.sh contains
if [ "$ANA_SERVER_64" = "1" ]; then ANA_BIN_DIR=${SAROOTDIR}/server/Bin64 ANA_WEB_DIR=${SAROOTDIR}/web/bin64 ANA_ODBC_DIR=${SAROOTDIR}/odbc/lib64
setup/sa-run.sh contains
. ${ANA_INSTALL_DIR}/setup/.variant.sh. ${ANA_INSTALL_DIR}/setup/user.sh logfile="${SAROOTDIR}/server/Log/nqsserver.out.log"${ANA_BIN_DIR}/nqsserver -quiet >> ${logfile} 2>&1 & nqsserver is running:
nqsserver produces $BI/server/nqsserver.logAt startup, the native database drivers connect and record DB versions.tdata.so is not loaded until a Teradata DB connection is attempted.
Teradata odbc client installation
Accept all the defaults for pkgadd. Install in /opt.
$ mkdir odbc$ cd odbc$ gzip -dc ../tdodbc__solaris_sparc.13.10.00.04.tar.gz | tar -xf -
$ sudo su# pkgadd -d . TeraGSS# pkgadd -d . tdicu1310# pkgadd -d . tdodbc1310
Directory Notes:
/opt/teradata/client/13.10/odbc_64/lib/tdata.soThe 64-bit obiee library loaded by nqsserver.
/opt/teradata/client/13.10/odbc_64/lib is not needed in LD_LIBRARY_PATH
/opt/teradata/client/13.10/tdicu/lib64is needed in LD_LIBRARY_PATH
/usr/odbc should not be referenced; it is a link to 32-bit libraries
LD_LIBRARY_PATH_64 should not be used.
Useful bash functions and aliases
export SAROOTDIR=/export/home/dw_adm/OracleBIexport TERA_HOME=/opt/teradata/client/13.10 export ORACLE_HOME=/export/home/oracle/product/10.2.0/clientexport ODBCINI=$SAROOTDIR/setup/odbc.iniexport TD_ICU_DATA=$TERA_HOME/tdicu/lib64alias cds="alias | grep '^alias cd' | sed 's/^alias //' | sort"alias cdtd="cd $TERA_HOME; ls" alias cdtdodbc="cd $TERA_HOME/odbc_64; ls -l"alias cdtdicu="cd $TERA_HOME/tdicu/lib64; ls -l"alias cdbi="cd $SAROOTDIR; ls"alias cdbiodbc="cd $SAROOTDIR/odbc; ls -l"alias cdsetup="cd $SAROOTDIR/setup; ls -ltr"alias cdsvr="cd $SAROOTDIR/server; ls"alias cdrep="cd $SAROOTDIR/server/Repository; ls -ltr"alias cdsvrcfg="cd $SAROOTDIR/server/Config; ls -ltr"alias cdsvrlog="cd $SAROOTDIR/server/Log; ls -ltr"alias cdweb="cd $SAROOTDIR/web; ls"alias cdwebconfig="cd $SAROOTDIR/web/config; ls -ltr"alias cdoci="cd $ORACLE_HOME; ls"pkgfiles() { pkgchk -l $1 | awk '/^Pathname/ {print $2}'; }pkgfind() { pkginfo | egrep -i $1 ; }
Examples:
$ pkgfind td$ pkgfiles tdodbc1310 | grep 64$ cds$ cdtdodbc$ cdsetup$ cdsvrlog$ cdweblog