123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- { ************************************************************************* }
- { }
- { INFORMIX SOFTWARE, INC. }
- { }
- { Title: arc_purge.sql }
- { Sccsid: @(#)arc_purge.sql 9.1 10/27/92 11:37:42 }
- { Description: }
- { cleanup archive tables by getting rid of inconsistent info }
- { }
- { ************************************************************************* }
- { --------------------------------------------------------------------------}
- { FILE : ARC_PURGE_INCONSISTENT.SQL }
- { PRODUCT : ARCHIVE*SQL }
- { MODULE : TOOLS PROCEDURES }
- { VERSION : 2.3.1 }
- { CONTENT : SQL statements to remove all inconsistent information from the }
- { catalog and to then update the "VOL_NB_SVST" field of the }
- { "ARC_VOLUME" table. }
- { }
- { Computertime Network Corporation }
- { Informix Version 6.0 }
- { Copyright 1988, 1991, 1992. All rights reserved. }
- { }
- { --------------------------------------------------------------------------}
- database sysmaster;
- begin work;
- lock table arc_request in exclusive mode;
- lock table arc_volume in exclusive mode;
- lock table arc_file in exclusive mode;
- lock table arc_save_set in exclusive mode;
- { --------------------------------------------------------------------------}
- { Remove "dangling" objects }
- { --------------------------------------------------------------------------}
- DELETE FROM ARC_REQUEST WHERE (REQ_STATUS IN ('SU','UC','PA') AND
- REQ_TYPE = 'AR' AND
- NOT EXISTS (select file_rid from arc_file
- where file_rid = req_rid));
- DELETE FROM ARC_VOL_LOCK WHERE NOT EXISTS (SELECT req_rid from arc_request
- where req_rid = vlck_rid);
- DELETE FROM ARC_VOLUME WHERE NOT EXISTS (SELECT vset_vid from arc_vset
- where vset_vid = vol_vid);
- DELETE FROM ARC_REQ_VSET WHERE NOT EXISTS (SELECT req_rid from arc_request
- where req_rid = rv_rid and
- req_status in ('NE','EX','PA' ));
- DELETE FROM ARC_REQ_VSET WHERE NOT EXISTS (SELECT vset_vid from arc_vset
- where vset_vid = rv_vid);
- DELETE FROM ARC_VSET_USER WHERE NOT EXISTS (SELECT vset_vid from arc_vset
- where vset_vid = vu_vid);
- DELETE FROM ARC_SAVE_SET WHERE NOT EXISTS (SELECT vset_vid from arc_vset
- where vset_vid = svst_vid);
- DELETE FROM ARC_FILE WHERE NOT EXISTS (select req_rid from arc_request
- where req_rid = file_rid and
- req_status in ('SU','UC','EX','PA'));
- DELETE FROM ARC_FILE WHERE FILE_TYPE = 'D' AND NOT EXISTS
- (select dbf_rid from arc_db_file
- where dbf_rid = file_rid);
- DELETE FROM ARC_FILE WHERE NOT EXISTS (select fc_rid from arc_file_copy
- where fc_rid = file_rid);
- DELETE FROM ARC_FILE_COPY WHERE NOT EXISTS (select file_rid from arc_file
- where file_rid = fc_rid);
- DELETE FROM ARC_REQUEST WHERE (REQ_STATUS IN ('SU','UC','PA') AND
- REQ_TYPE = 'AR' AND
- NOT EXISTS (select file_rid from arc_file
- where file_rid = req_rid));
- DELETE FROM ARC_DB_FILE WHERE NOT EXISTS (select file_rid from arc_file
- where file_rid = dbf_rid);
- DELETE FROM ARC_DIRECTORY WHERE NOT EXISTS (select file_rid from arc_file
- where file_rid = dir_rid);
- DELETE FROM ARC_REQUEST WHERE (REQ_STATUS = 'SU' OR REQ_STATUS = 'UC') AND
- REQ_TYPE = 'AR' AND
- NOT EXISTS (select file_rid from arc_file
- where file_rid = req_rid);
- DELETE FROM ARC_SAVE_SET WHERE NOT EXISTS (select fc_rid from arc_file_copy
- where fc_rid = svst_rid and
- fc_vid = svst_vid);
- DELETE FROM ARC_SAVE_SET WHERE NOT EXISTS (select req_rid from arc_request
- where req_rid = svst_rid and
- req_status in ('SU','UC','EX','PA'));
- DELETE FROM ARC_PENDING_REQ WHERE NOT EXISTS (select req_rid from arc_request
- where req_rid = pend_rid and
- req_status in ('NE','EX','PA'));
- { --------------------------------------------------------------------------}
- { Update the vol_nb_svst (nb of save-sets in a volume) field in ARC_VOLUME. }
- { --------------------------------------------------------------------------}
- UPDATE ARC_VOLUME SET VOL_NB_SVST = (select count (distinct fc_rid)
- from arc_file_copy
- where fc_vid = vol_vid
- and fc_vno = vol_vno)
- WHERE VOL_VID IN (select vset_vid
- from arc_vset
- where vset_dev_driver = 'DISK');
- UPDATE ARC_VOLUME SET VOL_FULL = 'N'
- , VOL_SPACE_EXACT = 'N'
- WHERE VOL_NB_SVST = 0
- OR VOL_SPACE_EXACT = 'N';
- { --------------------------------------------------------------------------}
- { Update the number of file copy field in ARC_FILE. }
- { --------------------------------------------------------------------------}
- UPDATE ARC_FILE SET FILE_NB_COPIES = (select count (distinct fc_vid)
- from arc_file_copy
- where fc_rid = file_rid
- and fc_fno = file_fno);
- { --------------------------------------------------------------------------}
- { Reset all parent request without child to UNCOMPLETED }
- { --------------------------------------------------------------------------}
- UPDATE ARC_REQUEST_VIEW SET REQ_STATUS = 'UC' WHERE REQ_STATUS = 'PA' AND
- NOT EXISTS (select pend_parent_rid
- from arc_pending_req
- where pend_parent_rid = req_rid);
- commit work;
- close database;
|