CHANGES
上传用户:abclishi
上传日期:2007-01-07
资源大小:99k
文件大小:35k
源码类别:

Oracle数据库

开发平台:

Perl

  1.    1.2.0
  2.    The change list for 1.2.0 is quite lengthy, but there
  3. are several important points throughout, so please take
  4. a moment to read through.
  5.  News
  6. =====
  7.    Sorry folks, but a new oracletool.ini file needs to 
  8. be installed for this version. I've added a few fields
  9. to it.
  10.    As of 1.2.0, I believe I need to set a firm line on
  11. the lowest Oracle version that will be "supported" by
  12. Oracletool. This version will be 7.3.3. Why? There are
  13. some changes in the Oracle data dictionary between 7.1
  14. and 7.3 that have been causing problems for some users, 
  15. although they have been slight. I just don't have access
  16. to Oracle versions < 7.3 anymore, which means I can't 
  17. test on them.
  18.    Encryption is here! As of 1.2.0 cookies can be encrypted
  19. before they are saved to your PC. I'd like to thank Richard
  20. Chen for pushing me to do this, and for providing some
  21. code to make it easier. Please read the SECURITY file
  22. for more information, and a security advisory which was 
  23. also provided by Richard Chen.
  24.  Bug fixes
  25. ==========
  26. In recent events section, log switch count was inaccurate,
  27. and is now fixed. Thanks to Alan Sparks for the fix.
  28. Rollback segment screen now checks for rollbacks which are
  29. not online. Previously these were not shown. Thanks to 
  30. Pascal Lengard for the info.
  31. Now check DBA_CONS_COLUMNS for primary key constraint
  32. column names rather than DBA_IND_COLS, as Oracle8 does
  33. not require a primary key to be created with an index. 
  34. If a suitable index exists, it will be used. Thanks to
  35. Klaus-Martin Hansche for the fix. Hope I got your name
  36. right.. ;)
  37. Fixed a couple of bugs pertaining to foreign keys in table
  38. DDL generation. Thanks to Hirose Masaaki for the info.
  39.  Enhancements: Encryption - Thanks again to Richard Chen
  40. ========================================================
  41.    Usernames and passwords for the database instances you
  42. access can now be encrypted before they are sent to your
  43. PC as a cookie. These were being written in plain text
  44. prior to 1.2.0. There are 3 different levels of security
  45. available in Oracletool now. These levels will be enabled
  46. automatically depending on which Perl modules you have 
  47. installed. To find out what level you are at, click on the
  48. "About" menu item after installing v1.2.0. Here are the 
  49. differences between the different levels, and the dependencies
  50. for each...
  51. Level 0: 
  52.       This is the level that Oracletool is at prior to v1.2.0.
  53.    If you are at level 0 then there is no encryption of any
  54.    kind taking place. If you do not have any of the modules 
  55.    discussed below installed, this will be your level. The
  56.    cookie which stores the username and password for the
  57.    databases you access will be stored in plain text on your PC. 
  58. Level 1: 
  59.       This level uses the MIME::Base64 method of encoding. With
  60.    this level, the username, password, and encryption string are
  61.    encoded into a single string. The encryption string is set in
  62.    the oracletool.ini, and is MD5 encoded before being added to
  63.    the string. This level requires the following Perl modules... 
  64.    These modules are available at
  65.    CPAN (http://www.cpan.org) and 
  66.    Activestate (http://www.activestate.com)
  67. 1) Digest-MD5
  68. 2) Mime-Base64
  69. Level 2: 
  70.       This level uses the cipher block chaining mode with
  71.    the IDEA block cipher, and is extremely secure. It encodes
  72.    the username and password into a single encrypted string 
  73.    based on a keyword stored in the oracletool.ini. This level
  74.    requires the following Perl modules... These modules are 
  75.    available at CPAN (http://www.cpan.org), but not all are
  76.    on the Activestate site when I checked prior to this release.
  77.    This is the only reason that Level 1 encryption exists at all.
  78. 1) Digest-MD5
  79. 2) Crypt-IDEA
  80. 3) Crypt-CBC
  81.    If you choose to use these security features, simply install
  82. the required Perl modules. Oracletool will see the modules and 
  83. start using them for each subsequent cookie that is created. 
  84. See your browser documentation if you want to remove the cookies 
  85. currently on your hard drive.
  86.  Enhancements: General
  87. ======================
  88. On tablespace / datafile fragmentation report, an 
  89. "ALTER TABLESPACE tablespace_name COALESCE" statement
  90. will be printed out after the report for any tablespace
  91. containing at least one datafile with more than 1000
  92. fragments. This can be cut and pasted into a worksheet. I
  93. would not recommend using the Oracletool SQL worksheet for
  94. coalesces, as they can be long running. CGI scripts can 
  95. time out.
  96. On tablespace information screen, a listing of the different
  97. extent sizes, and count of each different size of extent
  98. is listed.
  99. Under the DB Admin menu item, the menu has been split into
  100. two parts, one for DB Admin type stuff, and one for reports.
  101. Changed extent report under DB Admin to check for objects
  102. approaching max extents, and also checks each tablespace 
  103. for objects which cannot allocate a next extent. Thanks to
  104. Eric Indiogine for idea.
  105. Added a theme called "Printing", which is a black and white
  106. theme which is good for pages you might want to send to a
  107. printer. Thanks to David Polansky for the theme. I added a
  108. few of my own as well, although I don't recommend them.. :).
  109. Anybody else? Let's see some nice themes!
  110. Added four keywords to each theme definition. You can now
  111. set a background image for the main page, and a different 
  112. one for the menu bar, and you can make the table heading
  113. a different font and color than the cell font.
  114. Explain plan is formatted a bit nicer now, and with more 
  115. information. Thanks to Lefty Kreouzis for suggestion and
  116. code change.
  117. Added global object lock information to OPS section.
  118. Added open cursor information to session statistics screen.
  119. An alert will be shown if the session you are displaying
  120. has the maximum allowed cursors open (OPEN_CURSORS parameter).
  121. Added additional menu under Performance / memory menu item. This
  122. has an entry for the display that already existed, and an additional 
  123. display to show information from the shared SQL area in the SGA. More
  124. to come later, I think.
  125. Added enhancements to the RMAN section, particularly information
  126. obtained from the controlfiles pertaining to backups. RMAN menu
  127. item will show up if your database has been backed up using RMAN,
  128. or contains one or more RMAN catalogs. The most recent backup info
  129. can be displayed, and any datafiles added but not yet backed up 
  130. can be displayed. This section still needs much work. Oracle8 only, 
  131. More to come later.
  132. Added rollback segment administration to the DB admin menu, for 
  133. taking segments online, offline, or shrinking.
  134. The Oracle Statistics Package is a new addition to Oracle with 8.1.6
  135. which is much more powerful than the utlbstat and utlestat scripts.
  136. I will be adding screens to analyze statspack data in the future. For
  137. now, I'm checking for the existence of the PERFSTAT.STATSPACK package
  138. for Oracle 8i databases. A menu item will appear if found. A statspack
  139. snapshot can be taken via point and click. Like the RMAN section, this
  140. section still needs much work. More to come later.
  141. Added datafile autoextend info on full datafile listing and listing
  142. within the individual tablespace screen for Oracle8/8i.
  143. Any object which matches your search via the search box can now be
  144. marked to display the objects which it depends on and the objects 
  145. which depend on it. Quite handy, I've found.
  146. Added menu under rollback segment section. One item for showing RBS info,
  147. one for active or rolling back transaction info. Also enhanced the querys
  148. which display active and rolling back transactions.
  149.    1.04 Apr 26, 2000
  150.  Bug fixes
  151. ==========
  152. Fixed bug where Oracletool selects an invalid column from
  153. V$INSTANCE on Oracle7 databases.
  154.    1.03 Apr 25, 2000
  155.  Bug fixes
  156. ==========
  157. Fixed bug (again) in Top sessions screen which I had not quite
  158. fixed in 1.02. oops.
  159. Fixed text contained in tables to show HTML characters correctly
  160. instead of interpreting them. <FOO> will show correctly now, for
  161. example, instead of being interpreted as a tag. Thanks to Tommy
  162. Wareing.
  163. Fixed a couple of bugs pertaining to partitioned table / index
  164. displays.
  165.  Enhancements
  166. =============
  167. Added variable for config file, in case you don't want to name it 
  168. "oracletool.ini", requested by Adrian Blakey. Several mod_perl
  169. fixes from Adrian as well.
  170. Added sort area info to performance section. Thanks _again_ to
  171. Tommy Wareing.
  172. OPS page now sorts global sessions by username, and instance names
  173. are hyperlinks which will connect you to that instance.
  174. Added sortable space report by user option to DBA tasks menu.
  175. Added sortable space report by tablespace / user option to DBA 
  176. tasks menu.
  177. Added sortable datafile fragmentation report to DBA tasks menu.
  178. Shows which tablespaces need to be coalesced / reorged.
  179. Added object extent report to DBA tasks menu. You can check for
  180. objects with a number of extents >= the value you enter.
  181. Added screen for object type "CLUSTER".
  182. On table, view, and source object displays, now check for synonyms 
  183. pointing to the object.
  184. Started adding screens for databases which have a RMAN recovery
  185. catalog in them. RMAN button will show up if true. More to come
  186. later on this. Not much to look at now.
  187. On schema table listing, table types are now split up into sections
  188. for partitioned , Index Organized, and standard.
  189. On schema index listing, index types are now split up into sections
  190. for bitmapped, partitioned, Index Organized, and standard.
  191. When you select a role name under the security section, it now also
  192. shows the users which are granted the role, and the roles which are 
  193. granted the role.
  194. Added a button for validating an index after one is selected, which 
  195. will display detailed statistics after the validation. This button
  196. will only show up if you have the "ANALYZE ANY" privilege. This 
  197. utilizes the "VALIDATE INDEX" command.
  198. When a table is selected for display, an "Extent mapping" button will 
  199. show up beside the "Generate DDL" button. This will generate a 
  200. fragmentation map similar to the tablespace / datafile frag maps,
  201. but it will only highlight the extents which belong to the table
  202. you have selected. This is a nice way to get a visual idea of how badly
  203. a table is fragmented. The extents are shown in alternating blue /
  204. white, so you can see where each starts and finishes. If the schema
  205. that you are running the tool as has permission, it will also run
  206. DBMS_SPACE.UNUSED_SPACE to gather real-time space statistics. Extent
  207. mapping is not yet supported for partitioned or Index Organized Tables.
  208. Added optional LIMIT_SEARCH parameter to config file, as suggested
  209. by Mark J. Scheller. Setting this parameter will make the search 
  210. function skip the part where it checks to see if the matched objects
  211. are being accessed by any connected sessions. This part of the search
  212. can be very intensive on instances with many (thousands) of 
  213. simultaneous connections.
  214. On the main page after you select a schema, the object type 
  215. "PUBLIC SYNONYMS" will be displayed with the object types owned by the 
  216. schema. This link will display all public synonyms which point to objects
  217. owned by the schema you have selected. This will only show up if there 
  218. are PUBLIC synonyms pointing to the schema. As suggested by Richard
  219. Chen.
  220.    1.02 Apr 03, 2000   Released without announcement.
  221. Fixed rows which return zeros to show zeros instead of blanks.
  222. Nulls will still show as blank values. Thanks to Hirosi Taguti 
  223. for suggestion.
  224. Top sessions screen had a bug in 1.01 which was giving Netscape
  225. users problems. Fixed, thanks to Tommy Wareing for patch.
  226. On redo log screen, log switch graph now sorts in a way that 
  227. makes sense. This one had me stumped for a long time. Thanks
  228. again to Tommy Wareing for the patch.
  229.    1.01 Mar 31, 2000
  230. ** Important ** 
  231. As of 1.00, a config file is required! See entry for v1.00.
  232. Any environmental variable you need to set can now be put in
  233. the oracletool.ini file, not just the ones that are there by default.
  234. Some of you (Thanks, Christoph Karl) may need to set additional
  235. variables like ORA_NLS33, or NLS_LANG, for example. These 
  236. variables can be placed anywhere in the config file, and should
  237. follow the same standard as the other parameters.
  238. ...
  239. Example: NLS_LANG = AMERICAN_AMERICA.WE8ISO8859P1
  240. Would set $ENV{'NLS_LANG'} = 'AMERICAN_AMERICA.WE8ISO8859P1';
  241. Simple as that. No quotes, no $'s, just "PARAMETER = VALUE"
  242. Fixed bug in user DDL generation when setting default roles.
  243. Fixed bug in table DDL for foreign key constraint generation.
  244. Thanks to Stefan Sautter.
  245. Rollback segment screen now shows all transactions on all
  246. segments. Before you had to choose a segment.
  247. Table display now shows the columns that each index spans.
  248. Enhanced constraint displays on table page to include status, 
  249. columns, referenced table, owner, and constraint name.
  250. Enhanced sequence display page. No longer have to click on a 
  251. sequence to get all information.
  252. On table row display, Rows which return space characters will 
  253. display properly now.
  254. Added global session summary to OPS specific page. Note that
  255. the OPS menu item does not show up for non OPS instances.
  256. Added session menu, with "Top sessions" selection. Top sessions
  257. shows all sessions in an instance and has an " auto-refresh"
  258. button. You can sort on any column by clicking on the column
  259. heading. You can display all sessions for a given user by clicking
  260. on the username. You can display an individual session in more 
  261. detail by clicking on the SID.  You may set AUTO_REFRESH in the 
  262. oracletool.ini to a value, in seconds, to override the default of 10.
  263. Note: Sorting on the "SID" column does not work in Oracle 8.1.5
  264. databases. This is an Oracle bug, not an Oracletool bug.
  265. Oracle8 only: Schema list will highlight in red any accounts 
  266. which do not have a status of "OPEN".
  267. User info screen will now show account status in Oracle8.
  268. Added tablespace name column to objects shown in "Recent events"
  269. section.
  270. Working on cleaning up any warnings that should occur for you
  271. diehard "perl -w" users. Many, but not all are gone. Sorry, I 
  272. should have done this from the beginning... :(
  273.    1.00 Feb 10, 2000
  274. ** Important ** This config file is required now!
  275. Oracletool now comes with a config file. The reason for this
  276. is so you don't have to set variables at the top of the script
  277. each time you install a new version. The config file is called
  278. "oracletool.sam", and should be renamed to oracletool.ini. The
  279. parameters you need to set have not changed.
  280. Fixed bug in DDL generation from 0.98 which prevented proper 
  281. display with Netscape.
  282. DDL can now be saved to your local disk, and can no longer be
  283. saved to the web server disk. Removed safemode ($safemode).
  284. In individual tablespace display page, tablespace_name is now
  285. a hyperlink which will display DDL for recreating tablespace.
  286. In individual rollback segment display page, segment is now
  287. a hyperlink which will display DDL for recreating segment.
  288. Added rather extensive facility for setting database auditing
  289. options. This facility is under "DB Admin", and will not display
  290. if you do not have auditing enabled. (parameter audit_trail = 'FALSE")
  291. This facility is not perfect yet, so if any of you are auditing, 
  292. please give me some feedback.
  293. You may now browse audit trail records. You can get to this under 
  294. "Security", or under the main auditing menu.
  295. When compiling an invalid object, if the compile is unsuccessful, 
  296. the errors will now be shown. 
  297. Search box will search for usernames and tablespaces that match
  298. your entry, as well as object names, "like" object_names, and 
  299. numeric object ID's.
  300. Removed "Explanation" box at top right of every screen. I don't
  301. think anyone used it, and it's a pain to maintain. I don't expect
  302. that anyone will miss it.
  303. Fixed a couple of partitioned table/index display bugs.
  304.    0.99   Skipped
  305.    0.98   Jan 16, 2000
  306. Fixed bug in explain plan query. Thanks to Mark J. Scheller.
  307. Mark, you're an excellent exterminator, thank you.
  308. Fixed shading problem when displaying some HTML tables with
  309. multiple columns.
  310. Added "Recent events" section. This shows all users, roles 
  311. and datafiles added within the last 30 days. Shows objects
  312. that have been created or altered within the last 24 hours.
  313. Shows # of redo log switches in the last 24 hours.
  314. Rollback segments section now checks for any transactions in
  315. the instance that are in an active rollback. Also shows information
  316. about all transactions occupying the rollbacks of the instance you
  317. are connected to.
  318. DDL generation will now generate "alter table" statements for tables
  319. which have foreign keys referencing the table(s) you are generating
  320. DDL for. So, if you do a "Drop table foobar cascade constraints", this
  321. will ensure that all referential integrity constraints for that table
  322. are put in place when it is recreated, including those that reference
  323. that table.
  324. DDL generation will now extract table and column comments.
  325. DDL generation now checks for CACHE attribute on Oracle8 tables. Thanks
  326. to Duc Nguyen. Cache attribute is now shown under table info screen as
  327. well.
  328. Added "$safemode" variable, which disables writing files to the OS for
  329. DDL generation. Output still goes to screen.
  330. When a shema is selected, if the schema has invalid objects, a button
  331. will show up at the bottom of the screen showing the number of invalid
  332. objects. Pressing the button will take you to a display of the objects
  333. where they can be marked for recompile.
  334. Hyperlinks will now only show up on the entity name they pertain to, 
  335. not across the whole row of values. Suggested by Hirosi Taguti.
  336. Added "DB Admin" menu item. This is a work in progress, and more will
  337. be added in the future.. Thanks for the suggestions, keep them coming.
  338.    These menus will activate only if the user logged into the tool has
  339.    the proper privileges to perform the actions.
  340.    User administration:
  341.       Reset user passwords.
  342.       Create users.
  343.       Create users "like" other user. New user will inherit quotas, 
  344.           profile, default TS, temp TS, roles, and system privileges 
  345.           as selected user.
  346.       Drop users.
  347.    Session Administration: 
  348.       Sessions may be marked for kill and killed in batch. Yeah! :) 
  349.    Object administration
  350.       Displays a list of invalid objects, which can be marked for recompile.
  351.    Reverse engineer tables:
  352.       Multiple table names may be entered for reverse engineering of
  353.       DDL. An output filename may be entered to send commands to hardcopy.
  354.       Output will still go to screen as well. Separate section for selecting
  355.       a particular schema. All tables for the schema will be displayed, and
  356.       can be marked for erverse engineering.
  357.    
  358.    0.97   Dec 08, 1999
  359. Many changes in version 0.97, so let me know if you have
  360. problems, and I'll get to them as quick as possible. In
  361. particular, I did some work with the cookies, so let me know 
  362. if you see anything strange with that.
  363. Nifty new look to Oracletool thanks to a suggestion and code 
  364. example from David P. Fannin. Thanks David, looks great! I
  365. think it is safe to say that I took your idea and ran with it!
  366. Oracletool now has color themes which can be chosen interactively,
  367. and the theme you choose will be used each time you use the tool.
  368. Because your theme is stored as a cookie on your browser, each
  369. user of the tool can choose their own theme. Themes can be created
  370. very easily, and there is an explanation in the "doTheme" subroutine,
  371. so if you create a cool theme please send me the values, and I'll
  372. add it to the public version. Most of mine are pretty lame... :(
  373. The themes can be displayed via a button at the bottom of the 
  374. "properties" screen.
  375. A "properties" button has been added. This allows you to set 
  376. defaults that will override the themes. For instance, if you 
  377. like the "Default1" theme, but the font is too small, you can
  378. select a larger font in the properties area. If you have a 
  379. suggestion for something that should be added to the properties
  380. area, let me know. 
  381. Font is much more consistent throughout the tool.
  382. Continuing down the non read-only path, the session listings
  383. will now show a button to kill the session if it is active.
  384. This button will only appear if the user running the tool 
  385. has "ALTER SYSTEM" privilege.  Also, explain plan button 
  386. will show up only if there is SQL to run against.
  387. Session listing layout has changed to save browser space.
  388. Changed the datafile fragmentation display again. Took away the 
  389. hyperlinks. It was too slow, too much bandwidth etc. It's now 
  390. just a display again, and still without GD.pm.
  391. Fixed a bug where a tablespace would not show up in the allocation 
  392. graph if it was 100% full. Thanks to Mark J. Scheller for fix.
  393. Now use more updated DBD::Oracle way to fetch LONGS. Thanks to 
  394. John Williams for fix.
  395. Changed tablespace information listings slightly for Oracle8 and 8i.
  396. Added more detailed tablespace listing to rollback segment area 
  397. showing info about all tablespaces containing rollback segments.
  398. Also added optimal size to display.
  399. Added hyperlink on individual user toplevel page. Username is now
  400. a hyperlink which will generate SQL for recreating the user, setting
  401. defaults, adding grants etc.
  402. If a package / procedure / view etc. is invalid, when selected an error
  403. report will display.
  404. Added "Refresh" button to several screens. This can be added to other
  405. screens very easily as well. Let me know if you want it in other areas.
  406. Many future additions to Oracletool will be non read-only, but the 
  407. options will show up for use only if the user connected has the authority 
  408. to do the action, if possible. Having said this, I'm looking for enhancement
  409. suggestions. What do you want it to do?
  410. Thanks to Alexey Vekshin and Stephane Faroult for suggestions 
  411. pertaining to this release, and several releases before.
  412.    0.96   Nov 15, 1999
  413. The GD.pm module for creating images is no longer used or required.
  414. Because of the copyright problems with the GIF format, there are
  415. two GD.pm versions; One that outputs GIF, and one that outputs PNG.
  416. The one that outputs PNG can be a hassle to install, so I decided
  417. to let it go for the time being. I may look at it again in the future. 
  418. Added (rewrote) EXPLAIN PLAN functionality. Now you can run an
  419. explain plan on any sql shown in the sessions lists, or run
  420. an explain plan from scratch. The main tool window will connect
  421. as the owner of the SQL (password is required), while the menu
  422. will remember who the actual user of the tool is. The username
  423. and password of the explain plan user will not be stored as a cookie
  424. on the client side, as the user running the tool is. This means you
  425. will need to enter a password for each explain plan that you run.
  426. For those of you that found the hidden explain plan facility before,
  427. hopefully you will like this one better. Please let me know of any 
  428. improvements that should be made to this facility.
  429. NOTE: I cannot claim that Oracletool is a 100% READ-ONLY application
  430. any longer, because during an explain plan..
  431. 1) If a PLAN_TABLE does not exist for the user executing the SQL,
  432.    Oracletool will create it on the fly (and display a message to
  433.    that effect).
  434. 2) During an explain plan, records will (obviously) be added to the
  435.    PLAN_TABLE. These records will have a unique identifier, and will
  436.    be deleted immediately following the explain plan. The PLAN_TABLE
  437.    will not be removed. 
  438. Changed tablespace / datafile fragmentation displays. No longer is 
  439. an image created using GD. Instead, an HTML display is generated, and
  440. each occupied block can be clicked on to display the object which
  441. resides in that block. This may not look as good as it did with the
  442. GD image, but is more functional.
  443. Added top CPU users to Perf / memory section. Requires 
  444. TIMED_STATISTICS = true (which does not produce nearly as much overhead
  445. as many DBA's would have you think).
  446. Fixed SQL worksheet describe command. Was showing columns for
  447. all table names that matched, not just one schema.
  448. Updated / added help screens. I doubt anyone ever looks at them 
  449. anyway.
  450.    0.95   Nov 2, 1999
  451. Oracletool now produces DDL! There is now a "Generate DDL" button 
  452. which will display when you are viewing table information. When
  453. you press the button, Oracletool will reverse engineer the create
  454. table statement, the create index statements, the primary key constraint,
  455. the check constraints, the unique constraints, the foreign key 
  456. constraints, and the grants for that table. All of the DDL is produced
  457. in an easy to read format. This is still Beta, so let me know if you 
  458. see any inaccuracies.
  459. Fixed session statistics screen to show Oracle8i long operation
  460. information correctly.
  461. Split object source display into two columns, one with line numbers
  462. for debug purposes, and one without, for cutting to recreate.
  463. Thanks to Dianne Scott.
  464. Updated partitioned table screens to support Oracle8i.
  465. Added OS port info to banner. This shows the hardware and Operating
  466. System the engine is running on. Pretty neat, although not always 
  467. completely accurate.
  468. Began support for advanced replication (Oracle8 only).
  469. Oracletool will not attempt a connect to the instance unless a valid
  470. cookie is found. It will prompt for the username/password, and cut
  471. down on messages in the sqlnet.trc file
  472. Sessions now sorted by status.
  473.    0.94    Oct 10, 1999
  474. Fixed table column display to show proper length and decimal
  475. precision. Thanks to Phillip Chin.
  476. Added global variable "$gd" to user variables at top of script. 
  477. Oracletool will only look for the GD.pm module if this is set.
  478. This is because of the copyright problems going on with libgd.
  479. GD.pm versions 1.19 and below produce gif images, GD.pm versions
  480. > 1.19 produce png images.
  481. Changed Oracletool to work with both gif and png versions of GD.pm,
  482. (hopefully). Please let me know of bugs.
  483. Thanks to Marcos Colpaert for patch.
  484. Added simple displays for the following object types. INDEXTYPE, 
  485. JAVA CLASS, JAVA RESOURCE, LIBRARY, OPERATOR, QUEUE.
  486. Added session I/O display to sesion stats section.
  487. Fixed fragmentation image generation caching problem. Thanks to
  488. Mark J. Scheller.
  489.    0.93   Sep 09, 1999
  490. Emergency release. 0.92 had a bug which prevented proper menu
  491. display. 
  492. Added V$SESSION_WAIT info to session statistics.
  493.    0.92   Sep 08, 1999
  494. Added controlfile section. Detailed information concerning record
  495. storage for Oracl8 databases. Quite boring for oracle7 databases.
  496. Added object access list to session statistics page under the 
  497. "sessions" section.
  498. Added replication section. Buttons will show up only if you are 
  499. using replication. Separate buttons for master (M) and snapshot (S)
  500. sections. Those of you using replication, please let me know what 
  501. needs to be added / enhanced / fixed here. Oracle8 only
  502. All date / time fields now displayed in HH24 format for consistency.
  503. Added enhancement to DisplayTable etc. subroutines to align number
  504. fields to the right. Looks much nicer. Thanks to Peter Speck.
  505. Fixed bug in Session info for Oracle8i. Looks like we are cool for
  506. Oracle8i now. Thanks to Marc Beasley
  507. Added additional information to table and index listing. Thanks 
  508. to Stephane Faroult (http://www.oriolecorp.com)
  509. Added trigger check on detailed table information page. Thanks
  510. to Stephane Faroult
  511.    0.91   Aug 09, 1999
  512. Added security section - Roles, Profiles, Auditing. Auditing info
  513. is beta, and unfinished.
  514. Fixed tablespace allocation query. Tablespace information screen
  515. and allocation graph are both VERY MUCH faster now. This is a very
  516. positive change for those of you who have many tablespaces, as the
  517. query is now very quick.
  518. Added archived redo log information section.
  519. SQL-Worksheet now supports DESCRIBE / DESC, but it does not follow
  520. synonyms as SQL*Plus describe does, or describe packages, procedures
  521. etc. Does anyone even use the SQL-Worksheet?
  522. Added instance startup date/time to banner. Thanks to Virgil Aviles.
  523. Changed the way SELECT ANY TABLE privileges are checked for.
  524.    0.90   Jul 05, 1999
  525. NOTE: Oracletool.pl now requires the GD.pm module for creating GIF
  526. images. This is the first release to require this module. GD.pm is 
  527. a very reliable and easy to install module. It won't take you but
  528. a few minutes to install it if you don't already have it.
  529. Added datafile fragmentation image generator. When you select a 
  530. datafile, an image will be generated in addition to all of the 
  531. information previously displayed. The image will NOT be written to
  532. disk on your web server. If you want to have a similar map generated 
  533. when you select a tablespace, uncomment line 1981. I have this commented
  534. out by default because some databases have such large tablespaces that
  535. it is just not practical to generate that type of image for them. I'll
  536. let you make the call on this one. Thanks to Mark J. Scheller for the 
  537. idea.
  538. You may enter an OBJECT_ID number in the search box instead of a name
  539. if you need to do such a search.
  540. Added sort information to performance section.
  541. Improved process number resolution in session information area.
  542. Thanks to Michael Roever.
  543. Fixed TO_CHAR format error in tablespace information area.
  544. Made users profile name a hyperlink for a display of parameters / values.
  545. Added "$dbh->{LongReadLen} = 2048;" to DisplayTable subroutine to correct
  546. error on tables with LONG columns. Thanks to Mark J. Scheller.
  547.    0.89   May 18, 1999
  548. Added "where clause" text box for when you display 25 rows of a table or view.
  549. Added a checkbox on the database selector for deleting password cookies.
  550. Added an additional text area on the database selector for those who
  551. are running Oracle Names to type in a connection and let it be resolved 
  552. by names.
  553. Changes GetTNS subroutine to not truncate domain names from connection
  554. strings. Many thanks to Dima Dorofeev for the code contribution.
  555.    0.88   May 12, 1999
  556. Added SQL Worksheet. Can be used for both selects, and DML statements.
  557. Added support for partitioned tables and indexes. Oracle8 only, obviously.
  558. Changed the way the script checks for "SELECT ANY TABLE" privilege. This way
  559. should work better.
  560. Added (somewhat poor) POD documentation.
  561. Took out the hardcoded database name from the search function. Oops. Fixed a couple of 
  562. other bugs too.
  563. Added "EXPLAIN PLAN" subroutine. This is beta and commented out by default. Eventually, 
  564. this tool will have a sister tool for users without "SELECT ANY TABLE" privilege. I
  565. will probably leave explain plan out of this one and add it to that. If you would like to
  566. try the explain plan, uncomment out line 3663. I'll listen to any suggestions you have, 
  567. but I'm not sure what I'm gonna do with this one yet.
  568.     0.87   May 05, 1999
  569. Public release to freshmeat.
  570. Made the object list for tablespaces, datafiles, and object search hyperlinks to info screens.
  571.    0.86   May 04, 1999
  572. I've changed the basic look of the tool quite a bit. There's now a persistent menu on the
  573. left side of the screen for all of the major areas (Tablespaces, Users, Rollbacks etc.).
  574. Added button to show all privileges granted to the selected object.
  575. Added "Performance / memory" area with some of the stuff that was previously under
  576. the initialization parameters section, and some new stuff including info from the
  577. V$LIBRARY_CACHE dynamic performance table. If anyone has a performance
  578. or memory related query that they want to share, please do.
  579. Added query to user info section to show the number of objects the user own of each of
  580. the different object types.
  581. Made object list entries for tablespaces and datafiles clickable links to additional information
  582. screens.
  583. Still working on the daemon....
  584.    0.85    April  28, 1999
  585. OK, OK, I heard you! Cookies are here!! No more password file. I just put this in today,
  586. and have not tested extensively, but it seems to work fine for me. Let me know if any
  587. of you run into problems using the new password system. I'll add a variable for setting
  588. the expiration date later.
  589. Updated session info to display sessions whether they are active or inactive. Previously
  590. displayed only active sessions. Also added "command" column. Handy for seeing if a
  591. transaction is rolling back, cause that's kinda tricky in Oracle.
  592. Not much else this time because I'm spending alot of time writing a daemon to accompany
  593. the tool, which will store historical data in the database (disk I/O, growth, session count info
  594. etc.). I'll probably release that (beta) in about a month or so. It will include some nifty line graphs
  595. created using GIFgraph (GD). This daemon will be optional, and the tool will work with or
  596. without it. The added functionality will display automagically if you are running the daemon.
  597. I will also be looking for help porting it to NT. The tool itsself will remain read-only.
  598.    0.84   March 31,1999
  599. Started adding Oracle Parallel Server specific stuff. Very basic yet. These features will
  600. display only if you are running OPS.
  601. Added help for every screen. Also quite basic. The help button shows up in the footer of
  602. each screen.
  603. Fixed ORA-1476 (Divisor is equal to 0) and inaccurate table analyzation information when
  604. a table that has been analyzed but has no rows is selected.
  605. Changed connection to use 'dbi:DriverName:$database_name' instead of 'old-style'. I guess
  606. this makes me an old timer..
  607. Added object search capability. Searches database for "like" objects, displays them, and
  608. sessions currently accessing them. Search box is at the bottom of every page.
  609. Probably a couple of other little things I've forgotten about.
  610.    0.83   March 23,1999
  611. I decided to change the initial screen to use a "submit" button because
  612. someone reminded me that all browsers do not support Javascript. KDE's 
  613. file manager, for example. I doubt it would have worked with BeOS's 
  614. NetPositive browser either.
  615. I also took away the "Back to the page you came from" link on every page. I 
  616. find I use the "Back" button if I want to go back. Instead, I replaced it with
  617. two buttons. One to go to the "toplevel", where the users are listed, and on
  618. to go to the connections screen. (The first page).
  619. Added a report to show all of a users objects split up by the tablespace's
  620. they reside in. It's a button after a users object types list.
  621. Tested under WinNT4, service pack 4, with IIS4. Worked fine. Added some comments
  622. in the script pertaining to Win32 users. Stuff they probably already know anyway.
  623.     0.82   March 22,1999
  624. Fixed initial database list to accept entries with dashes.
  625. Added object lock info for non-contending object locks.
  626. Fixed bug for OCI that crashed on an ORA-01005 (null password). Thanks 
  627. to Kenny Klatt.
  628. Added hyperlink back to the toplevel page for each page.
  629.    0.78 - 0.81   March 20,1999
  630. Fixed tablespace fragmentation query.
  631. Added LAST_DDL_TIME to tablespace object list.
  632. Only display "show active sessions" button if user has active sessions.
  633. User list table now highlights users that are currently connected, and
  634.    puts users with DBA authority in bold and parenthesis.
  635. Fixed password file update to not use `cp`. Still thinking about whether the
  636. password file is a good idea or not.
  637. Fixed primary key and column constraint queries to check for object ownership.
  638. Fixed initial database list to take off  '.world'  and weed out duplicates from
  639. tnsnames.ora and oratab. Thanks to Dmitry Dorofeev.
  640. Added several additional graphs.
  641. Now use well known (except to me) variable ENV{'SCRIPT_NAME'} to get script name
  642. instead of the stupid way I was doing it before. :-)
  643.    0.78   March 17,1999     Public release to DBI mailing list