Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Zadanie. 1
- Na DB1
- CREATE SHARED PUBLIC DATABASE LINK db2
- CONNECT TO c##rbd IDENTIFIED BY ORA12iiuph
- AUTHENTICATED BY c##rbd IDENTIFIED BY ORA12iiuph
- USING 'ORA01';
- CREATE SHARED PUBLIC DATABASE LINK db3
- CONNECT TO c##rbd IDENTIFIED BY ORA12iiuph
- AUTHENTICATED BY c##rbd IDENTIFIED BY ORA12iiuph
- USING 'ORA02';
- Na DB1 (globalny)
- ALTER SYSTEM SET COMMIT_POINT_STRENGTH=30 SCOPE=SPFILE;
- Na DB2 (zatiwerdzania)
- ALTER SYSTEM SET COMMIT_POINT_STRENGTH=50 SCOPE=SPFILE;
- Na DB3 (lokalny)
- ALTER SYSTEM SET COMMIT_POINT_STRENGTH=10 SCOPE=SPFILE;
- Zadanie. 2
- Na wszystkich
- CREATE TABLE etaty(
- et_nazwa varchar2(20) constraint etaty_pk primary key,
- et_max_pensja number(8,2)
- );
- CREATE TABLE pracownicy(
- pr_numer number(4) constraint pracownicy_pk primary key,
- pr_nazwisko varchar2(20),
- pr_imie varchar2(20),
- pr_et_nazwa varchar2(20) constraint prac_etaty_fk references etaty(et_nazwa),
- pr_pensja number(8,2) default 0
- );
- CREATE INDEX prac_etaty_fk_idx ON pracownicy(pr_et_nazwa);
- Na DB1
- CREATE TABLE oddzialy(
- od_numer number(4) constraint oddzialy_pk primary key,
- od_nazwa varchar2(50)
- );
- Na DB2
- CREATE TABLE oddzialy(
- od_numer number(4) constraint oddzialy_pk primary key,
- od_nazwa varchar2(50)
- )
- PARTITION BY LIST(od_nazwa)
- (
- PARTITION odzial_prod VALUES ('Pola', 'Sady', 'Fabryki'),
- PARTITION odzial_sprzedaz VALUES ('Marketing', 'Handel'),
- PARTITION odzial_inne VALUES (DEFAULT)
- );
- Na DB3
- CREATE TABLESPACE d1
- DATAFILE 'd1.dbf'
- SIZE 100M AUTOEXTEND ON NEXT 10M;
- CREATE TABLESPACE d2
- DATAFILE 'd2.dbf'
- SIZE 100M AUTOEXTEND ON NEXT 10M;
- CREATE TABLESPACE d3
- DATAFILE 'd3.dbf'
- SIZE 100M AUTOEXTEND ON NEXT 10M;
- CREATE TABLESPACE d4
- DATAFILE 'd4.dbf'
- SIZE 100M AUTOEXTEND ON NEXT 10M;
- CREATE TABLE oddzialy(
- od_numer number(4) constraint oddzialy_pk primary key,
- od_nazwa varchar2(50)
- )
- PARTITION BY HASH(od_nazwa)
- (
- PARTITION p1 TABLESPACE d1,
- PARTITION p2 TABLESPACE d2,
- PARTITION p3 TABLESPACE d3,
- PARTITION p4 TABLESPACE d4
- );
- Na wszystkich:
- INSERT INTO etaty VALUES ('sklepikarz', 3500);
- INSERT INTO etaty VALUES ('piekarz', 5000);
- INSERT INTO etaty VALUES ('dozorca', 3000);
- INSERT INTO etaty VALUES ('dyrektor', 8000);
- INSERT INTO etaty VALUES ('kierowca', 4000);
- INSERT INTO oddzialy VALUES (1, 'Pola');
- INSERT INTO oddzialy VALUES (2, 'Magazyn');
- INSERT INTO oddzialy VALUES (3, 'Sklep');
- INSERT INTO oddzialy VALUES (4, 'Sady');
- INSERT INTO oddzialy VALUES (5, 'Fabryki');
- INSERT INTO oddzialy VALUES (6, 'Handel');
- INSERT INTO oddzialy VALUES (7, 'Marketing');
- INSERT INTO pracownicy VALUES (1, 'Kowalski', 'Jan', 'dozorca', 2000);
- INSERT INTO pracownicy VALUES (2, 'Gram', 'Arek', 'dyrektor', 5000);
- INSERT INTO pracownicy VALUES (3, 'Arbuz', 'Darek', 'kierowca', 3000);
- INSERT INTO pracownicy VALUES (4, 'Jablko', 'Marek', 'sklepikarz', 2500);
- INSERT INTO pracownicy VALUES (5, 'Ogorek', 'Czarek', 'piekarz', 4000);
- Na DB1;
- DROP SYNONYM etaty_db1;
- DROP SYNONYM pracownicy_db1;
- DROP SYNONYM oddzialy_db1;
- DROP SYNONYM etaty_db2;
- DROP SYNONYM pracownicy_db2;
- DROP SYNONYM oddzialy_db2;
- DROP SYNONYM etaty_db3;
- DROP SYNONYM pracownicy_db3;
- DROP SYNONYM oddzialy_db3;
- CREATE SYNONYM etaty_db1 FOR etaty;
- CREATE SYNONYM pracownicy_db1 FOR pracownicy;
- CREATE SYNONYM oddzialy_db1 FOR odzialy;
- CREATE SYNONYM etaty_db2 FOR etaty@db2;
- CREATE SYNONYM pracownicy_db2 FOR pracownicy@db2;
- CREATE SYNONYM oddzialy_db2 FOR odzialy@db2;
- CREATE SYNONYM etaty_db3 FOR etaty@db3;
- CREATE SYNONYM pracownicy_db3 FOR pracownicy@db3;
- CREATE SYNONYM oddzialy_db3 FOR odzialy@db3;
- INSERT INTO etaty_db3 VALUES ('analityk', 18210);
- INSERT INTO pracownicy_db3 VALUES (6, 'Dobrawy', 'Adam', 'analityk', 3000);
- INSERT INTO pracownicy_db3 VALUES (7, 'Dobrawy', 'Adam', 'analityk', 3000);
- SAVEPOINT sp_etaty;
- INSERT INTO oddzialy_db3 VALUES (8, 'Warszawa');
- INSERT INTO etaty_db2 VALUES ('programista', 13100.10);
- UPDATE pracownicy@db2 SET pr_pensja = pr_pensja + 350 WHERE 'pr_et_nazwa' = 'pracownicy';
- COMMIT;
- Grupy odświerzania można sprawdzić poprzez
- SELECT * FROM USER_REFRESH;
- Informacje o obiektach w migawkach
- SELECT * FROM USER_REFRESH_CHILDREN;
- Tworzenie grupy
- CREATE MATERIALIZED VIEW mv_etaty_db3
- BUILD IMMEDIATE
- REFRESH ON DEMAND
- AS
- SELECT * FROM etaty@db3;
- CREATE MATERIALIZED VIEW mv_pracownicy_db3
- BUILD IMMEDIATE
- REFRESH ON DEMAND
- AS
- SELECT * FROM pracownicy@db3;
- EXEC DBMS_REFRESH.MAKE(name => 'rg_firma2', list => 'mv_etaty_db3,mv_pracownicy_db3', next_date => sysdate + (5 / (24 * 60)), interval => 'sysdate + ( 20 / ( 24 * 60 ) )', implicit_destroy => FALSE);
- CREATE MATERIALIZED VIEW mv_pracownicy_db2
- BUILD IMMEDIATE
- REFRESH ON DEMAND
- AS
- SELECT * FROM pracownicy@db2;
- EXEC DBMS_REFRESH.ADD ('rg_firma2', mv_pracownicy_db2);
- EXEC DBMS_REFRESH.REFRESH('rg_firma2');
- INSERT INTO etaty_db3 VALUES ('Kierownik wdrozen', 18210);
- CREATE VIEW v_pracownicy
- AS
- SELECT * FROM pracownicy@db3
- WHERE pr_et_nazwa NOT LIKE 'Kierownik wdrozen'
- WITH CHECK OPTION;
- INSERT INTO v_pracownicy VALUES (20, 'Jarek', 'Jarek', 'analityk', 3000);
- INSERT INTO v_pracownicy VALUES (21, 'Jarek', 'Jarek', 'Kierownik wdrozen', 3000);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement