zoukankan      html  css  js  c++  java
  • [bbk4781] 第32集 第三章 Flashback Table 09

    SQL> select table_name,operation,undo_sql from flashback_transaction_query where xid='06001D00D9080000';
    
    TABLE_NAME OPERATION    UNDO_SQL
    ---------- ------------ ----------------------------------------
    EMP1       UNKNOWN
    DEPT1      UNKNOWN
    EMP1       UNKNOWN
               BEGIN

    Oracle 11g排查上述操作不正常原因

    0、前提条件,是当前用户必须具有SELECT ANY TRANSACTION权限.

    SQL> SELECT * FROM SESSION_PRIVS;
    
    PRIVILEGE
    ----------------------------------------
    CREATE SESSION
    UNLIMITED TABLESPACE
    CREATE TABLE
    CREATE CLUSTER
    CREATE SEQUENCE
    CREATE PROCEDURE
    CREATE TRIGGER
    CREATE TYPE
    CREATE OPERATOR
    CREATE INDEXTYPE
    SELECT ANY TRANSACTION
    
    11 rows selected.

    1、查看归档模式(要求处于归档模式)

    SQL> conn /as sysdba
    Connected.
    SQL> archive log list;
    Database log mode              Archive Mode
    Automatic archival             Enabled
    Archive destination            USE_DB_RECOVERY_FILE_DEST
    Oldest online log sequence     2
    Next log sequence to archive   4
    Current log sequence           4
    SQL> show user
    USER is "SYS"

    2、查看Undo_retention size(尽可能设置大一些) 及 UNDOTBS1->GUARANTEE(必须为GUARANTEE)

    SQL> show parameter undo
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    undo_management                      string      AUTO
    undo_retention                       integer     900
    undo_tablespace                      string      UNDOTBS1
    SQL> select tablespace_name,retention from dba_tablespaces;
    
    TABLESPACE_NAME                RETENTION
    ------------------------------ -----------
    SYSTEM                         NOT APPLY
    SYSAUX                         NOT APPLY
    UNDOTBS1                       GUARANTEE
    TEMP                           NOT APPLY
    USERS                          NOT APPLY
    EXAMPLE                        NOT APPLY
    TAB_U2                         NOT APPLY
    TAB_U3                         NOT APPLY
    TS0                            NOT APPLY
    TS1                            NOT APPLY
    TS2                            NOT APPLY
    
    TABLESPACE_NAME                RETENTION
    ------------------------------ -----------
    TS3                            NOT APPLY
    TS4                            NOT APPLY
    
    13 rows selected.

    3、查看v$database,设置SUPPLEMENTAL参数信息

    SQL> desc v$database;
     Name                                                  Null?    Type
     ----------------------------------------------------- -------- ------------------------------------
     DBID                                                           NUMBER
     NAME                                                           VARCHAR2(9)
     CREATED                                                        DATE
     RESETLOGS_CHANGE#                                              NUMBER
     RESETLOGS_TIME                                                 DATE
     PRIOR_RESETLOGS_CHANGE#                                        NUMBER
     PRIOR_RESETLOGS_TIME                                           DATE
     LOG_MODE                                                       VARCHAR2(12)
     CHECKPOINT_CHANGE#                                             NUMBER
     ARCHIVE_CHANGE#                                                NUMBER
     CONTROLFILE_TYPE                                               VARCHAR2(7)
     CONTROLFILE_CREATED                                            DATE
     CONTROLFILE_SEQUENCE#                                          NUMBER
     CONTROLFILE_CHANGE#                                            NUMBER
     CONTROLFILE_TIME                                               DATE
     OPEN_RESETLOGS                                                 VARCHAR2(11)
     VERSION_TIME                                                   DATE
     OPEN_MODE                                                      VARCHAR2(20)
     PROTECTION_MODE                                                VARCHAR2(20)
     PROTECTION_LEVEL                                               VARCHAR2(20)
     REMOTE_ARCHIVE                                                 VARCHAR2(8)
     ACTIVATION#                                                    NUMBER
     SWITCHOVER#                                                    NUMBER
     DATABASE_ROLE                                                  VARCHAR2(16)
     ARCHIVELOG_CHANGE#                                             NUMBER
     ARCHIVELOG_COMPRESSION                                         VARCHAR2(8)
     SWITCHOVER_STATUS                                              VARCHAR2(20)
     DATAGUARD_BROKER                                               VARCHAR2(8)
     GUARD_STATUS                                                   VARCHAR2(7)
     SUPPLEMENTAL_LOG_DATA_MIN                                      VARCHAR2(8)
     SUPPLEMENTAL_LOG_DATA_PK                                       VARCHAR2(3)
     SUPPLEMENTAL_LOG_DATA_UI                                       VARCHAR2(3)
     FORCE_LOGGING                                                  VARCHAR2(3)
     PLATFORM_ID                                                    NUMBER
     PLATFORM_NAME                                                  VARCHAR2(101)
     RECOVERY_TARGET_INCARNATION#                                   NUMBER
     LAST_OPEN_INCARNATION#                                         NUMBER
     CURRENT_SCN                                                    NUMBER
     FLASHBACK_ON                                                   VARCHAR2(18)
     SUPPLEMENTAL_LOG_DATA_FK                                       VARCHAR2(3)
     SUPPLEMENTAL_LOG_DATA_ALL                                      VARCHAR2(3)
     DB_UNIQUE_NAME                                                 VARCHAR2(30)
     STANDBY_BECAME_PRIMARY_SCN                                     NUMBER
     FS_FAILOVER_STATUS                                             VARCHAR2(22)
     FS_FAILOVER_CURRENT_TARGET                                     VARCHAR2(30)
     FS_FAILOVER_THRESHOLD                                          NUMBER
     FS_FAILOVER_OBSERVER_PRESENT                                   VARCHAR2(7)
     FS_FAILOVER_OBSERVER_HOST                                      VARCHAR2(512)
     CONTROLFILE_CONVERTED                                          VARCHAR2(3)
     PRIMARY_DB_UNIQUE_NAME                                         VARCHAR2(30)
     SUPPLEMENTAL_LOG_DATA_PL                                       VARCHAR2(3)
     MIN_REQUIRED_CAPTURE_CHANGE#                                   NUMBER
    
    SQL> SELECT LOG_MODE,SUPPLEMENTAL_LOG_DATA_MIN FROM V$DATABASE;
    
    LOG_MODE     SUPPLEME
    ------------ --------
    ARCHIVELOG   NO
    
    SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA(PRIMARY KEY) COLUMNS;
    
    Database altered.
    
    SQL> SELECT LOG_MODE,SUPPLEMENTAL_LOG_DATA_MIN FROM V$DATABASE;
    
    LOG_MODE     SUPPLEME
    ------------ --------
    ARCHIVELOG   IMPLICIT

    4、重新提交事务,再次查询即可看到undo_sql信息

    SQL> create table emp2 as select * from emp1;
    
    Table created.
    
    SQL> select * from emp2;
    
         EMPNO ENAME      JOB              MGR HIREDATE                  SAL       COMM     DEPTNO
    ---------- ---------- --------- ---------- ------------------ ---------- ---------- ----------
          7369 SMITH      CLERK           7902 17-DEC-80                2800                    20
          7499 ALLEN      SALESMAN        7698 20-FEB-81                1600        300         30
          7521 WARD       SALESMAN        7698 22-FEB-81                1250        500         30
          7566 JONES      MANAGER         7839 02-APR-81                2975                    20
          7654 MARTIN     SALESMAN        7698 28-SEP-81                1250       1400         30
          7698 BLAKE      MANAGER         7839 01-MAY-81                2850                    30
          7782 CLARK      MANAGER         7839 09-JUN-81                2450                    10
          7788 SCOTT      ANALYST         7566 19-APR-87                3000                    20
          7839 KING       PRESIDENT            17-NOV-81                5000                    10
          7844 TURNER     SALESMAN        7698 08-SEP-81                1500          0         30
          7876 ADAMS      CLERK           7788 23-MAY-87                1100                    20
    
         EMPNO ENAME      JOB              MGR HIREDATE                  SAL       COMM     DEPTNO
    ---------- ---------- --------- ---------- ------------------ ---------- ---------- ----------
          7900 JAMES      CLERK           7698 03-DEC-81                 950                    30
          7902 FORD       ANALYST         7566 03-DEC-81                3000                    20
          7934 MILLER     CLERK           7782 23-JAN-82                1300                    10
          9999 arcerzhang                                              10000                    50
    
    15 rows selected.
    
    SQL> delete emp2 where empno=9999;
    
    1 row deleted.
    
    SQL> commit;
    
    Commit complete.
    
    SQL> select table_name,operation,undo_sql from flashback_transaction_query where table_name='EMP2';
    
    TABLE_NAME OPERATION    UNDO_SQL
    ---------- ------------ ----------------------------------------
    EMP2       DELETE       insert into "SCOTT"."EMP2"("EMPNO","ENAM
                            E","JOB","MGR","HIREDATE","SAL","COMM","
                            DEPTNO") values ('9999','arcerzhang',NUL
                            L,NULL,NULL,'10000',NULL,'50');

    将包执行权限授权给指定用户

    SQL> CONN /AS SYSDBA
    Connected.
    SQL> GRANT EXECUTE ON DBMS_FLASHBACK TO SCOTT;
    
    Grant succeeded.
  • 相关阅读:
    解决 .net Core 3.1中使用GB2312编码异常
    sql server datetime类型字段使用isnull返回1900-01-01 00:00:00.000的问题
    c# – 从.NET中的字符串获取url参数
    fastjson对象,JSON,字符串,map之间的互转
    Java工具:Java递归去除Json字符串空值(key和value)
    vue运行报错 ‘vue-cli-service‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。
    java调用CTP API坑【我】
    SpringBoot在logback.xml中读取application.properties中配置的日志路径
    org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com【我】
    springboot mybatis-plus分页配置不生效【我】
  • 原文地址:https://www.cnblogs.com/arcer/p/3084101.html
Copyright © 2011-2022 走看看