<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>OpenText Analytics Database 26.2.x – Before you upgrade</title>
    <link>/en/setup/upgrading/before-you-upgrade/</link>
    <description>Recent content in Before you upgrade on OpenText Analytics Database 26.2.x</description>
    <generator>Hugo -- gohugo.io</generator>
    
	  <atom:link href="/en/setup/upgrading/before-you-upgrade/index.xml" rel="self" type="application/rss+xml" />
    
    
      
        
      
    
    
    <item>
      <title>Setup: Verifying platform requirements</title>
      <link>/en/setup/upgrading/before-you-upgrade/verifying-platform-requirements/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/en/setup/upgrading/before-you-upgrade/verifying-platform-requirements/</guid>
      <description>
        
        
        &lt;p&gt;The database installer checks the target platform as it runs, and stops whenever it determines the platform fails to meet an installation requirement. Before you update the server package on your systems, manually verify that your platform meets all hardware and software requirements (see &lt;a href=&#34;../../../../en/setup/set-up-on-premises/before-you-install/platform-and-hardware-requirements-and-recommendations/#&#34;&gt;Platform and hardware requirements and recommendations&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;By default, the installer stops on all warnings. You can configure the level where the installer stops installation, through the installation parameter &lt;code&gt;--failure-threshold&lt;/code&gt;. If you set the failure threshold to &lt;code&gt;FAIL&lt;/code&gt;, the installer ignores warnings and stops only on failures.

&lt;div class=&#34;admonition caution&#34; role=&#34;alert&#34;&gt;
&lt;h4 class=&#34;admonition-head&#34;&gt;Caution&lt;/h4&gt;

Changing the failure threshold lets you immediately upgrade and bring up the database. However, the database cannot fully optimize performance until you correct all warnings.

&lt;/div&gt;&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Setup: Checking catalog storage space</title>
      <link>/en/setup/upgrading/before-you-upgrade/checking-catalog-storage-space/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/en/setup/upgrading/before-you-upgrade/checking-catalog-storage-space/</guid>
      <description>
        
        
        &lt;p&gt;Use the commands documented here to determine how much catalog space is available before upgrading. This helps you determine how much space the updated catalog may take up.&lt;/p&gt;
&lt;p&gt;Compare how much space the catalog currently uses against space that is available in the same directory:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Use the &lt;code&gt;du&lt;/code&gt; command to determine how much space the catalog directory currently uses:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ du -s -BG v_vmart_node0001_catalog
2G      v_vmart_node0001_catalog
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Determine how much space is available in the same directory:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ df -BG v_vmart_node0001_catalog
Filesystem     1G-blocks  Used Available Use% Mounted on
/dev/sda2            48G   19G       26G  43% /
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ol&gt;

      </description>
    </item>
    
    <item>
      <title>Setup: Verify license compliance for ORC and Parquet data</title>
      <link>/en/setup/upgrading/before-you-upgrade/verify-license-compliance-orc-and-parquet-data/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/en/setup/upgrading/before-you-upgrade/verify-license-compliance-orc-and-parquet-data/</guid>
      <description>
        
        
        &lt;p&gt;If you are upgrading from a version before 9.1.0 and:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Your database has external tables based on ORC or Parquet files (whether stored locally on the database cluster or on a Hadoop cluster)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Your OpenText™ Analytics Database license has a raw data allowance&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;follow the steps in this topic before upgrading.&lt;/p&gt;
&lt;h2 id=&#34;background&#34;&gt;Background&lt;/h2&gt;
&lt;p&gt;Vertica licenses can include a raw data allowance. Since 2016, Vertica licenses have allowed you to use ORC and Parquet data in external tables. This data has always counted against any raw data allowance in your license. Previously, the audit of data in ORC and Parquet format was handled manually. Because this audit was not automated, the total amount of data in your native tables and external tables could exceed your licensed allowance for some time before being spotted.&lt;/p&gt;
&lt;p&gt;Starting in version 9.1.0, Vertica automatically audits ORC and Parquet data in external tables. This auditing begins soon after you install or upgrade to version 9.1.0. If your Vertica license includes a raw data allowance and you have data in external tables based on Parquet or ORC files, review your license compliance before upgrading to Vertica 9.1.x. Verifying your database is compliant with your license terms avoids having your database become non-compliant soon after you upgrade.&lt;/p&gt;

&lt;h2 id=&#34;verifying-your-orc-and-parquet-usage-complies-with-your-license-terms&#34;&gt;Verifying your ORC and Parquet usage complies with your license terms&lt;/h2&gt;
&lt;p&gt;To verify your data usage is compliant with your license, run the following query as the database administrator:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;SELECT (database_size_bytes + file_size_bytes) &amp;lt;= license_size_bytes
       &amp;#34;license_compliant?&amp;#34;
       FROM (SELECT database_size_bytes,
                    license_size_bytes FROM license_audits
                    WHERE audited_data=&amp;#39;Total&amp;#39;
                    ORDER BY audit_end_timestamp DESC LIMIT 1) dbs,
            (SELECT sum(total_file_size_bytes) file_size_bytes
                    FROM external_table_details
                    WHERE source_format IN (&amp;#39;ORC&amp;#39;, &amp;#39;PARQUET&amp;#39;)) ets;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This query returns one of three values:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;If you do not have any external data in ORC or Parquet format, the query returns 0 rows:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt; license_compliant?
--------------------
(0 rows)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;In this case, you can proceed with your upgrade.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If you have data in external tables based on ORC or Parquet format, and that data does not cause your database to exceed your raw data allowance, the query returns t:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt; license_compliant?
--------------------
 t
(1 row)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;In this case, you can proceed with your upgrade.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If the data in your external tables based on ORC and Parquet causes your database to exceed your raw data allowance, the query returns f:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt; license_compliant?
--------------------
 f
(1 row)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;In this case, resolve the compliance issue before you upgrade. See below for more information.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;resolving-non-compliance&#34;&gt;Resolving non-compliance&lt;/h2&gt;
&lt;p&gt;If query in the previous section indicates that your database is not in compliance with your license, you should resolve this issue before upgrading. There are two ways you can bring your database into compliance:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Contact OpenText™ to upgrade your license to a larger data size allowance. See &lt;a href=&#34;../../../../en/admin/managing-licenses/obtaining-license-key-file/#&#34;&gt;Obtaining a license key file&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Delete data (either from ORC and Parquet-based external tables or OpenText™ Analytics Database native tables) to bring your data size into compliance with your license. You should always backup any data you are about to delete from the database. Dropping external tables is a less disruptive way to reduce the size of your database, as the data is not lost—it is still in the files that your external table is based on.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&#34;alert admonition note&#34; role=&#34;alert&#34;&gt;
&lt;h4 class=&#34;admonition-head&#34;&gt;Note&lt;/h4&gt;

You can still choose to upgrade your database if it is not compliant. However, soon after you upgrade, you will begin getting warnings that your database is out of compliance. See &lt;a href=&#34;../../../../en/admin/managing-licenses/managing-license-warnings-and-limits/#&#34;&gt;Managing license warnings and limits&lt;/a&gt; for more information.

&lt;/div&gt;

      </description>
    </item>
    
    <item>
      <title>Setup: Backing up and restoring grants</title>
      <link>/en/setup/upgrading/before-you-upgrade/backing-up-and-restoring-grants/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/en/setup/upgrading/before-you-upgrade/backing-up-and-restoring-grants/</guid>
      <description>
        
        
        &lt;p&gt;After an upgrade, if the prototypes of UDx libraries change, the database will drop the grants on those libraries since they aren&#39;t technically the same function anymore. To resolve these types of issues, it&#39;s best practice to back up the grants on these libraries so you can restore them after the upgrade.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Save the following SQL to a file named &lt;code&gt;user_ddl.sql&lt;/code&gt;. It creates a view named user_ddl which contains the grants on all objects in the database.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;CREATE OR REPLACE VIEW user_ddl AS
(
SELECT 0 as grant_order,
       name principal_name,
       &amp;#39;CREATE ROLE &amp;#34;&amp;#39; || name || &amp;#39;&amp;#34;&amp;#39; ||    &amp;#39;;&amp;#39; AS sql,
       &amp;#39;NONE&amp;#39; AS object_type,
       &amp;#39;NONE&amp;#39; AS object_name
  FROM v_internal.vs_roles vr
 WHERE NOT vr.predefined_role -- Exclude system roles
   AND ldapdn = &amp;#39;&amp;#39;            -- Limit to NON-LDAP created roles
)
UNION ALL
(
  SELECT 1, -- CREATE USERs
         user_name,
         &amp;#39;CREATE USER &amp;#34;&amp;#39; || user_name || &amp;#39;&amp;#34;&amp;#39; ||
         DECODE(is_locked, TRUE, &amp;#39; ACCOUNT LOCK&amp;#39;, &amp;#39;&amp;#39;) ||
         DECODE(grace_period, &amp;#39;undefined&amp;#39;, &amp;#39;&amp;#39;, &amp;#39; GRACEPERIOD  &amp;#39;&amp;#39;&amp;#39; || grace_period || &amp;#39;&amp;#39;&amp;#39;&amp;#39;) ||
         DECODE(idle_session_timeout, &amp;#39;unlimited&amp;#39;, &amp;#39;&amp;#39;, &amp;#39; IDLESESSIONTIMEOUT &amp;#39;&amp;#39;&amp;#39; || idle_session_timeout || &amp;#39;&amp;#39;&amp;#39;&amp;#39;) ||
         DECODE(max_connections, &amp;#39;unlimited&amp;#39;, &amp;#39;&amp;#39;, &amp;#39; MAXCONNECTIONS &amp;#39; || max_connections || &amp;#39; ON &amp;#39; || connection_limit_mode) ||
         DECODE(memory_cap_kb, &amp;#39;unlimited&amp;#39;, &amp;#39;&amp;#39;, &amp;#39; MEMORYCAP &amp;#39;&amp;#39;&amp;#39; || memory_cap_kb || &amp;#39;K&amp;#39;&amp;#39;&amp;#39;) ||
         DECODE(profile_name, &amp;#39;default&amp;#39;, &amp;#39;&amp;#39;, &amp;#39; PROFILE &amp;#39; || profile_name) ||
         DECODE(resource_pool, &amp;#39;general&amp;#39;, &amp;#39;&amp;#39;, &amp;#39; RESOURCE POOL &amp;#39; || resource_pool) ||
         DECODE(run_time_cap, &amp;#39;unlimited&amp;#39;, &amp;#39;&amp;#39;, &amp;#39; RUNTIMECAP &amp;#39;&amp;#39;&amp;#39; || run_time_cap || &amp;#39;&amp;#39;&amp;#39;&amp;#39;) ||
         DECODE(search_path, &amp;#39;&amp;#39;, &amp;#39;&amp;#39;, &amp;#39; SEARCH_PATH &amp;#39; || search_path) ||
         DECODE(temp_space_cap_kb, &amp;#39;unlimited&amp;#39;, &amp;#39;&amp;#39;, &amp;#39; TEMPSPACECAP &amp;#39;&amp;#39;&amp;#39; || temp_space_cap_kb || &amp;#39;K&amp;#39;&amp;#39;&amp;#39;) || &amp;#39;;&amp;#39; AS sql,
         &amp;#39;NONE&amp;#39; AS object_type,
         &amp;#39;NONE&amp;#39; AS object_name
    FROM v_catalog.users
   WHERE NOT is_super_user -- Exclude database superuser
     AND ldap_dn = &amp;#39;&amp;#39;      -- Limit to NON-LDAP created users
)
UNION ALL
(
  SELECT 2, -- GRANTs
         grantee,
         &amp;#39;GRANT &amp;#39; || REPLACE(TRIM(BOTH &amp;#39; &amp;#39; FROM words), &amp;#39;*&amp;#39;, &amp;#39;&amp;#39;) ||
         CASE
           WHEN object_type = &amp;#39;RESOURCEPOOL&amp;#39; THEN &amp;#39; ON RESOURCE POOL &amp;#39;
           WHEN object_type = &amp;#39;STORAGELOCATION&amp;#39; THEN &amp;#39; ON LOCATION &amp;#39;
           WHEN object_type = &amp;#39;CLIENTAUTHENTICATION&amp;#39; THEN &amp;#39;AUTHENTICATION &amp;#39;
           WHEN object_type IN (&amp;#39;DATABASE&amp;#39;, &amp;#39;LIBRARY&amp;#39;, &amp;#39;MODEL&amp;#39;, &amp;#39;SEQUENCE&amp;#39;, &amp;#39;SCHEMA&amp;#39;) THEN &amp;#39; ON &amp;#39; || object_type || &amp;#39; &amp;#39;
           WHEN object_type = &amp;#39;PROCEDURE&amp;#39; THEN (SELECT &amp;#39; ON &amp;#39; || CASE REPLACE(procedure_type, &amp;#39;User Defined &amp;#39;, &amp;#39;&amp;#39;)
                                                                   WHEN &amp;#39;Transform&amp;#39; THEN &amp;#39;TRANSFORM FUNCTION &amp;#39;
                                                                   WHEN &amp;#39;Aggregate&amp;#39; THEN &amp;#39;AGGREGATE FUNCTION &amp;#39;
                                                                   WHEN &amp;#39;Analytic&amp;#39; THEN &amp;#39;ANALYTIC FUNCTION &amp;#39;
                                                                   ELSE UPPER(REPLACE(procedure_type, &amp;#39;User Defined &amp;#39;, &amp;#39;&amp;#39;)) || &amp;#39; &amp;#39;
                                                                 END
                                                  FROM vs_procedures
                                                 WHERE proc_oid = object_id)
           WHEN object_type = &amp;#39;ROLE&amp;#39; THEN &amp;#39;&amp;#39;
           ELSE &amp;#39; ON &amp;#39;
         END ||
         NVL2(object_schema, object_schema || &amp;#39;.&amp;#39;, &amp;#39;&amp;#39;) || CASE WHEN object_type = &amp;#39;STORAGELOCATION&amp;#39; THEN (SELECT &amp;#39;&amp;#39;&amp;#39;&amp;#39; || location_path || &amp;#39;&amp;#39;&amp;#39; ON &amp;#39; || node_name FROM storage_locations WHERE location_id = object_id) ELSE object_name END ||
         CASE
           WHEN object_type = &amp;#39;PROCEDURE&amp;#39; THEN (SELECT CASE WHEN procedure_argument_types = &amp;#39;&amp;#39; OR procedure_argument_types = &amp;#39;Any&amp;#39; THEN &amp;#39;()&amp;#39; ELSE &amp;#39;(&amp;#39; || procedure_argument_types || &amp;#39;)&amp;#39; END
                                                  FROM vs_procedures
                                                 WHERE proc_oid = object_id)
           ELSE &amp;#39;&amp;#39;
         END ||
         &amp;#39; TO &amp;#39; || grantee ||
         CASE WHEN INSTR(words, &amp;#39;*&amp;#39;) &amp;gt; 0 THEN &amp;#39; WITH GRANT OPTION&amp;#39; ELSE &amp;#39;&amp;#39; END
         || &amp;#39;;&amp;#39;,
         object_type,
         object_name
  FROM (SELECT grantee, object_type, object_schema, object_name, object_id,
                 v_txtindex.StringTokenizerDelim(DECODE(privileges_description, &amp;#39;&amp;#39;, &amp;#39;,&amp;#39; , privileges_description), &amp;#39;,&amp;#39;)
                   OVER (PARTITION BY grantee, object_type, object_schema, object_name, object_id)
          FROM v_catalog.grants) foo
 ORDER BY CASE REPLACE(TRIM(BOTH &amp;#39; &amp;#39; FROM words), &amp;#39;*&amp;#39;, &amp;#39;&amp;#39;) WHEN &amp;#39;USAGE&amp;#39; THEN 1 ELSE 2 END
)
UNION ALL
(
  SELECT 3, -- Default ROLEs
         user_name,
         &amp;#39;ALTER USER &amp;#34;&amp;#39; || user_name || &amp;#39;&amp;#34;&amp;#39; ||
           DECODE(default_roles, &amp;#39;&amp;#39;, &amp;#39;&amp;#39;, &amp;#39; DEFAULT ROLE &amp;#39; || REPLACE(default_roles, &amp;#39;*&amp;#39;, &amp;#39;&amp;#39;))  || &amp;#39;;&amp;#39; ,
         &amp;#39;NONE&amp;#39; AS object_type,
         &amp;#39;NONE&amp;#39; AS object_name
    FROM v_catalog.users
   WHERE default_roles &amp;lt;&amp;gt; &amp;#39;&amp;#39;
)
UNION ALL -- GRANTs WITH ADMIN OPTION
(
  SELECT 4, user_name, &amp;#39;GRANT &amp;#39; || REPLACE(TRIM(BOTH &amp;#39; &amp;#39; FROM words), &amp;#39;*&amp;#39;, &amp;#39;&amp;#39;) || &amp;#39; TO &amp;#39; || user_name || &amp;#39; WITH ADMIN OPTION;&amp;#39;,
         &amp;#39;NONE&amp;#39; AS object_type ,
         &amp;#39;NONE&amp;#39; AS object_name
    FROM (SELECT user_name, v_txtindex.StringTokenizerDelim(DECODE(all_roles, &amp;#39;&amp;#39;, &amp;#39;,&amp;#39;, all_roles), &amp;#39;,&amp;#39;) OVER (PARTITION BY user_name)
            FROM v_catalog.users
           WHERE all_roles &amp;lt;&amp;gt; &amp;#39;&amp;#39;) foo
   WHERE INSTR(words, &amp;#39;*&amp;#39;) &amp;gt; 0
)
UNION ALL
(
  SELECT 5, &amp;#39;public&amp;#39;, &amp;#39;ALTER SCHEMA &amp;#39; || name || &amp;#39; DEFAULT &amp;#39; || CASE WHEN defaultinheritprivileges THEN &amp;#39;INCLUDE PRIVILEGES;&amp;#39; ELSE &amp;#39;EXCLUDE PRIVILEGES;&amp;#39; END, &amp;#39;SCHEMA&amp;#39;, name
    FROM v_internal.vs_schemata
   WHERE NOT issys -- Exclude system schemas
)
UNION ALL
(
  SELECT 6, &amp;#39;public&amp;#39;, &amp;#39;ALTER DATABASE &amp;#39; || database_name ||  &amp;#39; SET disableinheritedprivileges = &amp;#39; || current_value || &amp;#39;;&amp;#39;,
         &amp;#39;DATABASE&amp;#39;, database_name
    FROM v_internal.vs_configuration_parameters
   CROSS JOIN v_catalog.databases
   WHERE parameter_name = &amp;#39;DisableInheritedPrivileges&amp;#39;
)
UNION ALL -- TABLE PRIV INHERITENCE
(
  SELECT 7, &amp;#39;public&amp;#39; , &amp;#39;ALTER TABLE &amp;#39; || table_schema || &amp;#39;.&amp;#39; || table_name ||
         CASE WHEN inheritprivileges THEN &amp;#39; INCLUDE PRIVILEGES;&amp;#39; ELSE &amp;#39; EXCLUDE PRIVILEGES;&amp;#39; END,
         &amp;#39;TABLE&amp;#39; AS object_type,
         table_schema || &amp;#39;.&amp;#39; || table_name AS object_name
    FROM v_internal.vs_tables
    JOIN v_catalog.tables ON (table_id = oid)
)
UNION ALL -- VIEW PRIV INHERITENCE
(
  SELECT 8, &amp;#39;public&amp;#39;, &amp;#39;ALTER VIEW &amp;#39; || table_schema || &amp;#39;.&amp;#39; || table_name || CASE WHEN inherit_privileges THEN &amp;#39; INCLUDE PRIVILEGES;&amp;#39; ELSE &amp;#39; EXCLUDE PRIVILEGES; &amp;#39; END,
         &amp;#39;TABLE&amp;#39; AS object_type, table_schema || &amp;#39;.&amp;#39; || table_name AS object_name
    FROM v_catalog.views
)
UNION ALL
(
  SELECT 9, owner_name, &amp;#39;ALTER TABLE &amp;#39; || table_schema || &amp;#39;.&amp;#39; || table_name || &amp;#39; OWNER TO &amp;#39; || owner_name || &amp;#39;;&amp;#39;,
         &amp;#39;TABLE&amp;#39;, table_schema || &amp;#39;.&amp;#39; || table_name
    FROM v_catalog.tables
)
UNION ALL
(
  SELECT 10, owner_name, &amp;#39;ALTER VIEW &amp;#39; || table_schema || &amp;#39;.&amp;#39; || table_name || &amp;#39; OWNER TO &amp;#39; || owner_name || &amp;#39;;&amp;#39;, &amp;#39;TABLE&amp;#39;,
         table_schema || &amp;#39;.&amp;#39; || table_name
    FROM v_catalog.views
);
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;From the Linux command line, run the script in the &lt;code&gt;user_ddl.sql&lt;/code&gt; file:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ vsql -f user_ddl.sql
CREATE VIEW
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Connect to the database using vsql.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Export the content of the user_ddl&#39;s sql column ordered on the grant_order column to a file:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;=&amp;gt; \o pre-upgrade.txt
=&amp;gt; SELECT sql FROM user_ddl ORDER BY grant_order ASC;
=&amp;gt; \o
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;../../../../en/setup/upgrading/&#34;&gt;Upgrade the database&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Select and save to a different file the view&#39;s SQL column with the same command.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;=&amp;gt; \o post-upgrade.txt
=&amp;gt; SELECT sql FROM user_ddl ORDER BY grant_order ASC;
=&amp;gt; \o
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Create a diff between &lt;code&gt;pre-upgrade.txt&lt;/code&gt; and &lt;code&gt;post-upgrade.txt&lt;/code&gt;. This collects the missing grants into &lt;code&gt;grants-list.txt&lt;/code&gt;.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ diff pre-upgrade.txt post-upgrade.txt &amp;gt; grants-list.txt
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;To restore any missing grants, run the remaining grants in &lt;code&gt;grants-list.txt&lt;/code&gt;, if any:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;=&amp;gt; \i &amp;#39;grants-list.txt&amp;#39;
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class=&#34;alert admonition note&#34; role=&#34;alert&#34;&gt;
&lt;h4 class=&#34;admonition-head&#34;&gt;Note&lt;/h4&gt;

&lt;p&gt;Attempting to restore grants to users with the ANY keyword triggers the following error:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;ERROR 4856: Syntax error at or near &amp;#34;Any&amp;#34; at character
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;To avoid this error, use () instead of (ANY) as shown in the following example:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;=&amp;gt; GRANT EXECUTE ON FUNCTION public.MapLookup() TO public;
GRANT PRIVILEGE
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

      </description>
    </item>
    
    <item>
      <title>Setup: Nonsequential FIPS database upgrades</title>
      <link>/en/setup/upgrading/before-you-upgrade/nonsequential-fips-db-upgrades/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/en/setup/upgrading/before-you-upgrade/nonsequential-fips-db-upgrades/</guid>
      <description>
        
        
        &lt;p&gt;As of Vertica 10.1.1, FIPS support has been reinstated. Prior to this, the last version to support FIPS was Vertica 9.2.x. If you are upgrading from 9.2.x and want to maintain your FIPS certification, you must first perform a direct upgrade from 9.2.x to 10.1.1 before performing further upgrades.&lt;/p&gt;
&lt;p&gt;The following procedure performs a direct upgrade from Vertica 9.2.x running on RHEL 6.x to Vertica 10.1.1 on RHEL 8.1.

&lt;div class=&#34;admonition important&#34; role=&#34;alert&#34;&gt;
&lt;h4 class=&#34;admonition-head&#34;&gt;Important&lt;/h4&gt;
If you have any questions or want additional guidance for performing this upgrade, contact &lt;a href=&#34;https://softwaresupport.softwaregrp.com/&#34;&gt;Vertica Support&lt;/a&gt;.
&lt;/div&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;../../../../en/admin/backup-and-restore/creating-backups/creating-full-backups/&#34;&gt;Create a full backup&lt;/a&gt; of your Vertica 9.2.x database. This example uses the configuration file &lt;code&gt;fullRestore.ini&lt;/code&gt;.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ vbr --config-file=/tmp/fullRestore.ini -t init
$ vbr --config-file=/tmp/fullRestore.ini -t backup
&lt;/code&gt;&lt;/pre&gt;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;[Transmission]
concurrency_backup = 1
port_rsync = 50000
encrypt = False
serviceAccessPass = rsyncpw
hardLinkLocal = False
checksum = False
total_bwlimit_restore = 0
serviceAccessUser = rsyncuser
total_bwlimit_backup = 0
concurrency_restore = 1

[Misc]
snapshotName = full_restore
restorePointLimit = 1
retryDelay = 1
objects =
retryCount = 0
tempDir = /tmp/vbr

[Mapping]
v_fips_db_node0001 = 198.51.100.0:/home/release/backup/
v_fips_db_node0002 = 198.51.100.1:/home/release/backup/
v_fips_db_node0003 = 198.51.100.2:/home/release/backup/

[Database]
dbPort = 5433
dbPromptForPassword = False
dbUser =
dbPassword =
dbName = fips_db
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;../../../../en/admin/operating-db/stopping-db/&#34;&gt;Shut down the database gracefully&lt;/a&gt;. Do not start the database until instructed.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Acquire a RHEL 8.1 cluster with one of the following methods:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Upgrade in place&lt;/li&gt;
&lt;li&gt;Reimage your machines&lt;/li&gt;
&lt;li&gt;Use a completely different RHEL 8.1 cluster&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Enable FIPS on your RHEL 8.1 machines and reboot.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ fips-mode-setup --enable
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Install Vertica 10.1.1 on the RHEL 8.1 cluster.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ install_vertica --hosts node0001, node0002, node0003 \
    --rpm /tmp/vertica-10.1.1.x86_64.RHEL8.rpm
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If you acquired your RHEL 8.1 cluster by reimaging or using a different cluster, you must &lt;a href=&#34;../../../../en/admin/backup-and-restore/restoring-backups/&#34;&gt;restore your database&lt;/a&gt;.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ vbr -c /tmp/fullRestore.ini -t restore
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;If you encounter the following warning, you can safely ignore it.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Warning: Vertica versions do not match: v9.2.1-xx -&amp;gt; v10.1.1-xxxxxxxx. This operation may not be supported.
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Start the Vertica 10.1.1 database to trigger the upgrade. This should be the first time you&#39;ve started your database since shutting it down in step 2.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ admintools -t start_db -d fips_db
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ol&gt;

      </description>
    </item>
    
  </channel>
</rss>
