oracle 11g 之LogMiner分析重做日志实践
1.安装LogMiner 以DBA用户身份运行下面2个脚本: dbmslm.sql用来创建DBMS_LOGMNR包,该包用来分析日志文件。 SQL @$ORACLE_HOME/rdbms/admin/dbmslm.sql;Package created.Grant succeeded.Synonym created. dbmslmd.sql用来创建DBMS_LOGMNR_D包,该包用来创
1.安装LogMiner
以DBA用户身份运行下面2个脚本:
- dbmslm.sql用来创建DBMS_LOGMNR包,该包用来分析日志文件。
SQL> @$ORACLE_HOME/rdbms/admin/dbmslm.sql; Package created. Grant succeeded. Synonym created.Copy after login
- dbmslmd.sql用来创建DBMS_LOGMNR_D包,该包用来创建数据字典文件。
SQL> @$ORACLE_HOME/rdbms/admin/dbmslmd.sql; Package created. Synonym created.Copy after login
2.设置参数UTL_FILE_DIR
添加参数UTL_FILE_DIR,该参数值为服务器中放置数据字典文件的目录,
SQL> CREATE DIRECTORY utlfile AS '/home/oracle/logminer'; Directory created. SQL> alter system set utl_file_dir='/home/oracle/logminer' scope=spfile; System altered.Copy after login
![]()
重启数据库,生效上面的设置。
SQL> shutdown immediate; SQL> startup; SQL> show parameters utl_file_dir;Copy after login
![]()
3.启动补充日志
补充日志不是LogMiner日志分析必须的步骤,但是如果不启用补充日志,分析日志的的很多结果集信息就会显示为“UNKNOWN”,下面是开启最小补充日志。
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA; Database altered. SQL> SELECT SUPPLEMENTAL_LOG_DATA_MIN FROM V$DATABASE; SUPPLEME -------- YESCopy after login
![]()
4.创建专门的LogMiner用户
不是必须,实为管理安全方便。
5.创建数据字典
SQL> EXECUTE dbms_logmnr_d.build(dictionary_filename => 'dictionary.ora', dictionary_location =>'/home/oracle/logminer');Copy after login
6.添加需要分析的在线日志或者归档日志
SQL> EXECUTE DBMS_LOGMNR.ADD_LOGFILE(LOGFILENAME =>' /home/oracle/flash_recovery_area/PRIMARY/archivelog/2016_04_25/o1_mf_1_199_ckv04o6w_.arc',OPTIONS => DBMS_LOGMNR.NEW); SQL> EXECUTE DBMS_LOGMNR.ADD_LOGFILE(LOGFILENAME =>' /home/oracle/flash_recovery_area/PRIMARY/archivelog/2016_04_25/o1_mf_1_201_ckv08jyp_.arc',OPTIONS => DBMS_LOGMNR.ADDFILE); PL/SQL procedure successfully completed. SQL> EXECUTE DBMS_LOGMNR.ADD_LOGFILE(LOGFILENAME =>' /home/oracle/flash_recovery_area/PRIMARY/archivelog/2016_04_25/o1_mf_1_200_ckv05pmp_.arc',OPTIONS => DBMS_LOGMNR.ADDFILE); PL/SQL procedure successfully completed.Copy after login
![]()
7. 使用字典分析归档日志文件
SQL> EXECUTE dbms_logmnr.start_logmnr(dictfilename=>'/home/oracle/logminer/dictionary.ora');Copy after login
8.在线日志分析实例
- 插入数据
SQL> insert into nn.t1 values(1000,'succ'); 1 row created. SQL> commit; Commit complete.Copy after login
- 查询当前日志序列号
SQL> SELECT group#, sequence#, status, first_change#, first_time FROM V$log ORD ER BY first_change#; GROUP# SEQUENCE# STATUS FIRST_CHANGE# FIRST_TIM ---------- ---------- ---------------- ------------- --------- 1 208 INACTIVE 2825768 25-APR-16 2 209 INACTIVE 2825872 25-APR-16 3 210 CURRENT 2845771 25-APR-16Copy after login
- 加入当前日志组
SQL> EXECUTE DBMS_LOGMNR.ADD_LOGFILE(LOGFILENAME =>'/home/oracle/oradata/orcl/redo03.log',OPTIONS => DBMS_LOGMNR.ADDFILE); PL/SQL procedure successfully completed.Copy after login
- 使用LogMiner进行分析
SQL> EXECUTE dbms_logmnr.start_logmnr(dictfilename=>'/home/oracle/logminer/dictionary.ora'); PL/SQL procedure successfully completed.Copy after login
- 查询分析结果
SQL> SELECT sql_redo, sql_undo, seg_owner FROM v$logmnr_contents WHERE seg_name='T1'; SQL_REDO SQL_UNDO SEG_OWNER insert into "NN"."T1"("TID","TNAME") values ('1000','succ'); delete from "NN"."T1" where "TID" = '1000' and "TNAME" = 'succ' and ROWID = 'AAAR7YAAEAAAACrAAD'; NNCopy after login
9.关闭LogMiner会话
SQL> EXECUTE DBMS_LOGMNR.END_LOGMNR;Copy after login

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

