I love streams - i think it's one of the best features in the database - it's incredibly powerful and incredibly underused. I still prefer it to goldengate.
Anyway what i wanted to share was how simple it was to add a schema into an already existing setup - i thought this may be a little tricky but was a piece of cake.
All i had to do was use one of the built in plsql procedures that did everything for me and everything worked fine
The code just looked like this
begin
DBMS_STREAMS_ADM.MAINTAIN_SCHEMAS(
schema_names =>'COMPLIANCE',
source_directory_object =>'DATA_PUMP_DIR',
destination_directory_object =>'DATA_PUMP_DIR',
source_database =>'DB1',
destination_database =>'DB2',
capture_name=>'CAPTURE_COMP',
propagation_name=>'PROP_COMP',
apply_name=>'APPLY_COMP',
include_ddl=>TRUE);
end;
/
So i just want to replicate the schema COMPLIANCE from DB1 to DB2 (with a few explicitly named streams components and including ddl)
So the thing chugs away for a few minutes and then says
PL/SQL procedure successfully completed.
Great?
However it didn't work - so it's helpful that it throws no error......
The problem was the datapump import of the schema in DB2 failed as the tablespace for this new user did not exist.
So I remove all of the config (using cloud control - lazy i know......) and add the tablespace in DB2.
And run the script again - and it again reports
PL/SQL procedure successfully completed.
But this time it really has worked and everything is replicating just fine.
I'm quite imporessed by how easy that was - I'm pretty sure doing that in GG is not so simple......
Comments
Post a Comment