This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Upgrading the Teradata Data Warehouse Protector

This section outlines the upgrade process for the Protegrity Teradata Data Warehouse Protector.

1 - Upgrading the Protector on Single Node

The Teradata Data Warehouse Protector build provides an automated script to manage the upgrade process. The master script internally calls the scripts to install and upgrade the components. The master script installs and upgrades the components in the following order:

  1. Log Forwarder
  2. RPAgent
  3. Policy Enforcement Point (Database Protector)

The master script is available in the directory where the installation files are extracted. It provides the following arguments:

  • install - installs the components in an interactive mode.
  • upgrade - installs a newer version of the protector with minimal downtime.
  • silent - installs the components in a non-interactive mode.
  • install.ini - installs the components as per the parameters provided in the file.
  • help - lists the arguments available for the script.

During the upgrade process, the master script:

  1. Verifies the existing configuration.
  2. Creates a backup of the existing configuration.
  3. Stops the required services.
  4. Drops the existing UDFs.
  5. Installs the new version.
  6. Starts the required services.
  7. Creates the new UDFs and retains the existing configuration.

In addition, the master script will rollback the upgrade process if any errors are encountered. The script will revert the changes and restore the previous working version of the Teradata Data Warehouse Protector.

Important: The automation script will be unable to handle the UDTs and Decimal objects. If UDTs and Decimal objects are present in the database, these must be handled manually.

Viewing the Arguments for the Script

  1. Log in to the server as the user with the required permissions.
  2. Navigate to the directory containing the extracted files and the installation scripts.
  3. To view the arguments, run the following command:
    ./Install_TeradataProtector_Linux_x64_<DBP_version>.sh --help
    
  4. Press ENTER. The script lists the available arguments.
     Usage: ./Install_TeradataProtector_Linux_x64_<DBP_version>.sh [--install | --upgrade] [--silent] [--install-ini <file>] [--help]
    
     Options:
     --install    Use this option when installing the solution for the first time on a machine/host.
                 (i.e., there is no previous installation present)
    
     --upgrade    Use this option when upgrading an existing installation on the machine/host.
    
     --install-ini <file>    (Optional) Provide a path to an install.ini file for silent or pre-configured installations.
                             This option works with --install only.
                             It must not be used with --upgrade or --silent.
                             You can pass this either as:
                             --install-ini /path/to/install.ini
                             or
                             --install-ini=/path/to/install.ini
                             Refer to the product documentation for details about the configuration options available in install.ini.
                             The documentation describes all supported keys, required fields, and example configurations.
     --silent    (Optional) Runs the installation/upgrade in silent mode with minimum interactive prompts.
    
     --help, -h  Display this help message and exit.
    

Upgrading the Protector using the Interactive Mode

