Analysis and Solution of Oracle Common Error Codes

xiaoxiao2021-03-05  37

In the process of using Oracle, we will often encounter some Oracle generated errors. For beginners, these errors may be a bit blurry, and maybe I don't know how to deal with these mistakes, I am more frequent in use. Error code makes an analysis, hoping to help you find a way to resolve these errors, and I hope you can make your different opinions. After all, as a means of communication, personal opinion is inevitably too biased, and it must be inadequate, and there is a inevitable error. The purpose of writing this article is to promote and make progress together by mutual exchanges. ORA-01650: Unable to Extendback Segment Name By Num IntablesPACE NAME Cause: The above Oracle error is caused by insufficient rollback segment table space, which is also the most common Oracle error message for Oracle data administrators. When the user is doing a very large data operation, the existing return segment is low, which makes the above-described error in the split segment table space that can be allocated and cannot be assigned. Solution: Use the "Alter TableSpace TableSpace_name Add DataFile FileName Size_OF_FILE" command to add table space to the specified data, and can add one or more tablespaces depending on the specific case. Of course, this is related to the bare disk device on your host. If your host's bare disk device has no extra usage space, it is recommended that you don't intend to increase the size of the split table space, you can use the following statement first query first How much is the remaining TableSpace space: select user_name, SQL_Text from V $ Open_CURSOR WHERE User_name = ''; if the extra space is more, you can properly append a large returning segment to the table space, thereby avoiding the above mistake. You can also use the following statement to detect the competitive situation of Rollback Segment: SELECT CLAVS, Count From V $ WaitStat WHERE CALSS IN ('System undo header', 'undo header', 'undo block'); And SELECT SUM (Value) from V $ sysstat where name in ('CONSISTENTS'); if any Class in Count / SUM (Value) is greater than 1%, you should consider adding Rollback Segment. Corresponding English as follows: Cause: Failed to allocate extent from the rollback segment in tablespaceAction: Use the ALTER TABLESPACE ADD DATAFILE statement to add one or more files to the specified tablespace.ORA-01652: unable to extend temp segment by num in tablespace name Cause: Oracle Temporary Section Table space is insufficient, because Oracle always tries to allocate continuous space, one but not enough can allocate space or allocation does not continuously appear. Workaround: We know that because Oracle uses the table space as a logical structure-unit, the physical structure of the table space is data file, the data file is physically created on the disk, and all objects of the table space also exist on the disk, in order to give the watch space. Increase space, you must add data files.

First look at the available space of the specified table space, use the view sys.dba_free_space, each record in the view represents the fragmentation of the available space: SQL> SELECT FILE_ID, BLOCK_ID, Blocks, Bytes from sys.dba_free_space where tablespace_name = '' The returned information can initially determine the maximum block of the available space, look at whether it is less than the size mentioned in the error message, then check the default tablespace parameters: SQL> SELECT INITIAL_EXTENT, NEXT_EXTENT, MIN_EXTENTS, PCT_INCREASE from sys.dba_tablespaces WHERE TABLESPACE_NAME = Name; modify the default stored value of the episode table space by the following SQL command: SQL> ALTER TABLESPACE NAME DEFAULT Storage (Initial XXX NEXT YYY); Adding the size of the default value is possible to resolve the error problem You can also solve this problem by modifying the user's temporary table space size: SQL> ALTER USER Username Temporary TableSpace New_Tablespace_Name; Using the alter tableSpace command, one but completed, the added space can be used, no need to exit the database or take the table space Machine, but pay attention to that once the data file is added, it cannot be deleted again. To delete, you will delete the table space. A given example is as follows: ORA-1652: unable to extend temp segment by 207381 in tablespace TEMPSPACE corresponding English as follows: Cause: Failed to allocate extent for temp segment in tablespaceAction: Use the ALTER TABLESPACE ADD DATAFILE statement to add one or more files to The Specified TableSpace Or Create The Object In Another TableSpace.

