成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

Oracle縮表空間的完整解決實例

瀏覽:164日期:2023-03-12 15:25:27
目錄
  • 備注:
  • 一. 需求
  • 二. 解決方案
    • 2.1 清理過期數據
    • 2.2 收縮表空間
    • 2.3 清理表碎片
    • 2.4 直接把相關的表drop掉
    • 2.5 把該表空間下其它的表移出此表空間
  • 總結

    備注:

    Oracle 11.2.0.4

    一. 需求

    近期有一個日志庫,占用了比較多的空間,需要將歷史的清理,然后收縮空間。

    如下圖所示,4T的空間已經差不多用完。

    二. 解決方案

    首先想到的是清理掉超過半年的數據,然后resize 表空間。

    2.1 清理過期數據

    因為業務的表是 tablename_yearmonth格式,例如 log_202204,每個月一個表,所以直接進行truncate即可。

    找到大表:

    select t.segment_name,t.BYTES/1024/1024/1024 GB,t.segment_typefrom user_segments twhere t.segment_type in ("TABLE","TABLE PARTITION")order by nvl(t.BYTES/1024/1024/1024,0) desc;

    truncate 大表:

    select  "truncate table "|| t.TABLE_NAME ||";"  from user_tables t where t.TABLE_NAME  like "LOG%";

    2.2 收縮表空間

    select a.tablespace_name,a.file_name,a.totalsize as totalsize_MB,b.freesize as freesize_MB,"ALTER DATABASE DATAFILE """ || a.file_name || """ RESIZE " ||round((a.totalsize - b.freesize) + 200) || "M;" as "alter datafile"from (select a.file_name,a.file_id,a.tablespace_name,a.bytes / 1024 / 1024 as totalsizefrom dba_data_files a) a,(select b.tablespace_name,b.file_id,sum(b.bytes / 1024 / 1024) as freesizefrom dba_free_space bgroup by b.tablespace_name, b.file_id) bwhere a.file_id = b.file_idand b.freesize > 100and a.tablespace_name  in ("TBS_LOG_DATA")order by a.tablespace_name

    將上一步的 alter datafile語句拷貝出來執行:

    有部分報錯:

    ORA-03297: file contains used data beyond requested RESIZE value

    2.3 清理表碎片

    因為我使用的是truncate,理論上不會受高水位的影響,在網上找了幾個博客,也是說要降低表的高水位,清理表碎片。

    select "alter table "||t.TABLE_NAME||" enable row movement;",       "alter table "||t.TABLE_NAME||" shrink space cascade;"  from user_tables t where t.TABLE_NAME like "LOG%";

    清理完碎片之后,重新執行,依舊報錯。

    2.4 直接把相關的表drop掉

    select  "drop table "|| t.TABLE_NAME ||"purge;"  from user_tables t where t.TABLE_NAME  like "LOG%";

    drop掉表之后,重新執行,依舊報錯。

    2.5 把該表空間下其它的表移出此表空間

    萬能的itpub上有個博客:

    Truncate table 或者 drop table 收縮數據文件,經常遇到ORA-03297: file contains used data beyond requested RESIZE value 查詢dba_free_space 也有空閑空間。經過查詢MOS(Doc ID 1029252.6)得知

    If you have a large extent in the middle of a datafile, and some object taking up room at the end of the datafile, you can use the query FINDEXT.SQL below to find this object. If you export this object, then drop it, you should then free up contiguous space at the end of your datafile so you will be able to resize it smaller.

    Make sure you leave enough room in the datafile for importing the object back into the tablespace.

    意思是說如果空閑的extent如果在文件的中間,此時無法進行resize ,必須把尾部的object drop 然后重建 再resize datafile。以下是本人做的測試;

    ?[oracle@bogon ~]$ sqlplus / as sysdbaSQL*Plus: Release 10.2.0.1.0 - Production on Wed Jul 31 11:10:41 2013Copyright (c) 1982, 2005, Oracle. ?All rights reserved.Connected to:Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit ProductionWith the Partitioning, OLAP and Data Mining optionsSQL> create tablespace test2 datafile "/u01/app/oracle/oradata/orcl/test2.dbf" size 10M autoextend on next 1M;Tablespace created.SQL> create table tab1 tablespace test2 as select * from dba_objects;Table created.SQL> select file#,name,bytes/1024/1024 bytes from v$datafile where name like "%test2%";FILE# NAME ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? BYTES----- ------------------------------------------------------------ -----? ?23 /u01/app/oracle/oradata/orcl/test2.dbf ? ? ? ? ? ? ? ? ? ? ? ? ?11SQL> create table tab2 tablespace test2 as select * from dba_objects;Table created.SQL> select file#,name,bytes/1024/1024 bytes from v$datafile where name like "%test2%";FILE# NAME ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? BYTES----- ------------------------------------------------------------ -----? ?23 /u01/app/oracle/oradata/orcl/test2.dbf ? ? ? ? ? ? ? ? ? ? ? ? ?21SQL> select SEGMENT_NAME,FILE_ID,EXTENT_ID,BLOCK_ID,blocks from dba_extents where file_id=23 order by BLOCK_ID;SEGMENT_NA ? ?FILE_ID ?EXTENT_ID ? BLOCK_ID ? ? BLOCKS---------- ---------- ---------- ---------- ----------TAB1 ? ? ? ? ? ? ? 23 ? ? ? ? ?0 ? ? ? ? ?9 ? ? ? ? ?8TAB1 ? ? ? ? ? ? ? 23 ? ? ? ? ?1 ? ? ? ? 17 ? ? ? ? ?8TAB1 ? ? ? ? ? ? ? 23 ? ? ? ? ?2 ? ? ? ? 25 ? ? ? ? ?8TAB1 ? ? ? ? ? ? ? 23 ? ? ? ? ?3 ? ? ? ? 33 ? ? ? ? ?8TAB1 ? ? ? ? ? ? ? 23 ? ? ? ? ?4 ? ? ? ? 41 ? ? ? ? ?8TAB1 ? ? ? ? ? ? ? 23 ? ? ? ? ?5 ? ? ? ? 49 ? ? ? ? ?8TAB1 ? ? ? ? ? ? ? 23 ? ? ? ? ?6 ? ? ? ? 57 ? ? ? ? ?8TAB1 ? ? ? ? ? ? ? 23 ? ? ? ? ?7 ? ? ? ? 65 ? ? ? ? ?8TAB1 ? ? ? ? ? ? ? 23 ? ? ? ? ?8 ? ? ? ? 73 ? ? ? ? ?8TAB1 ? ? ? ? ? ? ? 23 ? ? ? ? ?9 ? ? ? ? 81 ? ? ? ? ?8TAB1 ? ? ? ? ? ? ? 23 ? ? ? ? 10 ? ? ? ? 89 ? ? ? ? ?8SEGMENT_NA ? ?FILE_ID ?EXTENT_ID ? BLOCK_ID ? ? BLOCKS---------- ---------- ---------- ---------- ----------TAB1 ? ? ? ? ? ? ? 23 ? ? ? ? 11 ? ? ? ? 97 ? ? ? ? ?8TAB1 ? ? ? ? ? ? ? 23 ? ? ? ? 12 ? ? ? ?105 ? ? ? ? ?8TAB1 ? ? ? ? ? ? ? 23 ? ? ? ? 13 ? ? ? ?113 ? ? ? ? ?8TAB1 ? ? ? ? ? ? ? 23 ? ? ? ? 14 ? ? ? ?121 ? ? ? ? ?8TAB1 ? ? ? ? ? ? ? 23 ? ? ? ? 15 ? ? ? ?129 ? ? ? ? ?8TAB1 ? ? ? ? ? ? ? 23 ? ? ? ? 16 ? ? ? ?137 ? ? ? ?128TAB1 ? ? ? ? ? ? ? 23 ? ? ? ? 17 ? ? ? ?265 ? ? ? ?128TAB1 ? ? ? ? ? ? ? 23 ? ? ? ? 18 ? ? ? ?393 ? ? ? ?128TAB1 ? ? ? ? ? ? ? 23 ? ? ? ? 19 ? ? ? ?521 ? ? ? ?128TAB1 ? ? ? ? ? ? ? 23 ? ? ? ? 20 ? ? ? ?649 ? ? ? ?128TAB1 ? ? ? ? ? ? ? 23 ? ? ? ? 21 ? ? ? ?777 ? ? ? ?128SEGMENT_NA ? ?FILE_ID ?EXTENT_ID ? BLOCK_ID ? ? BLOCKS---------- ---------- ---------- ---------- ----------TAB1 ? ? ? ? ? ? ? 23 ? ? ? ? 22 ? ? ? ?905 ? ? ? ?128TAB1 ? ? ? ? ? ? ? 23 ? ? ? ? 23 ? ? ? 1033 ? ? ? ?128TAB1 ? ? ? ? ? ? ? 23 ? ? ? ? 24 ? ? ? 1161 ? ? ? ?128TAB2 ? ? ? ? ? ? ? 23 ? ? ? ? ?0 ? ? ? 1289 ? ? ? ? ?8TAB2 ? ? ? ? ? ? ? 23 ? ? ? ? ?1 ? ? ? 1297 ? ? ? ? ?8TAB2 ? ? ? ? ? ? ? 23 ? ? ? ? ?2 ? ? ? 1305 ? ? ? ? ?8TAB2 ? ? ? ? ? ? ? 23 ? ? ? ? ?3 ? ? ? 1313 ? ? ? ? ?8TAB2 ? ? ? ? ? ? ? 23 ? ? ? ? ?4 ? ? ? 1321 ? ? ? ? ?8TAB2 ? ? ? ? ? ? ? 23 ? ? ? ? ?5 ? ? ? 1329 ? ? ? ? ?8TAB2 ? ? ? ? ? ? ? 23 ? ? ? ? ?6 ? ? ? 1337 ? ? ? ? ?8TAB2 ? ? ? ? ? ? ? 23 ? ? ? ? ?7 ? ? ? 1345 ? ? ? ? ?8SEGMENT_NA ? ?FILE_ID ?EXTENT_ID ? BLOCK_ID ? ? BLOCKS---------- ---------- ---------- ---------- ----------TAB2 ? ? ? ? ? ? ? 23 ? ? ? ? ?8 ? ? ? 1353 ? ? ? ? ?8TAB2 ? ? ? ? ? ? ? 23 ? ? ? ? ?9 ? ? ? 1361 ? ? ? ? ?8TAB2 ? ? ? ? ? ? ? 23 ? ? ? ? 10 ? ? ? 1369 ? ? ? ? ?8TAB2 ? ? ? ? ? ? ? 23 ? ? ? ? 11 ? ? ? 1377 ? ? ? ? ?8TAB2 ? ? ? ? ? ? ? 23 ? ? ? ? 12 ? ? ? 1385 ? ? ? ? ?8TAB2 ? ? ? ? ? ? ? 23 ? ? ? ? 13 ? ? ? 1393 ? ? ? ? ?8TAB2 ? ? ? ? ? ? ? 23 ? ? ? ? 14 ? ? ? 1401 ? ? ? ? ?8TAB2 ? ? ? ? ? ? ? 23 ? ? ? ? 15 ? ? ? 1409 ? ? ? ? ?8TAB2 ? ? ? ? ? ? ? 23 ? ? ? ? 16 ? ? ? 1417 ? ? ? ?128TAB2 ? ? ? ? ? ? ? 23 ? ? ? ? 17 ? ? ? 1545 ? ? ? ?128TAB2 ? ? ? ? ? ? ? 23 ? ? ? ? 18 ? ? ? 1673 ? ? ? ?128SEGMENT_NA ? ?FILE_ID ?EXTENT_ID ? BLOCK_ID ? ? BLOCKS---------- ---------- ---------- ---------- ----------TAB2 ? ? ? ? ? ? ? 23 ? ? ? ? 19 ? ? ? 1801 ? ? ? ?128TAB2 ? ? ? ? ? ? ? 23 ? ? ? ? 20 ? ? ? 1929 ? ? ? ?128TAB2 ? ? ? ? ? ? ? 23 ? ? ? ? 21 ? ? ? 2057 ? ? ? ?128TAB2 ? ? ? ? ? ? ? 23 ? ? ? ? 22 ? ? ? 2185 ? ? ? ?128TAB2 ? ? ? ? ? ? ? 23 ? ? ? ? 23 ? ? ? 2313 ? ? ? ?128TAB2 ? ? ? ? ? ? ? 23 ? ? ? ? 24 ? ? ? 2441 ? ? ? ?128

    50 rows selected.

    Block_id 是連續的

    SQL> truncate table tab1? 2 ?;Table truncated.SQL> select * from dba_free_space where file_id=23;TABLESPACE_NAME ? ? ? ? FILE_ID ? BLOCK_ID ? ? ?BYTES ? ? BLOCKS RELATIVE_FNO-------------------- ---------- ---------- ---------- ---------- ------------TEST2 ? ? ? ? ? ? ? ? ? ? ? ?23 ? ? ? ? 17 ########## ? ? ? 1272 ? ? ? ? ? 23TEST2 ? ? ? ? ? ? ? ? ? ? ? ?23 ? ? ? 2569 ########## ? ? ? ?120 ? ? ? ? ? 23

    有原來tab1 的free blocks 1272

    SQL> alter database datafile "/u01/app/oracle/oradata/orcl/test2.dbf" resize 12M;alter database datafile "/u01/app/oracle/oradata/orcl/test2.dbf" resize 12M*ERROR at line 1:ORA-03297: file contains used data beyond requested RESIZE value

    無法進行resize

    下面把tab1 drop 再測試

    SQL> drop table tab1 purge;Table dropped.SQL> alter database datafile "/u01/app/oracle/oradata/orcl/test2.dbf" resize 12M;alter database datafile "/u01/app/oracle/oradata/orcl/test2.dbf" resize 12M*ERROR at line 1:ORA-03297: file contains used data beyond requested RESIZE value

    依然報錯

    然后truncate tab2 再進行測試

    SQL> truncate table tab2;Table truncated.SQL> select * from dba_free_space where file_id=23;TABLESPACE_NAME ? ? ? ? FILE_ID ? BLOCK_ID ? ? ?BYTES ? ? BLOCKS RELATIVE_FNO-------------------- ---------- ---------- ---------- ---------- ------------TEST2 ? ? ? ? ? ? ? ? ? ? ? ?23 ? ? ? ? ?9 ########## ? ? ? 1280 ? ? ? ? ? 23TEST2 ? ? ? ? ? ? ? ? ? ? ? ?23 ? ? ? 1297 ########## ? ? ? 1392 ? ? ? ? ? 23SQL> alter database datafile "/u01/app/oracle/oradata/orcl/test2.dbf" resize 12M;Database altered.SQL> alter database datafile "/u01/app/oracle/oradata/orcl/test2.dbf" resize 6M;alter database datafile "/u01/app/oracle/oradata/orcl/test2.dbf" resize 6M*ERROR at line 1:ORA-03297: file contains used data beyond requested RESIZE value

    此時只能收縮 tab2 的空間 但是不能收縮 tab1的空間

    然后再drop tab2

    SQL> drop table tab2 purge? 2 ?;Table dropped.SQL> alter database datafile "/u01/app/oracle/oradata/orcl/test2.dbf" resize 6M;Database altered.SQL> alter database datafile "/u01/app/oracle/oradata/orcl/test2.dbf" resize 1M;Database altered.

    可以收縮tab1的空間

    note:

    收縮數據文件和兩個因素有關

    1 降低高水位

    2 free extent在datafile 的尾部

    本篇文章直接解釋了第二個

    如果空閑的extent如果在文件的中間,此時無法進行resize ,必須把尾部的object drop 然后重建 再resize datafile。

    也就是說同時期該用戶下其它表的寫入,也在這個數據文件下,那么就不能進行resize。

    把其它表移動到users表空間:

    select "alter index "||index_NAME||" rebuild tablespace users;" from user_indexes where TABLE_NAME not like "LOG_%";select "alter table "||TABLE_NAME||" move tablespace users;" from user_tables where TABLE_NAME not like "LOG_%";

    再次運行壓縮空間,成功

    2.6 查看壓縮的空間

    可以看到一下子多出了2.1T 的空間

    收縮空間運行速度還不錯,50多個數據文件,幾分鐘就壓縮完成。

    總結

    到此這篇關于Oracle縮表空間的文章就介紹到這了,更多相關Oracle縮表空間內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!

    標簽: Oracle
    成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
    天天影视网天天综合色在线播放| 99视频超级精品| 处破女av一区二区| 欧美日韩国产精选| 麻豆精品视频在线观看| 午夜影院日韩| 亚洲精品videosex极品| 午夜久久美女| 国产欧美日韩一区二区三区在线观看| 成人av午夜影院| 日韩欧美国产成人一区二区| 国产成人午夜视频| 制服.丝袜.亚洲.另类.中文| 麻豆成人免费电影| 久久一区激情| 午夜精品福利久久久| 亚洲尤物精选| 五月天中文字幕一区二区| 另类亚洲自拍| 日韩电影免费在线观看网站| 色美美综合视频| 奇米影视7777精品一区二区| 色老汉av一区二区三区| 美女mm1313爽爽久久久蜜臀| 欧洲国内综合视频| 奇米影视一区二区三区| 美女久久网站| 婷婷成人综合网| 在线观看免费亚洲| 国产自产v一区二区三区c| 91精品国产综合久久香蕉麻豆| 国产精品一区在线观看乱码| 日韩欧美的一区二区| 99精品视频中文字幕| 久久久亚洲精品一区二区三区| 91玉足脚交白嫩脚丫在线播放| 国产日韩欧美精品一区| 欧美视频不卡| 亚洲卡通动漫在线| 久久久99爱| 日本欧美加勒比视频| 欧美日韩国产区一| 丰满白嫩尤物一区二区| 久久精品一区蜜桃臀影院| 狠狠色狠狠色综合人人| 一区二区视频在线看| 亚洲在线视频| 麻豆精品精品国产自在97香蕉| 欧美日韩视频在线第一区| 国产成人小视频| 国产日产欧产精品推荐色| 日韩天堂av| 爽爽淫人综合网网站| 欧美体内she精视频| 国产成人日日夜夜| 中文字幕欧美激情| 国产日韩精品视频一区二区三区| 亚洲成人激情自拍| 91麻豆精品国产自产在线观看一区 | 亚洲精品视频自拍| 香蕉久久国产| 国产一区二区三区免费在线观看| 精品国精品自拍自在线| 国产精品v亚洲精品v日韩精品| 一区二区三区在线免费| 欧美在线小视频| www.av精品| 一区二区三区欧美| 欧美日韩一区二区三区不卡 | 亚洲特黄一级片| 在线观看不卡视频| 成人高清免费观看| 亚洲男同性视频| 欧美私模裸体表演在线观看| 9i在线看片成人免费| 亚洲色图在线看| 91国产丝袜在线播放| 成人免费视频视频| 国产精品美女久久久久aⅴ| 亚洲一区三区电影在线观看| 国产美女av一区二区三区| 国产欧美精品在线观看| 久久国产精品免费一区| 国产99久久久国产精品潘金| 亚洲青青青在线视频| 欧美怡红院视频| 91视频一区二区三区| 亚洲无人区一区| 日韩一区二区三区视频在线| 国产主播一区| 男人的天堂亚洲一区| 精品国产乱码久久久久久浪潮 | 亚洲一区二区视频| 欧美成人a在线| 亚洲欧美日韩专区| aaa国产一区| 日本最新不卡在线| 久久精品亚洲乱码伦伦中文 | 久久精品一区二区三区不卡| 久久蜜桃精品| 欧美一区亚洲| 美女脱光内衣内裤视频久久网站| 国产目拍亚洲精品99久久精品| 色婷婷久久久综合中文字幕| 欧美精品国产一区二区| 麻豆91免费看| 国产精品国产自产拍高清av王其 | 中文字幕第一页久久| 欧美优质美女网站| 精品不卡一区二区三区| 久久av资源网| 中文字幕一区二区在线播放| 91精品国产一区二区三区蜜臀 | 欧美久久在线| 精久久久久久久久久久| 亚洲欧美综合网| 日韩午夜av电影| 美日韩精品免费| 亚洲图片欧洲图片日韩av| 丰满少妇久久久久久久| 日本亚洲电影天堂| 1024成人网| 精品欧美一区二区三区精品久久| 在线视频亚洲一区| 99综合在线| 97超碰欧美中文字幕| 国产麻豆一精品一av一免费 | 欧美aaaaa成人免费观看视频| 亚洲色图一区二区| 精品毛片乱码1区2区3区 | 亚洲国产高清在线| 88在线观看91蜜桃国自产| 美女国产精品| 亚洲黄色一区| 欧美国产三区| 国产成人在线看| 日本视频中文字幕一区二区三区| 国产精品久久国产精麻豆99网站| 日韩欧美在线影院| 欧美性大战久久| 免费永久网站黄欧美| 亚洲人体一区| 欧美国产高清| 成人精品视频.| 国产毛片精品视频| 美国毛片一区二区| 亚洲国产欧美一区二区三区丁香婷| 欧美韩国一区二区| 欧美成人vr18sexvr| 欧美精选在线播放| 色八戒一区二区三区| 男人的天堂亚洲| aⅴ色国产欧美| 在线日韩av| 国产精品二区在线观看| 99国产精品久久久久久久久久| 国产伦精一区二区三区| 久久国内精品自在自线400部| 偷拍日韩校园综合在线| 有码一区二区三区| 亚洲欧洲日韩一区二区三区| 中文字幕精品一区二区三区精品| 久久久蜜臀国产一区二区| 欧美成人伊人久久综合网| 欧美情侣在线播放| 欧美视频在线一区二区三区| 色老汉av一区二区三区| 久久国产主播精品| 国产精品免费看| 亚洲在线网站| 久久福利影视| 欧美亚洲免费| 久久久夜精品| 色狠狠一区二区三区香蕉| 老司机免费视频久久| 久久男女视频| 老色鬼久久亚洲一区二区| 久久综合一区| 91黄视频在线观看| 欧美丝袜自拍制服另类| 欧美色视频在线| 欧美日韩激情一区二区三区| 日本丰满少妇一区二区三区| 91国产成人在线| 欧美午夜不卡在线观看免费| 欧美日韩国产综合视频在线观看 | 韩国毛片一区二区三区| 国产综合成人久久大片91| 国产一区欧美一区| 国产真实乱偷精品视频免| 国产精品1区2区| 成人激情午夜影院| 91网上在线视频| 欧美特黄一区| 亚洲高清123| 久久高清国产| 欧美四级电影网| 欧美一区二区三区四区高清| 日韩女同互慰一区二区| 久久综合一区二区|