Note: For installation/upgrade using the automation script, the component will be installed/upgraded within a <DBP_version> folder under the specified directory.

  1. Log in to the server as the user with the required permissions.
  2. Navigate to the directory containing the extracted files and the installation scripts.
  3. To upgrade the protector, run the following command:
    ./Install_TeradataProtector_Linux_x64_<DBP_version>.sh --upgrade
    
  4. Press ENTER. The script performs pre-checks before starting the upgrade. The prompt to select the silent mode of installation appears.
     2026-05-04 03:45:05 - [INFO] ========================================================================
     2026-05-04 03:45:05 - [INFO] Starting environment pre-checks before installation/upgrade
     2026-05-04 03:45:05 - [INFO] ========================================================================
    
     2026-05-04 03:45:05 - [INFO] Prerequisites check passed: pcl and bteq commands are available on current/running node
     2026-05-04 03:45:05 - [INFO] Checking Teradata PDE state on running node...
     2026-05-04 03:45:05 - [INFO] PDE state check passed on running node: PDE state is RUN/STARTED
     2026-05-04 03:45:05 - [INFO] Checking accessibility of all Teradata nodes...
     2026-05-04 03:45:05 - [INFO] IMPORTANT: ALL nodes must be accessible - if even 1 node is down, installation will be aborted
     2026-05-04 03:45:05 - [INFO] ==========================================
     2026-05-04 03:45:05 - [INFO] Node accessibility check PASSED
     2026-05-04 03:45:05 - [INFO] All 1 node(s) have connected
    
     <---------------------  localhost  -------------------------------->
     td20sles15
     2026-05-04 03:45:05 - [INFO] ==========================================
    
     2026-05-04 03:45:05 - [INFO] ========================================================================
     2026-05-04 03:45:05 - [INFO] All environment pre-checks PASSED - proceeding with installation
     2026-05-04 03:45:05 - [INFO] ========================================================================
    
     2026-05-04 03:45:05 - [INFO] If silent mode is selected, the default base directory (/opt/protegrity) will be used as the location of the existing installation for each component (Logforwarder, RPAgent and DatabaseProtector).
     Do you want silent installation? (yes/no) [no]:
    
  5. To install the components using the interactive mode, type no.
  6. Press ENTER. The prompt to enter the location of the existing installation appears.
    Enter existing installation directories:
    
    Existing LogForwarder installation directory [/opt/protegrity]:
    
  7. Enter the directory path where the existing version of the Log Forwarder is installed.
  8. Press ENTER. The prompt to enter RPAgent installation directory appears.
    Existing RPAgent installation directory [/opt/protegrity]:
    
  9. Enter the directory path where the existing version of the RPAgent is installed.
  10. Press ENTER. The prompt to enter the Database Protector installation directory appears.
    Existing DatabaseProtector installation directory [/opt/protegrity]:
    
  11. Enter the directory path where the existing version of the Database Protector is installed.
  12. Press ENTER. The prompt to select a single installation directory for the components appears.
    Do you want to install the new LogForwarder, RPAgent, and DatabaseProtector together in a single directory? (yes/no) [no]:
    
  13. To install the new components in a single directory, type yes.
  14. Press ENTER. The prompt to enter the new installation directory appears.
    Enter new installation directory [/opt/protegrity]:
    
  15. Enter the location to install the components.
  16. Press ENTER. The prompt to confirm the presence of decimal UDFs appears.
    2026-05-04 03:45:23 - [INFO] Verifying previous installation directories for all components...
    2026-05-04 03:45:23 - [INFO] Existing LogForwarder directory: /opt/protegrity/<DBP_version>/logforwarder
    2026-05-04 03:45:23 - [INFO] Existing RPAgent directory: /opt/protegrity/<DBP_version>/rpagent
    2026-05-04 03:45:23 - [INFO] Existing DatabaseProtector directory: /opt/protegrity/<DBP_version>/databaseprotector
    2026-05-04 03:45:23 - [INFO] All existing component directories verified successfully.
    
    2026-05-04 03:45:40 - [INFO] Checking for Protegrity UDT in previous installation...
    2026-05-04 03:45:40 - [INFO] No UDT PLM file found at expected path. Checking Teradata libraries...
    2026-05-04 03:45:40 - [INFO] No Teradata library links to pepteradataudt. UDT not active.
    2026-05-04 03:45:40 - [INFO] No active Protegrity UDT detected. Proceeding with upgrade.
    
    2026-05-04 03:45:40 - [INFO] Protegrity Decimal UDF objects are not supported by this script
    Have you created Protegrity Decimal UDF objects in your previous installation? (yes/no) [no]:
    
  17. To confirm that the previous installation does not contain any decimal UDF, type no.
  18. Press ENTER. The script prompts to create the UDFs. The prompt to enter the database credentials appears.
    2026-05-04 03:45:47 - [INFO] No Protegrity Decimal UDF objects present. Proceeding with upgrade.
    Do you want to continue and create UDFs?
    To create the UDFs, provide the database credentials  (yes/no) [no]: 
    
  19. To create the UDFs, type yes.
  20. Press ENTER. The prompt to enter the database username appears.
    Enter Teradata database username:
    
  21. Enter the username.
  22. Press ENTER. The prompt to enter the database password appears.
    Enter Teradata database user's password:
    
  23. Enter the password.
  24. Press ENTER. The prompt to enter the database name to install the UDF appears.
    Enter name of database where the UDFs will be installed [PROTEGRITY]:
    
  25. Enter the database name to install the UDFs.
  26. Press ENTER. The prompt to specify the maximum size of varchar to be allocated by the UDFs appears.
    Enter the maximum size of varchar to be allocated by the UDFs [500]:
    
  27. Enter the maximum size of varchar to be allocated by the UDFs.
  28. Press ENTER. The script validates the database and lists the configuration. The prompt to verify the configuration appears.
    2026-05-04 03:46:02 - [INFO] Validating database ...
    2026-05-04 03:46:23 - [INFO] Database validated successfully
    
    2026-05-04 03:46:23 - [INFO] **************************************************************************
    2026-05-04 03:46:23 - [INFO] Upgrade will be done with following configuration:
    2026-05-04 03:46:23 - [INFO] Mode: upgrade
    2026-05-04 03:46:23 - [INFO] Existing Logforwarder Installation Directory: /opt/protegrity/<DBP_version>
    2026-05-04 03:46:23 - [INFO] Existing RPAgent Installation Directory: /opt/protegrity/<DBP_version>
    2026-05-04 03:46:23 - [INFO] Existing DatabaseProtector Installation Directory: /opt/protegrity/<DBP_version>
    2026-05-04 03:46:23 - [INFO] New Logforwarder Installation Directory: /opt/protegrity/<DBP_version>
    2026-05-04 03:46:23 - [INFO] New RPAgent Installation Directory: /opt/protegrity/<DBP_version>
    2026-05-04 03:46:23 - [INFO] New DatabaseProtector Installation Directory: /opt/protegrity/<DBP_version>
    2026-05-04 03:46:23 - [INFO] Audit Store Endpoints: <IP_Address>:9200 <IP_Address>:9200
    2026-05-04 03:46:23 - [INFO] Upstream (ESA) Hostname or IP Address for RPAgent: <ESA_Hostname>
    2026-05-04 03:46:23 - [INFO] Upstream (ESA) Port for RPAgent: 25400 (Default)
    2026-05-04 03:46:23 - [INFO] This is an upgrade.
    2026-05-04 03:46:23 - [INFO] Previous installations will be backed up before upgrade.
    2026-05-04 03:46:23 - [INFO] Existing Logforwarder and RPAgent configurations will be retained
    2026-05-04 03:46:23 - [INFO] **************************************************************************
    2026-05-04 03:46:23 - [WARN] **************************************************************************
    2026-05-04 03:46:23 - [WARN] IMPORTANT: Any queries currently running may be impacted during upgrade.
    2026-05-04 03:46:23 - [WARN] It is recommended to perform the upgrade during a maintenance window.
    2026-05-04 03:46:23 - [WARN] **************************************************************************
    
    2026-05-04 03:46:23 - [INFO] Please verify the above configuration before proceeding.
    Do you want to continue? (yes/no) [no]:
    
  29. To proceed with the configuration, type yes.
  30. Press ENTER. The script drops the existing UDFs, creates the new ones, and completes the upgrade.
    2026-05-04 03:46:28 - [INFO] Continuing with upgrade...
    2026-05-04 03:46:28 - [INFO] Backing up /opt/protegrity/<DBP_version>/logforwarder to /opt/protegrity/<DBP_version>/logforwarder_backup_<Timestamp>...
    2026-05-04 03:46:29 - [INFO] Backup of /opt/protegrity/<DBP_version>/logforwarder completed successfully
    2026-05-04 03:46:29 - [INFO] Backing up /opt/protegrity/<DBP_version>/rpagent to /opt/protegrity/<DBP_version>/rpagent_backup_<Timestamp>...
    2026-05-04 03:46:29 - [INFO] Backup of /opt/protegrity/<DBP_version>/rpagent completed successfully
    2026-05-04 03:46:29 - [INFO] Backing up /opt/protegrity/<DBP_version>/databaseprotector to /opt/protegrity/<DBP_version>/databaseprotector_backup_<Timestamp>...
    2026-05-04 03:46:29 - [INFO] Backup of /opt/protegrity/<DBP_version>/databaseprotector completed successfully
    2026-05-04 03:46:29 - [INFO] Backing up /etc/protegrity to /etc/protegrity_backup_<Timestamp>...
    2026-05-04 03:46:29 - [INFO] Backup of /etc/protegrity completed successfully
    2026-05-04 03:46:29 - [INFO] Installing/Upgrading LOGFORWARDER...
    2026-05-04 03:46:29 - [INFO] Executing ./LogforwarderSetup_Linux_x64_<DBP_version>.sh...
    Unpacking...
    Extracting files...
    
    Protegrity Log Forwarder installed in /opt/protegrity/<DBP_version>/logforwarder.
    
    2026-05-04 03:46:30 - [INFO] Retaining existing Logforwarder configuration...
    2026-05-04 03:46:30 - [INFO] Logforwarder configuration retained successfully.
    2026-05-04 03:46:30 - [INFO] ./LogforwarderSetup_Linux_x64_<DBP_version>.sh completed successfully.
    2026-05-04 03:46:30 - [INFO] Installing/Upgrading RPAGENT...
    2026-05-04 03:46:30 - [INFO] Executing ./RPAgentSetup_Linux_x64_<DBP_version>.sh...
    Unpacking...
    Extracting files...
    
    Since --nocert was provided certificates are not downloaded automatically.
    
    Protegrity RPAgent installed in /opt/protegrity/<DBP_version>/rpagent.
    
    2026-05-04 03:46:30 - [INFO] Retaining existing RPAgent configuration...
    2026-05-04 03:46:30 - [INFO] RPAgent configuration retained successfully.
    2026-05-04 03:46:30 - [INFO] ./RPAgentSetup_Linux_x64_<DBP_version>.sh completed successfully.
    2026-05-04 03:46:30 - [INFO] Old Logforwarder port: 15780 ? New Logforwarder port: 15781
    2026-05-04 03:46:30 - [INFO] Configuring new Logforwarder to listen on port 15781
    2026-05-04 03:46:30 - [INFO] Logforwarder listen port updated to 15781 in /opt/protegrity/<DBP_version>/logforwarder/data/config.d/in_tcp.conf
    2026-05-04 03:46:30 - [INFO] Configuring RPAgent to send logs to Logforwarder port 15781
    2026-05-04 03:46:30 - [INFO] RPAgent rpagent.cfg updated to use Logforwarder port 15781
    2026-05-04 03:46:30 - [INFO] Copying Logforwarder and RPAgent to all nodes in the Teradata cluster
    2026-05-04 03:46:30 - [INFO] Copying Logforwarder and RPAgent components to all nodes
    2026-05-04 03:46:30 - [INFO] Creating installation directories on all nodes if not present
    All 1 node(s) have connected
    All 1 node(s) have connected
    All 1 node(s) have connected
    All 1 node(s) have connected
    2026-05-04 03:46:31 - [INFO] Copying Logforwarder directory /opt/protegrity/<DBP_version>/logforwarder to all nodes
    All 1 node(s) have connected
    localhost:1022: send completed: 57934861 bytes received (10 files/7 directories)
    All 1 node(s) have connected
    All 1 node(s) have connected
    2026-05-04 03:46:34 - [INFO] Logforwarder successfully copied to all nodes
    2026-05-04 03:46:34 - [INFO] Copying RPAgent directory /opt/protegrity/<DBP_version>/rpagent to all nodes
    All 1 node(s) have connected
    localhost:1022: send completed: 14787481 bytes received (10 files/3 directories)
    All 1 node(s) have connected
    All 1 node(s) have connected
    2026-05-04 03:46:34 - [INFO] RPAgent successfully copied to all nodes
    2026-05-04 03:46:34 - [INFO] Logforwarder and RPAgent successfully copied to all nodes
    2026-05-04 03:46:34 - [INFO] Starting new Logforwarder on all nodes
    All 1 node(s) have connected
    
    <---------------------  localhost  -------------------------------->
    Fluent Bit v4.2.2-1.5.1+0.gdfa6.fb-4.2
    * Copyright (C) 2015-2025 The Fluent Bit Authors
    * Fluent Bit is a CNCF graduated project under the Fluent organization
    * https://fluentbit.io
    
    ______ _                  _    ______ _ _             ___   _____
    |  ___| |                | |   | ___ (_) |           /   | / __  \
    | |_  | |_   _  ___ _ __ | |_  | |_/ /_| |_  __   __/ /| | `' / /'
    |  _| | | | | |/ _ \ '_ \| __| | ___ \ | __| \ \ / / /_| |   / /
    | |   | | |_| |  __/ | | | |_  | |_/ / | |_   \ V /\___  |_./ /___
    \_|   |_|\__,_|\___|_| |_|\__| \____/|_|\__|   \_/     |_(_)_____/
    
                Fluent Bit v4.2   Direct Routes Ahead
            Celebrating 10 Years of Open, Fluent Innovation!
    
    [2026/05/04 03:46:35.331405405] [ info] switching to background mode (PID=6571)
    Log Forwarder started, PID (6571) written to PID file /opt/protegrity/<DBP_version>/logforwarder/bin/fluent-bit.pid
    
    2026-05-04 03:46:37 - [INFO] Preparing Database Protector installation...
    2026-05-04 03:46:37 - [INFO] In-place upgrade detected - backup at /opt/protegrity/<DBP_version>/databaseprotector_backup_<Timestamp> will be used for SQL scripts if needed
    2026-05-04 03:46:37 - [INFO] Installing/Upgrading DBP...
    2026-05-04 03:46:37 - [INFO] Executing ./PepTeradataSetup_Linux_x64_<DBP_version>.sh...
    *****************************************************
    Welcome to the Database Protector Setup Wizard
    *****************************************************
    
    This will install the teradata objects on your computer
    Do you want to continue? [yes or no]
    Enter installation directory.
    A new directory will be created in the installation directory.
    [/opt/protegrity]:
    Unpacking...
    Extracting files...
    Enter name of database where the UDFs will be installed.
    [PROTEGRITY]:
    Enter maxmimum size of varchar to be allocated by the UDFs.
    NOTE: This is the maximum varchar size allocated by the UDFs
        for latin as well as unicode character set.
        Larger size will affect the performance !!!
        Some applications can also have issues with larger size,
        such as BTEQ, SQL Assistant.
    [500]:
    ***********BUFFER LENGTH INITIALIZATION**************
    UDF VARCHAR MAX INPUT BUFFER LENGTH (TOKENIZATION)  :  500  Latin characters
    UDF VARCHAR MAX OUTPUT BUFFER LENGTH (TOKENIZATION) :  676  Latin characters
    UDF VARCHAR MAX INPUT BUFFER LENGTH (ENCRYPTION)    :  500  Latin characters
    UDF VARCHAR MAX OUTPUT BUFFER LENGTH (ENCRYPTION)   :  538  Bytes
    UDF VARCHAR_UNICODE MAX INPUT BUFFER LENGTH (TOKENIZATION)  :  500  UNICODE characters
    UDF VARCHAR_UNICODE MAX OUTPUT BUFFER LENGTH (TOKENIZATION) :  1356  UNICODE characters
    UDF VARCHAR_UNICODE MAX INPUT BUFFER LENGTH (ENCRYPTION)    :  500  UNICODE characters
    UDF VARCHAR_UNICODE MAX OUTPUT BUFFER LENGTH (ENCRYPTION)   :  1038  Bytes
    
    teradata objects installed in /opt/protegrity/<DBP_version>/databaseprotector/teradata.
    
    2026-05-04 03:46:38 - [INFO] Retaining existing Database Protector configuration...
    2026-05-04 03:46:39 - [INFO] Database Protector configuration retained successfully.
    2026-05-04 03:46:39 - [INFO] ./PepTeradataSetup_Linux_x64_<DBP_version>.sh completed successfully.
    2026-05-04 03:46:39 - [INFO] Configuring DBP to send logs to Logforwarder port 15781
    2026-05-04 03:46:39 - [INFO] DBP config.ini updated to use Logforwarder port 15781
    2026-05-04 03:46:39 - [INFO] Copying DatabaseProtector to all nodes
    All 1 node(s) have connected
    localhost:1022: send completed: 8926088 bytes received (16 files/5 directories)
    All 1 node(s) have connected
    All 1 node(s) have connected
    2026-05-04 03:46:40 - [INFO] Setting DatabaseProtector ownership (tdatuser:tdtrusted) on all nodes
    All 1 node(s) have connected
    2026-05-04 03:46:40 - [INFO] DatabaseProtector successfully copied to all nodes
    2026-05-04 03:46:40 - [INFO] Synchronizing /etc/protegrity to all nodes
    All 1 node(s) have connected
    All 1 node(s) have connected
    localhost:1022: send completed: 1157 bytes received (1 files/1 directories)
    All 1 node(s) have connected
    All 1 node(s) have connected
    All 1 node(s) have connected
    2026-05-04 03:46:41 - [INFO] User configuration directory successfully synchronized to all nodes
    2026-05-04 03:46:41 - [INFO] Dropping existing UDFs (database operation on current node only - shared across all nodes)
    2026-05-04 03:46:41 - [INFO] In-place upgrade: Using SQL scripts from backup: /opt/protegrity/<DBP_version>/databaseprotector_backup_<Timestamp>/teradata/sqlscripts
    BTEQ 20.00.00.05 (64-bit) Mon May  4 03:47:02 2026 PID: 9325
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .SET EXITONDELAY ON MAXREQTIME 300 RC 12
    +---------+---------+---------+---------+---------+---------+---------+----
    .logon localhost/<database_user_name>,
    
    *** Logon successfully completed.
    *** Teradata Database Release is 20.00.22.31
    *** Teradata Database Version is 20.00.22.31
    *** Transaction Semantics are BTET.
    *** Session Character Set Name is 'ASCII'.
    
    *** Total elapsed time was 20 seconds.
    
    +---------+---------+---------+---------+---------+---------+---------+----
    database <database_name>;
    
    *** New default database accepted.
    *** Total elapsed time was 1 second.
    
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .IF ERRORCODE <> 0 THEN .QUIT 12;
    +---------+---------+---------+---------+---------+---------+---------+----
    .run file /opt/protegrity/<DBP_version>/databaseprotector_backup_<Timestamp>
    /teradata/sqlscripts/dropobjects.sql;
    +---------+---------+---------+---------+---------+---------+---------+----
    2026-05-04 03:47:48 - [INFO] Main UDFs dropped successfully
    BTEQ 20.00.00.05 (64-bit) Mon May  4 03:47:48 2026 PID: 9877
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .SET EXITONDELAY ON MAXREQTIME 300 RC 12
    +---------+---------+---------+---------+---------+---------+---------+----
    .logon localhost/<database_user_name>,
    
    *** Logon successfully completed.
    *** Teradata Database Release is 20.00.22.31
    *** Teradata Database Version is 20.00.22.31
    *** Transaction Semantics are BTET.
    *** Session Character Set Name is 'ASCII'.
    
    *** Total elapsed time was 20 seconds.
    
    +---------+---------+---------+---------+---------+---------+---------+----
    database <database_name>;
    
    *** New default database accepted.
    *** Total elapsed time was 1 second.
    
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .run file /opt/protegrity/<DBP_version>/databaseprotector_backup_<Timestamp>
    /teradata/sqlscripts/dropvarcharunicode.sql;
    +---------+---------+---------+---------+---------+---------+---------+----
    
    2026-05-04 03:48:10 - [INFO] Varchar unicode UDFs dropped successfully
    2026-05-04 03:48:11 - [INFO] Stopping existing RPAgent on all nodes
    Stopping rpagent
    2026-05-04 03:48:12 - [INFO] Starting new RPAgent on all nodes
    Starting rpagent
    2026-05-04 03:48:12 - [INFO] Successfully launched new RPAgent on all nodes
    2026-05-04 03:48:12 - [INFO] Creating new UDFs (database operation on current node only - shared across all nodes)
    BTEQ 20.00.00.05 (64-bit) Mon May  4 03:48:12 2026 PID: 9988
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .SET EXITONDELAY ON MAXREQTIME 300 RC 12
    +---------+---------+---------+---------+---------+---------+---------+----
    .logon localhost/<database_user_name>,
    
    *** Logon successfully completed.
    *** Teradata Database Release is 20.00.22.31
    *** Teradata Database Version is 20.00.22.31
    *** Transaction Semantics are BTET.
    *** Session Character Set Name is 'ASCII'.
    
    *** Total elapsed time was 20 seconds.
    
    +---------+---------+---------+---------+---------+---------+---------+----
    database <database_name>;
    
    *** New default database accepted.
    *** Total elapsed time was 1 second.
    
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .IF ERRORCODE <> 0 THEN .QUIT 12;
    +---------+---------+---------+---------+---------+---------+---------+----
    .run file /opt/protegrity/<DBP_version>/databaseprotector/teradata/sqlscripts/c
    reateobjects.sql;
    +---------+---------+---------+---------+---------+---------+---------+----
    
    2026-05-04 03:49:04 - [INFO] Creating varcharunicode UDFs
    BTEQ 20.00.00.05 (64-bit) Mon May  4 03:49:04 2026 PID: 10724
    2026-05-04 03:49:28 - [INFO] Varcharunicode UDFs created successfully
    2026-05-04 03:49:28 - [INFO] Testing UDFs
    BTEQ 20.00.00.05 (64-bit) Mon May  4 03:49:28 2026 PID: 10805
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .SET EXITONDELAY ON MAXREQTIME 300 RC 12
    +---------+---------+---------+---------+---------+---------+---------+----
    .logon localhost/<database_user_name>,
    
    *** Logon successfully completed.
    *** Teradata Database Release is 20.00.22.31
    *** Teradata Database Version is 20.00.22.31
    *** Transaction Semantics are BTET.
    *** Session Character Set Name is 'ASCII'.
    
    *** Total elapsed time was 20 seconds.
    
    +---------+---------+---------+---------+---------+---------+---------+----
    database <database_name>;
    
    *** New default database accepted.
    *** Total elapsed time was 1 second.
    
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .IF ERRORCODE <> 0 THEN .QUIT 12;
    +---------+---------+---------+---------+---------+---------+---------+----
    select pty_getversion();
    
    *** Query completed. One row found. One column returned.
    *** Total elapsed time was 1 second.
    
    pty_getversion()
    ---------------------------------------------------------------------------
    <DBP_version>
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .logoff
    *** You are now logged off from the <database_user_name>.
    +---------+---------+---------+---------+---------+---------+---------+----
    .quit
    *** Exiting BTEQ...
    *** RC (return code) = 0
    2026-05-04 03:49:49 - [INFO] Stopping existing Logforwarder on all nodes
    All 1 node(s) have connected
    
    <---------------------  localhost  -------------------------------->
    Stopping Log Forwarder with PID: 6571
    Please Wait
    
    2026-05-04 03:49:54 - [INFO] Removing previous installation directories
    2026-05-04 03:49:54 - [INFO] Pruning old Teradata library versions on all nodes
    2026-05-04 03:49:54 - [WARN] Installed version directory not found: /opt/protegrity/<DBP_version>/databaseprotector/teradata/lib/<DBP_version>
    2026-05-04 03:49:54 - [INFO] Synchronizing pruned Database Protector directory to all nodes
    All 1 node(s) have connected
    localhost:1022: send completed: 8926088 bytes received (16 files/5 directories)
    All 1 node(s) have connected
    All 1 node(s) have connected
    2026-05-04 03:49:55 - [INFO] User configuration backup removed: /etc/protegrity_backup_<Timestamp>
    2026-05-04 03:49:55 - [INFO] Upgrade successful.
    2026-05-04 03:49:55 - [INFO] All components upgraded successfully.
    
    2026-05-04 03:49:55 - [INFO] IMPORTANT: This script doesn't handle Protegrity UDT, it must be handled manually. Refer to product documentation.
    2026-05-04 03:49:55 - [INFO] IMPORTANT: This script doesn't handle Protegrity Decimal UDF objects, it must be handled manually. Refer to product documentation.
    

Upgrading the Protector using the Silent Mode

Note: For installation/upgrade using the automation script, the component will be installed/upgraded within a <DBP_version> folder under the specified directory.

  1. Log in to the server as the user with the required permissions.
  2. Navigate to the directory containing the extracted files and the installation scripts.
  3. To upgrade the protector, run the following command:
    ./Install_TeradataProtector_Linux_x64_<DBP_version>.sh --upgrade
    
  4. Press ENTER. The script performs pre-checks before starting the upgrade. The prompt to select the silent mode of installation appears.
     2026-05-04 05:09:26 - [INFO] ========================================================================
     2026-05-04 05:09:26 - [INFO] Starting environment pre-checks before installation/upgrade
     2026-05-04 05:09:26 - [INFO] ========================================================================
    
     2026-05-04 05:09:26 - [INFO] Prerequisites check passed: pcl and bteq commands are available on current/running node
     2026-05-04 05:09:26 - [INFO] Checking Teradata PDE state on running node...
     2026-05-04 05:09:26 - [INFO] PDE state check passed on running node: PDE state is RUN/STARTED
     2026-05-04 05:09:26 - [INFO] Checking accessibility of all Teradata nodes...
     2026-05-04 05:09:26 - [INFO] IMPORTANT: ALL nodes must be accessible - if even 1 node is down, installation will be aborted
     2026-05-04 05:09:26 - [INFO] ==========================================
     2026-05-04 05:09:26 - [INFO] Node accessibility check PASSED
     2026-05-04 05:09:26 - [INFO] All 1 node(s) have connected
    
     <---------------------  localhost  -------------------------------->
     td20sles15
     2026-05-04 05:09:26 - [INFO] ==========================================
    
     2026-05-04 05:09:27 - [INFO] ========================================================================
     2026-05-04 05:09:27 - [INFO] All environment pre-checks PASSED - proceeding with installation
     2026-05-04 05:09:27 - [INFO] ========================================================================
    
     2026-05-04 05:09:27 - [INFO] If silent mode is selected, the default base directory (/opt/protegrity) will be used as the location of the existing installation for each component (Logforwarder, RPAgent and DatabaseProtector).
     Do you want silent installation? (yes/no) [no]:
    
  5. To install the components using the silent mode, type yes.
  6. Press ENTER. The prompt to confirm the presence of decimal UDF installation appears.
     2026-05-04 05:09:30 - [INFO] You have chosen silent mode. Therefore, /opt/protegrity is considered as base directory for new installation.
     2026-05-04 05:09:31 - [INFO] This is an upgrade and you have chosen silent mode. Therefore, /opt/protegrity is considered as base directory for existing installation.
     2026-05-04 05:09:31 - [INFO] Verifying previous installation directories for all components...
     2026-05-04 05:09:31 - [INFO] Existing LogForwarder directory: /opt/protegrity/<DBP_version>/logforwarder
     2026-05-04 05:09:31 - [INFO] Existing RPAgent directory: /opt/protegrity/<DBP_version>/rpagent
     2026-05-04 05:09:31 - [INFO] Existing DatabaseProtector directory: /opt/protegrity/<DBP_version>/databaseprotector
     2026-05-04 05:09:31 - [INFO] All existing component directories verified successfully.
    
     2026-05-04 05:09:31 - [INFO] Checking for Protegrity UDT in previous installation...
     2026-05-04 05:09:31 - [INFO] No UDT PLM file found at expected path. Checking Teradata libraries...
     2026-05-04 05:09:31 - [INFO] No Teradata library links to pepteradataudt. UDT not active.
     2026-05-04 05:09:31 - [INFO] No active Protegrity UDT detected. Proceeding with upgrade.
    
     2026-05-04 05:09:31 - [INFO] Protegrity Decimal UDF objects are not supported by this script
     Have you created Protegrity Decimal UDF objects in your previous installation? (yes/no) [no]:
    
  7. To confirm that the previous installation does not contain decimal UDFs, type no.
  8. Press ENTER. The script prompts to create the UDFs. The prompt to enter the database credentials appears.
    2026-05-04 05:09:35 - [INFO] No Protegrity Decimal UDF objects present. Proceeding with upgrade.
    Do you want to continue and create UDFs?
    To create the UDFs, provide the database credentials  (yes/no) [no]:
    
  9. To create the UDFs, type yes.
  10. Press ENTER. The prompt to enter the database username appears.
    Enter Teradata database username:
    
  11. Enter the username.
  12. Press ENTER. The prompt to enter the database password appears.
    Enter Teradata database user's password:
    
  13. Enter the password. The script lists the current configuration and the prompt to proceed with the configuration appears.
    2026-05-04 05:09:44 - [INFO] Silent upgrade: Using previous database name to install the UDFs: <database_name>
    2026-05-04 05:09:44 - [INFO] Silent upgrade: Using previous maximum size of varchar to be allocated by the UDFs: 500
    2026-05-04 05:09:44 - [INFO] Validating database ...
    2026-05-04 05:10:04 - [INFO] Database validated successfully
    
    2026-05-04 05:10:04 - [INFO] **************************************************************************
    2026-05-04 05:10:04 - [INFO] Upgrade will be done with following configuration:
    2026-05-04 05:10:04 - [INFO] Mode: upgrade
    2026-05-04 05:10:04 - [INFO] Existing Logforwarder Installation Directory: /opt/protegrity/<DBP_version>
    2026-05-04 05:10:04 - [INFO] Existing RPAgent Installation Directory: /opt/protegrity/<DBP_version>
    2026-05-04 05:10:04 - [INFO] Existing DatabaseProtector Installation Directory: /opt/protegrity/<DBP_version>
    2026-05-04 05:10:04 - [INFO] New Logforwarder Installation Directory: /opt/protegrity/<DBP_version>
    2026-05-04 05:10:04 - [INFO] New RPAgent Installation Directory: /opt/protegrity/<DBP_version>
    2026-05-04 05:10:04 - [INFO] New DatabaseProtector Installation Directory: /opt/protegrity/<DBP_version>
    2026-05-04 05:10:04 - [INFO] Audit Store Endpoints: <IP_Address>:9200 <IP_Address>:9200
    2026-05-04 05:10:04 - [INFO] Upstream (ESA) Hostname or IP Address for RPAgent: <ESA_Hostname>
    2026-05-04 05:10:04 - [INFO] Upstream (ESA) Port for RPAgent: 25400 (Default)
    2026-05-04 05:10:04 - [INFO] This is an upgrade.
    2026-05-04 05:10:04 - [INFO] Previous installations will be backed up before upgrade.
    2026-05-04 05:10:04 - [INFO] Existing Logforwarder and RPAgent configurations will be retained
    2026-05-04 05:10:04 - [INFO] **************************************************************************
    2026-05-04 05:10:04 - [WARN] **************************************************************************
    2026-05-04 05:10:04 - [WARN] IMPORTANT: Any queries currently running may be impacted during upgrade.
    2026-05-04 05:10:04 - [WARN] It is recommended to perform the upgrade during a maintenance window.
    2026-05-04 05:10:04 - [WARN] **************************************************************************
    
    2026-05-04 05:10:04 - [INFO] Please verify the above configuration before proceeding.
    Do you want to continue? (yes/no) [no]:
    
  14. To upgrade the protector using the configuration, type yes.
  15. Press ENTER. The script upgrades the Log Forwarder, RPAgent, the protector, and the UDFs and completes the installation.
    2026-05-04 05:10:13 - [INFO] Continuing with upgrade...
    2026-05-04 05:10:13 - [INFO] Backing up /opt/protegrity/<DBP_version>/logforwarder to /opt/protegrity/<DBP_version>/logforwarder_backup_<timestamp>...
    2026-05-04 05:10:14 - [INFO] Backup of /opt/protegrity/<DBP_version>/logforwarder completed successfully
    2026-05-04 05:10:14 - [INFO] Backing up /opt/protegrity/<DBP_version>/rpagent to /opt/protegrity/<DBP_version>/rpagent_backup_<timestamp>...
    2026-05-04 05:10:14 - [INFO] Backup of /opt/protegrity/<DBP_version>/rpagent completed successfully
    2026-05-04 05:10:14 - [INFO] Backing up /opt/protegrity/<DBP_version>/databaseprotector to /opt/protegrity/<DBP_version>/databaseprotector_backup_<timestamp>...
    2026-05-04 05:10:14 - [INFO] Backup of /opt/protegrity/<DBP_version>/databaseprotector completed successfully
    2026-05-04 05:10:14 - [INFO] Backing up /etc/protegrity to /etc/protegrity_backup_<timestamp>...
    2026-05-04 05:10:14 - [INFO] Backup of /etc/protegrity completed successfully
    2026-05-04 05:10:14 - [INFO] Installing/Upgrading LOGFORWARDER...
    2026-05-04 05:10:14 - [INFO] Executing ./LogforwarderSetup_Linux_x64_<DBP_version>.sh...
    Unpacking...
    Extracting files...
    
    Protegrity Log Forwarder installed in /opt/protegrity/<DBP_version>/logforwarder.
    
    2026-05-04 05:10:15 - [INFO] Retaining existing Logforwarder configuration...
    2026-05-04 05:10:15 - [INFO] Logforwarder configuration retained successfully.
    2026-05-04 05:10:15 - [INFO] ./LogforwarderSetup_Linux_x64_<DBP_version>.sh completed successfully.
    2026-05-04 05:10:15 - [INFO] Installing/Upgrading RPAGENT...
    2026-05-04 05:10:15 - [INFO] Executing ./RPAgentSetup_Linux_x64_<DBP_version>.sh...
    Unpacking...
    Extracting files...
    
    Since --nocert was provided certificates are not downloaded automatically.
    
    Protegrity RPAgent installed in /opt/protegrity/<DBP_version>/rpagent.
    
    2026-05-04 05:10:15 - [INFO] Retaining existing RPAgent configuration...
    2026-05-04 05:10:15 - [INFO] RPAgent configuration retained successfully.
    2026-05-04 05:10:15 - [INFO] ./RPAgentSetup_Linux_x64_<DBP_version>.sh completed successfully.
    2026-05-04 05:10:15 - [INFO] Old Logforwarder port: 15780 ? New Logforwarder port: 15781
    2026-05-04 05:10:15 - [INFO] Configuring new Logforwarder to listen on port 15781
    2026-05-04 05:10:15 - [INFO] Logforwarder listen port updated to 15781 in /opt/protegrity/<DBP_version>/logforwarder/data/config.d/in_tcp.conf
    2026-05-04 05:10:15 - [INFO] Configuring RPAgent to send logs to Logforwarder port 15781
    2026-05-04 05:10:15 - [INFO] RPAgent rpagent.cfg updated to use Logforwarder port 15781
    2026-05-04 05:10:15 - [INFO] Copying Logforwarder and RPAgent to all nodes in the Teradata cluster
    2026-05-04 05:10:15 - [INFO] Copying Logforwarder and RPAgent components to all nodes
    2026-05-04 05:10:15 - [INFO] Creating installation directories on all nodes if not present
    All 1 node(s) have connected
    All 1 node(s) have connected
    All 1 node(s) have connected
    All 1 node(s) have connected
    2026-05-04 05:10:16 - [INFO] Copying Logforwarder directory /opt/protegrity/<DBP_version>/logforwarder to all nodes
    All 1 node(s) have connected
    localhost:1022: send completed: 57934861 bytes received (10 files/7 directories)
    All 1 node(s) have connected
    All 1 node(s) have connected
    2026-05-04 05:10:18 - [INFO] Logforwarder successfully copied to all nodes
    2026-05-04 05:10:18 - [INFO] Copying RPAgent directory /opt/protegrity/<DBP_version>/rpagent to all nodes
    All 1 node(s) have connected
    localhost:1022: send completed: 14787482 bytes received (10 files/3 directories)
    All 1 node(s) have connected
    All 1 node(s) have connected
    2026-05-04 05:10:19 - [INFO] RPAgent successfully copied to all nodes
    2026-05-04 05:10:19 - [INFO] Logforwarder and RPAgent successfully copied to all nodes
    2026-05-04 05:10:19 - [INFO] Starting new Logforwarder on all nodes
    All 1 node(s) have connected
    
    <---------------------  localhost  -------------------------------->
    Fluent Bit v4.2.2-1.5.1+0.gdfa6.fb-4.2
    * Copyright (C) 2015-2025 The Fluent Bit Authors
    * Fluent Bit is a CNCF graduated project under the Fluent organization
    * https://fluentbit.io
    
    ______ _                  _    ______ _ _             ___   _____
    |  ___| |                | |   | ___ (_) |           /   | / __  \
    | |_  | |_   _  ___ _ __ | |_  | |_/ /_| |_  __   __/ /| | `' / /'
    |  _| | | | | |/ _ \ '_ \| __| | ___ \ | __| \ \ / / /_| |   / /
    | |   | | |_| |  __/ | | | |_  | |_/ / | |_   \ V /\___  |_./ /___
    \_|   |_|\__,_|\___|_| |_|\__| \____/|_|\__|   \_/     |_(_)_____/
    
                Fluent Bit v4.2   Direct Routes Ahead
            Celebrating 10 Years of Open, Fluent Innovation!
    
    [2026/05/04 05:10:19.748329868] [ info] switching to background mode (PID=23737)
    Log Forwarder started, PID (23737) written to PID file /opt/protegrity/<DBP_version>/logforwarder/bin/fluent-bit.pid
    
    2026-05-04 05:10:21 - [INFO] Preparing Database Protector installation...
    2026-05-04 05:10:21 - [INFO] In-place upgrade detected - backup at /opt/protegrity/<DBP_version>/databaseprotector_backup_<timestamp> will be used for SQL scripts if needed
    2026-05-04 05:10:21 - [INFO] Installing/Upgrading DBP...
    2026-05-04 05:10:21 - [INFO] Executing ./PepTeradataSetup_Linux_x64_<DBP_version>.sh...
    *****************************************************
    Welcome to the Database Protector Setup Wizard
    *****************************************************
    
    This will install the teradata objects on your computer
    Do you want to continue? [yes or no]
    Enter installation directory.
    A new directory will be created in the installation directory.
    [/opt/protegrity]:
    Unpacking...
    Extracting files...
    Enter name of database where the UDFs will be installed.
    [PROTEGRITY]:
    Enter maxmimum size of varchar to be allocated by the UDFs.
    NOTE: This is the maximum varchar size allocated by the UDFs
        for latin as well as unicode character set.
        Larger size will affect the performance !!!
        Some applications can also have issues with larger size,
        such as BTEQ, SQL Assistant.
    [500]:
    ***********BUFFER LENGTH INITIALIZATION**************
    UDF VARCHAR MAX INPUT BUFFER LENGTH (TOKENIZATION)  :  500  Latin characters
    UDF VARCHAR MAX OUTPUT BUFFER LENGTH (TOKENIZATION) :  676  Latin characters
    UDF VARCHAR MAX INPUT BUFFER LENGTH (ENCRYPTION)    :  500  Latin characters
    UDF VARCHAR MAX OUTPUT BUFFER LENGTH (ENCRYPTION)   :  538  Bytes
    UDF VARCHAR_UNICODE MAX INPUT BUFFER LENGTH (TOKENIZATION)  :  500  UNICODE characters
    UDF VARCHAR_UNICODE MAX OUTPUT BUFFER LENGTH (TOKENIZATION) :  1356  UNICODE characters
    UDF VARCHAR_UNICODE MAX INPUT BUFFER LENGTH (ENCRYPTION)    :  500  UNICODE characters
    UDF VARCHAR_UNICODE MAX OUTPUT BUFFER LENGTH (ENCRYPTION)   :  1038  Bytes
    
    teradata objects installed in /opt/protegrity/<DBP_version>/databaseprotector/teradata.
    
    2026-05-04 05:10:23 - [INFO] Retaining existing Database Protector configuration...
    2026-05-04 05:10:23 - [INFO] Database Protector configuration retained successfully.
    2026-05-04 05:10:23 - [INFO] ./PepTeradataSetup_Linux_x64_<DBP_version>.sh completed successfully.
    2026-05-04 05:10:23 - [INFO] Configuring DBP to send logs to Logforwarder port 15781
    2026-05-04 05:10:23 - [INFO] DBP config.ini updated to use Logforwarder port 15781
    2026-05-04 05:10:23 - [INFO] Copying DatabaseProtector to all nodes
    All 1 node(s) have connected
    localhost:1022: send completed: 8926088 bytes received (16 files/5 directories)
    All 1 node(s) have connected
    All 1 node(s) have connected
    2026-05-04 05:10:24 - [INFO] Setting DatabaseProtector ownership (tdatuser:tdtrusted) on all nodes
    All 1 node(s) have connected
    2026-05-04 05:10:24 - [INFO] DatabaseProtector successfully copied to all nodes
    2026-05-04 05:10:24 - [INFO] Synchronizing /etc/protegrity to all nodes
    All 1 node(s) have connected
    All 1 node(s) have connected
    localhost:1022: send completed: 1157 bytes received (1 files/1 directories)
    All 1 node(s) have connected
    All 1 node(s) have connected
    All 1 node(s) have connected
    2026-05-04 05:10:25 - [INFO] User configuration directory successfully synchronized to all nodes
    2026-05-04 05:10:25 - [INFO] Dropping existing UDFs (database operation on current node only - shared across all nodes)
    2026-05-04 05:10:25 - [INFO] In-place upgrade: Using SQL scripts from backup: /opt/protegrity/<DBP_version>/databaseprotector_backup_<timestamp>/teradata/sqlscripts
    BTEQ 20.00.00.05 (64-bit) Mon May  4 05:10:46 2026 PID: 25486
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .SET EXITONDELAY ON MAXREQTIME 300 RC 12
    +---------+---------+---------+---------+---------+---------+---------+----
    .logon localhost/<database_user_name>,
    
    *** Logon successfully completed.
    *** Teradata Database Release is 20.00.22.31
    *** Teradata Database Version is 20.00.22.31
    *** Transaction Semantics are BTET.
    *** Session Character Set Name is 'ASCII'.
    
    *** Total elapsed time was 20 seconds.
    
    +---------+---------+---------+---------+---------+---------+---------+----
    database <database_name>;
    
    *** New default database accepted.
    *** Total elapsed time was 1 second.
    
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .IF ERRORCODE <> 0 THEN .QUIT 12;
    +---------+---------+---------+---------+---------+---------+---------+----
    .run file /opt/protegrity/<DBP_version>/databaseprotector_backup_<timestamp>
    /teradata/sqlscripts/dropobjects.sql;
    +---------+---------+---------+---------+---------+---------+---------+----
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .run file /opt/protegrity/<DBP_version>/databaseprotector_backup_<timestamp>
    /teradata/sqlscripts/dropvarcharunicode.sql;
    +---------+---------+---------+---------+---------+---------+---------+----
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .IF ERRORCODE <> 0 THEN .QUIT 12;
    +---------+---------+---------+---------+---------+---------+---------+----
    .run file /opt/protegrity/<DBP_version>/databaseprotector/teradata/sqlscripts/c
    reateobjects.sql;
    +---------+---------+---------+---------+---------+---------+---------+----
    ---------------------------------------------------------------------
    -- Protegrity User Defined Functions.
    -- Copyright (c) 2026 Protegrity USA, Inc. All rights reserved
    --
    -- This script should be run in BTEQ
    ---------------------------------------------------------------------
    DATABASE <database_name>;
    
    *** New default database accepted.
    *** Total elapsed time was 1 second.
    
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .IF ERRORCODE != 0 THEN .QUIT 99
    +---------+---------+---------+---------+---------+---------+---------+----
    
    ---------------------------------------------------------------------
    -- Create/replace Protegrity UDF functions
    ---------------------------------------------------------------------
    -- Create/replace varchar latin encryption function.
    --
    -- * First parameter is the input string to be encrypted.
    -- * Second parameter is the name of the data elements.
    -- * Third parameter is the length of the result,
    --   look at the RETURNS statement.
    -- * Fourth parameter indicates which id of communication to use,
    --   "0" is default.
    --
    -- Return value is the encrypted data.
    --
    -- See UDF manual for syntax when creating functions.
    --
    -- Notes: There is a possibility to expand the input up to 63962
    --        and output up to 64000 which is maximum for varchar.
    --        But the larger definition of input/output size,
    --        the more it will affect performance !!!
    --        Some applications can also have issues with UDF functions
    --        with long varchar input, like BTEQ, SQL Assistant.
    ---------------------------------------------------------------------
    BT;
    
    *** Begin transaction accepted.
    *** Total elapsed time was 1 second.
    
    2026-05-04 05:12:51 - [INFO] Creating varcharunicode UDFs
    BTEQ 20.00.00.05 (64-bit) Mon May  4 05:12:51 2026 PID: 26865
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .SET EXITONDELAY ON MAXREQTIME 300 RC 12
    +---------+---------+---------+---------+---------+---------+---------+----
    .logon localhost/<database_user_name>,
    
    *** Logon successfully completed.
    *** Teradata Database Release is 20.00.22.31
    *** Teradata Database Version is 20.00.22.31
    *** Transaction Semantics are BTET.
    *** Session Character Set Name is 'ASCII'.
    
    *** Total elapsed time was 20 seconds.
    
    +---------+---------+---------+---------+---------+---------+---------+----
    database <database_name>;
    
    *** New default database accepted.
    *** Total elapsed time was 1 second.
    
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .IF ERRORCODE <> 0 THEN .QUIT 12;
    +---------+---------+---------+---------+---------+---------+---------+----
    .run file /opt/protegrity/<DBP_version>/databaseprotector/teradata/sqlscripts/c
    reatevarcharunicode.sql;
    +---------+---------+---------+---------+---------+---------+---------+----
    
    2026-05-04 05:13:15 - [INFO] Varcharunicode UDFs created successfully
    2026-05-04 05:13:15 - [INFO] Testing UDFs
    BTEQ 20.00.00.05 (64-bit) Mon May  4 05:13:15 2026 PID: 26951
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .SET EXITONDELAY ON MAXREQTIME 300 RC 12
    +---------+---------+---------+---------+---------+---------+---------+----
    .logon localhost/<database_user_name>,
    
    *** Logon successfully completed.
    *** Teradata Database Release is 20.00.22.31
    *** Teradata Database Version is 20.00.22.31
    *** Transaction Semantics are BTET.
    *** Session Character Set Name is 'ASCII'.
    
    *** Total elapsed time was 20 seconds.
    
    +---------+---------+---------+---------+---------+---------+---------+----
    database <database_name>;
    
    *** New default database accepted.
    *** Total elapsed time was 1 second.
    
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .IF ERRORCODE <> 0 THEN .QUIT 12;
    +---------+---------+---------+---------+---------+---------+---------+----
    select pty_getversion();
    
    *** Query completed. One row found. One column returned.
    *** Total elapsed time was 1 second.
    
    pty_getversion()
    ---------------------------------------------------------------------------
    <DBP_version>
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .logoff
    *** You are now logged off from the <database_user_name>.
    +---------+---------+---------+---------+---------+---------+---------+----
    .quit
    *** Exiting BTEQ...
    *** RC (return code) = 0
    2026-05-04 05:13:36 - [INFO] Stopping existing Logforwarder on all nodes
    All 1 node(s) have connected
    
    <---------------------  localhost  -------------------------------->
    Stopping Log Forwarder with PID: 23737
    Please Wait
    
    2026-05-04 05:13:41 - [INFO] Removing previous installation directories
    2026-05-04 05:13:41 - [INFO] Pruning old Teradata library versions on all nodes
    2026-05-04 05:13:41 - [WARN] Installed version directory not found: /opt/protegrity/<DBP_version>/databaseprotector/teradata/lib/<DBP_version>
    2026-05-04 05:13:41 - [INFO] Synchronizing pruned Database Protector directory to all nodes
    All 1 node(s) have connected
    localhost:1022: send completed: 8926088 bytes received (16 files/5 directories)
    All 1 node(s) have connected
    All 1 node(s) have connected
    2026-05-04 05:13:42 - [INFO] User configuration backup removed: /etc/protegrity_backup_<timestamp>
    2026-05-04 05:13:42 - [INFO] Upgrade successful.
    2026-05-04 05:13:42 - [INFO] All components upgraded successfully.
    
    2026-05-04 05:13:42 - [INFO] IMPORTANT: This script doesn't handle Protegrity UDT, it must be handled manually. Refer to product documentation.
    2026-05-04 05:13:42 - [INFO] IMPORTANT: This script doesn't handle Protegrity Decimal UDF objects, it must be handled manually. Refer to product documentation.
    

