0% found this document useful (0 votes)
370 views6 pages

Unidir

This document provides instructions for setting up an Active-Passive DML replication between a source and target database. It includes scripts for cleaning up the environment, creating users, tables, and sequences, setting up the extract, replicat and necessary parameter files, and inserting and validating data between the databases.

Uploaded by

Yakub Pasha
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
370 views6 pages

Unidir

This document provides instructions for setting up an Active-Passive DML replication between a source and target database. It includes scripts for cleaning up the environment, creating users, tables, and sequences, setting up the extract, replicat and necessary parameter files, and inserting and validating data between the databases.

Uploaded by

Yakub Pasha
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 6

~~~~readme

This is the setup script for an Active - Passive DML replication


~~----------------------------------------------------------------~~~~- Cleanup script
~~~~----------------------------------------------------------------~~./cleanup.obey
dblogin userid UNITADM password UNITADM
stop *
KILL replicat rep*
delete replicat r*!
delete checkpointtable!
dblogin userid UNISADM password UNISADM
KILL extract ext_*
delete extract ext_*!
KILL extract pmp_*
delete extract pmp_*!
pause 10
stop mgr!
-- Unregister ????
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

$GGH/dirdat/*
$GGH/dirrpt/*
$GGH/dirdef/*
$GGH/dirprm/*

info all
~~----------------------------------------------------------------~~~~- SQL FILES
~~~~----------------------------------------------------------------~~./dirsql/drop_all.sql
rem drop_all.sql
rem
set echo off
set feedback off
set verify off
set pagesize 0
spool source_target_kill.sql
select 'alter system kill session ''' || sid || ',' || serial# || ''' ;'
from gv$session
where username in ('UNISADM','UNITADM','UNISU1','UNITU1');
spool off
@source_target_kill.sql

drop
drop
drop
drop

user
user
user
user

UNISU1 cascade;
UNITU1 cascade;
UNISADM cascade;
UNITADM 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 UNISADM identified by UNISADM;
grant connect, resource, dba to UNISADM;
@./sequence.sql UNISADM
create user UNITADM identified by UNITADM;
grant connect, resource, dba to UNITADM;
@./sequence.sql UNITADM
create user UNISU1 identified by UNISU1;
create user UNITU1 identified by UNITU1;
grant connect, resource to UNISU1, UNITU1;
@./dirsql/tables.sql UNISU1
@./dirsql/tables.sql UNITU1
@./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 = 'UNISU1'


or owner = 'UNITU1')
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
NUMBER(10) NOT
ENAME
VARCHAR2(10),
JOB
VARCHAR2(9),
MGR
NUMBER(4) ,
HIREDATE
DATE,
SAL
NUMBER(7,2),
COMM
NUMBER(7,2),
DEPTNO
NUMBER(10) NOT
CONSTRAINT emp_FOREIGN_KEY FOREIGN
CONSTRAINT emp_PRIMARY_KEY PRIMARY

NULL,

NULL,
KEY (DEPTNO) REFERENCES dept (DEPTNO),
KEY (EMPNO));

~~./dirsql/insert_data.sql
rem ./dirsql/insert_data.sql
connect &1/&1
rem insert rows into emp, Repostion the Extract and Replicat
INSERT
INSERT
INSERT
INSERT
INSERT

INTO
INTO
INTO
INTO
INTO

dept
dept
dept
dept
dept

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

VALUES
VALUES
VALUES
SELECT
SELECT

(s_dept_id.NEXTVAL,'ACCOUNTING','NEW YORK');
(s_dept_id.NEXTVAL,'RESEARCH','DALLAS');
(s_dept_id.NEXTVAL,'SALES','CHICAGO');
s_dept_id.NEXTVAL,DNAME,LOC FROM dept;
s_dept_id.NEXTVAL,DNAME,LOC FROM dept;

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

LL,2);
INSERT INTO emp VALUES (s_emp_id.NEXTVAL,'ALLEN','SALESMAN',7698,'20-FEB-81',160
0,300,3);
INSERT INTO emp VALUES (s_emp_id.NEXTVAL,'Elvis','SALESMAN',7698,'22-FEB-81',125
0,500,3);
INSERT INTO emp 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;
INSERT INTO emp SELECT s_emp_id.NEXTVAL, ENAME, JOB,MGR,HIREDATE,SAL,COMM,DEPTN
O FROM emp
where rownum < 100000;
COMMIT;
INSERT INTO emp SELECT s_emp_id.NEXTVAL, ENAME, JOB,MGR,HIREDATE,SAL,COMM,DEPTN
O FROM emp
where rownum < 100000;
COMMIT;
INSERT INTO emp SELECT s_emp_id.NEXTVAL, ENAME, JOB,MGR,HIREDATE,SAL,COMM,DEPTN
O FROM emp
where rownum < 100000;
COMMIT;
~~----------------------------------------------------------------~~~~- PARAMETERS FILES
~~~~----------------------------------------------------------------~~----------------------------------------------------------------~~~~- MGR file
~~~~-----------------------------------------------------------------

~~./backup/mgr.prm
-- mgr.prm
-- Manager parameter file
PORT 8141
LAGCRITICALSECONDS 60
LAGINFOMINUTES 60
LAGREPORTMINUTES 10
~~----------------------------------------------------------------~~~~- Extract parameter file
~~~~----------------------------------------------------------------~~./backup/ext_1.prm
-- ext_1a.prm
-- Extract parameter file
EXTRACT ext_1
USERID "UNISADM", PASSWORD "UNISADM"
TRANLOGOPTIONS DBLOGREADER
-- TRANLOGOPTIONS ASMUSER ggasm@ASM, ASMPASSWORD ggasm
EXTTRAIL ./dirdat/et
DISCARDFILE dirrpt/ext_1.dsc , APPEND
REPORTCOUNT EVERY 10000 RECORDS, RATE
TABLE UNISU1.*;
~~----------------------------------------------------------------~~~~- Data Pump parameter file
~~~~----------------------------------------------------------------~~./backup/pmp_1.prm
-- pmp_1.prm
-- Extract data pump parameter file
EXTRACT pmp_1
PASSTHRU
RMTHOST localhost, MGRPORT 8141
RMTTRAIL ./dirdat/rt
WILDCARDRESOLVE DYNAMIC
TABLE UNISU1.*;
~~----------------------------------------------------------------~~~~- Replicat parameter file
~~~~----------------------------------------------------------------~~./backup/rep_1.prm
-- rep_1.prm
-- Replicat parameter file
REPLICAT rep_1
USERID "UNITADM", PASSWORD "UNITADM"
DISCARDFILE dirrpt/rep_1.dsc , APPEND
REPORTCOUNT EVERY 10000 RECORDS, RATE
ASSUMETARGETDEFS
MAP UNISU1.*, TARGET UNITU1.*;
~~----------------------------------------------------------------~~~~- MAIN TEST OBEY FILE
~~~~-----------------------------------------------------------------

~~test.ob
sh $GGH/ggsci < $GGH/cleanup.obey
create subdirs
-- sh mkdir ./backup
sh cp ./backup/*.prm ./dirprm
--Create users, tables and sequences
sh sqlplus /nolog < ./dirsql/users.sql
start mgr
dblogin userid UNITADM password UNITADM
add checkpointtable UNITADM.checkpointtable
ADD REPLICAT rep_1, EXTTRAIL ./dirdat/rt, checkpointtable UNITADM.checkpointtabl
e
ALTER REPLICAT rep_1, extrba 0
START REPLICAT rep_1
dblogin userid UNISADM password UNISADM
ADD TRANDATA UNISU1.*
-- Add extract and trails back
ADD EXTRACT ext_1, TRANLOG, BEGIN NOW
ADD EXTTRAIL ./dirdat/et, EXTRACT ext_1, Megabytes 5
START EXTRACT ext_1
ADD EXTRACT pmp_1, EXTTRAILSOURCE ./dirdat/et
ADD RMTTRAIL ./dirdat/rt, EXTRACT pmp_1, Megabytes 5
START EXTRACT pmp_1
info all
sh sqlplus UNISU1/UNISU1 < ./dirsql/insert_data.sql > ./dirsql/insert_data.out
pause 10
sh sqlplus UNITADM/UNITADM < ./table_count.sql
sh rm ./table_count.sql

You might also like