I am managing something like that at the moment here also. Our basic
Code is checked into source safe folders, different folders have
Builds grab current source, deploy changes based on file checksum to
various databases, compile etc...the source code is saved off and I can
also trigger database backups with version numbers. This process also
packages the builds so other can re-run them in environments I do not
Full builds are run every day and results DB compares are run against
multiple qa/testing environments to ensure they are staying in sync.
Scripts are home grown. I have a basic shell script that can a)log into
database, b) create db link to remote db, c) run a file and compare to
multiple files can be run in step 3, some compare schema, some
compare seed data
I have separate scripts which can compare code in db's, fastest way I
found for this is to pull code from OS using shell and run diff on the
files, about 20 minutes to compare two database. The schema compare
script works very well for the most part and runs in about 1 minute,
last time I tried Oracle schema compare it took forever!
If I want to compare versions of the product I just restore the right
database or apply a particular build to a database and run a compare.
Most of the databases also have a DDL audit trigger that throws DDL
events into the alert log incase I need to dig something up and can not
Another script constantly monitors the gets from VSS and rdist's it to
another directory on the file system, this way I can easily use the
output from rdist to recognize when a file has changed, which triggers a
"diff" between the new file and old before replacing it. This diff file
is stored on a web server for engineers to easily see what has changed
recently and what the change was.
Hopefully that gives you a few ideas.
One last thought, if you write your own compare script using data
dictionary tables you can easily grab and store those in a schema and
version them, then just point to the right set of tables for a compare.
On Behalf Of
Sent: Thursday, December 09, 2004 4:01 PM
Subject: looking for a good way to change manage oracle
We have 13 development databases, 8 parallel development tracks, and 2
concurrent sustainment releases all developing at the same time. We are
having alot of trouble with change management. I am looking for an easy
way to do the following:
take a snapshot of the metadata of a database at a point in time.=20
compare it at a later point in time or to another database and see the
What we have tried
1. Designer and change manager(OEM) are really slow.=20
2. Toad does not appear to be complete
3. Writing code with dbms_metadata is a major task.
4. export won't work, because the order of the objects in the file could
be different in different databases, do to different releases applied at
different times. =20
Anything easier? Any good tools? Does RMAN have any functionality for
this? I didn't see anything...=20