2 - Upgrading the Protector on Multi Node

The Teradata Data Warehouse Protector build provides an automated script to manage the upgrade process. The master script internally calls the scripts to install and upgrade the components. The master script installs and upgrades the components in the following order:

  1. Log Forwarder
  2. RPAgent
  3. Policy Enforcement Point (Database Protector)

The master script is available in the directory where the installation files are extracted. It provides the following arguments:

  • install - installs the components in an interactive mode.
  • upgrade - installs a newer version of the protector with minimal downtime.
  • silent - installs the components in a non-interactive mode.
  • install.ini - installs the components as per the parameters provided in the file.
  • help - lists the arguments available for the script.

During the upgrade process, the master script:

  1. Verifies the existing configuration.
  2. Creates a backup of the existing configuration.
  3. Stops the required services.
  4. Drops the existing UDFs.
  5. Installs the new version.
  6. Starts the required services.
  7. Creates the new UDFs and retains the existing configuration.

In addition, the master script will rollback the upgrade process if any errors are encountered. The script will revert the changes and restore the previous working version of the Teradata Data Warehouse Protector.

Important: The automation script will be unable to handle the UDTs and Decimal objects. If UDTs and Decimal objects are present in the database, these must be handled manually.

Viewing the Arguments for the Script

  1. Log in to the server as the user with the required permissions.
  2. Navigate to the directory containing the extracted files and the installation scripts.
  3. To view the arguments, run the following command:
    ./Install_TeradataProtector_Linux_x64_<DBP_version>.sh --help
    
  4. Press ENTER. The script lists the available arguments.
     Usage: ./Install_TeradataProtector_Linux_x64_<DBP_version>.sh [--install | --upgrade] [--silent] [--install-ini <file>] [--help]
    
     Options:
     --install    Use this option when installing the solution for the first time on a machine/host.
                 (i.e., there is no previous installation present)
    
     --upgrade    Use this option when upgrading an existing installation on the machine/host.
    
     --install-ini <file>    (Optional) Provide a path to an install.ini file for silent or pre-configured installations.
                             This option works with --install only.
                             It must not be used with --upgrade or --silent.
                             You can pass this either as:
                             --install-ini /path/to/install.ini
                             or
                             --install-ini=/path/to/install.ini
                             Refer to the product documentation for details about the configuration options available in install.ini.
                             The documentation describes all supported keys, required fields, and example configurations.
     --silent    (Optional) Runs the installation/upgrade in silent mode with minimum interactive prompts.
    
     --help, -h  Display this help message and exit.
    

