爱心技术专栏专题

LogMinerEnhancementsInOracle9i

摘录:Oracle基础 来源:Oracle基础 加入时间:2007年03月25日
摘要:
LogMinerEnhancementsInOracle9i
LogMiner Enhancements In Oracle9i
The basic usage of Logminer is the same between Oracle8i and Oracle9i so for basic usage notes see the article in th…

转载:转载请保留本信息,本文来自
http://www.51dibs.com
/html/2006/article/info22/a_581f9800ae59d57a.htm

LogMinerEnhancementsInOracle9i

站点:爱心种子小博士 关键字:LogMinerEnhancement

   
LogMiner Enhancements In Oracle9i
The basic usage of Logminer is the same between Oracle8i and Oracle9i so for basic usage notes see the article in the Oracle8i section.

Several new features have been added to Logminer in Oracle9i to make it more flexible and robust:

DDL Statements

In previous versions of LogMiner DDL statements were viewed as a list of DML statements against the internal tables. In Oracle9i the actual DDL statement is now logged. The V$LOGMNR_CONTENTS view now contains a column called OPERATION which indicates if the operation was DDL or DML. The SQL_REDO column shows the actual DDL command.

Data Dictionary Access

The dictionary is used by Logminer to translate object IDs into meaningful object names. In Oracle8i this had to be stored as a flat file on the file system. In Oracle9i you can choose to store the dictionary in the redo logs:
EXECUTE Dbms_Logmnr_D.Build( -
dictfilename => C:\Oracle\Oradata\TSH1\Archive\dictionary.ora, options => Dbms_Logmnr_D.Store_In_Flat_File);

EXECUTE Dbms_Logmnr_D.Build( -
options => Dbms_Logmnr_D.Store_In_Redo_Logs);
The latter option can only be used if the database is in ARCHIVELOG mode and will cause a considerable increase in redo.

Logminer can be started using a dictionary file, redo logs or the online dictionary:
EXECUTE DBMS_LOGMNR.START_LOGMNR( -
dictfilename =>C:\Oracle\Oradata\TSH1\Archive\dictionary.ora);

EXECUTE Dbms_Logmnr.Start_Logmnr( -
options => Dbms_Logmnr.Dict_From_Redo_Logs);

EXECUTE Dbms_Logmnr.Start_Logmnr( -
options => Dbms_Logmnr.Dict_From_Online_Catalog);
If objects have been dropped and recreated the online dictionary may not be able to resolve some object IDs. Its main use is for recent redo logs.

DDL Dictionary Tracking

In Oracle8i the dictionary file was static. Any objects created after the creation of the dictionary file could not be translated. In Oracle9i the DDL_DICT_TRACKING option makes Logminer apply any DDL operations to its dictionary allowing the translation of new objects.
EXECUTE Dbms_Logmnr.Start_Logmnr( -
options => Dbms_Logmnr.DDL_Dict_Tracking);
The database must be open for this option.

Dictionary Staleness

In Oracle9i versioning information is logged about each object. If a DDL statement is issued against an object this will alter its version. Logminer is aware of this versioning information and can detect if the current dictionary is not in sync with redo logs.

Log Corruption

Prior to Oracle9i corruption of the logfiles caused Logminer to stop. In Oracle9i the SKIP_CORRUPTION option in the Dbms_Logmnr.Start_Logmnr() procedures tells Logminer to attempt to pass over corruptions:
EXECUTE Dbms_Logmnr.Start_Logmnr( -
options => Dbms_Logmnr.Skip_Corruption);
Logminer indicates the number of blocks skipped.

Committed Data Only

The COMMITTED_DATA_ONLY option means that Logminer will only display SQL_REDO and SQL_UNDO for commited transactions, greatly reducing the number of rows displayed:
EXECUTE Dbms_Logmnr.Start_Logmnr( -
options => Dbms_Logmnr.Committed_Data_Only);

Primary Keys

By default SQL_REDO and SQL_UNDO statements contain rowid references in the WHERE clause. If this data is to used against a different database this rowid has no meaning. For this reason Logminer can be configured to display the primary key value, which can be used in place of the rowid. The rowid is still displayed.

To get these results supplemental redo log groups must be added at the table or database level. This feature significantly increases the amount of redo at the database level.

Restrictions

Logminer does not support:
  • LONG and LOB datatypes
  • Object Types
  • Collections
  • Object Ref datatypes
  • Index Organized tables (IOTs)
Logminor cannot be run in a multithreaded server (MTS) environment but it can be used to analyze logs from a an MTS environment.

Logminer can now be used to view direct path loads as long as the system is in ARCHIVELOG mode and LOGGING is enabled.

Logminer Views & Viewer

Very few changes have occurred to the dictionary views. The V$LOGMNR_CONTENTS view now contains a column called OPERATION which indicates if the operation was DDL or DML. The V$LOGMNR_DICTIONARY view only contains rows if the STORE_IN_FLAT_FILE option was used to create the dictionary.

Oracle Enterprise Manager now includes a GUI tool called Logminor Viewer which allows you to build and store queries against the V$LOGMNR_CONTENTS view. Rows can be returned with the primary key values displayed and the view can be restricted to commited transactions if required.

Hope this helps. Regards Tim...



客户服务中心信箱:[email protected] [email protected] 网站地图

声明

合作伙伴: