Rumah pangkalan data tutorial mysql Oracle 11g之LogMiner常用案例

Oracle 11g之LogMiner常用案例

Jun 07, 2016 pm 02:50 PM
oracle Biasa digunakan Kes

1 LogMiner 案例 Enable Supplemental Logging Extract a LogMiner Dictionary(unless you plan to use the online catalog) Specify Redo Log Files for Analysis Start LogMiner Query V$LOGMNR_CONTENTS End the LogMiner Session 1.1 显式指定重做日志文

LogMiner案例

  • Enable Supplemental Logging

  • Extract a LogMiner Dictionary(unless you plan to use the online catalog)

  • Specify Redo Log Files for Analysis

  • Start LogMiner

  • Query V$LOGMNR_CONTENTS

  • End the LogMiner Session

1.1 显式指定重做日志文件的LogMiner实例

本节内容必须开启最小补充日志:

SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
Salin selepas log masuk

另外有些实例用到日期格式,这里事先设置日期格式:

SQL> ALTER SESSION SET NLS_DATE_FORMAT = 'dd-mon-yyyy hh24:mi:ss';
Salin selepas log masuk

1.1.1 查询最新归档重做文件中所有的更改操作

   最简单的检查数据库的修改历史是在源数据库中使用在线联机日志来解析重做日志文件,本节案例找出了数据库生成的最后的归档日志中的所有的修改操作(假定该数据不是RAC数据库)。

1.查找最新归档的重作日志。

SQL> SELECT NAME FROM V$ARCHIVED_LOG WHERE FIRST_TIME = (SELECT MAX(FIRST_TIME) FROM V$ARCHIVED_LOG);
Salin selepas log masuk
Salin selepas log masuk

2.添加重做日志文件

SQL> EXECUTE DBMS_LOGMNR.ADD_LOGFILE( -

 LOGFILENAME => '/usr/oracle/data/db1arch_1_16_482701534.dbf', -

 OPTIONS => DBMS_LOGMNR.NEW);
Salin selepas log masuk

3.开始分析

SQL> EXECUTE DBMS_LOGMNR.START_LOGMNR( -

     OPTIONS => DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG);
Salin selepas log masuk

4.查询结果

SQL> SELECT username AS USR, (XIDUSN || '.' || XIDSLT || '.' ||  XIDSQN) AS XID,

   SQL_REDO, SQL_UNDO FROM V$LOGMNR_CONTENTS WHERE username IN ('HR', 'OE');
Salin selepas log masuk

5.关闭LogMiner会话

SQL> EXECUTE DBMS_LOGMNR.END_LOGMNR();
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

1.1.2 查询提交事务中的DML语句

   如上节所示,默认情况下LogMiner显示重做日志文件中所有的修改操作,不管事务是否提交,由上节查询结果可知属于同一事务DML语句没有罗列在一起,查询结果不那么易读。虽然可以使用SQL来控制想要的输出结果,但是LogMiner提供了一个更简单的方法。在这个例子中,最新的归档重做日志文件将再次被分析,但它将只返回提交的事务。

   除了分析步骤,其他步骤与上节完全一样,分析语句如下:

SQL>EXECUTE DBMS_LOGMNR.START_LOGMNR( -

    OPTIONS => DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG + -

    DBMS_LOGMNR.COMMITTED_DATA_ONLY); 
Salin selepas log masuk

1.1.3 重构SQL语句

如果想输出的结果更为直观易读,可以通过指定PRINT_PRETTY_SQL参数来美化输出结果。

SQL> EXECUTE DBMS_LOGMNR.START_LOGMNR(-

   OPTIONS => DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG + -

              DBMS_LOGMNR.COMMITTED_DATA_ONLY + -

              DBMS_LOGMNR.PRINT_PRETTY_SQL);
Salin selepas log masuk
Salin selepas log masuk

1.1.4 使用重作日志文件中的LogMiner字典

   当LogMiner字典存于在线联机日志文件中,必须在源数据库分析重做日志文件,而当LogMiner字典存于重作日志文件中,就可以在不同的数据库分析重做日志文件。

1.查找最新归档的重作日志。

SQL> SELECT NAME FROM V$ARCHIVED_LOG WHERE FIRST_TIME = (SELECT MAX(FIRST_TIME) FROM V$ARCHIVED_LOG);
Salin selepas log masuk
Salin selepas log masuk

2.查找包含字典的重做日志文件

  • 查找包含字典提取结束的重做日志文件

