Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Frank Schneede Senior Berater ORACLE Deutschland GmbH.

Ähnliche Präsentationen


Präsentation zum Thema: "Frank Schneede Senior Berater ORACLE Deutschland GmbH."—  Präsentation transkript:

1

2 Frank Schneede Senior Berater ORACLE Deutschland GmbH

3 Multimaster-Replikation: ADD_MASTER_DATABASE (without quiesce)
- Erfahrungsbericht -

4 Motivation Hochverfügbarkeit Rollierendes Upgrade Kundenbeispiel:
24 * 7 Betrieb von Fahrzeugwaagen 10 Master-Sites, muß online erweitert werden Wiedereingliederung nach Ausfall eines Systems

5 Vorbereitung tnsnames.ora vorbereiten undo_retention
SQL> show parameter retention NAME TYPE VALUE undo_retention integer

6 Vorbereitung transaction_rate
SQL> select avg(undoblks)/6000 from v$undostat; AVG(UNDOBLKS)/6000 ,

7 Vorbereitung Speicherbedarf Platz muß in UNDOTBS möglich sein!
undo_space = (undo_retention * transaction_rate + overhead) * block_size ergibt (hier im Test): 1800 * 1 * 8192 = bytes = 14 MB Platz muß in UNDOTBS möglich sein!

8 RESUME_PROPAGATION_TO_MDEF PREPARE_INSTANTIATED_MASTER
Ablauf SPECIFY_NEW_MASTERS Master bekanntmachen (List möglich!) Master hinzufügen Abarbeiten Admin-Requests Flashback-SCN ermitteln ADD_NEW_MASTERS At Master Def. site Export Export auf MDS Import Perform SCN- based recovery Propagation wieder anstoßen Import auf Slave RESUME_PROPAGATION_TO_MDEF Instantiierten Slave vorbereiten Abarbeiten Admin-Requests Resume auf neuem Slave DML und Push auf allen Systemen Kontrolle PREPARE_INSTANTIATED_MASTER At new master site

