12.3 Loading the Repository with DataIt won't be long until we see the fruits of our labors. Once you install the repository and build the tables, you'll be all set to track database changes. The next time someone changes a column or an index outside of your established change control procedures, you'll know what the database looked like before inside the original Oracle data dictionary. In this section we'll demonstrate how to load baseline data dictionary data into the PDBA repository using the baseline.pl script, and we'll run some tests on that data. As changes are made to the database objects and new baseline data is collected from the data dictionary, we'll show the effects of running several reports comparing current objects with the previous incarnations of those objects. We'll pay special attention to the repository reporting script spdrvr.pl (a unique hybrid of Perl and Oracle's SQL*Plus). 12.3.1 Collecting Baseline DataTo kick things off, we need to collect our first baseline set of data. We'll collect it from the data dictionary in database ts99 on server watson using the baseline.pl script, and we'll place it in our repository. The command-line options for baseline.pl are listed in Table 12-3.
Invoke the baseline.pl script as follows: $ baseline.pl -machine watson -database ts99 -username system \ -rep_machine sherlock -rep_database ts01 Notice the absence of passwords in this example. Here we're making use of the password server to fill in the blanks for us. Otherwise, we would have needed the -password and -rep_password options, with the appropriate passwords. When you run baseline.pl, the output should be similar to that shown in Example 12-4. Example 12-4. Output from baseline.pl%oramon> baseline.pl -machine sherlock -database ts01 -username system \ . Working on Baseline for Table: PDBA_ROLE_PRIVS .. Working on Baseline for Table: PDBA_ROLES . Working on Baseline for Table: PDBA_PARAMETERS ... Working on Baseline for Table: PDBA_TAB_COLUMNS .............................................................................. ................ Working on Baseline for Table: PDBA_TABLESPACES . Working on Baseline for Table: PDBA_SYS_PRIVS ..... Working on Baseline for Table: PDBA_TAB_PRIVS ....................................................................... Working on Baseline for Table: PDBA_USERS. Working on Baseline for Table: PDBA_TABLES ...... Working on Baseline for Table: PDBA_INDEXES ................. Working on Baseline for Table: PDBA_SEQUENCES. Working on Baseline for Table: PDBA_IND_COLUMNS ........................... 12.3.2 Viewing Repository DataWe can now view some of our collected data via the spdrvr.pl[1] script. Enter the following command to produce a report showing the table information collected from the data dictionary:
$ spdrvr.pl -machine sherlock -database ts01 -username pdbarep \ -rep_report table_rpt -rep_instance ts99% -rep_shema scott Notice the use of the SQL wildcard % for the -rep_instance argument. The argument in this case refers to the database's global name, so we used the wildcard character instead of a full global name. Alternatively, if the database global name had been TS99.OREILLY.COM, we could have specified this command instead: $ spdrvr.pl -machine sherlock -database ts01 -username pdbarep \ -rep_report table_rpt -rep_instance ts99.oreilly.com -rep_shema scott The spdrvr.pl script will take care of converting the name to the correct case. The output should be similar to that shown in Example 12-5. Example 12-5. Output from the initial table report%oramon> spdrvr.pl -machine sherlock -database ts01 -username pdbarep \ RPT: start pk 1000000 PDBAREP Table report for Page: 1 TS99.JKS.COM NUMBER OWNER TABLE NAME SNAPSHOT DATE BLOCKS OF ROWS --------------- ------------ -------------------- ------------ ----------- SCOTT BONUS 2001/10/05 18:29:05 DEPT 2001/10/05 18:29:05 DUMMY 2001/10/05 18:29:05 EMP 2001/10/05 18:29:05 SALGRADE 2001/10/05 18:29:05 5 rows selected. |