SQL> SELECT NAME, SEQUENCE#, DICTIONARY_BEGIN d_beg, DICTIONARY_END d_end FROM V$ARCHIVED_LOG WHERE SEQUENCE# = 

   (SELECT MAX (SEQUENCE#) FROM V$ARCHIVED_LOG WHERE DICTIONARY_END = 'YES' and SEQUENCE# 
<p></p>
Salin selepas log masuk
  • 查找包含字典提取开始的重做日志文件

SQL> SELECT NAME, SEQUENCE#, DICTIONARY_BEGIN d_beg, DICTIONARY_END d_end 

    FROM V$ARCHIVED_LOG WHERE SEQUENCE# = (SELECT MAX (SEQUENCE#) 
 
   FROM V$ARCHIVED_LOG WHERE DICTIONARY_BEGIN = 'YES' and SEQUENCE# 
<p></p>
Salin selepas log masuk
  • 添加重做日志文件
SQL> EXECUTE DBMS_LOGMNR.ADD_LOGFILE(-

    LOGFILENAME => '/usr/oracle/data/db1arch_1_210_482701534.dbf', -

       OPTIONS => DBMS_LOGMNR.NEW);

SQL> EXECUTE DBMS_LOGMNR.ADD_LOGFILE(-

   LOGFILENAME => '/usr/oracle/data/db1arch_1_208_482701534.dbf');

SQL> EXECUTE DBMS_LOGMNR.ADD_LOGFILE(-

   LOGFILENAME => '/usr/oracle/data/db1arch_1_207_482701534.dbf');
Salin selepas log masuk
  • 通过V$LOGMNR_LOGS查询重做日志文件分析列表

SQL> SELECT FILENAME AS name, LOW_TIME, HIGH_TIME FROM V$LOGMNR_LOGS;
Salin selepas log masuk

3.开始分析

SQL> EXECUTE DBMS_LOGMNR.START_LOGMNR(-

   OPTIONS => DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG + -

              DBMS_LOGMNR.COMMITTED_DATA_ONLY + -

              DBMS_LOGMNR.PRINT_PRETTY_SQL);
Salin selepas log masuk
Salin selepas log masuk

4.查询分析结果

SQL> SELECT USERNAME AS usr, SQL_REDO FROM V$LOGMNR_CONTENTS 

   WHERE SEG_OWNER IS NULL OR SEG_OWNER NOT IN ('SYS', 'SYSTEM') AND

   TIMESTAMP > '10-jan-2003 15:59:53';
Salin selepas log masuk

5.关闭LogMiner会话

SQL> EXECUTE DBMS_LOGMNR.END_LOGMNR();
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

1.1.5 跟踪内部字典的DDL语句

其他步骤与上节相同,唯一不同的事步骤3开始分析,如下:

SQL> EXECUTE DBMS_LOGMNR.START_LOGMNR(-

   OPTIONS => DBMS_LOGMNR.DICT_FROM_REDO_LOGS + -

              DBMS_LOGMNR.DDL_DICT_TRACKING + -

              DBMS_LOGMNR.COMMITTED_DATA_ONLY + -

              DBMS_LOGMNR.PRINT_PRETTY_SQL);
Salin selepas log masuk

1.1.6 通过时间范围过滤输出

   前面的例子中都是通过查询分析结果的时间限定的SQL子句来过滤输出结果,然而有一个更高效的方法来达到这个目的,这就是通过指定DBMS_LOGMNR.START_LOGMNR的时间范围。

1.创建重做日志列表

--

-- my_add_logfiles

-- Add all archived logs generated after a specified start_time.

--

CREATE OR REPLACE PROCEDURE my_add_logfiles (in_start_time  IN DATE) AS

  CURSOR  c_log IS

    SELECT NAME FROM V$ARCHIVED_LOG

      WHERE FIRST_TIME >= in_start_time;

count      pls_integer := 0;

my_option  pls_integer := DBMS_LOGMNR.NEW;

BEGIN

  FOR c_log_rec IN c_log

  LOOP

    DBMS_LOGMNR.ADD_LOGFILE(LOGFILENAME => c_log_rec.name,

                            OPTIONS => my_option);

    my_option := DBMS_LOGMNR.ADDFILE;

    DBMS_OUTPUT.PUT_LINE('Added logfile ' || c_log_rec.name);

  END LOOP;

END;

/

EXECUTE my_add_logfiles(in_start_time => '13-jan-2003 14:00:00');
Salin selepas log masuk

2.查询V$LOGMNR_LOGS确定重做日志文件列表

SQL> SELECT FILENAME name, LOW_TIME start_time, FILESIZE bytes

    FROM V$LOGMNR_LOGS;
Salin selepas log masuk

3.调整重做日志列表

假定要分析的时产生于3 p.m.到4 p.m的重做日志文件:

SQL> EXECUTE DBMS_LOGMNR.START_LOGMNR(-

   STARTTIME => '13-jan-2003 15:00:00', -

   ENDTIME   => '13-jan-2003 16:00:00', -

   OPTIONS   => DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG + -

                DBMS_LOGMNR.COMMITTED_DATA_ONLY + -

                DBMS_LOGMNR.PRINT_PRETTY_SQL);
Salin selepas log masuk

4.查询V$LOGMNR_CONTENTS

SQL> SELECT TIMESTAMP, (XIDUSN || '.' || XIDSLT || '.' || XIDSQN) 

     AS XID, SQL_REDO FROM V$LOGMNR_CONTENTS WHERE SEG_OWNER = 'OE';
Salin selepas log masuk

5.关闭LogMiner会话

SQL> EXECUTE DBMS_LOGMNR.END_LOGMNR();
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

1.2 未指定重做日志文件列表的LogMiner实例

   上一节的诸多实例都是显式指定要分析的重做日志文件或者归档文件,但是,对于同一数据库生成的重做日志文件,可以通过指定时间或者SCN范围来确定要分析的重做日志列表,这个可以通过使用DBMS_LOGMNR.START_LOGMNR过程的DBMS_LOGMNR.CONTINUOUS_MINE来完成。

1.2.1 在给定的时间范围内分析重做日志

1.确定包含数据字典起始的重做日志文件时间戳

SQL> SELECT NAME, FIRST_TIME FROM V$ARCHIVED_LOG WHERE SEQUENCE# = (SELECT MAX(SEQUENCE#)

   FROM V$ARCHIVED_LOG WHERE DICTIONARY_BEGIN = 'YES');
Salin selepas log masuk

2.查出该时间戳到现在所有的重做日志

该步骤不是必须的,但是它可以用来证明CONTINUOUS_MINE是按预期来进行的,用来步骤4作对比。

SQL> SELECT FILENAME name FROM V$LOGMNR_LOGS WHERE LOW_TIME > '10-jan-2003 12:01:34';
Salin selepas log masuk

3.开始分析

SQL> EXECUTE DBMS_LOGMNR.START_LOGMNR(-

   STARTTIME => '10-jan-2003 12:01:34', -

     ENDTIME => SYSDATE, -

     OPTIONS => DBMS_LOGMNR.DICT_FROM_REDO_LOGS + -

                DBMS_LOGMNR.COMMITTED_DATA_ONLY + -

                DBMS_LOGMNR.PRINT_PRETTY_SQL + -

                    DBMS_LOGMNR.CONTINUOUS_MINE);
Salin selepas log masuk

4.查询V$LOGMNR_LOGS

该步骤用来显示带有CONTINUOUS_MINE参数的DBMS_LOGMNR.START_LOGMNR过程所执行的所有的重做日志文件,参见步骤2.

SQL> SELECT FILENAME name FROM V$LOGMNR_LOGS;
Salin selepas log masuk

5.查询V$LOGMNR_CONTENTS

SQL> SELECT USERNAME AS usr,(XIDUSN || '.' || XIDSLT || '.' || XIDSQN) as XID, SQL_REDO 

    FROM V$LOGMNR_CONTENTS WHERE SEG_OWNER IS NULL OR SEG_OWNER NOT IN ('SYS', 'SYSTEM') AND TIMESTAMP > '10-jan-2003 15:59:53';
Salin selepas log masuk

6.关闭LogMiner会话

SQL> EXECUTE DBMS_LOGMNR.END_LOGMNR();
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

1.2.2 在给定的SCN范围内分析重做日志

1.确定上一检查点的SCN

SQL> SELECT CHECKPOINT_CHANGE#, CURRENT_SCN FROM V$DATABASE;
Salin selepas log masuk

2.开始LogMiner并指定CONTINUOUS_MINE

SQL> EXECUTE DBMS_LOGMNR.START_LOGMNR(-

   STARTSCN => 56453576, -

   ENDSCN   => 56454208, -

   OPTIONS  => DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG + -

               DBMS_LOGMNR.COMMITTED_DATA_ONLY + -

               DBMS_LOGMNR.PRINT_PRETTY_SQL + -

               DBMS_LOGMNR.CONTINUOUS_MINE);
Salin selepas log masuk

3.查询LogMiner中的重做日志列表

SQL> SELECT FILENAME name, LOW_SCN, NEXT_SCN FROM V$LOGMNR_LOGS;
Salin selepas log masuk

   请注意,LogMiner添加的重做日志文件不包括整个SCN范围,当用指定CONTINUOUS_MINE参数来执行DBMS_LOGMNR.START_LOGMNR时,LogMiner仅仅是添加归档日志。根据查询需要,LogMiner会自动添加SCN范围内其他的在线重做日志,用如下的SQL来确定最新的归档文件中是否包含了该重做日志文件。

SQL> SELECT NAME FROM V$ARCHIVED_LOG

   WHERE SEQUENCE# = (SELECT MAX(SEQUENCE#) FROM V$ARCHIVED_LOG);
Salin selepas log masuk

4.查询V$LOGMNR_CONTENTS

该查询不返回1.6.1911事务的SET TRANSACTION READ WRITE和COMMIT语句,因为这些语句没有SEG_OWNER。

SQL> SELECT SCN, (XIDUSN || '.' || XIDSLT || '.' ||  XIDSQN) as XID, SQL_REDO FROM V$LOGMNR_CONTENTS WHERE SEG_OWNER NOT IN ('SYS', 'SYSTEM');
Salin selepas log masuk

5.关闭LogMiner会话

SQL> EXECUTE DBMS_LOGMNR.END_LOGMNR();
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

1.2.3 在包含未来值的查询中使用连续分析

   指定一个查询到指定的时间或者SCN才停止,可以通过设置DBMS_LOGMNR.START_LOGMNR的CONTINUOUS_MINE参数和设置一个未来时间点的ENDTIME或未来的ENDSCN参数来达到目的。

下面的例子,假设你想使用在线字典来监控hr.employees表现在开始到5小时后所有的变化,

1.开始LogMiner

SQL> EXECUTE DBMS_LOGMNR.START_LOGMNR(-

   STARTTIME => SYSDATE, -

   ENDTIME   => SYSDATE + 5/24, -

   OPTIONS   => DBMS_LOGMNR.CONTINUOUS_MINE  + -

                DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG);
Salin selepas log masuk

2.查询V$LOGMNR_CONTENTS

   该查询操作直到查到指定的时间范围内(5小时后)生成的第一个重做日志文件记录才会停止,当然你也可以通过Ctrl+C结束查询。本例中“SET ARRAYSIZE”语句使得查询结果格式可以跟它在重做日志文件中一样,如果不这样设置,那么查询结果的SQL会填满行才换行,不够美观易读。

SQL> SET ARRAYSIZE 1;

SQL> SELECT USERNAME AS usr, SQL_REDO FROM V$LOGMNR_CONTENTS WHERE  SEG_OWNER = 'HR' AND TABLE_NAME = 'EMPLOYEES';
Salin selepas log masuk

3.停止LogMiner

SQL> EXECUTE DBMS_LOGMNR.END_LOGMNR();
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

本文参阅Oracle官方文档翻译,不足之处欢迎批评指正!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara memeriksa saiz meja oracle Cara memeriksa saiz meja oracle Apr 11, 2025 pm 08:15 PM

Untuk menanyakan saiz ruang meja oracle, ikuti langkah -langkah berikut: Tentukan nama meja dengan menjalankan pertanyaan: pilih Tablespace_Name dari DBA_TableSpaces; Tanya saiz meja dengan menjalankan pertanyaan: pilih jumlah (bait) sebagai total_size, jumlah (bytes_free) sebagai tersedia_space, jumlah (bytes) - jumlah (bytes_free) sebagai digunakan_space dari dba_data_files di mana tablespace_

Cara mengimport pangkalan data oracle Cara mengimport pangkalan data oracle Apr 11, 2025 pm 08:06 PM

Kaedah Import Data: 1. Gunakan utiliti SQLLoader: Sediakan fail data, buat fail kawalan, dan jalankan SQLLoader; 2. Gunakan alat IMP/EXP: data eksport, data import. Petua: 1. Disyorkan SQL*loader untuk set data besar; 2. Jadual sasaran harus wujud dan perlawanan definisi lajur; 3. Selepas mengimport, integriti data perlu disahkan.

Cara menyahpasang pemasangan Oracle gagal Cara menyahpasang pemasangan Oracle gagal Apr 11, 2025 pm 08:24 PM

Nyahpasang Kaedah untuk kegagalan pemasangan Oracle: Tutup Perkhidmatan Oracle, Padam Fail Program Oracle dan Kekunci Pendaftaran, Nyahpasang pembolehubah persekitaran Oracle, dan mulakan semula komputer. Jika penyahpasang gagal, anda boleh menyahpasang secara manual menggunakan alat penyahpasang Oracle Universal.

Cara menambah medan meja ke oracle Cara menambah medan meja ke oracle Apr 11, 2025 pm 07:30 PM

Gunakan pernyataan ALTER Jadual, sintaks khusus adalah seperti berikut: alter table table_name Tambah column_name data_type [kekangan-klausa]. Di mana: Table_name adalah nama jadual, column_name adalah nama medan, data_type adalah jenis data, dan kekangan-fasal adalah kekangan pilihan. Contoh: Alter Table Pekerja menambah e -mel varchar2 (100) Tambahkan medan e -mel ke jadual pekerja.

Cara membuat jadual di oracle Cara membuat jadual di oracle Apr 11, 2025 pm 08:00 PM

Mewujudkan Jadual Oracle melibatkan langkah -langkah berikut: Gunakan sintaks Create Table untuk menentukan nama jadual, nama lajur, jenis data, kekangan, dan nilai lalai. Nama jadual harus ringkas dan deskriptif, dan tidak boleh melebihi 30 aksara. Nama lajur hendaklah menjadi deskriptif, dan jenis data menentukan jenis data yang disimpan dalam lajur. Kekangan tidak null memastikan bahawa nilai null tidak dibenarkan dalam lajur, dan klausa lalai menentukan nilai lalai untuk lajur. Kekangan utama utama untuk mengenal pasti rekod unik jadual. Kekangan utama asing menentukan bahawa lajur dalam jadual merujuk kepada kunci utama dalam jadual lain. Lihat penciptaan pelajar jadual sampel, yang mengandungi kunci utama, kekangan unik, dan nilai lalai.

Cara menyelesaikan kod gadbled di oracle Cara menyelesaikan kod gadbled di oracle Apr 11, 2025 pm 10:09 PM

Masalah Garbled Oracle boleh diselesaikan dengan memeriksa set aksara pangkalan data untuk memastikan ia sepadan dengan data. Tetapkan set aksara klien untuk memadankan pangkalan data. Tukar data atau ubah suai set aksara lajur untuk memadankan set aksara pangkalan data. Gunakan set aksara Unicode dan elakkan set aksara multibyte. Semak bahawa tetapan bahasa pangkalan data dan pelanggan betul.

Cara menyampaikan semula oracle Cara menyampaikan semula oracle Apr 11, 2025 pm 07:33 PM

Oracle menyediakan pelbagai kaedah pertanyaan deduplikasi: Kata kunci yang berbeza mengembalikan nilai yang unik untuk setiap lajur. Kumpulan oleh klausa mengumpulkan hasil dan mengembalikan nilai tidak berulang bagi setiap kumpulan. Kata kunci yang unik digunakan untuk membuat indeks yang mengandungi hanya baris unik, dan pertanyaan indeks akan secara automatik deduplicate. Fungsi row_number () memberikan nombor unik dan menapis hasil yang mengandungi hanya baris 1. Min () atau max () mengembalikan nilai tidak berulang dari lajur angka. Operator Intersect mengembalikan nilai -nilai bersama kedua -dua set hasil (tiada pendua).

Cara menyulitkan pandangan oracle Cara menyulitkan pandangan oracle Apr 11, 2025 pm 08:30 PM

Penyulitan Oracle View membolehkan anda menyulitkan data dalam pandangan, dengan itu meningkatkan keselamatan maklumat sensitif. Langkah -langkah termasuk: 1) mewujudkan kunci penyulitan induk (MEK); 2) mencipta pandangan yang disulitkan, menyatakan pandangan dan MEK untuk disulitkan; 3) Memberi kuasa pengguna untuk mengakses pandangan yang disulitkan. Bagaimana pandangan yang disulitkan berfungsi: Apabila permintaan pengguna untuk paparan yang disulitkan, Oracle menggunakan MEK untuk menyahsulit data, memastikan bahawa hanya pengguna yang diberi kuasa dapat mengakses data yang boleh dibaca.

See all articles