ORA-01578: Oracle Data Block Corrupted (File # Num, Block # NUM) Cause: When Oracle accesses a block of data, due to the I / O error of the hardware; 2, the I / O error or buffer problem of the operating system 3, memory or paging problem; 4, Oracle attempts to access a system block failed; 5, a data file part overflowing a logic bad block or physical disadvantage, then The error will be reported to ORA-01578. Solution: Since Oracle is only wrong when accessing a problematic data file, the error time may be better than the actual error, if ORA-01578 error message prompt data bad block points to the user's own The data file is resolved by the following method: If there is an index with the bad blocks that are isolated from the SQL statement below, simply rebuild the index. SQL> SELECT OWNER, segment_name, segment_type from dba_extents where file_id = and Between Block_ID and block_id blocks-1; ( and ) The file number and block number of the bad blocks reported by ORA-01578 respectively) If the bad block appears on the table, first use the following statement Whether it is a permanent bad block (it is recommended to perform more than one or two, which helps identify data bad blocks is permanent (physical bad block on the hard disk) or random (memory or hardware error)): SQL> Analyze Table Validate Structure Cascade; After executing this command, the following results may occur: ORA-01578: With the same parameters as the original error message, for permanent physical or logic bad blocks; there are different error messages Parameters may be related to memory, Page Space, and I / O devices. If the user has the latest backup of this table, it is best to use this backup to restore this table, or use Event 10231 to remove the data other than the bad block: <1>. Turn off the database <2>. Edit INIT . ORA file, join: Event = "10231 Trace Name Context Forever, Level 10" <3>. Create a temporary table: SQL> CREATE TABLE ERRORTEMP AS SELECT * FROM ERROR; (Error is a watch table Name) <5>. Delete the Event from the init .RA file and restart the database <6> .rename bad table, put the temporary table rename into a bad table name <7>. Create the INDEX on the table, etc. If ORA-01578 error message is prompted that the data is bad block pointing to the data dictionary or a rollback segment, you should immediately contact Oracle, and discuss a good solution. The solution to this is just a relatively common, some more specific solutions can check the Oracle's troubleshooting manual, there is a method of using the RowID method to take out the data other than the bad block, this is not introduced.

Corresponding English as follows: Cause: The given data block was corrupted, probably due to program errorsAction: Try to restore the segment containing the given data block, This may involve dropping the segment and recreating it, If there is a trace file, report the Messages Recorded In It to Customer Support.ra-01628: Max # of Extents Num Reached For Rollback Segment Num Cause: This error is typically a rollback segment and a table space already reached the limit of the maxextents parameter setting. It is important to note that this maxExtents is not the hardware limit of the returning segment or table space, and the hardware limit depends on the value of the db_block_size parameter specified in the init.ora file when the database is created. Workaround: Use SQL Commands ALTER TABLESPACE ... Storage (MAXEXTENTS XXXX) to increase maxExtents, where the "xxxx" value must be greater than the value referred to in the error message, but it is not greater than the value of Largest MaxExtent, if LargexExtent Value is reached, resolved The way is to recreate a larger range size, use the export tool with options, which is available, if the table space has available space, first make a backup to the table, change its name with alter tablespace tablespace_name, then load the table Back to the database. To view the place where its error occurs, if you appear on the roll or index, you must delete and rebuild it. If you appear in the temporary table space, you can resolve this problem. A given example is as follows: ORA-1628: max # extents 50 reached for rollback segment RBS_1 corresponding English as follows: Cause: An attempt was made to extend a rollback segment that already has reached its maximum size or space could not be allocated in the data dictionary to contain the definition of the object.Action: If possible, increase the value of either the MAXEXTENTS or PCTINCREASE initialization parameters or find the data dictionary table lacking space and alter the storage parameters, as described in the Oracle8 Server Administrator's Guide.

ORA-00600: Internal Error Code, Arguments: [Num], [?], [?], [?], [?] Cause: This error is usually an internal error of Oracle, which is useful for OSS and Oracle development. ORA-600 errors often accompany the status dump of the file (system status and process status), the system status store will include information of the current object held by Oracle RDBMS, and the process status dump will display objects held by special processes. When the process meets a wrong condition, it is often because some information taken from the one of its holding, if we know the blocks held by these error processes, it is easy to track the source of the problem. Workaround: In general, this error is unable to solve. Only from improving the system itself to solve this internal problem, if the hardware device, adjust system performance, use OPS (of course OPS speaks in a sense and Not a good solution), etc. The first variable of ORA-600 errors is used to mark the wrong position in the code (the first variable of each portion in the code is different), from the second to the fifth variable display additional information, tell the OSS code Where there is a mistake.

An error example is as follows: ORA-00600: Internal Error Code, Arguments: [1237], [], [], [], [], [], [], [] The corresponding English is as follows: Cause: this is a catchall internal error message for Oracle program exceptions.It indicates that a process has met a low-level, unexpected condition.Various causes of this message include: Time-outs (timeout) file corruption (too old file) Failed data checks in memory (RAM Retrieval failure) Hardware, Memory, OR I / O Errors (hardware, memory, or disk error) Incorrectly Restored Files ORA-03113: End-of-file on Communication Channel Cause: Communication is not ending, thus Causes the communication channel to stop the solution: 1>. Check if there is a service process is not normal to crash, you can know from Alert.log 2>. Check if SQL * NET DRIVER is connected to Oracle executable 3>. Check if the server network is normal. If the network is not accepted or unstable, etc. 4>. Check if there are two nodes of the same name on the same online. Check if there is a repetitive IP address on the same online as follows: cause: an undepected end-of-file WAS processed on the communication channel.The problem could not be handled by the Net8, two task, software.This message could occur if the shadow two-task process associated with a Net8 connect has terminated abnormally, or if there is a physical failure of the Interprocess Communication Vehicle, That IS, The Network Or Server MA chine went down.Action: If this message occurs during a commection attempt, check the setup files for the appropriate Net8 driver and confirm Net8 software is correctly installed on the server.If the message occurs after a connection is well established, and the error is not due to a physical failure, check if a trace file was generated on the server at failure time.Existence of a trace file may suggest an Oracle internal error that requires the assistance of customer support.ORA-00942: table or view does not exist Cause: This is due to the loaded table or view does not exist, mostly catexp.sql has not yet run, unable to execute the export view, if catexp.sql has run,

It may be a version error. Workaround: Some views shared by Import and Export are loaded by running catexp.sql (they have the same view), and do not generate separate catexp.sql, thus causing the view and the export code as sync, it is difficult to keep each other. Between compatibility, users must establish their own Export apps, thereby avoiding errors of ORA-00942. The corresponding English is as follows:

Cause: The table or view entered does not exist, a synonym that is jnot allowed here was used, or a view was referenced where a table is required.Existing user tables and views can be listed by querying the data dictionary.Certain privileges may required to access the table.If an application returned this message, the table the application tried to access does not exist in the database, or the application does not have access to it.Action: Check each of the following: The spelling of the table or view name.That a view is not specified where a table is requiredThat an existing table or view name exists.Contact the database administrator if the table needs to be created or if user or application priviledes are required to access the table.Also, if attempting to access a table or view in another schema, make certain thecorrect schema is referenced and that access to the object is granted.ORA-01598: rollback segment "name" is not onlineCause: The rollback segment was taken offline either manually or by SMON.Action: Check the status of the rollback segment in DBA_ROLLBACK_SEGS.ORA-1636: rollback segment "name" is already onlineCause: A rollback segment can only be used by one instance and an instance is trying to bring a rollback segment online that Is already in use.action:

Check that the values ​​set in the initialization parameter file for parameters ROLLBACK_SEGMENTS, ROLLBACK_SEGMENT_INITIAL, and ROLLBACK_SEGMENT_COUNT are correctly set for the instance whiththe problem, Also check that the instance is using the correct initialization parameter file.Make sure you are not confused about the difference between Private and public rollback segments.see the Oracle8 Server Administrator's Guide for More Information About Using Rollback Segments in Paraller Mode. These errors are all common problems when using the rollback segment, and ORA-01598 indicates the current repayment segment. The status is "not online", can not be used, change it to "Online" status; ORA-01636 indicates that the current rolling segment is already "Online" status, you can use it directly, no need to set it again. ORA-1636 SIGNALLED DURING: ALTER ROLLBACK Segment RB00 Online We may also encounter the following problems: a phenomenon of "Needs Recovery" statistics, which is due to Oracle Retreat No Submit It is caused by failure when things. Usually, a DataFile or TableSpace is a state in OFFLINE or a UNDO target is destroyed or Rollback Segment is destroyed. The solution is to set all the tablespace and datafile to the ONLINE state. If you don't solve it, do the following work: 1>. Add Event = "10015 Trace Name Context Forever Lever 10" in INITSID.ORA; 2> .shutdown The database is then restarted; 3>. Under $ oracle_home / rdbms / log, find the trace file generated when Startup; 4>. In the trace file, find the following information "Error Recovery TX (#, #) Object #"; 5> According to Object # (same as Object_ID in the sys.dba_objects table), the name of the object is isolated in the sys.dba_objects table; 6>. Object Drop dropped; 7>. In the init.ora file, the Rollback Segment will be Play back in the Rollback_SEGMENTS parameter, delete the event; 8> .shutdown database and restart. The problem with "Needs Recovery" at this time should be completely solved, otherwise the Rollback Segment is destroyed. ORA-01688: UNABLE TO EXTEND TABLE NAME.NAME Partition Name By Num in TableSpace Name Generative Cause: The specified TableSpace space has been occupied and cannot be expanded.

转载请注明原文地址:https://www.9cbs.com/read-34665.html

New Post(0)