dbms_space_admin.drop_empty_segments
create or replace
package dbms_space_admin is
 ------------
 -- OVERVIEW
 --
 -- This package provides tablespace/segment space administration
 -- not available through the standard sql.
-- SECURITY
 --
 -- run with SYS privileges. thus any user who has privilege to execute the
 -- the package gets to manipulate the bitmapes.
-- CONSTANTS to be used as OPTIONS for various procedures
 -- refer comments with procedure(s) for more detail
SEGMENT_VERIFY_EXTENTS constant positive := 1;
 -- used to verify that the space owned by segment is appropriately reflected
 -- in the bitmap as used
 SEGMENT_VERIFY_EXTENTS_GLOBAL constant positive := 2;
 -- used to verify that the space owned bu segment is appropriately reflected
 -- in the bitmap as used and that no other segment claims any of this space
 -- to be used by it
 SEGMENT_MARK_CORRUPT constant positive := 3;
 -- used to mark a temp segment as corrupt whereby facilitating its
 -- elimination from the dictionary (without space reclaim)
 SEGMENT_MARK_VALID constant positive := 4;
 -- used to mark a corrupt temp segment as valid. Useful when the corruption
 -- in the segment extent map or elsewhere has been resolved and the segment
 -- can be dropped normally
 SEGMENT_DUMP_EXTENT_MAP constant positive := 5;
 -- dump the extent map for a given segment
 TABLESPACE_VERIFY_BITMAP constant positive := 6;
 -- verifies the bitmap of the tablespace with extent maps of the segments
 -- in that tablespace to make sure everything is consistent
 TABLESPACE_EXTENT_MAKE_FREE constant positive := 7;
 -- makes this range (extent) of space free in the bitmaps
 TABLESPACE_EXTENT_MAKE_USED constant positive := 8;
 -- makes this range (extent) of space used in the bitmaps
SEGMENT_VERIFY_BASIC constant positive := 9;
 SEGMENT_VERIFY_DEEP constant positive := 10;
 SEGMENT_VERIFY_SPECIFIC constant positive := 11;
 HWM_CHECK constant positive := 12;
 BMB_CHECK constant positive := 13;
 SEG_DICT_CHECK constant positive := 14;
 EXTENT_TS_BITMAP_CHECK constant positive := 15;
 DB_BACKPOINTER_CHECK constant positive := 16;
 EXTENT_SEGMENT_BITMAP_CHECK constant positive := 17;
 BITMAPS_CHECK constant positive := 18;
 TS_VERIFY_BITMAPS constant positive := 19;
 TS_VERIFY_DEEP constant positive := 20;
 TS_VERIFY_SEGMENTS constant positive := 21;
SEGMENT_DUMP_BITMAP_SUMMARY constant positive := 27;
NGLOB_HBB_CHECK constant positive := 12;
 NGLOB_FSB_CHECK constant positive := 13;
 NGLOB_PUA_CHECK constant positive := 14;
 NGLOB_CFS_CHECK constant positive := 15;
 
----------------------------
 -- PROCEDURES AND FUNCTIONS