Upgrading the Protector using the Interactive Mode

Note: For installation/upgrade using the automation script, the component will be installed/upgraded within a <DBP_version> folder under the specified directory.

  1. Log in to the server as the user with the required permissions.
  2. Navigate to the directory containing the extracted files and the installation scripts.
  3. To upgrade the protector, run the following command:
    ./Install_TeradataProtector_Linux_x64_<DBP_version>.sh --upgrade
    
  4. Press ENTER. The script performs pre-checks before starting the upgrade. The prompt to select the silent mode of installation appears.
     2026-05-04 04:31:43 - [INFO] ========================================================================
     2026-05-04 04:31:43 - [INFO] Starting environment pre-checks before installation/upgrade
     2026-05-04 04:31:43 - [INFO] ========================================================================
    
     2026-05-04 04:31:43 - [INFO] Prerequisites check passed: pcl and bteq commands are available on current/running node
     2026-05-04 04:31:43 - [INFO] Checking Teradata PDE state on running node...
     2026-05-04 04:31:43 - [INFO] PDE state check passed on running node: PDE state is RUN/STARTED
     2026-05-04 04:31:43 - [INFO] Checking accessibility of all Teradata nodes...
     2026-05-04 04:31:43 - [INFO] IMPORTANT: ALL nodes must be accessible - if even 1 node is down, installation will be aborted
     2026-05-04 04:31:43 - [INFO] ==========================================
     2026-05-04 04:31:43 - [INFO] Node accessibility check PASSED
     2026-05-04 04:31:43 - [INFO] All 4 node(s) have connected
    
     <---------------------  <node_name>  -------------------------------->
     abyss4
    
    
     <---------------------  <node_name>  -------------------------------->
     abyss3
    
    
     <---------------------  <node_name>  -------------------------------->
     abyss2
    
    
     <---------------------  <node_name>  -------------------------------->
     abyss1
     2026-05-04 04:31:43 - [INFO] ==========================================
    
     2026-05-04 04:31:43 - [INFO] ========================================================================
     2026-05-04 04:31:43 - [INFO] All environment pre-checks PASSED - proceeding with installation
     2026-05-04 04:31:43 - [INFO] ========================================================================
    
     2026-05-04 04:31:43 - [INFO] If silent mode is selected, the default base directory (/opt/protegrity) will be used as the location of the existing installation for each component (Logforwarder, RPAgent and DatabaseProtector).
     Do you want silent installation? (yes/no) [no]:
    
  5. To install the components using the interactive mode, type no.
  6. Press ENTER. The prompt to enter the location of the existing installation appears.
    Enter existing installation directories:
    
    Existing LogForwarder installation directory [/opt/protegrity]:
    
  7. Enter the directory path where the existing version of the Log Forwarder is installed.
  8. Press ENTER. The prompt to enter RPAgent installation directory appears.
    Existing RPAgent installation directory [/opt/protegrity]:
    
  9. Enter the directory path where the existing version of the RPAgent is installed.
  10. Press ENTER. The prompt to enter the Database Protector installation directory appears.
    Existing DatabaseProtector installation directory [/opt/protegrity]:
    
  11. Enter the directory path where the existing version of the Database Protector is installed.
  12. Press ENTER. The prompt to select a single installation directory for the components appears.
    Do you want to install the new LogForwarder, RPAgent, and DatabaseProtector together in a single directory? (yes/no) [no]:
    
  13. To install the new components in a single directory, type yes.
  14. Press ENTER. The prompt to enter the new installation directory appears.
    Enter new installation directory [/opt/protegrity]:
    
  15. Enter the location to install the components.
  16. Press ENTER. The prompt to confirm the presence of decimal UDFs appears.
    2026-05-04 04:32:12 - [INFO] Verifying previous installation directories for all components...
    2026-05-04 04:32:12 - [INFO] Existing LogForwarder directory: /opt/protegrity/logforwarder
    2026-05-04 04:32:12 - [INFO] Existing RPAgent directory: /opt/protegrity/rpagent
    2026-05-04 04:32:12 - [INFO] Existing DatabaseProtector directory: /opt/protegrity/databaseprotector
    2026-05-04 04:32:12 - [INFO] All existing component directories verified successfully.
    
    2026-05-04 04:32:12 - [INFO] Checking for Protegrity UDT in previous installation...
    2026-05-04 04:32:12 - [INFO] No UDT PLM file found at expected path. Checking Teradata libraries...
    2026-05-04 04:32:14 - [INFO] No Teradata library links to pepteradataudt. UDT not active.
    2026-05-04 04:32:14 - [INFO] No active Protegrity UDT detected. Proceeding with upgrade.
    
    2026-05-04 04:32:14 - [INFO] Protegrity Decimal UDF objects are not supported by this script
    Have you created Protegrity Decimal UDF objects in your previous installation? (yes/no) [no]:
    
  17. To confirm that the previous installation does not contain any decimal UDF, type no.
  18. Press ENTER. The script prompts to create the UDFs. The prompt to enter the database credentials appears.
    2026-05-04 04:32:32 - [INFO] No Protegrity Decimal UDF objects present. Proceeding with upgrade.
    Do you want to continue and create UDFs?
    To create the UDFs, provide the database credentials  (yes/no) [no]: 
    
  19. To create the UDFs, type yes.
  20. Press ENTER. The prompt to enter the database username appears.
    Enter Teradata database username:
    
  21. Enter the username.
  22. Press ENTER. The prompt to enter the database password appears.
    Enter Teradata database user's password:
    
  23. Enter the password.
  24. Press ENTER. The prompt to enter the database name to install the UDF appears.
    Enter name of database where the UDFs will be installed [PROTEGRITY]:
    
  25. Enter the database name to install the UDFs.
  26. Press ENTER. The prompt to specify the maximum size of varchar to be allocated by the UDFs appears.
    Enter the maximum size of varchar to be allocated by the UDFs [500]:
    
  27. Enter the maximum size of varchar to be allocated by the UDFs.
  28. Press ENTER. The script validates the database and lists the configuration. The prompt to verify the configuration appears.
    2026-05-04 03:46:02 - [INFO] Validating database ...
    2026-05-04 03:46:23 - [INFO] Database validated successfully
    
    2026-05-04 03:46:23 - [INFO] **************************************************************************
    2026-05-04 03:46:23 - [INFO] Upgrade will be done with following configuration:
    2026-05-04 03:46:23 - [INFO] Mode: upgrade
    2026-05-04 03:46:23 - [INFO] Existing Logforwarder Installation Directory: /opt/protegrity/<DBP_version>
    2026-05-04 03:46:23 - [INFO] Existing RPAgent Installation Directory: /opt/protegrity/<DBP_version>
    2026-05-04 03:46:23 - [INFO] Existing DatabaseProtector Installation Directory: /opt/protegrity/<DBP_version>
    2026-05-04 03:46:23 - [INFO] New Logforwarder Installation Directory: /opt/protegrity/<DBP_version>
    2026-05-04 03:46:23 - [INFO] New RPAgent Installation Directory: /opt/protegrity/<DBP_version>
    2026-05-04 03:46:23 - [INFO] New DatabaseProtector Installation Directory: /opt/protegrity/<DBP_version>
    2026-05-04 03:46:23 - [INFO] Audit Store Endpoints: <IP_Address>:9200 <IP_Address>:9200
    2026-05-04 03:46:23 - [INFO] Upstream (ESA) Hostname or IP Address for RPAgent: <ESA_Hostname>
    2026-05-04 03:46:23 - [INFO] Upstream (ESA) Port for RPAgent: 25400 (Default)
    2026-05-04 03:46:23 - [INFO] This is an upgrade.
    2026-05-04 03:46:23 - [INFO] Previous installations will be backed up before upgrade.
    2026-05-04 03:46:23 - [INFO] Existing Logforwarder and RPAgent configurations will be retained
    2026-05-04 03:46:23 - [INFO] **************************************************************************
    2026-05-04 03:46:23 - [WARN] **************************************************************************
    2026-05-04 03:46:23 - [WARN] IMPORTANT: Any queries currently running may be impacted during upgrade.
    2026-05-04 03:46:23 - [WARN] It is recommended to perform the upgrade during a maintenance window.
    2026-05-04 03:46:23 - [WARN] **************************************************************************
    
    2026-05-04 03:46:23 - [INFO] Please verify the above configuration before proceeding.
    Do you want to continue? (yes/no) [no]:
    
  29. To proceed with the configuration, type yes.
  30. Press ENTER. The script drops the existing UDFs, creates the new ones, and completes the upgrade.
    2026-05-04 04:32:56 - [INFO] Continuing with upgrade...
    2026-05-04 04:32:56 - [INFO] Backing up /opt/protegrity/logforwarder to /opt/protegrity/logforwarder_backup_<Timestamp>...
    2026-05-04 04:32:56 - [INFO] Backup of /opt/protegrity/logforwarder completed successfully
    2026-05-04 04:32:56 - [INFO] Backing up /opt/protegrity/rpagent to /opt/protegrity/rpagent_backup_<Timestamp>...
    2026-05-04 04:32:56 - [INFO] Backup of /opt/protegrity/rpagent completed successfully
    2026-05-04 04:32:56 - [INFO] Backing up /opt/protegrity/databaseprotector to /opt/protegrity/databaseprotector_backup_<Timestamp>...
    2026-05-04 04:32:56 - [INFO] Backup of /opt/protegrity/databaseprotector completed successfully
    2026-05-04 04:32:56 - [INFO] Backing up /etc/protegrity to /etc/protegrity_backup_<Timestamp>...
    2026-05-04 04:32:57 - [INFO] Backup of /etc/protegrity completed successfully
    2026-05-04 04:32:57 - [INFO] Installing/Upgrading LOGFORWARDER...
    2026-05-04 04:32:57 - [INFO] Executing ./LogforwarderSetup_Linux_x64_<DBP_version>.sh...
    2026-05-04 04:32:57 - [INFO] Retaining existing Logforwarder configuration...
    2026-05-04 04:32:57 - [INFO] Logforwarder configuration retained successfully.
    2026-05-04 04:32:57 - [INFO] Updating configuration files in /opt/protegrity/<DBP_version>/logforwarder/data to use new installation directory.
    2026-05-04 04:32:57 - [INFO] ./LogforwarderSetup_Linux_x64_<DBP_version>.sh completed successfully.
    2026-05-04 04:32:57 - [INFO] Installing/Upgrading RPAGENT...
    2026-05-04 04:32:57 - [INFO] Executing ./RPAgentSetup_Linux_x64_<DBP_version>.sh...
    2026-05-04 04:32:57 - [INFO] Retaining existing RPAgent configuration...
    2026-05-04 04:32:57 - [INFO] RPAgent configuration retained successfully.
    2026-05-04 04:32:57 - [INFO] Updating configuration files in /opt/protegrity/<DBP_version>/rpagent/data to use new installation directory.
    2026-05-04 04:32:57 - [INFO] ./RPAgentSetup_Linux_x64_<DBP_version>.sh completed successfully.
    2026-05-04 04:32:57 - [INFO] Old Logforwarder port: 15780  New Logforwarder port: 15781
    2026-05-04 04:32:57 - [INFO] Configuring new Logforwarder to listen on port 15781
    2026-05-04 04:32:57 - [INFO] Logforwarder listen port updated to 15781 in /opt/protegrity/<DBP_version>/logforwarder/data/config.d/in_tcp.conf
    2026-05-04 04:32:57 - [INFO] Configuring RPAgent to send logs to Logforwarder port 15781
    2026-05-04 04:32:57 - [INFO] RPAgent rpagent.cfg updated to use Logforwarder port 15781
    2026-05-04 04:32:57 - [INFO] Copying Logforwarder and RPAgent to all nodes in the Teradata cluster
    2026-05-04 04:32:57 - [INFO] Copying Logforwarder and RPAgent components to all nodes
    2026-05-04 04:32:57 - [INFO] Creating installation directories on all nodes if not present
    All 4 node(s) have connected
    All 4 node(s) have connected
    All 4 node(s) have connected
    All 4 node(s) have connected
    2026-05-04 04:32:57 - [INFO] Copying Logforwarder directory /opt/protegrity/<DBP_version>/logforwarder to all nodes
    All 4 node(s) have connected
    <node_name>:1023: send completed: 57942717 bytes received (10 files/7 directories)
    <node_name>:1022: send completed: 57942717 bytes received (10 files/7 directories)
    <node_name>:1023: send completed: 57942717 bytes received (10 files/7 directories)
    <node_name>:1023: send completed: 57942717 bytes received (10 files/7 directories)
    All 4 node(s) have connected
    All 4 node(s) have connected
    2026-05-04 04:32:59 - [INFO] Logforwarder successfully copied to all nodes
    2026-05-04 04:32:59 - [INFO] Copying RPAgent directory /opt/protegrity/<DBP_version>/rpagent to all nodes
    All 4 node(s) have connected
    <node_name>:1022: send completed: 14787819 bytes received (9 files/3 directories)
    <node_name>:1023: send completed: 14787819 bytes received (9 files/3 directories)
    <node_name>:1023: send completed: 14787819 bytes received (9 files/3 directories)
    <node_name>:1023: send completed: 14787819 bytes received (9 files/3 directories)
    All 4 node(s) have connected
    All 4 node(s) have connected
    2026-05-04 04:33:00 - [INFO] RPAgent successfully copied to all nodes
    2026-05-04 04:33:00 - [INFO] Logforwarder and RPAgent successfully copied to all nodes
    2026-05-04 04:33:00 - [INFO] Starting new Logforwarder on all nodes
    2026-05-04 04:33:02 - [INFO] Preparing Database Protector installation...
    2026-05-04 04:33:02 - [INFO] Installing/Upgrading DBP...
    2026-05-04 04:33:02 - [INFO] Executing ./PepTeradataSetup_Linux_x64_<DBP_version>.sh...
    2026-05-04 04:33:03 - [INFO] Retaining existing Database Protector configuration...
    2026-05-04 04:33:03 - [INFO] Database Protector configuration retained successfully.
    2026-05-04 04:33:03 - [INFO] Updating configuration files in /opt/protegrity/<DBP_version>/databaseprotector/teradata/data to use new installation directory.
    2026-05-04 04:33:03 - [INFO] ./PepTeradataSetup_Linux_x64_<DBP_version>.sh completed successfully.
    2026-05-04 04:33:03 - [INFO] Configuring DBP to send logs to Logforwarder port 15781
    2026-05-04 04:33:03 - [INFO] DBP config.ini updated to use Logforwarder port 15781
    2026-05-04 04:33:03 - [INFO] Copying DatabaseProtector to all nodes
    All 4 node(s) have connected
    <node_name>:1023: send completed: 8926094 bytes received (16 files/5 directories)
    <node_name>:1023: send completed: 8926094 bytes received (16 files/5 directories)
    <node_name>:1023: send completed: 8926094 bytes received (16 files/5 directories)
    <node_name>:1022: send completed: 8926094 bytes received (16 files/5 directories)
    All 4 node(s) have connected
    All 4 node(s) have connected
    2026-05-04 04:33:04 - [INFO] Setting DatabaseProtector ownership (tdatuser:tdtrusted) on all nodes
    All 4 node(s) have connected
    2026-05-04 04:33:04 - [INFO] DatabaseProtector successfully copied to all nodes
    2026-05-04 04:33:04 - [INFO] Synchronizing /etc/protegrity to all nodes
    All 4 node(s) have connected
    All 4 node(s) have connected
    <node_name>:1022: send completed: 1157 bytes received (1 files/1 directories)
    <node_name>:1023: send completed: 1157 bytes received (1 files/1 directories)
    <node_name>:1023: send completed: 1157 bytes received (1 files/1 directories)
    <node_name>:1023: send completed: 1157 bytes received (1 files/1 directories)
    All 4 node(s) have connected
    All 4 node(s) have connected
    All 4 node(s) have connected
    2026-05-04 04:33:04 - [INFO] User configuration directory successfully synchronized to all nodes
    2026-05-04 04:33:04 - [INFO] Dropping existing UDFs (database operation on current node only - shared across all nodes)
    2026-05-04 04:33:04 - [INFO] Side-by-side upgrade: Using SQL scripts from previous installation: /opt/protegrity/databaseprotector/teradata/sqlscripts
    BTEQ 17.20.00.08 (64-bit) Mon May  4 04:33:05 2026 PID: 152827
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .SET EXITONDELAY ON MAXREQTIME 300 RC 12
    +---------+---------+---------+---------+---------+---------+---------+----
    .logon localhost/dbc,
    
    *** Logon successfully completed.
    *** Teradata Database Release is 17.20.03.18                   
    *** Teradata Database Version is 17.20.03.18                     
    *** Transaction Semantics are BTET.
    *** Session Character Set Name is 'ASCII'.
    
    *** Total elapsed time was 1 second.
    
    +---------+---------+---------+---------+---------+---------+---------+----
    database <database_name>;
    
    *** New default database accepted. 
    *** Total elapsed time was 1 second.
    
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .IF ERRORCODE <> 0 THEN .QUIT 12;
    +---------+---------+---------+---------+---------+---------+---------+----
    .run file /opt/protegrity/databaseprotector/teradata/sqlscripts/dropobjects
    .sql;
    +---------+---------+---------+---------+---------+---------+---------+----
    
    2026-05-04 04:33:18 - [INFO] Main UDFs dropped successfully
    BTEQ 17.20.00.08 (64-bit) Mon May  4 04:33:19 2026 PID: 153405
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .SET EXITONDELAY ON MAXREQTIME 300 RC 12
    +---------+---------+---------+---------+---------+---------+---------+----
    .logon localhost/dbc,
    
    *** Logon successfully completed.
    *** Teradata Database Release is 17.20.03.18                   
    *** Teradata Database Version is 17.20.03.18                     
    *** Transaction Semantics are BTET.
    *** Session Character Set Name is 'ASCII'.
    
    *** Total elapsed time was 1 second.
    
    +---------+---------+---------+---------+---------+---------+---------+----
    database <database_name>;
    
    *** New default database accepted. 
    *** Total elapsed time was 1 second.
    
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .run file /opt/protegrity/databaseprotector/teradata/sqlscripts/dropvarchar
    unicode.sql;
    +---------+---------+---------+---------+---------+---------+---------+----
    2026-05-04 04:33:20 - [INFO] Varchar unicode UDFs dropped successfully
    2026-05-04 04:33:20 - [INFO] Stopping existing RPAgent on all nodes
    All 4 node(s) have connected
    
    <---------------------  <node_name>  -------------------------------->
    Stopping rpagent
    
    
    <---------------------  <node_name>  -------------------------------->
    Stopping rpagent
    
    
    <---------------------  <node_name>  -------------------------------->
    Stopping rpagent
    
    
    <---------------------  <node_name>  -------------------------------->
    Stopping rpagent
    
    2026-05-04 04:33:21 - [INFO] Starting new RPAgent on all nodes
    2026-05-04 04:33:21 - [INFO] Successfully launched new RPAgent on all nodes
    2026-05-04 04:33:21 - [INFO] Creating new UDFs (database operation on current node only - shared across all nodes)
    BTEQ 17.20.00.08 (64-bit) Mon May  4 04:33:21 2026 PID: 153511
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .SET EXITONDELAY ON MAXREQTIME 300 RC 12
    +---------+---------+---------+---------+---------+---------+---------+----
    .logon localhost/dbc,
    
    *** Logon successfully completed.
    *** Teradata Database Release is 17.20.03.18                   
    *** Teradata Database Version is 17.20.03.18                     
    *** Transaction Semantics are BTET.
    *** Session Character Set Name is 'ASCII'.
    
    *** Total elapsed time was 1 second.
    
    +---------+---------+---------+---------+---------+---------+---------+----
    database <database_name>;
    
    *** New default database accepted. 
    *** Total elapsed time was 1 second.
    
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .IF ERRORCODE <> 0 THEN .QUIT 12;
    +---------+---------+---------+---------+---------+---------+---------+----
    .run file /opt/protegrity/<DBP_version>/databaseprotector/teradata/sqlscripts/c
    reateobjects.sql;
    +---------+---------+---------+---------+---------+---------+---------+----
    2026-05-04 04:33:38 - [INFO] Creating varcharunicode UDFs
    BTEQ 17.20.00.08 (64-bit) Mon May  4 04:33:38 2026 PID: 154263
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .SET EXITONDELAY ON MAXREQTIME 300 RC 12
    +---------+---------+---------+---------+---------+---------+---------+----
    .logon localhost/dbc,
    
    *** Logon successfully completed.
    *** Teradata Database Release is 17.20.03.18                   
    *** Teradata Database Version is 17.20.03.18                     
    *** Transaction Semantics are BTET.
    *** Session Character Set Name is 'ASCII'.
    
    *** Total elapsed time was 1 second.
    
    +---------+---------+---------+---------+---------+---------+---------+----
    database <database_name>;
    
    *** New default database accepted. 
    *** Total elapsed time was 1 second.
    
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .IF ERRORCODE <> 0 THEN .QUIT 12;
    +---------+---------+---------+---------+---------+---------+---------+----
    .run file /opt/protegrity/<DBP_version>/databaseprotector/teradata/sqlscripts/c
    reatevarcharunicode.sql;
    +---------+---------+---------+---------+---------+---------+---------+----
    2026-05-04 04:33:40 - [INFO] Varcharunicode UDFs created successfully
    2026-05-04 04:33:40 - [INFO] Testing UDFs
    BTEQ 17.20.00.08 (64-bit) Mon May  4 04:33:40 2026 PID: 154353
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .SET EXITONDELAY ON MAXREQTIME 300 RC 12
    +---------+---------+---------+---------+---------+---------+---------+----
    .logon localhost/dbc,
    
    *** Logon successfully completed.
    *** Teradata Database Release is 17.20.03.18                   
    *** Teradata Database Version is 17.20.03.18                     
    *** Transaction Semantics are BTET.
    *** Session Character Set Name is 'ASCII'.
    
    *** Total elapsed time was 1 second.
    
    +---------+---------+---------+---------+---------+---------+---------+----
    database <database_name>;
    
    *** New default database accepted. 
    *** Total elapsed time was 1 second.
    
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .IF ERRORCODE <> 0 THEN .QUIT 12;
    +---------+---------+---------+---------+---------+---------+---------+----
    select pty_getversion();
    
    *** Query completed. One row found. One column returned. 
    *** Total elapsed time was 1 second.
    
    pty_getversion()
    ---------------------------------------------------------------------------
    <DBP_version>
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .logoff
    *** You are now logged off from the DBC.
    +---------+---------+---------+---------+---------+---------+---------+----
    .quit
    *** Exiting BTEQ...
    *** RC (return code) = 0 
    2026-05-04 04:33:40 - [INFO] Stopping existing Logforwarder on all nodes
    All 4 node(s) have connected
    
    <---------------------  <node_name>  -------------------------------->
    Stopping Log Forwarder with PID: 226940
    Please Wait
    
    
    <---------------------  <node_name>  -------------------------------->
    Stopping Log Forwarder with PID: 146408
    Please Wait
    
    
    <---------------------  <node_name>  -------------------------------->
    Stopping Log Forwarder with PID: 209497
    Please Wait
    
    
    <---------------------  <node_name>  -------------------------------->
    Stopping Log Forwarder with PID: 85225
    Please Wait
    
    2026-05-04 04:33:45 - [INFO] Removing previous installation directories
    2026-05-04 04:33:45 - [INFO] Removing previous Logforwarder directory from all nodes: /opt/protegrity/logforwarder
    All 4 node(s) have connected
    2026-05-04 04:33:46 - [INFO] Removing previous RPAgent directory from all nodes: /opt/protegrity/rpagent
    All 4 node(s) have connected
    2026-05-04 04:33:46 - [INFO] Removing previous DatabaseProtector directory from all nodes: /opt/protegrity/databaseprotector
    All 4 node(s) have connected
    2026-05-04 04:33:46 - [INFO] User configuration backup removed: /etc/protegrity_backup_<Timestamp>
    2026-05-04 04:33:46 - [INFO] Upgrade successful.
    2026-05-04 04:33:46 - [INFO] All components upgraded successfully.
    
    2026-05-04 04:33:46 - [INFO] IMPORTANT: This script doesn't handle Protegrity UDT, it must be handled manually. Refer to product documentation.
    2026-05-04 04:33:46 - [INFO] IMPORTANT: This script doesn't handle Protegrity Decimal UDF objects, it must be handled manually. Refer to product documentation.
    