The function in Oracle to calculate the number of days between two dates is DATEDIFF(). The specific usage is as follows: Specify the time interval unit: interval (such as day, month, year) Specify two date values: date1 and date2DATEDIFF(interval, date1, date2) Return the difference in days

The retention period of Oracle database logs depends on the log type and configuration, including: Redo logs: determined by the maximum size configured with the "LOG_ARCHIVE_DEST" parameter. Archived redo logs: Determined by the maximum size configured by the "DB_RECOVERY_FILE_DEST_SIZE" parameter. Online redo logs: not archived, lost when the database is restarted, and the retention period is consistent with the instance running time. Audit log: Configured by the "AUDIT_TRAIL" parameter, retained for 30 days by default.

The Oracle database startup sequence is: 1. Check the preconditions; 2. Start the listener; 3. Start the database instance; 4. Wait for the database to open; 5. Connect to the database; 6. Verify the database status; 7. Enable the service (if necessary ); 8. Test the connection.

The INTERVAL data type in Oracle is used to represent time intervals. The syntax is INTERVAL <precision> <unit>. You can use addition, subtraction, multiplication and division operations to operate INTERVAL, which is suitable for scenarios such as storing time data and calculating date differences.

To find the number of occurrences of a character in Oracle, perform the following steps: Get the total length of a string; Get the length of the substring in which a character occurs; Count the number of occurrences of a character by subtracting the substring length from the total length.

Oracle database server hardware configuration requirements: Processor: multi-core, with a main frequency of at least 2.5 GHz. For large databases, 32 cores or more are recommended. Memory: At least 8GB for small databases, 16-64GB for medium sizes, up to 512GB or more for large databases or heavy workloads. Storage: SSD or NVMe disks, RAID arrays for redundancy and performance. Network: High-speed network (10GbE or higher), dedicated network card, low-latency network. Others: Stable power supply, redundant components, compatible operating system and software, heat dissipation and cooling system.

The amount of memory required by Oracle depends on database size, activity level, and required performance level: for storing data buffers, index buffers, executing SQL statements, and managing the data dictionary cache. The exact amount is affected by database size, activity level, and required performance level. Best practices include setting the appropriate SGA size, sizing SGA components, using AMM, and monitoring memory usage.

The method of replacing strings in Oracle is to use the REPLACE function. The syntax of this function is: REPLACE(string, search_string, replace_string). Usage steps: 1. Identify the substring to be replaced; 2. Determine the new string to replace the substring; 3. Use the REPLACE function to replace. Advanced usage includes: multiple replacements, case sensitivity, special character replacement, etc.
