Class SqlUtils


  • public class SqlUtils
    extends Object
    This utility class contains SQL statements to configure, manage and query Oracle LogMiner todo handle INVALID file member (report somehow and continue to work with valid file), handle adding multiplexed files, todo SELECT name, value FROM v$sysstat WHERE name = 'redo wastage'; todo SELECT GROUP#, STATUS, MEMBER FROM V$LOGFILE WHERE STATUS='INVALID'; (drop and recreate? or do it manually?) todo table level supplemental logging todo When you use the SKIP_CORRUPTION option to DBMS_LOGMNR.START_LOGMNR, any corruptions in the redo log files are skipped during select operations from the V$LOGMNR_CONTENTS view. todo if file is compressed? // For every corrupt redo record encountered, // a row is returned that contains the value CORRUPTED_BLOCKS in the OPERATION column, 1343 in the STATUS column, and the number of blocks skipped in the INFO column.
    • Field Detail

      • FILES_FOR_MINING

        static final String FILES_FOR_MINING
        Querying V$LOGMNR_LOGS After a successful call to DBMS_LOGMNR.START_LOGMNR, the STATUS column of the V$LOGMNR_LOGS view contains one of the following values: 0 Indicates that the redo log file will be processed during a query of the V$LOGMNR_CONTENTS view. 1 Indicates that this will be the first redo log file to be processed by LogMiner during a select operation against the V$LOGMNR_CONTENTS view. 2 Indicates that the redo log file has been pruned and therefore will not be processed by LogMiner during a query of the V$LOGMNR_CONTENTS view. It has been pruned because it is not needed to satisfy your requested time or SCN range. 4 Indicates that a redo log file (based on sequence number) is missing from the LogMiner redo log file list.
        See Also:
        Constant Field Values
      • LOGGER

        private static final org.slf4j.Logger LOGGER
    • Constructor Detail

      • SqlUtils

        public SqlUtils()
    • Method Detail

      • setRac

        static void setRac​(boolean isRac)
      • redoLogStatusQuery

        static String redoLogStatusQuery()
      • switchHistoryQuery

        static String switchHistoryQuery​(String archiveDestinationName)
      • currentRedoNameQuery

        static String currentRedoNameQuery()
      • currentRedoLogSequenceQuery

        static String currentRedoLogSequenceQuery()
      • databaseSupplementalLoggingAllCheckQuery

        static String databaseSupplementalLoggingAllCheckQuery()
      • databaseSupplementalLoggingMinCheckQuery

        static String databaseSupplementalLoggingMinCheckQuery()
      • tableSupplementalLoggingCheckQuery

        static String tableSupplementalLoggingCheckQuery​(TableId tableId)
      • currentScnQuery

        static String currentScnQuery()
      • oldestFirstChangeQuery

        static String oldestFirstChangeQuery​(Duration archiveLogRetention,
                                             String archiveDestinationName)
      • allMinableLogsQuery

        public static String allMinableLogsQuery​(Scn scn,
                                                 Duration archiveLogRetention,
                                                 boolean archiveLogOnlyMode,
                                                 String archiveDestinationName)
        Obtain a query to fetch all available minable logs, both archive and online redo logs.
        Parameters:
        scn - oldest system change number to search by
        archiveLogRetention - duration archive logs will be mined
        archiveLogOnlyMode - true if to only mine archive logs, false to mine all available logs
        archiveDestinationName - configured archive log destination to use, may be null
        Returns:
        the query string to obtain minable log files
      • localArchiveLogDestinationsOnlyQuery

        private static String localArchiveLogDestinationsOnlyQuery​(String archiveDestinationName)
        Returns a SQL predicate clause that should be applied to any ARCHIVED_LOG_VIEW queries so that the results are filtered to only include the local destinations and not those that may be generated by tools such as Oracle Data Guard.
        Parameters:
        archiveDestinationName - archive log destination to be used, may be null to auto-select
      • startLogMinerStatement

        static String startLogMinerStatement​(Scn startScn,
                                             Scn endScn,
                                             OracleConnectorConfig.LogMiningStrategy strategy,
                                             boolean isContinuousMining)
        This returns statement to build LogMiner view for online redo log files
        Parameters:
        startScn - mine from
        endScn - mine till
        strategy - Log Mining strategy
        Returns:
        statement todo: handle corruption. STATUS (Double) — value of 0 indicates it is executable
      • addLogFileStatement

        static String addLogFileStatement​(String option,
                                          String fileName)
      • deleteLogFileStatement

        static String deleteLogFileStatement​(String fileName)
      • tableExistsQuery

        static String tableExistsQuery​(String tableName)
      • dropTableStatement

        static String dropTableStatement​(String tableName)
      • logMiningHistoryDdl

        static String logMiningHistoryDdl​(String tableName)
      • truncateTableStatement

        static String truncateTableStatement​(String tableName)
      • diffInDaysQuery

        public static String diffInDaysQuery​(Scn scn)
        This method return query which converts given SCN in days and deduct from the current day
      • connectionProblem

        public static boolean connectionProblem​(Throwable e)