Upgrading the Protector using the Silent Mode

Note: For installation/upgrade using the automation script, the component will be installed/upgraded within a <DBP_version> folder under the specified directory.

  1. Log in to the server as the user with the required permissions.
  2. Navigate to the directory containing the extracted files and the installation scripts.
  3. To upgrade the protector, run the following command:
    ./Install_TeradataProtector_Linux_x64_<DBP_version>.sh --upgrade
    
  4. Press ENTER. The script performs pre-checks before starting the upgrade. The prompt to select the silent mode of installation appears.
     2026-05-04 04:40:50 - [INFO] ========================================================================
     2026-05-04 04:40:50 - [INFO] Starting environment pre-checks before installation/upgrade
     2026-05-04 04:40:50 - [INFO] ========================================================================
    
     2026-05-04 04:40:50 - [INFO] Prerequisites check passed: pcl and bteq commands are available on current/running node
     2026-05-04 04:40:50 - [INFO] Checking Teradata PDE state on running node...
     2026-05-04 04:40:50 - [INFO] PDE state check passed on running node: PDE state is RUN/STARTED
     2026-05-04 04:40:50 - [INFO] Checking accessibility of all Teradata nodes...
     2026-05-04 04:40:50 - [INFO] IMPORTANT: ALL nodes must be accessible - if even 1 node is down, installation will be aborted
     2026-05-04 04:40:50 - [INFO] ==========================================
     2026-05-04 04:40:50 - [INFO] Node accessibility check PASSED
     2026-05-04 04:40:50 - [INFO] All 4 node(s) have connected
    
     <---------------------  <node_name>  -------------------------------->
     abyss3
    
    
     <---------------------  <node_name>  -------------------------------->
     abyss4
    
    
     <---------------------  <node_name>  -------------------------------->
     abyss2
    
    
     <---------------------  <node_name>  -------------------------------->
     abyss1
     2026-05-04 04:40:50 - [INFO] ==========================================
    
     2026-05-04 04:40:50 - [INFO] ========================================================================
     2026-05-04 04:40:50 - [INFO] All environment pre-checks PASSED - proceeding with installation
     2026-05-04 04:40:50 - [INFO] ========================================================================
    
     2026-05-04 04:40:50 - [INFO] If silent mode is selected, the default base directory (/opt/protegrity) will be used as the location of the existing installation for each component (Logforwarder, RPAgent and DatabaseProtector).
     Do you want silent installation? (yes/no) [no]: 
    
  5. To install the components using the silent mode, type yes.
  6. Press ENTER. The prompt to confirm the presence of decimal UDF installation appears.
     2026-05-04 04:40:54 - [INFO] You have chosen silent mode. Therefore, /opt/protegrity is considered as base directory for new installation.
     2026-05-04 04:40:54 - [INFO] This is an upgrade and you have chosen silent mode. Therefore, /opt/protegrity is considered as base directory for existing installation.
     2026-05-04 04:40:54 - [INFO] Verifying previous installation directories for all components...
     2026-05-04 04:40:54 - [INFO] Existing LogForwarder directory: /opt/protegrity/logforwarder
     2026-05-04 04:40:54 - [INFO] Existing RPAgent directory: /opt/protegrity/rpagent
     2026-05-04 04:40:54 - [INFO] Existing DatabaseProtector directory: /opt/protegrity/databaseprotector
     2026-05-04 04:40:54 - [INFO] All existing component directories verified successfully.
    
     2026-05-04 04:40:54 - [INFO] Checking for Protegrity UDT in previous installation...
     2026-05-04 04:40:54 - [INFO] No UDT PLM file found at expected path. Checking Teradata libraries...
     2026-05-04 04:40:56 - [INFO] No Teradata library links to pepteradataudt. UDT not active.
     2026-05-04 04:40:56 - [INFO] No active Protegrity UDT detected. Proceeding with upgrade.
    
     2026-05-04 04:40:56 - [INFO] Protegrity Decimal UDF objects are not supported by this script
     Have you created Protegrity Decimal UDF objects in your previous installation? (yes/no) [no]:
    
  7. To confirm that the previous installation does not contain decimal UDFs, type no.
  8. Press ENTER. The script prompts to create the UDFs. The prompt to enter the database credentials appears.
    2026-05-04 04:41:01 - [INFO] No Protegrity Decimal UDF objects present. Proceeding with upgrade.
    Do you want to continue and create UDFs?
    To create the UDFs, provide the database credentials  (yes/no) [no]:
    
  9. To create the UDFs, type yes.
  10. Press ENTER. The prompt to enter the database username appears.
    Enter Teradata database username:
    
  11. Enter the username.
  12. Press ENTER. The prompt to enter the database password appears.
    Enter Teradata database user's password:
    
  13. Enter the password. The script lists the current configuration and the prompt to proceed with the configuration appears.
    2026-05-04 04:41:11 - [INFO] Silent upgrade: Using previous database name to install the UDFs: <database_name>
    2026-05-04 04:41:12 - [INFO] Silent upgrade: Using previous maximum size of varchar to be allocated by the UDFs: 500
    2026-05-04 04:41:12 - [INFO] Validating database ...
    2026-05-04 04:41:12 - [INFO] Database validated successfully
    
    2026-05-04 04:41:12 - [INFO] **************************************************************************
    2026-05-04 04:41:12 - [INFO] Upgrade will be done with following configuration:
    2026-05-04 04:41:12 - [INFO] Mode: upgrade
    2026-05-04 04:41:12 - [INFO] Existing Logforwarder Installation Directory: /opt/protegrity
    2026-05-04 04:41:12 - [INFO] Existing RPAgent Installation Directory: /opt/protegrity
    2026-05-04 04:41:12 - [INFO] Existing DatabaseProtector Installation Directory: /opt/protegrity
    2026-05-04 04:41:12 - [INFO] New Logforwarder Installation Directory: /opt/protegrity/<DBP_version>
    2026-05-04 04:41:12 - [INFO] New RPAgent Installation Directory: /opt/protegrity/<DBP_version>
    2026-05-04 04:41:12 - [INFO] New DatabaseProtector Installation Directory: /opt/protegrity/<DBP_version>
    2026-05-04 04:41:12 - [INFO] Audit Store Endpoints: <Audit_Store_Endpoint>:9200
    2026-05-04 04:41:12 - [INFO] Upstream (ESA) Hostname or IP Address for RPAgent: <ESA_Hostname>
    2026-05-04 04:41:12 - [INFO] Upstream (ESA) Port for RPAgent: 25400 (Default)
    2026-05-04 04:41:12 - [INFO] This is an upgrade.
    2026-05-04 04:41:12 - [INFO] Previous installations will be backed up before upgrade.
    2026-05-04 04:41:12 - [INFO] Existing Logforwarder and RPAgent configurations will be retained
    2026-05-04 04:41:12 - [INFO] **************************************************************************
    2026-05-04 04:41:12 - [WARN] **************************************************************************
    2026-05-04 04:41:12 - [WARN] IMPORTANT: Any queries currently running may be impacted during upgrade.
    2026-05-04 04:41:12 - [WARN] It is recommended to perform the upgrade during a maintenance window.
    2026-05-04 04:41:12 - [WARN] **************************************************************************
    
    2026-05-04 04:41:12 - [INFO] Please verify the above configuration before proceeding.
    Do you want to continue? (yes/no) [no]:
    
  14. To upgrade the protector using the configuration, type yes.
  15. Press ENTER. The script upgrades the Log Forwarder, RPAgent, the protector, and the UDFs and completes the installation.
    2026-05-04 04:41:27 - [INFO] Continuing with upgrade...
    2026-05-04 04:41:27 - [INFO] Backing up /opt/protegrity/logforwarder to /opt/protegrity/logforwarder_backup_<Timestamp>...
    2026-05-04 04:41:27 - [INFO] Backup of /opt/protegrity/logforwarder completed successfully
    2026-05-04 04:41:27 - [INFO] Backing up /opt/protegrity/rpagent to /opt/protegrity/rpagent_backup_<Timestamp>...
    2026-05-04 04:41:27 - [INFO] Backup of /opt/protegrity/rpagent completed successfully
    2026-05-04 04:41:27 - [INFO] Backing up /opt/protegrity/databaseprotector to /opt/protegrity/databaseprotector_backup_<Timestamp>...
    2026-05-04 04:41:27 - [INFO] Backup of /opt/protegrity/databaseprotector completed successfully
    2026-05-04 04:41:27 - [INFO] Backing up /etc/protegrity to /etc/protegrity_backup_<Timestamp>...
    2026-05-04 04:41:28 - [INFO] Backup of /etc/protegrity completed successfully
    2026-05-04 04:41:28 - [INFO] Installing/Upgrading LOGFORWARDER...
    2026-05-04 04:41:28 - [INFO] Executing ./LogforwarderSetup_Linux_x64_<DBP_version>.sh...
    2026-05-04 04:41:28 - [INFO] Retaining existing Logforwarder configuration...
    2026-05-04 04:41:28 - [INFO] Logforwarder configuration retained successfully.
    2026-05-04 04:41:28 - [INFO] Updating configuration files in /opt/protegrity/<DBP_version>/logforwarder/data to use new installation directory.
    2026-05-04 04:41:28 - [INFO] ./LogforwarderSetup_Linux_x64_<DBP_version>.sh completed successfully.
    2026-05-04 04:41:28 - [INFO] Installing/Upgrading RPAGENT...
    2026-05-04 04:41:28 - [INFO] Executing ./RPAgentSetup_Linux_x64_<DBP_version>.sh...
    2026-05-04 04:41:28 - [INFO] Retaining existing RPAgent configuration...
    2026-05-04 04:41:28 - [INFO] RPAgent configuration retained successfully.
    2026-05-04 04:41:28 - [INFO] Updating configuration files in /opt/protegrity/<DBP_version>/rpagent/data to use new installation directory.
    2026-05-04 04:41:28 - [INFO] ./RPAgentSetup_Linux_x64_<DBP_version>.sh completed successfully.
    2026-05-04 04:41:28 - [INFO] Old Logforwarder port: 15781  New Logforwarder port: 15780
    2026-05-04 04:41:28 - [INFO] Configuring new Logforwarder to listen on port 15780
    2026-05-04 04:41:28 - [INFO] Logforwarder listen port updated to 15780 in /opt/protegrity/<DBP_version>/logforwarder/data/config.d/in_tcp.conf
    2026-05-04 04:41:28 - [INFO] Configuring RPAgent to send logs to Logforwarder port 15780
    2026-05-04 04:41:28 - [INFO] RPAgent rpagent.cfg updated to use Logforwarder port 15780
    2026-05-04 04:41:28 - [INFO] Copying Logforwarder and RPAgent to all nodes in the Teradata cluster
    2026-05-04 04:41:28 - [INFO] Copying Logforwarder and RPAgent components to all nodes
    2026-05-04 04:41:28 - [INFO] Creating installation directories on all nodes if not present
    All 4 node(s) have connected
    All 4 node(s) have connected
    All 4 node(s) have connected
    All 4 node(s) have connected
    2026-05-04 04:41:29 - [INFO] Copying Logforwarder directory /opt/protegrity/<DBP_version>/logforwarder to all nodes
    All 4 node(s) have connected
    <node_name>:1023: send completed: 57975783 bytes received (11 files/7 directories)
    <node_name>:1023: send completed: 57975783 bytes received (11 files/7 directories)
    <node_name>:1022: send completed: 57975783 bytes received (11 files/7 directories)
    <node_name>:1023: send completed: 57975783 bytes received (11 files/7 directories)
    All 4 node(s) have connected
    All 4 node(s) have connected
    2026-05-04 04:41:30 - [INFO] Logforwarder successfully copied to all nodes
    2026-05-04 04:41:30 - [INFO] Copying RPAgent directory /opt/protegrity/<DBP_version>/rpagent to all nodes
    All 4 node(s) have connected
    <node_name>:1023: send completed: 14787819 bytes received (9 files/3 directories)
    <node_name>:1023: send completed: 14787819 bytes received (9 files/3 directories)
    <node_name>:1022: send completed: 14787819 bytes received (9 files/3 directories)
    <node_name>:1023: send completed: 14787819 bytes received (9 files/3 directories)
    All 4 node(s) have connected
    All 4 node(s) have connected
    2026-05-04 04:41:31 - [INFO] RPAgent successfully copied to all nodes
    2026-05-04 04:41:31 - [INFO] Logforwarder and RPAgent successfully copied to all nodes
    2026-05-04 04:41:31 - [INFO] Starting new Logforwarder on all nodes
    2026-05-04 04:41:33 - [INFO] Preparing Database Protector installation...
    2026-05-04 04:41:33 - [INFO] Installing/Upgrading DBP...
    2026-05-04 04:41:33 - [INFO] Executing ./PepTeradataSetup_Linux_x64_<DBP_version>.sh...
    2026-05-04 04:41:34 - [INFO] Retaining existing Database Protector configuration...
    2026-05-04 04:41:34 - [INFO] Database Protector configuration retained successfully.
    2026-05-04 04:41:34 - [INFO] Updating configuration files in /opt/protegrity/<DBP_version>/databaseprotector/teradata/data to use new installation directory.
    2026-05-04 04:41:34 - [INFO] ./PepTeradataSetup_Linux_x64_<DBP_version>.sh completed successfully.
    2026-05-04 04:41:34 - [INFO] Configuring DBP to send logs to Logforwarder port 15780
    2026-05-04 04:41:34 - [INFO] DBP config.ini updated to use Logforwarder port 15780
    2026-05-04 04:41:34 - [INFO] Copying DatabaseProtector to all nodes
    All 4 node(s) have connected
    <node_name>:1022: send completed: 8926094 bytes received (16 files/5 directories)
    <node_name>:1023: send completed: 8926094 bytes received (16 files/5 directories)
    <node_name>:1023: send completed: 8926094 bytes received (16 files/5 directories)
    <node_name>:1023: send completed: 8926094 bytes received (16 files/5 directories)
    All 4 node(s) have connected
    All 4 node(s) have connected
    2026-05-04 04:41:35 - [INFO] Setting DatabaseProtector ownership (tdatuser:tdtrusted) on all nodes
    All 4 node(s) have connected
    2026-05-04 04:41:35 - [INFO] DatabaseProtector successfully copied to all nodes
    2026-05-04 04:41:35 - [INFO] Synchronizing /etc/protegrity to all nodes
    All 4 node(s) have connected
    All 4 node(s) have connected
    <node_name>:1022: send completed: 1157 bytes received (1 files/1 directories)
    <node_name>:1023: send completed: 1157 bytes received (1 files/1 directories)
    <node_name>:1023: send completed: 1157 bytes received (1 files/1 directories)
    <node_name>:1023: send completed: 1157 bytes received (1 files/1 directories)
    All 4 node(s) have connected
    All 4 node(s) have connected
    All 4 node(s) have connected
    2026-05-04 04:41:36 - [INFO] User configuration directory successfully synchronized to all nodes
    2026-05-04 04:41:36 - [INFO] Dropping existing UDFs (database operation on current node only - shared across all nodes)
    2026-05-04 04:41:36 - [INFO] Side-by-side upgrade: Using SQL scripts from previous installation: /opt/protegrity/databaseprotector/teradata/sqlscripts
    BTEQ 17.20.00.08 (64-bit) Mon May  4 04:41:36 2026 PID: 162646
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .SET EXITONDELAY ON MAXREQTIME 300 RC 12
    +---------+---------+---------+---------+---------+---------+---------+----
    .logon localhost/<database_user_name>,
    
    *** Logon successfully completed.
    *** Teradata Database Release is 17.20.03.18                   
    *** Teradata Database Version is 17.20.03.18                     
    *** Transaction Semantics are BTET.
    *** Session Character Set Name is 'ASCII'.
    
    *** Total elapsed time was 1 second.
    
    +---------+---------+---------+---------+---------+---------+---------+----
    database <database_name>;
    
    *** New default database accepted. 
    *** Total elapsed time was 1 second.
    
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .IF ERRORCODE <> 0 THEN .QUIT 12;
    +---------+---------+---------+---------+---------+---------+---------+----
    .run file /opt/protegrity/databaseprotector/teradata/sqlscripts/dropobjects
    .sql;
    +---------+---------+---------+---------+---------+---------+---------+----
    2026-05-04 04:41:49 - [INFO] Main UDFs dropped successfully
    BTEQ 17.20.00.08 (64-bit) Mon May  4 04:41:49 2026 PID: 163223
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .SET EXITONDELAY ON MAXREQTIME 300 RC 12
    +---------+---------+---------+---------+---------+---------+---------+----
    .logon localhost/<database_user_name>,
    
    *** Logon successfully completed.
    *** Teradata Database Release is 17.20.03.18                   
    *** Teradata Database Version is 17.20.03.18                     
    *** Transaction Semantics are BTET.
    *** Session Character Set Name is 'ASCII'.
    
    *** Total elapsed time was 1 second.
    
    +---------+---------+---------+---------+---------+---------+---------+----
    database <database_name>;
    
    *** New default database accepted. 
    *** Total elapsed time was 1 second.
    
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .run file /opt/protegrity/databaseprotector/teradata/sqlscripts/dropvarchar
    unicode.sql;
    +---------+---------+---------+---------+---------+---------+---------+----
    2026-05-04 04:41:51 - [INFO] Varchar unicode UDFs dropped successfully
    2026-05-04 04:41:51 - [INFO] Stopping existing RPAgent on all nodes
    All 4 node(s) have connected
    
    <---------------------  <node_name>  -------------------------------->
    Stopping rpagent
    
    
    <---------------------  <node_name>  -------------------------------->
    Stopping rpagent
    
    
    <---------------------  <node_name>  -------------------------------->
    Stopping rpagent
    
    
    <---------------------  <node_name>  -------------------------------->
    Stopping rpagent
    
    2026-05-04 04:41:52 - [INFO] Starting new RPAgent on all nodes
    2026-05-04 04:41:52 - [INFO] Successfully launched new RPAgent on all nodes
    2026-05-04 04:41:52 - [INFO] Creating new UDFs (database operation on current node only - shared across all nodes)
    BTEQ 17.20.00.08 (64-bit) Mon May  4 04:41:52 2026 PID: 163329
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .SET EXITONDELAY ON MAXREQTIME 300 RC 12
    +---------+---------+---------+---------+---------+---------+---------+----
    .logon localhost/<database_user_name>,
    
    *** Logon successfully completed.
    *** Teradata Database Release is 17.20.03.18                   
    *** Teradata Database Version is 17.20.03.18                     
    *** Transaction Semantics are BTET.
    *** Session Character Set Name is 'ASCII'.
    
    *** Total elapsed time was 1 second.
    
    +---------+---------+---------+---------+---------+---------+---------+----
    database <database_name>;
    
    *** New default database accepted. 
    *** Total elapsed time was 1 second.
    
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .IF ERRORCODE <> 0 THEN .QUIT 12;
    +---------+---------+---------+---------+---------+---------+---------+----
    .run file /opt/protegrity/<DBP_version>/databaseprotector/teradata/sqlscripts/c
    reateobjects.sql;
    +---------+---------+---------+---------+---------+---------+---------+----
    
    2026-05-04 04:42:09 - [INFO] Creating varcharunicode UDFs
    BTEQ 17.20.00.08 (64-bit) Mon May  4 04:42:09 2026 PID: 164081
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .SET EXITONDELAY ON MAXREQTIME 300 RC 12
    +---------+---------+---------+---------+---------+---------+---------+----
    .logon localhost/<database_user_name>,
    
    *** Logon successfully completed.
    *** Teradata Database Release is 17.20.03.18                   
    *** Teradata Database Version is 17.20.03.18                     
    *** Transaction Semantics are BTET.
    *** Session Character Set Name is 'ASCII'.
    
    *** Total elapsed time was 1 second.
    
    +---------+---------+---------+---------+---------+---------+---------+----
    database <database_name>;
    
    *** New default database accepted. 
    *** Total elapsed time was 1 second.
    
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .IF ERRORCODE <> 0 THEN .QUIT 12;
    +---------+---------+---------+---------+---------+---------+---------+----
    .run file /opt/protegrity/<DBP_version>/databaseprotector/teradata/sqlscripts/c
    reatevarcharunicode.sql;
    +---------+---------+---------+---------+---------+---------+---------+----
    
    2026-05-04 04:42:11 - [INFO] Varcharunicode UDFs created successfully
    2026-05-04 04:42:11 - [INFO] Testing UDFs
    BTEQ 17.20.00.08 (64-bit) Mon May  4 04:42:11 2026 PID: 164171
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .SET EXITONDELAY ON MAXREQTIME 300 RC 12
    +---------+---------+---------+---------+---------+---------+---------+----
    .logon localhost/<database_user_name>,
    
    *** Logon successfully completed.
    *** Teradata Database Release is 17.20.03.18                   
    *** Teradata Database Version is 17.20.03.18                     
    *** Transaction Semantics are BTET.
    *** Session Character Set Name is 'ASCII'.
    
    *** Total elapsed time was 1 second.
    
    +---------+---------+---------+---------+---------+---------+---------+----
    database <database_name>;
    
    *** New default database accepted. 
    *** Total elapsed time was 1 second.
    
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .IF ERRORCODE <> 0 THEN .QUIT 12;
    +---------+---------+---------+---------+---------+---------+---------+----
    select pty_getversion();
    
    *** Query completed. One row found. One column returned. 
    *** Total elapsed time was 1 second.
    
    pty_getversion()
    ---------------------------------------------------------------------------
    <DBP_version>
    
    +---------+---------+---------+---------+---------+---------+---------+----
    .logoff
    *** You are now logged off from the <database_user_name>.
    +---------+---------+---------+---------+---------+---------+---------+----
    .quit
    *** Exiting BTEQ...
    *** RC (return code) = 0 
    2026-05-04 04:42:11 - [INFO] Stopping existing Logforwarder on all nodes
    All 4 node(s) have connected
    
    <---------------------  <node_name>  -------------------------------->
    Stopping Log Forwarder with PID: 227791
    Please Wait
    
    
    <---------------------  <node_name>  -------------------------------->
    Stopping Log Forwarder with PID: 155218
    Please Wait
    
    
    <---------------------  <node_name>  -------------------------------->
    Stopping Log Forwarder with PID: 210287
    Please Wait
    
    
    <---------------------  <node_name>  -------------------------------->
    Stopping Log Forwarder with PID: 86042
    Please Wait
    
    2026-05-04 04:42:17 - [INFO] Removing previous installation directories
    2026-05-04 04:42:17 - [INFO] Removing previous Logforwarder directory from all nodes: /opt/protegrity/logforwarder
    All 4 node(s) have connected
    2026-05-04 04:42:17 - [INFO] Removing previous RPAgent directory from all nodes: /opt/protegrity/rpagent
    All 4 node(s) have connected
    2026-05-04 04:42:17 - [INFO] Removing previous DatabaseProtector directory from all nodes: /opt/protegrity/databaseprotector
    All 4 node(s) have connected
    2026-05-04 04:42:17 - [INFO] User configuration backup removed: /etc/protegrity_backup_<Timestamp>
    2026-05-04 04:42:17 - [INFO] Upgrade successful.
    2026-05-04 04:42:17 - [INFO] All components upgraded successfully.
    
    2026-05-04 04:42:17 - [INFO] IMPORTANT: This script doesn't handle Protegrity UDT, it must be handled manually. Refer to product documentation.
    2026-05-04 04:42:17 - [INFO] IMPORTANT: This script doesn't handle Protegrity Decimal UDF objects, it must be handled manually. Refer to product documentation.