首页  编辑  

RDBMS SUPPORT's TOP 21

Tags: /超级猛料/Database.数据库相关/Oracle/oracle_error/   Date Created:

RDBMS SUPPORT's TOP 21

  Oracle Worldwide Technical Support answers approximately 6000 questions

a week.  In the RDBMS support group we find there is often a common theme to

the questions. Following are some of the most commonly asked questions and

problems encountered in the RDBMS technical support group. These questions

are based on problems encountered by relatively new DBA's.  Also included

are answers and/or tools to help further identify the problem.

1.  Q. What should I do about this warning: "Warning in SQLPLUS "product

      information table not loaded"?

   A. Run $ORACLE_HOME/sqlplus/admin/pupbld.sql as system (see appendix of

      sqlplus reference guide for details).

2.  Q. How can users be restricted from issuing DML from SQLPLUS (when within

      forms they are restricted but in SQLPLUS they aren't)

   A. Use the Product User Profile table in SQLPLUS (created by pupbld.sql.)

3.  Q. Trying to restore from a full export and getting "duplicate key in

      index".  Why is this occurring?

   A. The DB was not reinitialized before import

      recreate DB, run catalog.sql and expvew.sql.

4.  Q. Why is performance slow on an particular application?

   A. Run EXPLAIN PLAN and Tkprof to gather info about execution plan and

      some statistics (this doesn't necessarily solve the problem but will

      help to identify it).

5.  Q. Why is a tablespace that has been dropped still in the Data

      Dictionary?

   A. It is probably in the DD as 'invalid'...it will remain there unless

      the DB is reinitialized.

6.  Q. I can't create objects in new tablespaces. What's wrong?

   A. Look in DBA_ROLLBACK_SEGS to be sure there are 2 rollback segments. If

      there isn't create another (restart DB with it added to init.ora if

      it is private) before creating objects.

7.  Q. Why is the private rollback segment that was just created not being

      used?

   A. If it is private it must be added to init.ora and the DB restarted

      before it will be acquired.

8.  Q. What do I do when an application is hanging?

   A. Use SQLDBA Monitor Locks (also tables and processes) to determine if

      the table (or row) is locked and review tracefiles and alert.log for

      errors (this doesn't necessarily solve the problem but will help to

      identify it).

9.  Q. How can you shrink a Rollback Segment?? (Or the variation: aren't

      Rollback Segments deallocated?)

   A. In V6 rollback segments aren't deallocated and you must drop and

      recreate to "shrink" them...in V7 you can specify an "OPTIMAL SIZE"

      that the rollback segment will shrink to.

10. Q. How do you move data from one tablespace to another?

   A. See page 3-3 of the V6 Utilities Guide (you need to revoke, grant,

      alter user,imp)

11. Q. Why is a created Public Rollback Segment not used by the application?

   A. If transactions/transactions_per_rollback_segment is less than one

      than only one rollback_segment will be acquired and it will be system.

      Make the ration of the two be equal to the number of Rollback Segments.

12. Q. The database is hanging, users can logon, but not do any work.  What

      can I do?

   A. Check whether the archiver is stuck (alert.log would show ORA-255).

      Either make space in the archival destination, or change the

      log_archive_dest parameter.

13. Q. How can I get a full error listing?

   A. Add tracing to your session by issuing an

      'alter session set sql_trace true'.

      Look for trace files in the USER_DUMP_DEST directory.

14. Q. I removed the datafile before dropping the tablespace. How can I

      recover from this ?

   A. 1) shutdown

      2) startup mount

      3) alter database datafile 'fullpath_of_removed_DF' offline drop

      4) alter database open

      5) drop tablespace ts_name including contents

15. Q. I have DBA privileges and still can't connect internal.  Why?

   A. 'connect internal' is checked at the OS level. In Unix it means that

      your userid needs to be listed at the DBA group in the /etc/group

      file.

16. Q. How can I create a copy of my database ?

   A. Do a full export of the database, pre-create the second database

      including the needed tablespace, then perform full import.

17. Q. Why are some tables missing from a full export ?

   A. Objects owned by SYS are not exported. You shouldn't be creating

      tables as sys.

18. Q. Why is 'Character type conversion 3 to 1 not supported' on an import?

   A. That's import telling you it's trying to load a varchar into a char.

      You need to get a v6 export of the v7 database by using the v6 export

      utility against the v7 database:

       1) run 'catexp6.sql' as sys on the v7 database (this will establish

          the views needed for a v6 export.

       2) From the v6, set up TWO_TASK to point to the v7 database, then

          perform the export.

19. Q. What do I do if Drop tablespace is hanging in v6?

   A. Make sure that the DC_ parameters are high enough.

      dc_free_extents > select count(*) from sys.fet$;

      dc_used_extents > select count(*) from sys.uet$;

      row_cache_enqueue >= dc_free_extents + dc_used_extents;

20. Q. How many blocks are actually used by the data in my tables ?

   A. This query will count all the blocks occupied by the table's data:

        select count(distinct(substr(ROWID, 1, 8) ||

                             (substr(ROWID, 15, 4))

            from

21. Q. How can I find all the duplicate entries in a table ?

      A. select * from real_table_name X

            where rowid < (select max(ROWID) from real_table_name where col1=X.col1 and col2=X.col2 .....) ;