Oracle checks table space usage and resolves full instance issues
This article brings you relevant knowledge about Oracle. The most common problem encountered in daily use of oralce is that the table space of oralce is full, the data cannot be written and an error is reported. The following is Let's take a look, I hope it will be helpful to everyone.
Recommended tutorial: "Oracle Video Tutorial"
1. Check the table space usage
1. View the database table space files:
--查看数据库表空间文件 select * from dba_data_files;
2. View the total capacity of all table spaces:
--查看所有表空间的总容量 select dba.TABLESPACE_NAME, sum(bytes)/1024/1024 as MB from dba_data_files dba group by dba.TABLESPACE_NAME;
3. View the database table space usage
--查看数据库表空间使用率 select total.tablespace_name,round(total.MB, 2) as Total_MB,round(total.MB - free.MB, 2) as Used_MB,round((1-free.MB / total.MB)* 100, 2) || '%' as Used_Pct from ( select tablespace_name, sum(bytes) /1024/1024 as MB from dba_free_space group by tablespace_name) free, (select tablespace_name, sum(bytes) / 1024 / 1024 as MB from dba_data_files group by tablespace_name) total where free.tablespace_name = total.tablespace_name order by used_pct desc;
4.1. View the table space Total size, usage, remaining space
--查看表空间总大小、使用率、剩余空间 select a.tablespace_name, total, free, total-free as used, substr(free/total * 100, 1, 5) as "FREE%", substr((total - free)/total * 100, 1, 5) as "USED%" from (select tablespace_name, sum(bytes)/1024/1024 as total from dba_data_files group by tablespace_name) a, (select tablespace_name, sum(bytes)/1024/1024 as free from dba_free_space group by tablespace_name) b where a.tablespace_name = b.tablespace_name order by a.tablespace_name
4.2. Check table space usage (including temp temporary table space)
--查看表空间使用率(包含临时表空间) select * from ( Select a.tablespace_name, (a.bytes- b.bytes) "表空间使用大小(BYTE)", a.bytes/(1024*1024*1024) "表空间大小(GB)", b.bytes/(1024*1024*1024) "表空间剩余大小(GB)", (a.bytes- b.bytes)/(1024*1024*1024) "表空间使用大小(GB)", to_char((1 - b.bytes/a.bytes)*100,'99.99999') || '%' "使用率" from (select tablespace_name, sum(bytes) bytes from dba_data_files group by tablespace_name) a, (select tablespace_name, sum(bytes) bytes from dba_free_space group by tablespace_name) b where a.tablespace_name = b.tablespace_name union all select c.tablespace_name, d.bytes_used "表空间使用大小(BYTE)", c.bytes/(1024*1024*1024) "表空间大小(GB)", (c.bytes-d.bytes_used)/(1024*1024*1024) "表空间剩余大小(GB)", d.bytes_used/(1024*1024*1024) "表空间使用大小(GB)", to_char(d.bytes_used*100/c.bytes,'99.99999') || '%' "使用率" from (select tablespace_name,sum(bytes) bytes from dba_temp_files group by tablespace_name) c, (select tablespace_name,sum(bytes_cached) bytes_used from v$temp_extent_pool group by tablespace_name) d where c.tablespace_name = d.tablespace_name ) order by tablespace_name
5. Check the space occupied by specific tables
--查看具体表的占用空间大小 select * from ( select t.tablespace_name,t.owner, t.segment_name, t.segment_type, sum(t.bytes / 1024 / 1024) mb from dba_segments t where t.segment_type='TABLE' group by t.tablespace_name,t.OWNER, t.segment_name, t.segment_type ) t order by t.mb desc
2. Expand the size or increase the table space file
1. Change the dbf data file allocation space size of the table space
alter database datafile ‘...\system_01.dbf' autoextend on; alter database datafile ‘...\system_01.dbf' resize 1024M;
2.1 Add a new data file to the table space (the table space is full 32G If it cannot be expanded, add the table space file)
alter tablespace SYSTEM add datafile '/****' size 1000m autoextend on next 100m;
2.2 If the new table space is a temp temporary table, an error will be reported:
0RA-03217: Invalid option to change TEMPORARY TABLESPACE
Solution: Change datafile to tempfile
alter tablespace TEMP01 add tempfile'/****' size 1000m autoextend on next 100m;
In response to the problem of full usage of temp temporary table space
The main purpose of temporary table space is to provide it when the database performs sorting operations, manages indexes, accesses views, etc. The temporary operation space will be automatically cleaned up by the system after the operation is completed, but sometimes we will encounter a situation where the temporary segment is not released and the TEMP table space is almost fully used;
causes the temporary table space to increase Large is mainly used in the following situations:
1. order by or group by (disc sort accounts for the main part);
2. Index creation and re-creation;
3. Distinct operation;
4. Union & intersect & minus sort-merge joins;
5. Analyze operation;
6. Some exceptions will also occur Causes a surge in TEMP.
Solution 1: Use the above method to add a table space file to temp
Solution 2: When the server resource space is limited, re-create a new temporary table space to replace the current table space
--1.查看当前的数据库默认表空间: select * from database_properties where property_name='DEFAULT_TEMP_TABLESPACE'; --2.创建新的临时表空间 create temporary tablespace TEMP01 tempfile '/home/temp01.dbf' size 31G; --3.更改默认临时表空间 alter database default temporary tablespace TEMP01; --4.删除原来的临时表空间 drop tablespace TEMP02 including contents and datafiles; --如果删除原来临时表空间报错ORA-60100:由于排序段,已阻止删除表空间... --(说明有语句正在使用原来的临时表空间,需要将其kill掉再删除,此语句多为排序的语句) --查询语句 Select se.username,se.sid,se.serial#,su.extents,su.blocks*to_number(rtrim(p.value))as Space, tablespace,segtype,sql_text from v$sort_usage su,v$parameter p,v$session se,v$sql s where p.name='db_block_size' and su.session_addr=se.saddr and s.hash_value=su.sqlhash and s.address=su.sqladdr order by se.username,se.sid; --删除对应的'sid,serial#' alter system kill session 'sid,serial#'
Attachment: Check whether the table space has the ability to automatically expand
--查看表空间是否具有自动扩展的能力 SELECT T.TABLESPACE_NAME,D.FILE_NAME, D.AUTOEXTENSIBLE,D.BYTES,D.MAXBYTES,D.STATUS FROM DBA_TABLESPACES T,DBA_DATA_FILES D WHERE T.TABLESPACE_NAME =D.TABLESPACE_NAME ORDER BY TABLESPACE_NAME,FILE_NAME;
Recommended tutorial: "Oracle Video Tutorial"
The above is the detailed content of Oracle checks table space usage and resolves full instance issues. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



To query the Oracle tablespace size, follow the following steps: Determine the tablespace name by running the query: SELECT tablespace_name FROM dba_tablespaces; Query the tablespace size by running the query: SELECT sum(bytes) AS total_size, sum(bytes_free) AS available_space, sum(bytes) - sum(bytes_free) AS used_space FROM dba_data_files WHERE tablespace_

There are three ways to view instance names in Oracle: use the "sqlplus" and "select instance_name from v$instance;" commands on the command line. Use the "show instance_name;" command in SQL*Plus. Check environment variables (ORACLE_SID on Linux) through the operating system's Task Manager, Oracle Enterprise Manager, or through the operating system.

Oracle View Encryption allows you to encrypt data in the view, thereby enhancing the security of sensitive information. The steps include: 1) creating the master encryption key (MEk); 2) creating an encrypted view, specifying the view and MEk to be encrypted; 3) authorizing users to access the encrypted view. How encrypted views work: When a user querys for an encrypted view, Oracle uses MEk to decrypt data, ensuring that only authorized users can access readable data.

Uninstall method for Oracle installation failure: Close Oracle service, delete Oracle program files and registry keys, uninstall Oracle environment variables, and restart the computer. If the uninstall fails, you can uninstall manually using the Oracle Universal Uninstall Tool.

Deleting all data in Oracle requires the following steps: 1. Establish a connection; 2. Disable foreign key constraints; 3. Delete table data; 4. Submit transactions; 5. Enable foreign key constraints (optional). Be sure to back up the database before execution to prevent data loss.

To create a user in Oracle, follow these steps: Create a new user using the CREATE USER statement. Grant the necessary permissions using the GRANT statement. Optional: Use the RESOURCE statement to set the quota. Configure other options such as default roles and temporary tablespaces.

The method to solve the Oracle cursor closure problem includes: explicitly closing the cursor using the CLOSE statement. Declare the cursor in the FOR UPDATE clause so that it automatically closes after the scope is ended. Declare the cursor in the USING clause so that it automatically closes when the associated PL/SQL variable is closed. Use exception handling to ensure that the cursor is closed in any exception situation. Use the connection pool to automatically close the cursor. Disable automatic submission and delay cursor closing.

Oracle Invalid numeric errors may be caused by data type mismatch, numeric overflow, data conversion errors, or data corruption. Troubleshooting steps include checking data types, detecting digital overflows, checking data conversions, checking data corruption, and exploring other possible solutions such as configuring the NLS_NUMERIC_CHARACTERS parameter and enabling data verification logging.
