When is a Health Check not a Health Check
2. Controlfiles
3. Redolog files
4. Archiving
5. Datafiles
5.1 Autoextend
5.2 Location
6. Tablespaces
6.1 SYSTEM Tablespace
6.2 SYSAUX Tablespace (10g Release and above)
6.3 Locally vs Dictionary Managed Tablespaces
6.4 Temporary Tablespace
6.5 Tablespace Fragmentation
7. Objects
7.1 Number of Extents
7.2 Next extent
7.3 Indexes
8. AUTO vs MANUAL undo
8.1 AUTO UNDO
8.2 MANUAL UNDO
9. Memory Management
9.1 Pre Oracle 9i
9.2 Oracle 9i
9.3 Oracle 10g
9.4 Oracle 11g
10. Logging & Tracing
10.1 Alert File
10.2 Max_dump_file_size
10.3 User and core dump size parameters
10.4 Audit files
It is highly recommended to have at least two copies of the controlfile. This can be done by mirroring the controlfile, strongly recommended on different physical disks. If a controlfile is lost, due to a disk crash for example, then you can use the mirrored file to startup the database. In this way fast and easy recovery from controlfile loss is obtained.connect as sysdba SQL> select status, name from v$controlfile; STATUS NAME ------- --------------------------------- /u01/oradata/L102/control01.ctl /u02/oradata/L102/control02.ctlThe location and the number of controlfiles can be controlled by the
‘control_files’ initialization parameter.
I’m rather a pedant so would rather the document be described as a “Best Practices” or “Guidelines “document than a how to. A How to document would reword the above as
Ensure that the database has at least 2 controlfiles located on different disks by reviewing the ‘control_files’ initialisation parameter.
I.E it told you How to do something, hence the name. But my beef isn’t really that this is yet another Best Practices document, but rather with what it leaves out. This is perhaps best illustrated by referring you to this forum thread. A health check that doesn’t ensure recoverability is no health check.
I read stuff like that and I think “when was the last time someone actually used manual archiving?” I for one have never seen it aside from a blown rfs process and can hardly imagine it as a normal op.
Remember this?
joel garry
20 May 11 at 12:01 am
Thanks for dropping by Joel, part of the trouble for sure is that old material stays around for much longer than it should, most of the trouble though seems to be a “best practices” attitude – if my database is using features x, y and z all must be well – without any attention to appropriateness and if they are being correctly used.
by the way I added [ code ] tags to your post to make the sql script more readable – hope that’s ok.
Niall Litchfield
20 May 11 at 6:03 am
when was the last time someone actually used manual archiving?
Funny enough, the LOG_ARCHIVE_START is deprecated, but we could still try to stop the archiver
SQL> archive log stop
Statement processed.
But if does not stop anything actually…
SQL> archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /u01/app/oracle/admin/DB001/arch
Oldest online log sequence 8080
Next log sequence to archive 8083
Current log sequence 8083
Laurent Schneider
23 May 11 at 12:15 pm