Anda di halaman 1dari 9

~~~~readme

This is the setup script for a Consolidation replication


All DML changes executed on SU1,SU2 and SU3 are consolidated on
Target table TU1
~~----------------------------------------------------------------~~~~- Cleanup script
~~~~----------------------------------------------------------------~~./cleanup.obey
dblogin userid MERGETADM password MERGETADM
stop *
KILL replicat rep*
delete replicat r*!
delete checkpointtable MERGETADM.checkpointtable!
dblogin userid MERGESADM1 password MERGESADM1
KILL extract ext_1
delete extract ext_1!
KILL extract pmp_1
delete extract pmp_1!
dblogin userid MERGESADM2 password MERGESADM2
KILL extract ext_2
delete extract ext_2!
KILL extract pmp_2
delete extract pmp_2!
dblogin userid MERGESADM3 password MERGESADM3
KILL extract ext_3
delete extract ext_3!
KILL extract pmp_3
delete extract pmp_3!
pause 10
stop mgr!
sh sqlplus sys/oracle as sysdba < ./dirsql/drop_all.sql > ./dirsql/drop_all.out
sh rm source_target_kill.sql
sh rm table_count.sql
sh
sh
sh
sh
-----

rm
rm
rm
rm
sh
sh
sh
sh

$GGH/dirdat/*
$GGH/dirrpt/*
$GGH/dirdef/*
$GGH/dirprm/*
rm $GGH/dirsql/*
rm ./cleanup.obey
rm ./setup.txt
rm ./GLOBALS

info all
~~----------------------------------------------------------------~~~~- SQL FILES
~~~~----------------------------------------------------------------~~./dirsql/drop_all.sql
rem drop_all.sql

rem
set
set
set
set

echo off
feedback off
verify off
pagesize 0

spool source_target_kill.sql
select 'alter system kill session ''' || sid || ',' || serial# || ''' ;'
from gv$session
where username in ('MERGESADM1','MERGESADM2','MERGESADM3','MERGETADM','MERGESU1'
,'MERGESU2','MERGESU3','MERGETU1');
spool off
@source_target_kill.sql
drop
drop
drop
drop
drop
drop
drop
drop

user
user
user
user
user
user
user
user

MERGESU1 cascade;
MERGESU2 cascade;
MERGESU3 cascade;
MERGETU1 cascade;
MERGESADM1 cascade;
MERGESADM2 cascade;
MERGESADM3 cascade;
MERGETADM cascade;

~~----------------------------------------------------------------~~~~- Create users and sequences


~~~~----------------------------------------------------------------~~./dirsql/users.sql
rem users.sql
rem Create database users. Both users are in the same database.
rem
-- Script created using 11.1.1 documentation
-- dba privilege must be provided to support DDL activity
conn sys/oracle as sysdba
alter database ADD SUPPLEMENTAL LOG DATA;
create user MERGESADM1 identified by MERGESADM1;
grant connect, resource, dba to MERGESADM1;
@./sequence.sql MERGESADM1
create user MERGESADM2 identified by MERGESADM2;
grant connect, resource, dba to MERGESADM2;
@./sequence.sql MERGESADM2
create user MERGESADM3 identified by MERGESADM3;
grant connect, resource, dba to MERGESADM3;
@./sequence.sql MERGESADM3
create user MERGETADM identified by MERGETADM;
grant connect, resource, dba to MERGETADM;
@./sequence.sql MERGETADM
create
create
create
create

user
user
user
user

MERGESU1
MERGESU2
MERGESU3
MERGETU1

identified
identified
identified
identified

by
by
by
by

MERGESU1;
MERGESU2;
MERGESU3;
MERGETU1;

grant connect, resource to MERGESU1, MERGESU2, MERGESU3, MERGETU1;


@./dirsql/tables.sql MERGESU1
@./dirsql/tables.sql MERGESU2
@./dirsql/tables.sql MERGESU3
@./dirsql/cons_tables.sql MERGETU1
@./dirsql/setup_check_for_class.sql
~~./dirsql/setup_check_for_class.sql
rem setup_check_for_class.sql
rem Setup check of Oracle
conn sys/oracle as sysdba
set linesize 200
set pagesize 45
COLUMN LOG_GROUP_NAME HEADING 'Log Group' FORMAT A40
COLUMN TABLE_NAME HEADING 'Table' FORMAT A30
COLUMN ALWAYS HEADING 'Type of Log Group' FORMAT A30
col SUPPLEMENTAL_LOG_DATA_MIN Heading 'Supp. Log Data Min' format a20
col SUPPLEMENTAL_LOG_DATA_PK heading 'Supp Log PK' format a12
col SUPPLEMENTAL_LOG_DATA_UI heading 'Supp Log UK' format a12
-- At least one column must be 'YES'
SELECT SUPPLEMENTAL_LOG_DATA_MIN, SUPPLEMENTAL_LOG_DATA_PK,
SUPPLEMENTAL_LOG_DATA_UI FROM V$DATABASE;
set feedback off
set heading off
spool table_count.sql
select 'select count(*) '|| '"' || owner || '.'|| table_name ||'" from '||
owner ||'.'|| table_name ||';'
from dba_tables
where owner in ('MERGESU1','MERGESU2','MERGESU3','MERGETU1')
and dropped = 'NO';
spool off
set Heading on
set feedback on
@table_count.sql
~~./dirsql/tables.sql
rem tables.sql
set echo on
connect &1/&1
CREATE SEQUENCE s_dept_id;
CREATE SEQUENCE s_emp_id;
CREATE TABLE dept (
DEPTNO
NUMBER(10) NOT NULL,
DNAME
VARCHAR2(14),
LOC
VARCHAR2(13),
CONSTRAINT dept_PRIMARY_KEY PRIMARY KEY (DEPTNO));
CREATE TABLE emp (
EMPNO
ENAME
JOB
MGR
HIREDATE
SAL

NUMBER(10) NOT NULL,


VARCHAR2(10),
VARCHAR2(9),
NUMBER(4) ,
DATE,
NUMBER(7,2),

COMM
NUMBER(7,2),
DEPTNO
NUMBER(10) NOT NULL,
CONSTRAINT emp_FOREIGN_KEY FOREIGN KEY (DEPTNO) REFERENCES dept (DEPTNO),
CONSTRAINT emp_PRIMARY_KEY PRIMARY KEY (EMPNO));
~~./dirsql/cons_tables.sql
rem cons_tables.sql
set echo on
connect &1/&1
CREATE TABLE dept (
DEPTNO
NUMBER(10) NOT NULL,
SITE
VARCHAR2(6) NOT NULL,
DNAME
VARCHAR2(14),
LOC
VARCHAR2(13),
CONSTRAINT dept_PRIMARY_KEY PRIMARY KEY (DEPTNO,SITE));
CREATE TABLE emp (
EMPNO
NUMBER(10) NOT NULL,
SITE
VARCHAR2(6) NOT NULL,
ENAME
VARCHAR2(10),
JOB
VARCHAR2(9),
MGR
NUMBER(4) ,
HIREDATE
DATE,
SAL
NUMBER(7,2),
COMM
NUMBER(7,2),
DEPTNO
NUMBER(10) NOT NULL,
CONSTRAINT emp_FOREIGN_KEY FOREIGN KEY (DEPTNO,SITE) REFERENCES dept (DEPTNO,SI
TE),
CONSTRAINT emp_PRIMARY_KEY PRIMARY KEY (EMPNO,SITE));
~~./dirsql/insert_data.sql
rem ./dirsql/insert_data.sql
connect &1/&1
rem insert rows into emp, Repostion the Extract and Replicat
INSERT INTO dept VALUES (s_dept_id.NEXTVAL,'ACCOUNTING','NEW YORK');
INSERT INTO dept VALUES (s_dept_id.NEXTVAL,'RESEARCH','DALLAS');
INSERT INTO dept VALUES (s_dept_id.NEXTVAL,'SALES','CHICAGO');
commit;
INSERT INTO emp
000,NULL,1);
INSERT INTO emp
NULL,3);
INSERT INTO emp
NULL,1);
INSERT INTO emp
NULL,2);
INSERT INTO emp
ULL,2);
INSERT INTO emp
LL,2);
INSERT INTO emp
0,300,3);
INSERT INTO emp
0,500,3);
INSERT INTO emp

VALUES (s_emp_id.NEXTVAL,'GEORGE','PRESIDENT',NULL,'17-NOV-81',5
VALUES (s_emp_id.NEXTVAL,'BLAKE','MANAGER',7839,'1-MAY-81',2850,
VALUES (s_emp_id.NEXTVAL,'CLARK','MANAGER',7839,'9-JUN-81',2450,
VALUES (s_emp_id.NEXTVAL,'JONES','MANAGER',7839,'2-APR-81',2975,
VALUES (s_emp_id.NEXTVAL,'FORD','ANALYST',7566,'3-DEC-81',3000,N
VALUES (s_emp_id.NEXTVAL,'SMITH','CLERK',7902,'17-DEC-80',800,NU
VALUES (s_emp_id.NEXTVAL,'ALLEN','SALESMAN',7698,'20-FEB-81',160
VALUES (s_emp_id.NEXTVAL,'Elvis','SALESMAN',7698,'22-FEB-81',125
VALUES (s_emp_id.NEXTVAL,'MARTIN','SALESMAN',7698,'28-SEP-81',12

50,1400,3);
INSERT INTO emp VALUES (s_emp_id.NEXTVAL,'SCOTT','ANALYST',7566,'09-DEC-82',3000
,NULL,2);
INSERT INTO emp VALUES (s_emp_id.NEXTVAL,'TURNER','SALESMAN',7698,'8-SEP-81',150
0,0,3);
INSERT INTO emp VALUES (s_emp_id.NEXTVAL,'ADAMS','CLERK',7788,'12-JAN-83',1100,N
ULL,2);
INSERT INTO emp VALUES (s_emp_id.NEXTVAL,'JAMES','CLERK',7698,'3-DEC-81',950,NUL
L,3);
INSERT INTO emp VALUES (s_emp_id.NEXTVAL,'MILLER','CLERK',7782,'23-JAN-82',1300,
NULL,1);
update emp set comm = comm + 1;
commit;
INSERT INTO emp SELECT s_emp_id.NEXTVAL, ENAME, JOB,MGR,HIREDATE,SAL,COMM,DEPTNO
FROM emp;
INSERT INTO emp SELECT s_emp_id.NEXTVAL, ENAME, JOB,MGR,HIREDATE,SAL,COMM,DEPTNO
FROM emp;
INSERT INTO emp SELECT s_emp_id.NEXTVAL, ENAME, JOB,MGR,HIREDATE,SAL,COMM,DEPTNO
FROM emp;
INSERT INTO emp SELECT s_emp_id.NEXTVAL, ENAME, JOB,MGR,HIREDATE,SAL,COMM,DEPTNO
FROM emp;
COMMIT;
INSERT INTO emp SELECT s_emp_id.NEXTVAL, ENAME, JOB,MGR,HIREDATE,SAL,COMM,DEPTNO
FROM emp
where rownum < 50000;
COMMIT;
INSERT INTO emp SELECT s_emp_id.NEXTVAL, ENAME, JOB,MGR,HIREDATE,SAL,COMM,DEPTNO
FROM emp
where rownum < 100000;
COMMIT;
~~----------------------------------------------------------------~~~~- PARAMETERS FILES
~~~~----------------------------------------------------------------~~----------------------------------------------------------------~~~~- MGR file
~~~~----------------------------------------------------------------~~./backup/mgr.prm
-- mgr.prm
-- Manager parameter file
PORT 8172
LAGCRITICALSECONDS 60
LAGINFOMINUTES 60
LAGREPORTMINUTES 10
~~----------------------------------------------------------------~~~~- Extract parameter file
~~~~----------------------------------------------------------------~~./backup/ext_1.prm
-- ext_1.prm
-- Extract parameter file
EXTRACT ext_1
USERID "MERGESADM1", PASSWORD "MERGESADM1"

TRANLOGOPTIONS DBLOGREADER
-- TRANLOGOPTIONS ASMUSER ggasm@ASM, ASMPASSWORD ggasm
EXTTRAIL ./dirdat/e1
DISCARDFILE dirrpt/ext_1.dsc , APPEND
REPORTCOUNT EVERY 10000 RECORDS, RATE
TABLE MERGESU1.*;
~~./backup/ext_2.prm
-- ext_2.prm
-- Extract parameter file
EXTRACT ext_2
USERID "MERGESADM2", PASSWORD "MERGESADM2"
TRANLOGOPTIONS DBLOGREADER
-- TRANLOGOPTIONS ASMUSER ggasm@ASM, ASMPASSWORD ggasm
EXTTRAIL ./dirdat/e2
DISCARDFILE dirrpt/ext_2.dsc , APPEND
REPORTCOUNT EVERY 10000 RECORDS, RATE
TABLE MERGESU2.*;
~~./backup/ext_3.prm
-- ext_3.prm
-- Extract parameter file
EXTRACT ext_3
USERID "MERGESADM3", PASSWORD "MERGESADM3"
TRANLOGOPTIONS DBLOGREADER
-- TRANLOGOPTIONS ASMUSER ggasm@ASM, ASMPASSWORD ggasm
EXTTRAIL ./dirdat/e3
DISCARDFILE dirrpt/ext_3.dsc , APPEND
REPORTCOUNT EVERY 10000 RECORDS, RATE
TABLE MERGESU3.*;
~~----------------------------------------------------------------~~~~- Data Pump parameter file
~~~~----------------------------------------------------------------~~./backup/pmp_1.prm
-- pmp_1.prm
-- Extract data pump parameter file
EXTRACT pmp_1
PASSTHRU
RMTHOST localhost, MGRPORT 8172
RMTTRAIL ./dirdat/r1
WILDCARDRESOLVE DYNAMIC
TABLE MERGESU1.*;
~~./backup/pmp_2.prm
-- pmp_2.prm
-- Extract data pump parameter file
EXTRACT pmp_2
PASSTHRU
RMTHOST localhost, MGRPORT 8172
RMTTRAIL ./dirdat/r2
WILDCARDRESOLVE DYNAMIC
TABLE MERGESU2.*;
~~./backup/pmp_3.prm
-- pmp_3.prm
-- Extract data pump parameter file
EXTRACT pmp_3

PASSTHRU
RMTHOST localhost, MGRPORT 8172
RMTTRAIL ./dirdat/r3
WILDCARDRESOLVE DYNAMIC
TABLE MERGESU3.*;
~~----------------------------------------------------------------~~~~- Replicat parameter file
~~~~----------------------------------------------------------------~~./backup/rep_1.prm
-- rep_1.prm
-- Replicat parameter file
REPLICAT rep_1
USERID "MERGETADM", PASSWORD "MERGETADM"
SOURCEDEFS dirdef/source_defs.def
DISCARDFILE dirrpt/rep_1.dsc , APPEND
REPORTCOUNT EVERY 10000 RECORDS, RATE
ASSUMETARGETDEFS
MAP MERGESU1.*, TARGET MERGETU1.*, &
COLMAP (USEDEFAULTS, SITE = "SITE1");
~~./backup/rep_2.prm
-- rep_2.prm
-- Replicat parameter file
REPLICAT rep_2
USERID "MERGETADM", PASSWORD "MERGETADM"
SOURCEDEFS dirdef/source_defs.def
DISCARDFILE dirrpt/rep_2.dsc , APPEND
REPORTCOUNT EVERY 10000 RECORDS, RATE
ASSUMETARGETDEFS
MAP MERGESU2.*, TARGET MERGETU1.*, &
COLMAP (USEDEFAULTS, SITE = "SITE2");
~~./backup/rep_3.prm
-- rep_3.prm
-- Replicat parameter file
REPLICAT rep_3
USERID "MERGETADM", PASSWORD "MERGETADM"
SOURCEDEFS dirdef/source_defs.def
DISCARDFILE dirrpt/rep_3.dsc , APPEND
REPORTCOUNT EVERY 10000 RECORDS, RATE
ASSUMETARGETDEFS
MAP MERGESU3.*, TARGET MERGETU1.*, &
COLMAP (USEDEFAULTS, SITE = "SITE3");
~~----------------------------------------------------------------~~~~- DEFGEN PARAMETER FILES
~~~~----------------------------------------------------------------~~./backup/defgen1.prm
-- defgen1.prm
-- DEFGEN parameter file for the source schema
-DEFSFILE ./dirdef/source_defs.def, PURGE
USERID MERGESADM1, PASSWORD MERGESADM1
TABLE MERGESU1.*;

~~./backup/defgen2.prm
-- defgen2.prm
-- DEFGEN parameter file for the source schema
-DEFSFILE ./dirdef/source_defs.def, APPEND
USERID MERGESADM2, PASSWORD MERGESADM2
TABLE MERGESU2.*;
~~./backup/defgen3.prm
-- defgen3.prm
-- DEFGEN parameter file for the source schema
-DEFSFILE ./dirdef/source_defs.def, APPEND
USERID MERGESADM3, PASSWORD MERGESADM3
TABLE MERGESU3.*;
~~----------------------------------------------------------------~~~~- MAIN TEST OBEY FILE
~~~~----------------------------------------------------------------~~test.ob
sh $GGH/ggsci < $GGH/cleanup.obey
create subdirs
sh cp ./backup/*.prm ./dirprm
--Create users, tables and sequences
sh sqlplus /nolog < ./dirsql/users.sql
sh ./defgen PARAMFILE dirprm/defgen1.prm REPORTFILE dirrpt/defgen1.rpt
sh ./defgen PARAMFILE dirprm/defgen2.prm REPORTFILE dirrpt/defgen2.rpt
sh ./defgen PARAMFILE dirprm/defgen3.prm REPORTFILE dirrpt/defgen3.rpt
start mgr
dblogin userid MERGETADM password MERGETADM
add checkpointtable MERGETADM.checkpointtable
ADD REPLICAT rep_1, EXTTRAIL ./dirdat/r1, checkpointtable MERGETADM.checkpointta
ble
ALTER REPLICAT rep_1, extrba 0
START REPLICAT rep_1
ADD REPLICAT rep_2, EXTTRAIL ./dirdat/r2, checkpointtable MERGETADM.checkpointta
ble
ALTER REPLICAT rep_2, extrba 0
START REPLICAT rep_2
ADD REPLICAT rep_3, EXTTRAIL ./dirdat/r3, checkpointtable MERGETADM.checkpointta
ble
ALTER REPLICAT rep_3, extrba 0
START REPLICAT rep_3
dblogin userid MERGESADM1 password MERGESADM1
ADD TRANDATA MERGESU1.*
ADD EXTRACT ext_1, TRANLOG, BEGIN NOW
ADD EXTTRAIL ./dirdat/e1, EXTRACT ext_1, Megabytes 5
START EXTRACT ext_1
ADD EXTRACT pmp_1, EXTTRAILSOURCE ./dirdat/e1
ADD RMTTRAIL ./dirdat/r1, EXTRACT pmp_1, Megabytes 5

START EXTRACT pmp_1


dblogin userid MERGESADM2 password MERGESADM2
ADD TRANDATA MERGESU2.*
ADD EXTRACT ext_2, TRANLOG, BEGIN NOW
ADD EXTTRAIL ./dirdat/e2, EXTRACT ext_2, Megabytes 5
START EXTRACT ext_2
ADD EXTRACT pmp_2, EXTTRAILSOURCE ./dirdat/e2
ADD RMTTRAIL ./dirdat/r2, EXTRACT pmp_2, Megabytes 5
START EXTRACT pmp_2
dblogin userid MERGESADM3 password MERGESADM3
ADD TRANDATA MERGESU3.*
ADD EXTRACT ext_3, TRANLOG, BEGIN NOW
ADD EXTTRAIL ./dirdat/e3, EXTRACT ext_3, Megabytes 5
START EXTRACT ext_3
ADD EXTRACT pmp_3, EXTTRAILSOURCE ./dirdat/e3
ADD RMTTRAIL ./dirdat/r3, EXTRACT pmp_3, Megabytes 5
START EXTRACT pmp_3
info all
sh sqlplus MERGESU1/MERGESU1 <
ut
sh sqlplus MERGESU2/MERGESU2 <
ut
sh sqlplus MERGESU3/MERGESU3 <
ut
pause 10
sh sqlplus MERGETADM/MERGETADM
sh rm ./table_count.sql

./dirsql/insert_data.sql > ./dirsql/insert_data.o


./dirsql/insert_data.sql > ./dirsql/insert_data.o
./dirsql/insert_data.sql > ./dirsql/insert_data.o
< ./table_count.sql

Anda mungkin juga menyukai