procedure segment_verify(
 tablespace_name in varchar2 ,
 header_relative_file in positive ,
 header_block in positive ,
 verify_option in positive DEFAULT SEGMENT_VERIFY_EXTENTS
 );
 --
 -- Verifies the consistency of the extent map of the segment
 -- Input arguments:
 -- tablespace_name - name of tablespace in which segment resides
 -- header_relative_file - relative file number of segment segment header
 -- header_block - block number of segment segment header
 -- verify_option - SEGMENT_VERIFY_EXTENTS or
 -- SEGMENT_VERIFY_EXTENTS_GLOBAL
 --
 procedure segment_corrupt(
 tablespace_name in varchar2 ,
 header_relative_file in positive ,
 header_block in positive ,
 corrupt_option in positive DEFAULT SEGMENT_MARK_CORRUPT
 );
 --
 -- Marks the segment corrupt/valid so that appropriate error recovery
 -- can be done/skipped. Only for segments already temporary.
 -- Input arguments:
 -- tablespace_name - name of tablespace in which segment resides
 -- header_relative_file - relative file number of segment segment header
 -- header_block - block number of segment segment header
 -- corrupt_option - SEGMENT_MARK_CORRUPT or
 -- SEGMENT_MARK_VALID
 --
 procedure segment_drop_corrupt(
 tablespace_name in varchar2 ,
 header_relative_file in positive ,
 header_block in positive
 );
 --
 -- Drops a segment currently marked corrupt (without reclaiming space)
 -- Input arguments:
 -- tablespace_name - name of tablespace in which segment resides
 -- header_relative_file - relative file number of segment segment header
 -- header_block - block number of segment segment header
 --
 procedure segment_dump(
 tablespace_name in varchar2 ,
 header_relative_file in positive ,
 header_block in positive ,
 dump_option in positive DEFAULT SEGMENT_DUMP_EXTENT_MAP
 );
--
 -- Dumps the extent map of a given segment
 -- Input arguments:
 -- tablespace_name - name of tablespace in which segment resides
 -- header_relative_file - relative file number of segment segment header
 -- header_block - block number of segment segment header
 -- dump_option - SEGMENT_DUMP_EXTENT_MAP
 --
procedure tablespace_verify(
 tablespace_name in varchar2 ,
 verify_option in positive DEFAULT TABLESPACE_VERIFY_BITMAP
 );
 --
 -- Verifies that the extent maps and the bitmaps are in sync.
 -- Input arguments:
 -- tablespace_name - name of tablespace
 -- verify_option - TABLESPACE_VERIFY_BITMAP
 --
 procedure tablespace_fix_bitmaps(
 tablespace_name in varchar2 ,
 dbarange_relative_file in positive ,
 dbarange_begin_block in positive ,
 dbarange_end_block in positive ,
 fix_option in positive
 );
 --
 -- Marks the appropriate dba range (extent) as free/used in bitmap
 -- Input arguments:
 -- tablespace_name - name of tablespace
 -- dbarange_relative_file - relative fileno of dba range (extent)
 -- dbarange_begin_block - block number of beginning of extent
 -- dbarange_end_block - block number (inclusive) of end of extent
 -- fix_option - TABLESPACE_EXTENT_MAKE_FREE or
 -- TABLESPACE_EXTENT_MAKE_USED
 --
 procedure tablespace_rebuild_bitmaps(
 tablespace_name in varchar2 ,
 bitmap_relative_file in positive DEFAULT NULL,
 bitmap_block in positive DEFAULT NULL
 );
 --
 -- Rebuilds the appropriate bitmap(s). If no bitmap block dba specified then
 -- rebuilds all bitmaps for the given tablespace
 -- Input arguments:
 -- tablespace_name - name of tablespace
 -- bitmap_relative_file - relative file number of bitmap block to rebuild
 -- bitmap_block - block number of bitmap block to rebuild
 --
--
 procedure tablespace_rebuild_quotas(
 tablespace_name in varchar2
 );
 --
 -- Rebuilds quotas for given tablespace
 -- Input arguments:
 -- tablespace_name - name of tablespace
 --
--
 procedure tablespace_migrate_from_local(
 tablespace_name in varchar2
 );
 --
 -- Migrates a locally-managed tablespace to dictionary managed
 -- Input arguments:
 -- tablespace_name - name of tablespace
--
 procedure tablespace_migrate_to_local(
 tablespace_name in varchar2,
 unit_size in positive DEFAULT NULL,
 rfno in positive DEFAULT NULL
 );
 --
 -- Migrates a dictionary-managed tablespace to locally managed
 -- Input arguments:
 -- tablespace_name - name of tablespace
 -- unit_size - bitmap unit size for the tablespace
 --
--
 procedure tablespace_relocate_bitmaps(
 tablespace_name in varchar2,
 filno in positive,
 blkno in positive);
--
 -- Tablespace relocate bitmaps to a different location
 -- Input arguments:
 -- tablespace_name - name of tablespace
 --