9 D E M O N S T R A T I O N Skript siehe Notizblattansicht!
set sqlprompt MAIN-> ACCEPT ok PROMPT "Wenn bereit bitte <ENTER>" spool log\10_01_add_master.log set echo on set feedback on --_______________________________________________________________ -- DROP_MASTER_REPGROUP ON SLAVE FOR SAFETY REASONS ;-) CONNECT PROMPT DROP_MASTER_REPGROUP FOR SAFETY REASONS ;-) BEGIN -- DROP TABLES INCLUDED!!! DBMS_REPCAT.DROP_MASTER_REPGROUP('MM_MREPGRP2',TRUE); EXCEPTION WHEN OTHERS THEN IF SQLCODE = THEN NULL; ELSE DBMS_OUTPUT.PUT_LINE(sqlerrm(sqlcode)); END IF; END; / COMMIT; -- REMOVE_MASTER_DATABASE FOR SAFETY REASONS ;-) CONNECT PROMPT REMOVE_MASTER_DATABASES FOR SAFETY REASONS ;-) DBMS_REPCAT.REMOVE_MASTER_DATABASES( 'MM_MREPGRP2', 'SNA102.DE.ORACLE.COM' ); IF SQLCODE = THEN -- SPECIFY_NEW_MASTERS PROMPT SPECIFY_NEW_MASTERS gname => MM_MREPGRP2 / master_list => SNA102.DE.ORACLE.COM DBMS_REPCAT.SPECIFY_NEW_MASTERS ( gname =>'MM_MREPGRP2', master_list =>'SNA102.DE.ORACLE.COM' ACCEPT ok PROMPT "Wenn dba_repsites_new gezeigt bitte <ENTER>" -- Ermitteln Flashback-SCN PROMPT Ermitteln FLASHBACK_SCN SELECT FLASHBACK_SCN FROM DBA_REPEXTENSIONS; VARIABLE masterdef_flashback_scn NUMBER; VARIABLE extension_id VARCHAR2(32); -- ADD_NEW_MASTERS PROMPT ADD_NEW_MASTERS available_master_list => SNA102.DE.ORACLE.COM DBMS_REPCAT.ADD_NEW_MASTERS ( export_required => TRUE , available_master_list => 'SNA102.DE.ORACLE.COM' , masterdef_flashback_scn => :masterdef_flashback_scn , extension_id => :extension_id , break_trans_to_masterdef => false , break_trans_to_new_masters => false , percentage_for_catchup_mdef => , cycle_seconds_mdef => , percentage_for_catchup_new => , cycle_seconds_new => ); -- EXPORT TABLE-DATA FROM MASTER-INSTANCE PROMPT EXPORT DUMP SET LINESIZE 2000 SET TRIMOUT ON SET TRIMSPOOL ON SET FEEDBACK OFF SET ECHO OFF SET HEADING OFF SPOOL export.cmd SELECT 'd:\oracle\ora10g\bin\exp FILE=REP_ORC2.dmp LOG=REP_ORC2_EXP.LOG DIRECT=n GRANTS=y ROWS=y COMPRESS=y INDEXES=y CONSTRAINTS=y tables=(rep_orc2.location, rep_orc2.job, rep_orc2.department, rep_orc2.employee, rep_orc2.customer, rep_orc2.sales_order, rep_orc2.product, rep_orc2.item, rep_orc2.price, rep_orc2.salary_grade) STATISTICS=compute FLASHBACK_SCN='||FLASHBACK_SCN FROM DBA_REPEXTENSIONS; SPOOL OFF ACCEPT ok PROMPT "Wenn export.cmd modifiziert bitte <ENTER>" host export.cmd spool log\10_02_add_master.log SET FEEDBACK ON SET ECHO ON SET HEADING ON ACCEPT ok PROMPT "Wenn export fertig bitte <ENTER>" -- RESUME_PROPAGATION_TO_MDEF PROMPT RESUME_PROPAGATION_TO_MDEF DBMS_REPCAT.RESUME_PROPAGATION_TO_MDEF ( extension_id => :extension_id); ACCEPT ok PROMPT "Wenn dba_repsites_new etc. gezeigt bitte <ENTER>" -- IMPORT TABLE-DATA INTO NEW SLAVE-INSTANCE PROMPT IMPORT DUMP (CONSTRAINTS) SPOOL import.cmd SELECT 'd:\oracle\ora10g\bin\imp FILE=REP_ORC2.dmp LOG=REP_ORC2_IMP.LOG FROMUSER=REP_ORC2 TOUSER=REP_ORC2 BUFFER=30720 IGNORE=y GRANTS=y ROWS=y DESTROY=y COMMIT=n tables=(location, job, department, employee, customer, sales_order, product, item, price, salary_grade)' FROM DUAL; ACCEPT ok PROMPT "Wenn import.cmd modifiziert bitte <ENTER>" host import.cmd spool log\10_03_add_master.log PROMPT Bitte Trigger und Sequenzen anpassen/deaktivieren! ACCEPT ok PROMPT "Wenn import fertig bitte <ENTER>" -- PREPARE_INSTANTIATED_MASTER PROMPT PREPARE_INSTATIATED_MASTER DBMS_REPCAT.PREPARE_INSTANTIATED_MASTER ( extension_id => :extension_id); -- CHECK REPCAT$-TABLES ARE EMPTY! select extension_id, gname, dblink from dba_repsites_new; select extension_id, request from dba_repextensions; SELECT SUBSTR(status,1,30) "STATUS",SUBSTR(oname,1,30) "ONAME" FROM dba_repcatlog; SELECT SUBSTR(gname,1,30) "GNAME",SUBSTR(status,1,30) "STATUS" FROM dba_repcat; PROMPT ENDE SNAP10.PLS; spool off;

10 Pitfalls... dbms_repcat.add_new_masters
Hanging, Admin-Requests bleiben stehen (ORA-23320, ORA-01403) Analyse (MDS): Dump file d:\orabase\admin\mas10\udump\mas10_ora_916.trc . *** :01:53.657 wait_for_masters: waiting for repcatlog with id = 979 during add_new_masters

11 Pitfalls... Analyse (Slave):
Dump file d:\orabase\admin\sna102\udump\sna102_j000_2172.trc . *** SESSION ID:(22.342) :00:51.878 ensure_single_valid_adddb_req: more than one valid add master requests can not pull extension request 55B79279EB5A445B8F6DCB7A18156B2D from MAS10.DE.ORACLE.COM ORA-23320: Anfrage wegen der Werte "add master requests" und "ensure_single_valid_adddb_req" nicht erfolgreich Behebung: dbms_repcat.undo_add_new_masters_request (Metalink Note # )

12 Pitfalls... Data-Dictionary-Views: Export / Import:
dba_repsites_new dba_repextensions def$_destination Export / Import: Dauer Fehler Ungültige Objekte, Trigger, Sequences o. ä. Konfliktsolution nicht möglich

13 Q & Q U E S T I O N S A N S W E R S A

14


Herunterladen ppt "Frank Schneede Senior Berater ORACLE Deutschland GmbH."

Ähnliche Präsentationen


Google-Anzeigen