Академический Документы
Профессиональный Документы
Культура Документы
5 Streams
5 Streams
Oracle Streams
Oracle Streams
: ,
Oracle Streams
Streams
MAINTAIN_*
Oracle Streams?
:
grid
:
PL/SQL API
Enterprise Manager (GUI)
3
Streams:
(redo logs)
()
:
Capture
,
DML DDL (redo logs)
, downstream
( )
log buffer,
,
DML
( )
:
: , , thread ..
, , , ,
, ,
DDL
DDL, , ,
: , , thread ..
6
SYS.AnyData
Instance
SGA
Streams pool
Buffered queue
Spill
Capture
(
)
>
( LCRs) > ( )
,
Redo logs
7
DML DDL ,
LCR (-)
(JMS, C, OCI, PL/SQL)
(
):
.
, ,
WHERE SQL
()
( )
Oracle Streams
.
Oracle Streams 200 (
STREAMS_POOL_SIZE).
Oracle Java Pool 50 ( ).
.
Configure supplemental logging.
Oracle Streams :
Oracle Streams.
Streams
.
Oracle Streams.
10
,
Streams
COMPATIBLE
LOG_ARCHIVE_CONFIG
GLOBAL_NAMES
PROCESSES
LOG_ARCHIVE_DEST*
OPEN_LINKS
STREAMS_POOL_SIZE
LOG_ARCHIVE_FORMAT
SGA_MAX_SIZE
LOG_BUFFER
SGA_TARGET
UNDO_RETENTION
TIMED_STATISTICS
11
Streams
Oracle Streams
:
: 10+ MB
:
1+ MB
:
10+ MB
:
10+ MB
:
1+ MB
Streams Pool
SGA
Instance
Streams .
12
DBA_LOG_GROUP_COLUMNS
13
-
(Supplemental
Logging)
:
- . 2. All columns
that are used as substitute columns at the APPLY site must be
unconconditionally logged .
, DML , ,
, ,virtual dependency definitions,
Subset rules .
, .
APPLY > 1, FOREIGN KEY, UNIQUE
KEY , 1 BITMAP
, 1 .
col1(PK) :2457
col5(old):
4
col5(new):
5
UPDATE orders
SET
order_status=5
WHERE order_id=2457;
Redo logs
14
Oracle Streams
Enterprise Manager
Simplified MAINTAIN scripts
Detailed PL/SQL API
Capture
Propagate
Apply
15
16
.
:
Network alias (, tnsnames.ora)
Database links
CREATE DATABASE LINK remote_global_name
CONNECT TO strmadmin IDENTIFIED BY streams
USING 'connect_string_for_remote_db';
17
:
MAINTAIN_TABLES
MAINTAIN_SCHEMAS
MAINTAIN_SIMPLE_TTS
MAINTAIN_TTS
MAINTAIN_GLOBAL
DBMS_STREAMS_ADM
, :
SCNs
Streams
Streams
18
19
File Propagation
Streams
BFILE
BFILE
SOURCE_DB
External
file
Directory
DEST_DB
External
file
Directory
20
Microsoft
Windows NT
Linux IA
(32-bit)
APP_DATA tablespace
EXEC DBMS_STREAMS_ADM.MAINTAIN_SIMPLE_TTS('APP_DATA','SOURCE_DIRECTORY','DEST_DIRECTORY',source_database => 'SITE1.NET', destination_database=>'SITE2.NET', bi_directional=> TRUE);
21
:
,
DBMS_STREAMS_ADM.MAINTAIN_GLOBAL(
source_directory_object => 'SOURCE_DIR',
destination_directory_object => 'DEST_DIR',
source_database => 'SITE1.NET',
destination_database=>'SITE2.NET',
perform_actions => TRUE,
bi_directional=> TRUE,
instantiation => DBMS_STREAMS_ADM.INSTANTIATION_FULL);
22
DBMS_STREAMS_ADM.MAINTAIN_SCHEMAS(
schema_names => 'HR',
source_database => 'SITE3.NET',
source_directory_object => 'SOURCE_DIR',
destination_directory_object => 'DEST_DIR',
destination_database => 'SITE2.NET',
perform_actions => FALSE,
script_directory_object => 'SCRIPT_DIR',
script_name => 'config_HR_rep.sql',
dump_file_name => 'HR_exp.dmp',
capture_queue_table => 'CAPTURE_QT',
capture_queue_name => 'CAPTURE_QUEUE',
capture_queue_user => 'HRAPP_USER',
apply_queue_table => 'strmadmin.apply_hr_qt',
apply_queue_name => 'strmadmin.apply_queue',
instantiation=>DBMS_STREAMS_ADM.INSTANTIATION_SCHEMA);
23
:
,
BEGIN
DBMS_STREAMS_ADM.RENAME_SCHEMA(
rule_name => 'STRMADMIN.HR51',
from_schema_name => 'HR',
to_schema_name => 'HR_REPL',
operation => 'ADD');
END;
PL/SQL
24
Enqueue LCRs
Capture process
amer_CP01
Source
Queue
LCR
LCR
User msg
LCR
User msg
LCR
LCR
.. .
Enqueue LCRs
Database objects
User changes
User
Synchronous
capture
Part of transaction:
Capture changes
Database objects
Destination
Queue
LCR
LCR
User msg
LCR
User msg
LCR
LCR
.. .
Dequeue LCRs
Apply process
euro_AP01
Apply changes
Database objects
User changes
User
25
26