--
 procedure tablespace_fix_segment_states(
 tablespace_name in varchar2);
--
 -- Tablespace fix segment states. During migration of tablespaces
 -- the segments are put in a transition state. If migration fails,
 -- the state of the segments can be corrected by calling this
 -- procedure. This procedure should be called if migration failed
 -- and the user tries to run in an incompatible mode.
--
 procedure tablespace_fix_segment_extblks(
 tablespace_name in varchar2);
--
 -- Tablespace fix segment extents and blocks based on segment
 -- header entries
--
 procedure tablespace_dump_bitmaps(
 tablespace_name in varchar2);
--
 -- Tablespace space header of files
function segment_number_extents(
 header_tablespace_id in natural ,
 header_relative_file in positive ,
 header_block in positive ,
 segment_type in positive ,
 buffer_pool_id in natural ,
 dictionary_flags in natural ,
 data_object_id in number,
 dictionary_extents in number
 ) return pls_integer;
 pragma RESTRICT_REFERENCES(segment_number_extents,WNDS,WNPS,RNPS);
 --
 -- Returns the number of extents which belong to the segment. Will return
 -- NULL if segment has disappeared. IS NOT to be used for any other
 -- purposes but by the views which need it and are sure that there info
 -- is correct. Else internal errors will abound
 --
 function segment_number_blocks(
 header_tablespace_id in natural ,
 header_relative_file in positive ,
 header_block in positive ,
 segment_type in positive ,
 buffer_pool_id in natural ,
 dictionary_flags in natural ,
 data_object_id in number,
 dictionary_blocks in number
 ) return pls_integer;
 pragma RESTRICT_REFERENCES(segment_number_blocks,WNDS,WNPS,RNPS);
 --
 -- Returns the number of blocks which belong to the segment. Will return
 -- NULL if segment has disappeared. IS NOT to be used for any other
 -- purposes but by the views which need it and are sure that there info
 -- is correct. Else internal errors will abound
 --
 procedure segment_moveblocks(
 segment_owner in varchar2,
 segment_name in varchar2,
 partition_name in varchar2,
 segment_type in varchar2,
 group_id in natural,
 minimum_size in positive,
 move_count in positive,
 pause_time in natural,
 iterations in positive
 );
 --
 -- Moves blocks from the segment header to the process freelist
 -- It only moves blocks if the list is shorter than the minimum
 -- size for the move_count blocks
 -- segment_owner - name of the object's owner
 -- segment_name - name of the object
 -- partition_name - name of the partition (NULL if not partitioned)
 -- segment_type - object type (TABLE, INDEX, etc - see DBMS_SPACE)
 -- group_id - freelist group (0 for the segment header)
 -- minimum_size - do not move if process free list is longer
 -- move_count - move up to this number of blocks
 -- pause_time - pause between loop iterations
 -- iterations - number of iterations (infinite if NULL)
 --
 
procedure assm_segment_verify(
 segment_owner in varchar2,
 segment_name in varchar2,
 segment_type in varchar2,
 partition_name in varchar2,
 verify_option in positive default SEGMENT_VERIFY_BASIC ,
 attrib in positive default NULL);
--
-- Verifies the consistency of the segment
 -- Input arguments:
 -- segment_owner - owner
 -- segment_name - name of the segment
 -- segment_type - type of segment
 -- partition_name - name of partition default NULL
 -- verify_option - one of SEGMENT_VERIFY_BASIC, DEEP , SPECIFIC
 -- attrib - used when option SEGMENT_VERIFY_SPECIFIC
 procedure nglob_segment_verify(
 segment_owner in varchar2,
 segment_name in varchar2,
 segment_type in varchar2,
 partition_name in varchar2,
 verify_option in positive default SEGMENT_VERIFY_BASIC ,
 attrib in positive default NULL);
