Artikel ini membawakan anda pengetahuan yang berkaitan tentang Oracle, yang terutamanya memperkenalkan isu yang berkaitan dengan pemindahan penyegerakan data Oracle melalui LogMiner Berikut ialah pengenalan tentang cara mencapai penyegerakan data Oracle , harap ia membantu semua orang.
Tutorial yang disyorkan: "Tutorial Oracle"
Baru-baru ini mengkaji cara untuk Untuk mencapai penyegerakan data antara pangkalan data Oracle, memang terdapat sedikit maklumat di Internet. Alat penyegerakan pangkalan data Oracle terbaik ialah: GoldenGate, dan GoldenGate dicaj. Jadi adakah terdapat cara yang baik untuk menyegerakkan data Oracle? Betul, LogMiner digunakan untuk melaksanakan migrasi penyegerakan data Oracle.
Buat /home/oracle/tools/oracle11g/oradata/orcl/ pada pelayan Direktori LOGMNR untuk menyimpan maklumat kamus untuk pangkalan data, seperti yang ditunjukkan di bawah.
mkdir -p /home/oracle/tools/oracle11g/oradata/orcl/LOGMNR
Log masuk ke pelayan sebagai pengguna oracle dan log masuk ke pangkalan data Oracle sebagai DBA, seperti yang ditunjukkan di bawah.
sqlplus /nolog conn / as sysdba
Seterusnya, buat konfigurasi folder kamus seperti yang ditunjukkan di bawah.
CREATE DIRECTORY utlfile AS '/home/oracle/tools/oracle11g/oradata/orcl/LOGMNR';alter system set utl_file_dir='/home/oracle/tools/oracle11g/oradata/orcl/LOGMNR' scope=spfile;
Nota: Memandangkan utl_file_dir hanya wujud dalam fail, skop ditulis dalam mod fail "spfile", bukan kedua-duanya.
alter database add supplemental log data;
Hanya selepas menghidupkannya anda boleh melihat rekod operasi DML, jika tidak, anda hanya boleh melihat DML
SHUTDOWN IMMEDIATE; STARTUP;
Buat data. pengguna penyegerakan Jika anda sudah mempunyainya, anda boleh melangkauinya secara langsung.
create user SYNC identified by SYNC; #如果存在用户,则不需要再次创建,直接授权即可GRANT CONNECT,RESOURCE,DBA,EXECUTE_CATALOG_ROLE TO SYNC;
Tukar kepada pengguna yang ingin menyegerakkan data, log masuk sebagai DBA dan buat fail kamus data seperti yang ditunjukkan di bawah.
conn SYNC/SYNC@orcl as sysdba; EXECUTE dbms_logmnr_d.build(dictionary_filename => 'dictionary.ora', dictionary_location =>'/home/oracle/tools/oracle11g/oradata/orcl/LOGMNR');
Arahan untuk mencipta kamus data juga boleh dilaksanakan melalui kod Java Jika ia dilaksanakan menggunakan kod Java, anda boleh mula-mula menyambung ke pangkalan data Oracle melalui JDBC, dan kemudian laksanakan arahan berikut.
BEGIN dbms_logmnr_d.build(dictionary_filename => 'dictionary.ora', dictionary_location =>'/home/oracle/tools/oracle11g/oradata/orcl/LOGMNR'); END;
Langkah ini boleh dilakukan pada baris arahan Oracle atau dilaksanakan menggunakan kod Java.
Gunakan pernyataan SQL untuk mencapai seperti yang ditunjukkan di bawah.
EXECUTE dbms_logmnr.add_logfile(logfilename=>'/home/oracle/tools/oracle11g/oradata/orcl/REDO01.LOG',options=>dbms_logmnr.NEW); EXECUTE dbms_logmnr.add_logfile(logfilename=>'/home/oracle/tools/oracle11g/oradata/orcl/REDO02.LOG',options=>dbms_logmnr.ADDFILE); EXECUTE dbms_logmnr.add_logfile(logfilename=>'/home/oracle/tools/oracle11g/oradata/orcl/REDO03.LOG',options=>dbms_logmnr.ADDFILE);
Apabila menggunakan analisis kod Java, pernyataan SQL yang digunakan adalah seperti berikut.
BEGIN dbms_logmnr.add_logfile(logfilename=>'/home/oracle/tools/oracle11g/oradata/orcl/REDO01.LOG',options=>dbms_logmnr.NEW); dbms_logmnr.add_logfile(logfilename=>'/home/oracle/tools/oracle11g/oradata/orcl/REDO02.LOG',options=>dbms_logmnr.ADDFILE); dbms_logmnr.add_logfile(logfilename=>'/home/oracle/tools/oracle11g/oradata/orcl/REDO03.LOG',options=>dbms_logmnr.ADDFILE); END;
SELECT group#, sequence#, status, first_change#, first_time FROM V$log ORDER BY first_change#;
Fail log dengan status SEMASA ialah fail log yang sedang digunakan
EXECUTE dbms_logmnr.start_logmnr(dictfilename=>'/home/oracle/tools/oracle11g/oradata/orcl/LOGMNR/dictionary.ora');
Apabila menggunakan analisis kod Java, pernyataan SQL yang digunakan adalah seperti berikut.
BEGIN dbms_logmnr.start_logmnr(dictfilename=>'/home/oracle/tools/oracle11g/oradata/orcl/LOGMNR/dictionary.ora'); END;
SELECT sql_redo, sql_undo, seg_owner FROM v$logmnr_contents WHERE seg_name='EMP' AND seg_owner='SYNC';
Nota: Hasil analisis dalam paparan v$logmnr_contents hanya tersedia apabila kami menjalankan proses 'dbms_logmrn. start_logmnr' wujud sepanjang hayat sesi Jika anda ingin melihat log baharu, anda perlu menyertai semula fail log analisis dan menggunakan LogMiner untuk menganalisisnya.
(1) Jika "Pengecam 'SYS.DBMS_LOGMNR' mesti diisytiharkan" berlaku, anda perlu mencipta pengguna selepas Berikan EXECUTE_CATALOG_ROLE kebenaran kepada pengguna seperti yang ditunjukkan di bawah.
GRANT CONNECT,RESOURCE,DBA,EXECUTE_CATALOG_ROLE TO SYNC;
(2) Pada masa ini, anda perlu menentukan pengguna yang sepadan untuk seg_owner dalam pernyataan pertanyaan Sebagai contoh, jika saya menggunakan pengguna SYNC untuk menganalisis melalui LogMiner, anda perlu menentukan seg_owner sebagai. pengguna SYNC, seperti yang ditunjukkan di bawah .
SELECT sql_redo, sql_undo, seg_owner FROM v$logmnr_contents WHERE seg_name='EMP' AND seg_owner='SYNC';
Tutorial yang disyorkan: "Tutorial Video Oracle"
Atas ialah kandungan terperinci Contoh terperinci migrasi penyegerakan data Oracle melalui LogMiner. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!