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 Summary
Fields Modifier and Type Field Description private static StringALL_LOG_GROUPSprivate static StringARCHIVE_DEST_STATUS_VIEWprivate static StringARCHIVED_LOG_VIEWprivate static StringDATABASE_VIEWprivate static StringLOG_VIEWprivate static StringLOGFILE_VIEW
-
Constructor Summary
Constructors Constructor Description SqlUtils()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description (package private) static StringaddLogFileStatement(String option, String fileName)static StringallMinableLogsQuery(Scn scn, Duration archiveLogRetention, boolean archiveLogOnlyMode, String archiveDestinationName)Obtain a query to fetch all available minable logs, both archive and online redo logs.(package private) static StringcurrentRedoLogSequenceQuery()(package private) static StringcurrentRedoNameQuery()(package private) static StringdatabaseSupplementalLoggingAllCheckQuery()(package private) static StringdatabaseSupplementalLoggingMinCheckQuery()(package private) static StringdeleteLogFileStatement(String fileName)static StringdiffInDaysQuery(Scn scn)This method return query which converts given SCN in days and deduct from the current dayprivate static StringlocalArchiveLogDestinationsOnlyQuery(String archiveDestinationName)Returns a SQL predicate clause that should be applied to anyARCHIVED_LOG_VIEWqueries 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.(package private) static StringoldestFirstChangeQuery(Duration archiveLogRetention, String archiveDestinationName)(package private) static StringredoLogStatusQuery()(package private) static StringstartLogMinerStatement(Scn startScn, Scn endScn, OracleConnectorConfig.LogMiningStrategy strategy, boolean isContinuousMining)This returns statement to build LogMiner view for online redo log files(package private) static StringswitchHistoryQuery(String archiveDestinationName)(package private) static StringtableSupplementalLoggingCheckQuery(TableId tableId)
-
-
-
Field Detail
-
DATABASE_VIEW
private static final String DATABASE_VIEW
- See Also:
- Constant Field Values
-
LOG_VIEW
private static final String LOG_VIEW
- See Also:
- Constant Field Values
-
LOGFILE_VIEW
private static final String LOGFILE_VIEW
- See Also:
- Constant Field Values
-
ARCHIVED_LOG_VIEW
private static final String ARCHIVED_LOG_VIEW
- See Also:
- Constant Field Values
-
ARCHIVE_DEST_STATUS_VIEW
private static final String ARCHIVE_DEST_STATUS_VIEW
- See Also:
- Constant Field Values
-
ALL_LOG_GROUPS
private static final String ALL_LOG_GROUPS
- See Also:
- Constant Field Values
-
-
Method Detail
-
redoLogStatusQuery
static String redoLogStatusQuery()
-
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 byarchiveLogRetention- duration archive logs will be minedarchiveLogOnlyMode- true if to only mine archive logs, false to mine all available logsarchiveDestinationName- configured archive log destination to use, may benull- 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 anyARCHIVED_LOG_VIEWqueries 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 benullto 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 fromendScn- mine tillstrategy- Log Mining strategy- Returns:
- statement todo: handle corruption. STATUS (Double) — value of 0 indicates it is executable
-
-