--
-- Verifies the consistency of the segment
 -- Input arguments:
 -- segment_owner - owner
 -- segment_name - name of the segment
 -- segment_type - type of segment
 -- partition_name - name of partition default NULL
 -- verify_option - one of SEGMENT_VERIFY_BASIC, DEEP , SPECIFIC
 -- attrib - used when option SEGMENT_VERIFY_SPECIFIC
procedure assm_tablespace_verify(
 tablespace_name in varchar2,
 ts_option in positive,
 segment_option in positive default NULL);
--
 -- Verifies that the tablespace consistency.
 -- Input arguments:
 -- tablespace_name - name of tablespace
 -- ts_option - TS_VERIFY_BITMAPS, TS_VERIFY_DEEP, TS_VERIFY_SEGMENTS
 -- segment option - used when TS_VERIFY_SEGMENTS, one of SEGMENT_VERIFY_DEEP, SPECIFIC
 --
 function assm_segment_synchwm(
 segment_owner in varchar2,
 segment_name in varchar2,
 segment_type in varchar2,
 partition_name in varchar2 default NULL,
 check_only in number default 1
 ) return pls_integer;
--
 -- Synchronize HWMs of the ASSM segment
 -- Input arguments:
 -- segment_owner - owner
 -- segment_name - name of the segment
 -- segment_type - type of segment
 -- partition_name - name of partition default NULL
 -- check_only - whether it is check only default YES
 -- Output:
 -- Return TRUE if the segment requires HWM synchronization
 -- Return FALSE otherwise
procedure flush_lobsegment_stats;
procedure purge_lobsegment_stats;
 -------------------------------------------------------------------------
 -- PROCEDURE securefile_segment_repair
 -------------------------------------------------------------------------
-- segment repair option: repair metadata blocks
 SEGMENT_REPAIR_METADATA constant positive := 1;
procedure segment_repair(
 segment_owner in varchar2,
 segment_name in varchar2,
 segment_type in varchar2,
 partition_name in varchar2 default NULL,
 repair_option in number default SEGMENT_REPAIR_METADATA
 );
--
 -- Description:
 -- Repair SecureFile segment
 -- Input parameters:
 -- segment_owner - owner
 -- segment_name - name of the LOB segment
 -- segment_type - type of segment
 -- values: 'LOB', 'LOB PARTITION', 'LOB SUBPARTITION'
 -- partition_name - name of the LON partition segment
 -- default: NULL
 -- repair_option - segment repair option,
 -- values: see SEGMENT_REPAIR_*** definitions
 -- default: SEGMENT_REPAIR_METADATA
 -- Note:
 -- This function is only used internally and does not require
 -- documentation.
 -------------------------------------------------------------------------
 -- PROCEDURE segment_extend
 -------------------------------------------------------------------------
procedure segment_extend(
 segment_owner in varchar2,
 segment_name in varchar2,
 segment_type in varchar2,
 partition_name in varchar2 default NULL,
 target_size in number default 1
 );
--
 -- Description:
 -- SecureFile segment extend in background
 -- Input parameters:
 -- segment_owner - owner
 -- segment_name - name of the LOB segment
 -- segment_type - type of segment
 -- values: 'LOB', 'LOB PARTITION', 'LOB SUBPARTITION'
 -- partition_name - name of the LOB partition segment
 -- default: NULL
 -- target_size - segment target size in GB
 -- Note:
 -- This function is only used internally and does not require
 -- documentation.
 -------------------------------------------------------------------------
 -- PROCEDURE drop_empty_segments
 -------------------------------------------------------------------------
procedure drop_empty_segments(
 schema_name in varchar2 default NULL,
 table_name in varchar2 default NULL,
 partition_name in varchar2 default NULL
 );
