Class SqlUtils

java.lang.Object
io.debezium.connector.oracle.logminer.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 Details

  • Constructor Details

    • SqlUtils

      public SqlUtils()
  • Method Details

    • 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)
    • 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)
    • getScnByTimeDeltaQuery

      public static String getScnByTimeDeltaQuery(Scn scn, Duration duration)