oracle 分區表(子分區)收縮筆記


思路
1.首先移動子分區到別的表空間。
2.收縮數據文件。
3.再把子分區移回原表空間。

---------------------------------------------生成發送報告移動子分區語句---------------------------------------------

select 'alter table '||TABLE_NAME||' move subpartition '||SUBPARTITION_NAME||' tablespace SMART_NRRPSTA01;' from dba_tab_subpartitions
where table_name = 'S_T_RTNRP_STATUS'
AND PARTITION_NAME LIKE 'ST_RRPS_12%'
ORDER BY SUBPARTITION_NAME

select 'alter table '||TABLE_NAME||' move subpartition '||SUBPARTITION_NAME||' tablespace SMART_NSNRP01;' from dba_tab_subpartitions
where table_name = 'S_T_SEND_REPORT'
AND PARTITION_NAME LIKE 'ST_SNDRP_12%'
ORDER BY SUBPARTITION_NAME

--------------------------------------------生成返回報告移動子分區語句---------------------------------------------

select 'alter table '||TABLE_NAME||' move subpartition '||SUBPARTITION_NAME||' tablespace SMART;' from dba_tab_subpartitions
where table_name = 'S_T_RTNRP_STATUS'
AND PARTITION_NAME LIKE 'ST_RRPS_01%'
ORDER BY SUBPARTITION_NAME

select 'alter table '||TABLE_NAME||' move subpartition '||SUBPARTITION_NAME||' tablespace SMART_NRRPSTA01;' from dba_tab_subpartitions
where table_name = 'S_T_RTNRP_STATUS'
AND PARTITION_NAME LIKE 'ST_RRPS_01%'
ORDER BY SUBPARTITION_NAME

--------------------------------查看數據文件號---------------------------------------

select TABLESPACE_NAME,FILE_ID,FILE_NAME FROM DBA_DATA_FILES
WHERE TABLESPACE_NAME = 'SMART_NSNRP01'


select TABLESPACE_NAME,FILE_ID,FILE_NAME FROM DBA_DATA_FILES
WHERE TABLESPACE_NAME = 'SMART_NRRPSTA01'

--------------------------------查看數據塊最大id值---------------------------------

show parameter db_block_size 查看db_block_size的值

select TABLESPACE_NAME,file_id,max(block_id),max(block_id)*16/1024 from dba_extents where file_id in(99,100,101)
group by TABLESPACE_NAME,file_id

 

--------------------------------回收發送報告數據文件空間----------------------------------------
ALTER DATABASE DATAFILE '+DATA/db75/datafile/smart_nsnrp02_01.dbf' RESIZE 2000M;
ALTER DATABASE DATAFILE '+DATA/db75/datafile/smart_nsnrp02_02.dbf' RESIZE 2000M;
ALTER DATABASE DATAFILE '+DATA/db75/datafile/smart_nsnrp02_03.dbf' RESIZE 2000M;
ALTER DATABASE DATAFILE '+DATA/db75/datafile/smart_nsnrp02_04.dbf' RESIZE 2000M;
ALTER DATABASE DATAFILE '+DATA/db75/datafile/smart_nsnrp02_05.dbf' RESIZE 2000M;
ALTER DATABASE DATAFILE '+DATA/db75/datafile/smart_nsnrp02_06.dbf' RESIZE 2000M;
ALTER DATABASE DATAFILE '+DATA/db75/datafile/smart_nsnrp02_07.dbf' RESIZE 2000M;


--------------------------------回收返回報告數據文件空間----------------------------------------
ALTER DATABASE DATAFILE '+DATA/oracledata3/returnreport/smart_nrrpsta02_01.dbf' RESIZE 2000M;
ALTER DATABASE DATAFILE '+DATA/oracledata3/returnreport/smart_nrrpsta02_02.dbf' RESIZE 2000M;
ALTER DATABASE DATAFILE '+DATA/oracledata3/returnreport/smart_nrrpsta02_03.dbf' RESIZE 2000M;
ALTER DATABASE DATAFILE '+DATA/oracledata3/returnreport/smart_nrrpsta02_04.dbf' RESIZE 2000M;


--------------------------------查看磁盤組空間使用情況命令--------------------------------------
grid用戶執行

sqlplus / as sysasm

select group_number,name,total_mb,free_mb from v$asm_diskgroup;

 

select 'alter table '||TABLE_NAME||' drop partition '||PARTITION_NAME||';' from dba_tab_partitions
where table_name = 'S_OPERATELOG'
AND PARTITION_NAME LIKE 'OPLOG_1701%'
ORDER BY PARTITION_NAME


select 'alter table '||TABLE_NAME||' drop partition '||PARTITION_NAME||'tablespace SMART;' from dba_tab_partitions
where table_name = 'S_SENDBACKUPQUEUE'
AND PARTITION_NAME LIKE 'SENDBAK_1701%'
ORDER BY PARTITION_NAME


------------------------------------------------扣費日志------------------------------------
alter database datafile '+DATA/oracledata1/smart_oplog01_01.dbf' resize 1024M;
alter database datafile '+DATA/oracledata1/smart_oplog01_02.dbf' resize 1024M;
alter database datafile '+DATA/oracledata1/smart_oplog01_03.dbf' resize 1024M;
alter database datafile '+DATA/oracledata1/smart_oplog01_04.dbf' resize 1024M;
alter database datafile '+DATA/oracledata1/smart_oplog01_05.dbf' resize 1024M;
alter database datafile '+DATA/oracledata1/smart_oplog01_06.dbf' resize 1024M;
alter database datafile '+DATA/oracledata1/smart_oplog01_07.dbf' resize 1024M;
alter database datafile '+DATA/oracledata1/smart_oplog01_08.dbf' resize 1024M;

-----------------------------------------------發送記錄-------------------------------------
alter database datafile '+DATA/oracledata1/smart_osendbak1_01.dbf' resize 1024M;
alter database datafile '+DATA/oracledata1/smart_osendbak1_02.dbf' resize 1024M;
alter database datafile '+DATA/oracledata1/smart_osendbak1_03.dbf' resize 1024M;
alter database datafile '+DATA/oracledata1/smart_osendbak1_04.dbf' resize 1024M;
alter database datafile '+DATA/oracledata1/smart_osendbak1_05.dbf' resize 1024M;
alter database datafile '+DATA/oracledata1/smart_osendbak1_06.dbf' resize 1024M;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM