一: 时间类型TIMESTAMP使用
1.1 建表
CREATE TABLE "TEST"."TIMESTAMP_T"
(
"ID" INT IDENTITY(1, 1) NOT NULL,
"NUM" INT,
"REV_TIME" TIMESTAMP(6),
CLUSTER PRIMARY KEY("ID")) STORAGE(ON "MAIN", CLUSTERBTR) ;
1.2 插入
insert TEST.TIMESTAMP_T(NUM,REV_TIME) values
(3,FROM_UNIXTIME(1707034197,'YYYY-MM-DD HH24:MI:SS')),
(3,FROM_UNIXTIME(1707034197,'YYYY-MM-DD HH24:MI:SS')),
(4,FROM_UNIXTIME(1720080515,'YYYY-MM-DD HH24:MI:SS'));
COMMIT;

1.3按时间戳查询,返回某一列不重复的值
SELECT DISTINCT NUM
FROM TEST.TIMESTAMP_T
WHERE UNIX_TIMESTAMP(REV_TIME) < 1720080515;

二:存储过程创建和调用
2.1建表
CREATE TABLE "TEST"."PROCEDURE_T"
(
"ID" INT IDENTITY(1, 1) NOT NULL,
"INFO" VARCHAR(255) NOT NULL,
CLUSTER PRIMARY KEY("ID")) STORAGE(ON "MAIN", CLUSTERBTR) ;
2.2 创建存储过程,循环100插入拼接字符串
CREATE OR REPLACE PROCEDURE TEST.CREATE_UUID() AS
a INT:=0;
BEGIN
LOOP
a:=a+1;
IF a>=100 THEN
EXIT;
END IF;
INSERT INTO TEST.PROCEDURE_T (INFO)
VALUES (CONCAT('AAAAA', LPAD(CAST(a AS VARCHAR2(5)), 5, '0')));
END LOOP;
COMMIT;
END;
2.3调用存储过程
CALL TEST.CREATE_UUID();
三:查看arch归档日志
一、查看当前数据库是否开启归档
select arch_mode from v$database;
二、查询有哪些归档日志
SELECT NAME , FIRST_TIME , NEXT_TIME , FIRST_CHANGE
三、查看RLOG_APPEND_LOGIC参数值
目前 DBMS_LOGMNR 只支持对归档日志进行分析,配置归档后,还需要将 dm.ini 中的RLOG_APPEND_LOGIC 选项置为 1 或 2。
SELECT NAME , FIRST_TIME , NEXT_TIME , FIRST_CHANGE
四、修改RLOG_APPEND_LOGIC参数为1
alter system set 'RLOG_APPEND_LOGIC'=1 both;
select * from v$dm_ini where para_name ='RLOG_APPEND_LOGIC';
五、重启数据库服务
重启后会创建一个新的归档日志,用新的归档日志去分析才有效。RLOG_APPEND_LOGIC参数默认值是0,这就意味着,想利用DBMS_LOGMNR包分析归档日志去定位误删除的表,前提是已经提前设置RLOG_APPEND_LOGIC=1。
六、再次查看归档日志
SELECT NAME , FIRST_TIME , NEXT_TIME , FIRST_CHANGE
八、分析归档日志
1) 查询有哪些归档日志
SELECT NAME , FIRST_TIME , NEXT_TIME , FIRST_CHANGE
2) 添加一个或多个需要分析的归档日志文件
DBMS_LOGMNR.ADD_LOGFILE('E:\dmdbms\data\DAMENG3\arch\ARCHIVE_LOCAL1_0x606C7ADA[0]_2021-07-20_18-18-14.log')
如要 看通过ADD_LOGFILE添加的归档日志文件,可以通过动态视图V$LOGMNR_LOGS 进行查询,如下:
SELECT LOW_SCN, NEXT_SCN, LOW_TIME, HIGH_TIME, LOG_ID, FILENAME FROM V$LOGMNR_LOGS;
3)启动归档日志文件分析
DBMS_LOGMNR.START_LOGMNR(OPTIONS=>2128 , STARTTIME=>TO_DATE('2021-03-04 17:36:00','YYYY-MM-DD HH24:MI:SS') , ENDTIME=>TO_DATE('2021-07-21 17:36:02','YYYY-MM-DD HH24:MI:SS'));
如要查看归档日志文件的分析结果,可以通过动态视图 V$LOGMNR_CONTENTS 进行查询,如下:
SELECT OPERATION_CODE , SCN, SQL_REDO , TIMESTAMP ,SEG_OWNER, TABLE_NAME FROM V$LOGMNR_CONTENTS ;
4)终止归档日志文件分析
DBMS_LOGMNR.END_LOGMNR();