--
 -- Description:
 -- Drop segments from empty table(s)/table fragments and dependent
 -- objects.
 -- Input parameters:
 -- schema_name - schema name, default: NULL
 -- table_name - table name, default: NULL
 -- partition_name - partition name, default: NULL
 -- Note:
 -- Given a schema name, this procedure scans all tables in the schema
 -- For each table, if the table or any of its fragments are found to be
 -- empty, and the table satisfies certain criteria [restrictions being
 -- the same as those imposed by segment creation on demand], the empty
 -- fragments and associated index segments are dropped. A subsequent
 -- insert will create segments with the same properties.
 -- Optionally,
 -- a. no schema name may be specified in which case we would scan
 -- tables belonging to all schemas
 -- b. both schema_name and table_name may be specified to do this
 -- operation on one particular table
 -- c. all three arguments may be supplied, in which case we will
 -- restrict this operation to that partition and its dependent
 -- objects.
 -------------------------------------------------------------------------
 -- PROCEDURE materialize_deferred_segments
 -------------------------------------------------------------------------
procedure materialize_deferred_segments(
 schema_name in varchar2 default NULL,
 table_name in varchar2 default NULL,
 partition_name in varchar2 default NULL
 );
--
 -- Description:
 -- Materialize segments for tables/table fragments with deferred
 -- segment creation (and their dependent objects)
 -- Input parameters:
 -- schema_name - schema name, default: NULL
 -- table_name - table name, default: NULL
 -- partition_name - partition name, default: NULL
 -- Note:
 -- Given a schema name, this procedure scans all tables in the schema.
 -- For each table, if the deferred/delayed segment property is set for
 -- the table or any of its fragments, a new segment is created for
 -- those fragments and their dependent objects.
 -- Optionally,
 -- a. no schema name may be specified in which case we would scan tables
 -- belonging to all schemas
 -- b. both schema_name and table_name may be specified to do this
 -- operation on one particular table
 -- c. all three arguments may be supplied, in which case we will
 -- restrict this operation to that partition and its dependent
 -- objects
 -------------------------------------------------------------------------
 -- PROCEDURE materialize_deferred_with_opt
 -------------------------------------------------------------------------
procedure materialize_deferred_with_opt(
 schema_name in varchar2 default NULL,
 table_name in varchar2 default NULL,
 partition_name in varchar2 default NULL,
 partitioned_only in boolean default FALSE
 );
--
 -- Description:
 -- Materialize segments for tables/table fragments with deferred
 -- segment creation (and their dependent objects), with an additional
 -- option.
 -- Input parameters:
 -- schema_name - schema name, default: NULL
 -- table_name - table name, default: NULL
 -- partition_name - partition name, default: NULL
 -- partitioned_only - apply materialize procedure on partitioned
 -- tables only, default: FALSE
 -- Note:
 -- The materialize_deferred_segments procedure is a wrapper around
 -- this. This procedure is required for downgrading (from 11.2.0.2)
 -- to materialize segments for partitioned tables only. The
 -- partitioned_only argument supports this limited behavior.
 -------------------------------------------------------------------------
 -- PROCEDURE tablespace_fix_affinity
 -------------------------------------------------------------------------
 procedure tablespace_fix_affinity(
 tablespace_name in varchar2,
 block_num in binary_integer,
 instance_id in binary_integer DEFAULT NULL
 );
--
 -- Description:
 -- This procedure sets instance affinity of a File Bitmap Block
 -- in bigfile tablespace. The block can be either a Level 1 bitmap
 -- block (FFB) or a Level 2 bitmap block (FSB).
 -- The report will be generated in the corresponding trace file of
 -- the session that runs this procedure.
 --
 -- Input parameters:
 -- tablespace_name - name of tablespace
 -- block_num - block number
 -- instance_id - id of instance to be affined, by default
 -- it is the current instance
 --
 -- Note:
 -- (1) If the block is Second-level File Bitmap block (FSB), and if
 -- there is another FSB that has already been affined to the instance
 -- specified, this FSB will be freed.
 -- (2) This function is only used internally and does not require
 -- documentation.
end;
posted on 2013-03-19 00:51 Oracle和MySQL 阅读(409) 评论(0) 收藏 举报
                    
                
2群基础群 适合刚入门的同学,会共享最佳入门实践和资料 QQ群  # QQ群号:171092051 # 已经升级到 500人的超级群,空位多多,无需面试
    
                
            
        
浙公网安备 33010602011771号