Growth of segments/datafile/tables

Hello,
Which data dictionary would tell me which segments/datafiles/tables grew in the last 30 days? I am trying to find which objects grew in the last 30 days. I have a mount point that is approach 100% full capacity and I want to create another mount point to contain the objects that grow the fastest so that I can move those objects to the new mount point and let them grow there instead of growing on the original mount point which is 90% full. Thank you.

There is nothing that will give you this information directly but you might want to start using DBMS_SPACE. It contains the following functions that might be helpful:
OBJECT_GROWTH_TREND
OBJECT_GROWTH_TREND_SWRF
There are demos of these two functions at:
http://www.psoug.org/reference/dbms_space.html

Similar Messages

  • [svn:osmf:] 15195: 1. Ensure that fragment ID will not exceed the total number of fragments as indicated by the segment run table .

    Revision: 15195
    Revision: 15195
    Author:   [email protected]
    Date:     2010-04-01 17:51:23 -0700 (Thu, 01 Apr 2010)
    Log Message:
    1. Ensure that fragment ID will not exceed the total number of fragments as indicated by the segment run table.
    2. Fix bug FM-574, FM-586 and FM-614
    Ticket Links:
        http://bugs.adobe.com/jira/browse/FM-574
        http://bugs.adobe.com/jira/browse/FM-586
        http://bugs.adobe.com/jira/browse/FM-614
    Modified Paths:
        osmf/trunk/framework/OSMF/org/osmf/events/HTTPStreamingFileHandlerEvent.as
        osmf/trunk/framework/OSMF/org/osmf/net/httpstreaming/HTTPNetStream.as
        osmf/trunk/framework/OSMF/org/osmf/net/httpstreaming/HTTPStreamingNetLoader.as
        osmf/trunk/framework/OSMF/org/osmf/net/httpstreaming/f4f/AdobeBootstrapBox.as
        osmf/trunk/framework/OSMF/org/osmf/net/httpstreaming/f4f/AdobeFragmentRunTable.as
        osmf/trunk/framework/OSMF/org/osmf/net/httpstreaming/f4f/BoxParser.as
        osmf/trunk/framework/OSMF/org/osmf/net/httpstreaming/f4f/HTTPStreamingF4FFileHandler.as
        osmf/trunk/framework/OSMF/org/osmf/net/httpstreaming/f4f/HTTPStreamingF4FIndexHandler.as
        osmf/trunk/framework/OSMF/org/osmf/net/httpstreaming/flv/FLVTagAudio.as
        osmf/trunk/framework/OSMF/org/osmf/net/httpstreaming/flv/FLVTagVideo.as
        osmf/trunk/framework/OSMFTest/org/osmf/OSMFTests.as
        osmf/trunk/framework/OSMFTest/org/osmf/net/httpstreaming/flv/FLVTestHelper.as
        osmf/trunk/framework/OSMFTest/org/osmf/net/httpstreaming/flv/TestFLVTagAudio.as
    Added Paths:
        osmf/trunk/framework/OSMFTest/org/osmf/net/httpstreaming/flv/TestFLVTagScriptDataObject.a s
        osmf/trunk/framework/OSMFTest/org/osmf/net/httpstreaming/flv/TestFLVTagVideo.as

    Revision: 15195
    Revision: 15195
    Author:   [email protected]
    Date:     2010-04-01 17:51:23 -0700 (Thu, 01 Apr 2010)
    Log Message:
    1. Ensure that fragment ID will not exceed the total number of fragments as indicated by the segment run table.
    2. Fix bug FM-574, FM-586 and FM-614
    Ticket Links:
        http://bugs.adobe.com/jira/browse/FM-574
        http://bugs.adobe.com/jira/browse/FM-586
        http://bugs.adobe.com/jira/browse/FM-614
    Modified Paths:
        osmf/trunk/framework/OSMF/org/osmf/events/HTTPStreamingFileHandlerEvent.as
        osmf/trunk/framework/OSMF/org/osmf/net/httpstreaming/HTTPNetStream.as
        osmf/trunk/framework/OSMF/org/osmf/net/httpstreaming/HTTPStreamingNetLoader.as
        osmf/trunk/framework/OSMF/org/osmf/net/httpstreaming/f4f/AdobeBootstrapBox.as
        osmf/trunk/framework/OSMF/org/osmf/net/httpstreaming/f4f/AdobeFragmentRunTable.as
        osmf/trunk/framework/OSMF/org/osmf/net/httpstreaming/f4f/BoxParser.as
        osmf/trunk/framework/OSMF/org/osmf/net/httpstreaming/f4f/HTTPStreamingF4FFileHandler.as
        osmf/trunk/framework/OSMF/org/osmf/net/httpstreaming/f4f/HTTPStreamingF4FIndexHandler.as
        osmf/trunk/framework/OSMF/org/osmf/net/httpstreaming/flv/FLVTagAudio.as
        osmf/trunk/framework/OSMF/org/osmf/net/httpstreaming/flv/FLVTagVideo.as
        osmf/trunk/framework/OSMFTest/org/osmf/OSMFTests.as
        osmf/trunk/framework/OSMFTest/org/osmf/net/httpstreaming/flv/FLVTestHelper.as
        osmf/trunk/framework/OSMFTest/org/osmf/net/httpstreaming/flv/TestFLVTagAudio.as
    Added Paths:
        osmf/trunk/framework/OSMFTest/org/osmf/net/httpstreaming/flv/TestFLVTagScriptDataObject.a s
        osmf/trunk/framework/OSMFTest/org/osmf/net/httpstreaming/flv/TestFLVTagVideo.as

  • Truncate table will delete the corresponding LOB segment of table or not ?

    Hi All,
    I have few table with LOB segments, if i fire the truncate table on those table will it purge the LOB segment as well ?
    Approximately how much time will take to truncate 100gb LOB segments.
    Thanks

    903787 wrote:
    Hi ,
    1.Truncate will delete the LOB segment or not ?It won't delete the LOB segments but it should release most of the allocated space.
    >
    2.To reclaim space we need to run the below command, is it correct ?
    ALTER TABLE <table_name> MODIFY LOB (LOB_COLUMN) (SHRINK SPACE);
    Should not be needed in 11.2:
    SQL> select * from v$version;
    BANNER
    Oracle Database 11g Express Edition Release 11.2.0.2.0 - Production
    PL/SQL Release 11.2.0.2.0 - Production
    CORE    11.2.0.2.0      Production
    TNS for 32-bit Windows: Version 11.2.0.2.0 - Production
    NLSRTL Version 11.2.0.2.0 - Production
    SQL> select count(*) from user_segments;
      COUNT(*)
             0
    SQL>
    SQL> create table t(x clob);
    Table created.
    SQL> select segment_name, segment_type, bytes
      2  from user_segments;
    SEGMENT_NAME                             SEGMENT_TYPE            BYTES
    T                                        TABLE                   65536
    SYS_IL0000030908C00001$$                 LOBINDEX                65536
    SYS_LOB0000030908C00001$$                LOBSEGMENT              65536
    SQL>
    SQL> insert into t select lpad(segment_name,8192) from dba_segments;
    6312 rows created.
    SQL> commit;
    Commit complete.
    SQL>
    SQL> select segment_name, segment_type, bytes
      2  from user_segments;
    SEGMENT_NAME                             SEGMENT_TYPE            BYTES
    T                                        TABLE                  393216
    SYS_IL0000030908C00001$$                 LOBINDEX                65536
    SYS_LOB0000030908C00001$$                LOBSEGMENT           53477376
    SQL>
    SQL> truncate table t;
    Table truncated.
    SQL>
    SQL> select segment_name, segment_type, bytes
      2  from user_segments;
    SEGMENT_NAME                             SEGMENT_TYPE            BYTES
    T                                        TABLE                   65536
    SYS_IL0000030908C00001$$                 LOBINDEX                65536
    SYS_LOB0000030908C00001$$                LOBSEGMENT              65536
    SQL>
    SQL> alter table t modify lob(x) (shrink space);
    Table altered.
    SQL>
    SQL> select segment_name, segment_type, bytes
      2  from user_segments;
    SEGMENT_NAME                             SEGMENT_TYPE            BYTES
    T                                        TABLE                   65536
    SYS_IL0000030908C00001$$                 LOBINDEX                65536
    SYS_LOB0000030908C00001$$                LOBSEGMENT              65536
    SQL>

  • CO table growth rate

    Hi,
    We have gone line with SAP ECC for retail scenario recently. Our database is growing 3 GB per day which includes both data and index growth.
    Modules configured:
    SD (Retail), MM, HR and FI/CO.
    COPA is configured for reporting purpose to find article wise sales details per day and COPA summarization has not been done.
    Total sales order created per day on an average: 4000
    Total line items of sales order on an average per day: 25000
    Total purchase order created per day on an avearage: 1000
    Please suggest whether database growth of 3 GB per day is normal for our scenario or should we do something to restrict the database growth.
    Fastest Growing tables are,
    CE11000     Operating Concern fo
    CE31000     Operating Concern fo
    ACCTIT     Compressed Data from FI/CO Document
    BSIS     Accounting: Secondary Index for G/L Accounts
    GLPCA     EC-PCA: Actual Line Items
    FAGLFLEXA      General Ledger: Actual Line Items
    VBFA     Sales Document Flow
    RFBLG     Cluster for accounting document
    FAGL_SPLINFO     Splittling Information of Open Items
    S120     Sales as per receipts
    MSEG     Document Segment: Article
    VBRP     Billing Document: Item Data
    ACCTCR     Compressed Data from FI/CO Document - Currencies
    CE41000_ACCT     Operating Concern fo
    S033     Statistics: Movements for Current Stock (Individual Records)
    EDIDS     Status Record (IDoc)
    CKMI1     Index for Accounting Documents for Article
    LIPS     SD document: Delivery: Item data
    VBOX     SD Document: Billing Document: Rebate Index
    VBPA     Sales Document: Partner
    BSAS     Accounting: Secondary Index for G/L Accounts (Cleared Items)
    BKPF     Accounting Document Header
    FAGL_SPLINFO_VAL     Splitting Information of Open Item Values
    VBAP     Sales Document: Item Data
    KOCLU     Cluster for conditions in purchasing and sales
    COEP     CO Object: Line Items (by Period)
    S003     SIS: SalesOrg/DistCh/Division/District/Customer/Product
    S124     Customer / article
    SRRELROLES     Object Relationship Service: Roles
    S001     SIS: Customer Statistics
    Is there anyway we can reduce the datagrowth without affecting the functionalities configured?
    Is COPA summarization configuration will help reducing the size of the FI/CO tables growth?
    Regards,
    Nalla.

    user480060 wrote:
    Dear all,
    Oracle 9.2 on AIX 5.3
    In one of our database, one table has a very fast growth rate.
    How can I check if the table growth is normal or not.
    Please advice
    The question is, what is a "very fast growth rate"?
    What are the DDL of the table resp. the data types that the table uses?
    One potential issue could be the way the table is populated: If you constantly insert into the table using a direct-path insert (APPEND hint) and subsequently delete rows then your table will grow faster than required because the deleted rows won't be reused by the direct-path insert because it always writes above the current high-water mark of your table.
    May be you want to check your application for such an case if you think that the table grows faster than the actual amount of data it contains.
    You could use the ANALYZE command to get information about empty blocks and average free space in the blocks or use the procedures provided by DBMS_SPACE package to find out more about the current usage of your segment.
    Regards,
    Randolf
    Oracle related stuff blog:
    http://oracle-randolf.blogspot.com/
    SQLTools++ for Oracle (Open source Oracle GUI for Windows):
    http://www.sqltools-plusplus.org:7676/
    http://sourceforge.net/projects/sqlt-pp/

  • Needs Clarification Regarding Segments and Datafiles

    Hi,
    I want clarification regarding Segments, Datafiles and extents.
    As we know that A segment is made of one or more extents and extents are composed of one or more datablocks in the HD.
    Since all data are store in Datafiles which are composed of extents and datablocks. I want to know weather a table(Segment) can span to multiple datafiles or in a sigle datafile.
    Regards,
    D.Abbasi

    And an easy way to check it by yourself :
    SQL> create tablespace abbasi_tbs
      2  datafile 'E:\ORADATA\DEMO111P\abbasi_01.dbf' size 1m autoextend off,
      3           'E:\ORADATA\DEMO111P\abbasi_02.dbf' size 1m autoextend off;
    Tablespace created.
    SQL> create table abbasi_tbl (id number)
      2  tablespace abbasi_tbs;
    Table created.
    SQL> insert into abbasi_tbl
      2  select rownum as rn
      3  from   dual
      4  connect by level <=10000;
    10000 rows created.
    SQL> commit;
    Commit complete.
    SQL> select distinct file_id
      2  from   dba_extents
      3  where  segment_name ='ABBASI_TBL';
       FILE_ID
             6
             7
    or...
    SQL> select distinct DBMS_ROWID.ROWID_RELATIVE_FNO(rowid)
      2  from   abbasi_tbl;
    DBMS_ROWID.ROWID_RELATIVE_FNO(ROWID)
                                       6
                                       7
    SQL> select file_name from dba_data_files where file_id in (6,7);
    FILE_NAME
    E:\ORADATA\DEMO111P\ABBASI_01.DBF
    E:\ORADATA\DEMO111P\ABBASI_02.DBF
    SQL>Nicolas.
    added the ROWID function usage
    Edited by: N. Gasparotto on Jun 21, 2009 11:02 AM

  • How to move lob segment in partitioned table

    On my Oracle 11.2, I have a partitioned table wich I would like to move to another tablespace
    After invoking script, there's still unmoved lob segment withing table
    CREATE TABLE BONGO.AAA_3
      ID       NUMBER,
      DATUM    DATE,
      OBJEKAT  BLOB
    TABLESPACE BONGODATA_HUGE
    PCTUSED    40
    PCTFREE    10
    INITRANS   1
    MAXTRANS   255
    LOGGING
    PARTITION BY RANGE (DATUM)
      PARTITION P_MAXVALUE VALUES LESS THAN (MAXVALUE)
        LOGGING
        NOCOMPRESS
        TABLESPACE BONGODATA_HUGE
    LOB (OBJEKAT) STORE AS
            (   TABLESPACE  BONGODATA
              ENABLE        STORAGE IN ROW
              CHUNK       8192
              RETENTION
              NOCACHE
              STORAGE    (
                          INITIAL          64K
                          NEXT             1M
                          MINEXTENTS       1
                          MAXEXTENTS       UNLIMITED
                          PCTINCREASE      0
                          FREELISTS        1
                          FREELIST GROUPS  1
                          BUFFER_POOL      DEFAULT
        PCTUSED    40
        PCTFREE    10
        INITRANS   1
        MAXTRANS   255
        STORAGE    (
                    INITIAL          64K
                    NEXT             1M
                    MINEXTENTS       1
                    MAXEXTENTS       UNLIMITED
                    FREELISTS        1
                    FREELIST GROUPS  1
                    BUFFER_POOL      DEFAULT
    NOCOMPRESS
    NOCACHE
    NOPARALLEL
    MONITORING;how to move this lob segment in partitioned table?
    or, is there some package for data move within tablespaces?
    regards

    tnx...
    now, I have another problem..
    I have a nested table within partitioned table, and I'm trying to move it to another tablespace.
    I tried to move child table (of nested type colum), but I didn't succedeed...

  • Oracle tables growth

    Hi Gurus,
    i have one question , is there any way we can track the history of tables growth. For example table A,B,C were created at the time of database creation in schema "ricky" . how we can track the tables growth in the form of report. Lets say we want to see the growth of this table after 2 years, as such we can refer some customized script that can report weekly or monthly growth of this table in those 2 years. The reason i am asking is in order to plan the purging policy.
    Any help would me much appreciated
    SQL> select * from v$version;
    BANNER
    Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
    PL/SQL Release 11.2.0.1.0 - Production
    CORE 11.2.0.1.0 Production
    TNS for Linux: Version 11.2.0.1.0 - Production
    NLSRTL Version 11.2.0.1.0 - Production
    Edited by: 821269 on 25-Mar-2011 4:20 PM

    Hi, welcome to the forum.
    >
    is there any way we can track the history of tables growth
    >
    Automatically by Oracle, No.
    Manually, doing by yourself. Yes.
    You can create a table where you can store the information you want like this (as an example).
    CREATE TABLE TABLES_SIZE_HIST (
      SNAP_DATE        DATE,
      SNAP_TYPE        CHAR(1), --you can put D=Daily, W=Weekly etc
      OWNER              VARCHAR2(30),
      SEGMENT_TYPE  VARCHAR2(30),
      SEGMENT_NAME  VARCHAR2(30),
      SEGMENT_BYTES NUMBER)
    /So, periodically you can insert data into the table above with this statement (only as example, you can insert data into the table in many ways).
    INSERT INTO TABLES_SIZE_HIST
    SELECT sysdate, 'W', s.owner, s.segment_type, s.segment_name, s.bytes
       FROM dba_segments s
          WHERE s.owner = '<OWNER>'
              AND s.segment_type = '<TABLE>'
              AND s.segment_name IN ('<TABLE1>', '<TABLE2>',.....,'<TABLE+n+>')
    /So, the query above you can put it into an Oracle Job or into a Cron Job (unix) for say something.
    After your period of 2 years, you can query the data collected and make desitions.
    You have to be carefull because maybe you can have lot of data in your table. So, you have to find the best scenario for storage.
    Obviously, depends of the period that you make the snapshot, daily, weekly, twice a day etc etc.
    HTH
    johnxjean

  • Any Software/Program to keep track of growth of Datafiles and Tablespaces

    Hi,
    I am looking for a program that can keep an eye on the growth of the datafiles and tablespaces as well as it can raise an alert when the growth is critical regarding the space.
    Can anybody suggest me such program/tool/utility/script?
    Thanks in advance.
    Himanshu

    There are plenty of vendors out there that sell very high-end database monitoring tools. Quest has a whole suite of them. Any of these guys should have tablespace monitoring (and a variety of other reports) as part of the package.
    Justin
    Distributed Database Consulting, Inc.
    http://www.ddbcinc.com/askDDBC

  • Move objects across datafiles .. is it supported ?

    Hello,
    Due to Table-reorg I have reclaimed a lot of free space in my DB, now I intend to release this space back to the disk.
    Inorder to find Data-fiels appropriate for Re-org I wrote the following query. Intetntion of the query is to find all the Datafiles which can be resized to below 512M.
    The size of most of the Datafiles are 10GB
    select 'ALTER DATABASE DATAFILE '+||D.FILE_NAME||'+ resize '||ROUND((D.BYTES-F.free)/1024/1024,0)||'M;'
    FROM DBA_DATA_FILES D,(select file_id,sum(bytes) as free
                   from dba_free_space
                   group by(file_id))F
    where D.FILE_ID=F.FILE_ID
    and (D.BYTES-F.free)/1024/1024 < 512
    order by (D.BYTES-F.free)/1024/1024 desc;
    * + will be replaced by " ' " in the o/p of the above scriptAs per the o/p of the script I was able to resize some of the Files but rest of them failed with the below error :
    ORA-03297: file contains used data beyond requested RESIZE value
    the above script indicated a resize value of resize to 8.04M, I tried resizing it to 9,10,20,25,50,100,200,512,1000M
    still I get the above error.
    My Questions are:-
    1. size of the datafile - free = Used,
    used+ <delta value> = size of the file being used, as I want to restrict the growth of these datafiles can't I resize to the value as given by my script.
    2. Is there any other way of releasing the unused space (atleast 75%) back to the Disks from Oracle Datafiles.
    A tablespace move id not feasible.
    3. Is there anyhting like moving objects of the same TBS into 1 datafile and drop the unused datafiles ?
    Thanks in advance for the help.
    Regards,
    VAlli

    Thanks to both of you.
    Moving to another TBS and back is not a easy solution Coz,
    1. I need to have excess Disk space to create a new one.
    2. I guess I need to move the segments 1-by -1. Can I move them @ Schema level. EXP/EXPDP may not be considered by me as the size of the objects in TBS may exceed 1 TB.
    3. Manual movement is always risky
    4. As numerous jobs run on the DB all the time. Is there a possibility that the job fails when it tries to acess the table which is under transition phase from 1 TBS to another. If this is the case then I may need a downtime.
    If you have any suggestions or better ideas please share it here.
    Regards,
    Valli

  • Viewing Tables/data from an old tablespace

    I'm using a database Oracle 11g.
    I have a DBF file of an old tablespace from a different database that I want to connect to the existing database.
    I've created a tablespace with REUSE caluse, and it was created successfully
    SQL> create tablespace TEST datafile 'C:\DATA.DBF' reuse;
    How can I view the tables/data within that tablespace?
    Was that the right approach ?
    Or should I attach that tablespace in a different way ?
    Thanks in advance for your answers,
    Roni

    Hi JGarry,
    I do not agree to your statement
    "In addition to what the others said, understand that the metadata that describes what is in the tablespace is in the data dictionary in the system tablespace.  If you have the system tablespace also, you may be able to construct a database that you can transport your data tablespace from. "
    System table space will contains the metadata information about the table space, But it will not keep information about the segments of table space. So user will not be able to see the contents of table space.
    Yes your point regarding proper backup and export is valid but can you elaborate more how to data recovery will the done in this user scenario.
    Any ideas are welcome....
    cheers

  • How to get the list of top 10 tables grown last week or last few days

    Hi All,
    Please let me know, how to get the list of top 10 tables grown last week or last few days
    Thanks

    Please let me know, how to get the list of top 10 tables grown last week or last few days1.Oracle Version and OS info please ... ALWAYS
    2.Do you have licensing options (Tuning and/or Diagnostics Pack) ?
    3.Have you ran AWR/Statspack in last week or last few days
    1.Because Oracle do not store auto tack the history of tables growth. See below link where one user has showed the possible way of manual track of table(s) growth :
    Re: oracle tables growth
    2.MOS Note for How To Get Table Growth History Information? [ID 1395195.1]
    3.If you are in 10g than EM of 10g has something called Segmnet Statistics which can show you the growth of your table.
    4.Other clue :
    SQL> select * from table (dbms_space.object_growth_trend('SCOTT','EMP','TABLE'));
    TIMEPOINT                                                                   SPACE_USAGE SPACE_ALLOC QUALITY
    17-SEP-12 11.06.20.228000 AM                                                       1593       65536 GOOD5.A good script by Mice Ault for historical growth of segments within AWR:
    http://www.dba-oracle.com/t_table_growth_reports.htm
    Regards
    Girish Sharma

  • Blockrecover but full datafile restore + ORA-01193

    Hi,
    We have a proplem, here is a short sescription:
    We have corrupt blocks, how can we solve this problem? Blockrecover uses full datafile restore and finally fails with ORA-01193.
    Here is a detailed description:
    We have a 330GB datafile (bigfile tablespace) with 46 corrupt block.
    DB version 10.2.0.4, Oracle linux, we use ASM.
    We would repair these blocks.
    V$DATABASE_BLOCK_CORRUPTION after "backup validate check logical datafile 7" :
    FILE#     BLOCK#     BLOCKS     CORRUPTION_CHANGE#     CORRUPTION_TYPE
    7     16872378     1     0     FRACTURED
    7     16872408     40     0     CORRUPT
    7     16872379     5     0     CORRUPT
    The result is similar by dbv.
    We have archivelog mode and backupset created by rman command:
    backup as compressed backupset incremental level 0 database;
    All of the corrupted blocks are in 1 LOB segment.
    We copied the LOB segment, only 5 record cannot be read.
    The corrupted LOB segment (and table) was exchanged by the copied (not corrupted) data, so users can work.
    We remained the corrupted LOB segment in the database, but it is not in use.
    I started blockrecovery by command:
    BLOCKRECOVER DATAFILE 7 BLOCK 16872378,...,16872447;
    The listed blocks are same as in the V$DATABASE_BLOCK_CORRUPTION, so the command could be:
    BLOCKRECOVER CORRUPTION LIST;
    The database was opened during blockrecocer and the datafile 7 was online.
    A line appeared in the V$SESSION_LONGOPS with:
    "RMAN: full datafile restore"
    The restore was more than 4 hours, and finally it is failed with error:
    Starting blockrecover at 29-AUG-12
    starting media recovery
    ORA-01193 file % is not the same file seen at start of recovery
    Based on V$SESSTAT there were lot of physical read but only some physical write.
    Maybe full datafile read, and only corrupted blocks was changed, but I didn't check it exactly.
    We retried blockrecover with only one block, but the result was same: it failed after 4 hours with ORA-01193.
    We retried the blockrecovery on a mounted but not opened database, and the datafile was offline:
    SHUTDOWN IMMEDIATE;
    STARTUP MOUNT;
    ALTER DATABASE DATAFILE 7 offline
    BLOCKRECOVER ...
    The result was same: it failed after 4 hours with ORA-01193.
    rman backup failed with error:
    RMAN : ORA-19566: exceeded limit of 0 corrupt blocks for file %
    After set maxcorrupt, rman backup ran successfuly
    SET MAXCORRUPT FOR DATAFILE 7 TO 46;
    Based on our current info, these workaround seems best for us:
    - rman "set maxcorrupt"
    - DB_BLOCK_CHECKING=FULL
    - drop corrupted (but copied and not used segment)
    - wait until corrupted blocks will be reallocated (checking it periodically by dbv)
    - set maxcorrupt to 0
    Our questions are:
    *1. Why oracle uses "RMAN: full datafile restore" during blockrecover?*
    Why needed to read the whole datafile?
    One of the advantage of blockrecover should be the relative small IO, and fast restore.
    I found only 2 results in google for "blockrecover" and "RMAN: full datafile restore".
    (One of the findings was in this forum, but it was no answer for our problem)
    *2. ORA-01193: file is not the same, but why?*
    It is strange on opened database and online datafile, because other advantage of blockrecover should be the online recovery.
    But it is more-more strange on closed(mounted) database and offline datafile. Only the rman blockrecover could change this file.
    I found only 3 results in google for "blockrecover" "ORA-01193"
    I found only the oerr output in google for "ORA-01193". But what does it mean? Only the rman blockrecover could change this file.
    Cause: A different copy of the file was accessed the last time media recovery looked at the file header. A backup of the file was restored or the meaning of the file name changed during recovery.
    Action: Ensure the correct file is available, then retry recovery.
    *3. What else can be do to repair these corrupt blocks? What can we do for success blockrecover, or is there any other idea?*
    Other infos:
    - DB_BLOCK_CHECKING was false, but we changed it to FULL to avoid the subsequent corruptions
    ALTER SYSTEM SET DB_BLOCK_CHECKING = FULL scope=both
    - DBMS_REPAIR cannot detect the (out-of-line) LOB segment errors.
    - rman SET MAXCORRUPT is not a "calming" solution
    - When I read on internet, when we drop the corrupted LOB segments, the blocks will remains corrupt.
    And the block will be repaired/formatted only when a new segment will allocate these blocks.
    Based on metalink 336133.1, we can ensure the new allocation by fill the datafile with dummy data until the corrupted blocks will be allocated.
    But this is a very IO intensive task.
    - full recovery
    very IO intensive, we try to avoid it.
    Thx: lados.

    Hi,
    other infos:
    We use ASM, and one of the disk is dropped and added after the last full (incremental level 0) backup. Can this premise causes the slow restore (something physical storage info is changed), or the ORA-01193 error (file % is not the same file seen at start of recovery) ? I don't think that a full db backup is needed after ASM disk drop/add/rebalance. But we tried a full backup (this was when the corrupt block first appeared with ORA-19566).
    I found only one finding in the metalink for ORA-01193. The oerr reference (cause,action). It would be strange, if nobady else had problem with this error.
    Thx: lados.

  • TEMPORARY SEGMENTS에 대해서 (ORACLE VERSION: 7.X ~ 8.1)

    제품 : ORACLE SERVER
    작성날짜 : 2003-11-07
    TEMPORARY SEGMENTS에 대해서 (Oracle version: 7.X ~ 8.1)
    ===========================================================================
    이 문서에서는 sort작업의 수행과 관련하여, memory상의 할당 및 disk상의
    temporary segment 생성 등에 관하여 살펴보았다.
    특히 temporary segment를 temporary type의 tablespace에 생성하도록 지정한
    경우에 대해서 자세히 살펴보았으며, 그러한 작업시 user가 확인할 수 있는
    dictionary정보 등을 기술하였다.
    이 문서는 아래와 같이 7가지 part로 나누어 설명하였으며, Oracle 7에서
    Oracle 8i에 모두 적용되는 사항이다.
    1. temporary segment가 생성되는 operation
    2. 메모리 할당
    3. user별 지정
    4. tablespace의 space management
    5. permanent tablespace를 사용하는 경우
    6. temporary tablespace를 사용하는 경우
    7. guideline
    8. temporary segments에 대한 정보 확인
    1. temporary segment가 생성되는 operation
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    temporary segment를 생성하게 되는 sort operation은 다음과 같이 정리할 수
    있다.
    - index생성
    - ORDER BY나 GROUP BY
    - SELECT문장에서 DISTINCT function
    - UNION, INTERSECT, MINUS operation
    - Sort-Merge joins
    - analyze command
    이 외에도 unique나 primary key를 생성하거나 enable시키는 문장의 경우
    sorting을 위해 temporary segment를 사용하게 되며,
    CREATE TABLE AS SELECT나 CREATE INDEX의 경우 table이나 index가
    만들어지는 과정중에는 segment type이 temporary 로 나타난다.
    CREATE TABLE이나 CREATE INDEX 문장이 완성되어 table이나 index가 완전히
    생성되면 type이 table과 index로 변경된다. 이러한 CREATE TABLE문장이나
    CREATE INDEX 문장이 도중에 space부족으로 실패하면, user의 temporary
    tablespace가 아닌 table이나 index를 생성하는 tablespace에 temporary
    segment위한 공간이 부족하다는 오류가 발생하는 것이다. 물론, CREATE INDEX시
    이렇나 temporary segment외에도 sort를 위한 temporary segment는 user의
    temporary tablespace에 생성된다.
    2. memory allocation
    ~~~~~~~~~~~~~~~~~~~~
    각 session별로 첫번째 sort가 수행되는 순간 memory가 할당되고 sort가
    진행된다. sort가 수행되기 위해 필요한 영역이 점차 증가하다가, sort가
    완전히 끝나거나 SORT_AREA_SIZE 크기에 도달하면 더 이상 memory를
    할당하지 않는다.
    이렇게 SORT_AREA_SIZE initialization parameter는 하나의 sort에 의해
    사용되어질 real main memory의 최대 크기를 나타낸다. 이 parameter의
    default값은 64K bytes이며, 이 parameter에 의해 만들어지는 sort memory
    영역은 다음과 같이, server configuration에 따라 다른 부분에 위치하게 된다.
    (1) dedicated server configuration
    sort area가 Program Global Area (PGA)에 할당된다. PGA는 이 외에도
    user 권한 등을 포함한 session information, cursor status, stack
    space 등을 포함한다.
    (2) multi threaded server (MTS) configuration
    sort area가 User Global Area(UGA)에 할당된다. 이 UGA는 SGA의 한
    구성 요소인 shared pool 내에 위치한다.
    sort가 완전히 끝이 나면, sort영역은 SORT_AREA_RETAINED_SIZE parameter에
    의해 정해진 memory크기로 줄어든다. 즉, SORT_AREA_RETAINED_SIZE는 다음
    sort를 위해서 미리 확보해 두는 영역이다. 만약 SORT_AREA_RETAINED_SIZE가
    0으로 설정되면 같은 process라도 매번 sort 시마다 새로 memory를
    SORT_AREA_SIZE 만큼 할당하게 되는 것이다.
    SORT_AREA_RETAINED_SIZE의 default 값은 SORT_AREA_SIZE와 같아서, 이전
    sort 시에 사용된 memory 부분이 항상 다음 sort 시에 그대로 이용된다.
    process가 완전히 종료되면 이 영역도 해제되어 MTS라면 shared pool 영역으로
    반환되고, dedicated 방식인 경우 operating system 영역으로 반환된다.
    이 두 initial parameter는 session level에서도 수정이 가능하다, 예를 들어
    두 paramter를 모두 1m로 설정하는 명령은 다음과 같다.
    SQL>alter session set
         sort_area_size = 1024000
         sort_area_retained_size=1024000;
    만약 앞으로 새로 생성되는 모든 session에 대해서 영향을 받도록 하려면
    alter system 명령을 이용하여야 한다. 예를 들면 다음과 같다.
    SQL>alter system set
         sort_area_size=102400 deferred
         sort_area_retained_size=102400 deferred;
    3. user 별 지정
    ~~~~~~~~~~~~~~
    2번에서 설명한 SORT_AREA_SIZE의 memory 외에도 추가적으로 sort 시 공간이
    필요하다면, 이 때는 이미 sort가 된 data들은 disk에 쓰여지고, memory 내의
    sort 영역을 비운 다음 그 영역을 새로운 sort되어져야 할 data들이 사용하도록
    하면서 전체 data를 sort한다. 물론 이렇게 부분적으로 sort가 된 단위들은
    나중에 다시 merge 단계를 거쳐 전에 data가 모두 sort가 되도록 한다. 이와
    같이 일부 정렬된 data들이 disk에 씌여지면 temporary segment가 생성되게
    된다.
    이렇게 정렬된 data들이 임시로 씌여지는 temporary tablespace는 각
    user마다 생성 시 지정되며, 임의로 변경 가능하다.
    예를 들면 다음과 같다.
    SQL> create user scott identified by tiger
         default tablespace users
         temporary tablespace temp;
    SQL> alter user scott temporary tablespace newtemp;
    4. tablespace의 space management
    (dictionary managed vs. locally managed)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    tablespace는 extent 단위로 space를 할당하는데, free space와 used space를
    관리하는 방법은 dictionary managed 방식과 oracle8i에서 새로 소개된
    locally managed, 이렇게 두가지로 구분될 수 있다.
    locally managed tablespace에 관한 자세한 사항은 <Bul:11860>을 참조하도록
    한다.
    (1) dictionary managed tablespace
    이것은 oracle8.0과 그 이전 version에서, tablespace에서 extent를 할당하고
    반환하는 방법으로 사용되는 것이다.
    data dictionary table에 extent를 할당하거나 해제함에 따라 변경되는
    extent정보를 저장한다. user에게는 dba_extents나 dba_free_space와 같은
    view를 통해 조회가능하다.
    이러한 형태의 tablespace내에 저장되는 segment는 storage option인
    initial, next, pctincrease 에 의해 필요한 extent를 free space로 부터
    할당받아가게 되는데 temporary segment를 위한 tablespace라면, 그 tablespace
    (주로 TEMP라고 이름지어짐) 에 생성되는 모든 temporary segment는
    tablespace의 default storage의 값을 segment별로 적용하게 된다.
    (2) locally managed tablespace
    이것은 8i에서만 사용가능한 방법으로, tablespace 자체가 자신의 extent에
    대한 정보를 가지고 관리한다. locally managed tablespace에 속한 각
    datafile들은 각 datafile마다 bitmap을 가지고 있어서, 각 block의
    free와 used상태를 유지한다. bitmap의 각 block은 하나의 block 혹은
    하나의 block의 group을 나타낸다.
    이렇게 extent를 자신이 관리하는 tablespace는, 일정한 크기의 extent
    size를 유지하는 UNIFORM형태나, system에서 자동으로 가변적인 extent
    size를 결정하는 AUTOALLOCATE방식, 두가지로 지정 가능하다.
    이러한 형태의 tablespace는 INITIAL, NEXT, PCTINCREASE, MINEXTENTS
    등의 storage option을 사용할 수 없다.
    locally managed tablespace는 다음과 같은 이점을 가진다.
    - extent를 local형태로 관리하면, recursive space management operation을
    줄일 수 있다. 즉 dictionary table에 대한 조회나 dml을 피할 수 있다.
    - 자동으로 bitmap만을 통해서, free space가 인접해있는지가 확인이 되기
    때문에 extent를 coalescing할 필요가 없어진다.
    tablespace를 생성할 때는 위의 두 형태 중 하나로 tablespace를 생성하여야
    하며, alter 문장을 통해서 형태를 변경할 수는 없다.
    5. permanent tablespace에 temporary segment 생성
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    일반적으로 TEMP라는 이름을 가지는 user가 temporary tablespace로 지정하는
    tablespace는 temporary나 permanent 중 하나로 지정가능하다.
    permanent로 지정하게 되면 sort가 필요할 때마다 temporary segment를
    tablespace에 생성하게 되고 sort가 끝나면 SMON이 이 segment를 해제한다.
    일반적으로는 이렇게 permanent로 지정을 하여도 db user의 temporary로
    지정된 tablespace에는 일반 user의 schema object를 생성하지는 않지만,
    실제적으로는 생성하여도 생성된 object의 사용에 지장은 없다.
    그런데 permanent로 지정하게 되면 다음과 같은 단점이 있다.
    - transaction level로 sort가 필요할 때마다 temporary segment를 생성하게
    되므로 여러개의 temporary segment가 생성되어 진다.
    - temporary segment가 자주 생성되고 다시 없어짐에 따라 fragmentation이
    발생할 가능성이 크다.
    - SMON이 sort가 완료되면 temporary segment를 free시키는 역할을 하는데,
    sort segment가 매우 많이 생성되게 되면, SMON이 그 segemnt를 지우는 데
    많은 시간을 할애하게 된다. 이렇게 되면 전체적인 db performance에
    영향을 주게 된다.
    permanent type으로 temporary segment를 위한 tablespace를 생성하는
    문장의 예를 기술하였다.
    (Oracle 8.1에서는 이렇게 선언하면 default로 dictionary-managed 형태로
    생성된다)
    SQL>create tablespace temp datafile '/oracle/oradata/temp01.dbf'
         default storage(initial 1m next 1m pctincrease 0);
    Oracle 8.1이상에서 temporary segment를 위해 locally-managed permanent
    tablespace를 생성하는 예문은 다음과 같다.
    단, 반드시 UNIFORM extent size만이 가능하다.
    SQL>create tablespace temp datafile '/oracle/oradata/temp01.dbf'
         extent management local uniform size 1m;
    6. temporary tablespace에 temporary segment 생성
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Oracle7.3부터 sort operation을 더욱 효율적으로 사용하기 위해 temp
    tablespace를 명시적으로 temporary로 지정하는 것이 가능하게 되었다.
    이렇게 함으로써, temporary tablespace에 sort space(temporary segment)를
    할당하고 해제하는 작업의 반복을 피할 수 있으며, 특히 OPS 환경에서 성능 향상에
    도움이 될 수 있다.
    이러한 형태의 tablespace에 생성되는 temporary (sort) segment는
    db startup 후 처음 수행되는 sort 작업이 memory 내의 sort를 마치고, disk로
    내려쓸 때 생성된다. 이렇게 일단 temporary segment가 생성되면 이 segment는
    db가 restartup될 때까지 줄어들거나 해제되지 않는다. sort가 필요한
    다른 transaction들은 미리 생성된 temporary segment를 공유하게 되나,
    extent를 공유하지는 않는다.
    sort 작업은 사용 가능한 extent가 존재하지 않으면 새로운 extent를 할당하면서
    temporary segment를 늘려나가며, 이미 설명한 바와 같이 db가 running되어
    있는 동안은 줄어들지 않는다. 그러나 sort가 끝나게 되면 사용한 extent를
    free로 표시하여 다른 transaction이 재사용 가능하도록 한다. 결국 temporary
    segment는 무한정 계속 늘어나기보다는 일정한 size 정도까지 늘어난 후에는
    extent 별로 재사용되어지는 것이다.
    이러한 temporary tablespace 내의 sort segment에 대한 정보는
    Sort Extent Pool (SEP)에 저장하며, 이것은 SGA 내에 위치한다.
    temporary tablespace를 이용하여 sort를 수행하여야 하는 모든 문장은
    SGA 내의 이 SEP를 확인하여 free extent를 찾아낸다. 이렇게 각 operation 후에
    extent가 할당, 해제되는 과정이 필요없기 때문에 기존의 permanent
    tablespace에 temporary segment를 생성하는 것보다 db의 전반적인 속도가
    향상되는 것이다.
    앞에서 이 temporary tablespace 형태가 특히 OPS에서 성능 향상을 가져올
    수 있다고 하였는데, 그 이유는 이 SEP에서 할당되는 extent는 다른
    instance끼리 같은 extent를 사용하는 경우는 없도록 instance id를 이용하여
    할당받도록 하여 항상 같은 instance에만 할당이 된다.
    즉, ping이 발생할 확률이 줄게 되어 속도의 향상을 가져오게 된다.
    temporary tablespace 내의 sort segment의 해제 작업은 db shutdown 시에
    자동으로 이루어지는 것이 아니고 db startup 시에 SMON에 의해서 수행된다.
    database가 open되고 나면, temporary tablespace에서 extent를 해제하여
    coalescing 작업을 수행한다. 이러한 작업으로 인해 db가 startup된 직후
    SMON이 CPU를 많이 사용하는 경우가 발생하는 것이다.
    만약에 temporary tablespace의 NEXT값이 너무 작게 지정되어 매우 많은
    갯수의 extent가 만들어지게 되면, SMON의 이러한 작업으로 인해 사용가능한
    CPU resource가 거의 없어짐으로 인해 db 사용에 문제가 야기될 수 있다.
    tablespace를 temporary로 지정하는 문장의 예는 다음과 같다.
    (Oracle 8.1에서는 이렇게 선언하면 default로 dictionary-managed 형태로
    생성된다.)
    SQL>create tablespace temp datafile '/oracle/oradata/temp01.dbf'
    default storage(initial 1m next 1m pctincrease 0) temporary;
    Oracle 8.1 이상에서 temporary segment를 위해 locally-managed temporary
    tablespace를 생성하는 예문은 다음과 같다.
    단, temporary tablespace에서는 반드시 UNIFORM extent size만이 가능하다.
    SQL>create temporary tablespace temp
    tempfile '/oracle/oradata/temp01.dbf'
    extent management local uniform size 1m;
    이렇게 temporary tablespace로 생성된 tablespace에는 table이나 index와
    같은 permanent한 schema object는 생성될 수 없다.
    dictionary-managed temporary tablespace의 경우는 다음과 같은 문장에
    의해 permanent로 변경이 가능하다.
    SQL> alter tablespace temp permanent;
    7.guidelines
    ~~~~~~~~~~~~
    - temporary segment가 자주할당되고, 해제되는 것을 피하고자 한다면 temporary
    type의 tablespace를 사용한다.
    - 하나 이상의 temporary tablespace를 사용하는 것도 동시에 sort가 발생하는
    경우 도움이 된다. 즉 db user마다 temporary tablespace를 달리 지정하라는
    것인데, 이것은 db user별로 업무 분할이 잘 되어 있는 OPS에서 특히 유용하다.
    그 외에도 각 tablespace를 다른 disk에 위치시키는 경우 속도 향상을 가져올
    수 있고, db user별로 업무가 나뉘는 경우 각 업무에 필요한 sort space를
    따로 관리하는 장점이 있다.
    - temporary tablespace의 default storage를 지정하는 경우, INITIAL은 NEXT와
    같게 하고 pctincrease는 항상 0으로 한다.
    pctincrease가 0이면 temporary tablespace의 모든 extent는 같은 크기의
    조각을 가지게 되고, 이렇게 되면 coalescing이 수행되지 않아도 새로운
    sort작업이 기존에 발생한 extent를 그대로 이용할 수있게 된다.
    8. temporary segments에 대한 정보 확인
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    v$sort_segment view에서 sort segment를 포함하는 temporary tablespace를
    확인할 수 있다.
    extent_size     : extent의 크기, Oracle block갯수
    total_extents     : 빈 것과, 사용 중인 것 모두 합해 segment에 포함된 total
              extent의 갯수
    used_extents     : 현재 사용 중인 extent의 갯수
    free_extents     : 현재 free로 표시되어 있는 extent의 total갯수
    max_used_size     : 하나의 operation, 즉 한 transaction에 의한 한번의 sort와
    같은 작업을 위해 사용된 extent의 갯수 중 최대로 큰 경우
    현재 user에 의해 사용되어지고 있는 temporary segment 내의 공간을
    확인하려면, v$sort_usage와 v$session view를 이용한다.
    단, sort_usage는 sort 시에만 정보가 나타나는 것을 주의해야 한다.
    예를 들어 다음과 같이 조회할 수 있다.
    select s.username, u.tablespace, u.contents, u.extents, u.blocks
    from v$session s, v$sort_usage u
    where s.saddr=u.session_addr;
    USERNAME TABLESPACE CONTENTS EXTENTS BLOCKS
    SCOTT TEMP TEMPORARY 10 10240000

    You need to read Note:131299.1 available on Metalink.
    ALERT: Oracle Installer 8.1.X Hangs on Machines with Pentium 4 Processors.
    There is a patch available.

  • Size of portal_doc datafile

    The portal_doc datafile is getting rather large. Is there a best practice or lessons learned regarding the management of datafile sizes for Portal?

    Most likely the growth in the PORTAL_DOC tablespace is caused by growth of the WWDOC_DOCUMENT$ table. This table will grow when documents are added to the Portal.
    The real question is probably whether the WWDOC_DOCUMENT$ table is really that big or whether it is just the High Water Mark of the table which has progressed. I assume it is the first unless you have previously loaded a large number of documents into this table and afterwards deleted these tables in the Portal.
    If the file size is causing concern, consider to spread use more than one datafile for the table. If you multiple disks in your server, you can even spread the datafiles over multiple disks to increase performance.
    Hope this helps,
    EJ

  • Undo Tablespace Datafile is corrupted

    Here's my case:
    - our Oracle 9i R2 database is running in NOARCHIVE mode in Windows 2000 plateform.
    - the Undo Tablespace datafile corrupted in the filesystem level (it gives "cyclic redundancy check" error when trying to copy or read from the file). Therefore database cannot startup.
    - There is no backup files.
    - I tried to create an Undo Tablespace to replace the existing one in the MOUNT state. That was not of course possible.
    - I tried to use ALTER DATABASE CREATE DATAFILE '' AS '' statement, but it couldn't work because the original file is corrupted.
    How can I solve the problem and make the database startup?
    Thanks in advance.

    This is a very bad situation, here's a statement from an Oracle note:
    If the rollback segment datafile is physically missing, has been offlined
    dropped, or the rollback segment header itself is corrupt, there is no way to
    dump the transaction table to check for active transactions. So the only thing
    to do is get the database open, export and rebuild. Log an iTar to engage support
    to help with this process.
    If you cannot get the database open, there is no other alternative than
    restoring from a backup. ...
    So you should contact Oracle support.

Maybe you are looking for

  • Hp help and support

    Hi can anyone help ? My hp help and support is just not work whenever i click on it it open up and just keep saying that's its gathering information and its been gathering information for more than a day now, so i will be really happy if anybody can

  • TS1702 I have piuchases on here for 3/18/13 today is 3/17/13 why was it put on my CC?

    I have several purchases on my CC for tomorrow already BUT today is 3/17/13 ( St. Pat's Day!)

  • DW CS4 shift+arrow keys no longer work?

    I use Dreamweaver a fair amount. Just recently when I want to highlight a bunch of code while in code view, the shift + Arrow keys no longer work. The first letter is highlighted, but as I press the arrow a second time nothing is highlighted. This pr

  • Exporting from Crystal Enterprise 10 to Excel

    Post Author: alcancrystaluser CA Forum: Exporting Hi, When Trying to export a report in Crystal Enterprise 10.0 to Excel , the column headings are not displayed but replaced by an empty row. However, the download is working well when I do it in Cryst

  • Accessing an Ipod from Terminal

    Is it possile to access an ipod via the Terminal mode. I tried a few commands with no luck. I am beginning to think you can only access your own computer HD with Terminal.