三、刪除歷史資料,釋放空間(如果執行了第二步這步可不做)
原因:oracle資料庫資料檔案將磁碟空間佔滿導致資料無法寫入,如果刪除歷史資料,表空間不會釋放占用物理空間不會釋放,所以磁碟依舊是滿的,現在需要騰出部分空間,然後掛在新的碟符為資料儲存。
需要解決的問題
刪除部分歷史資料後表空間不會釋放
所有的命令執行要在 sqlplus下執行
1. 進入sqlplus
//進入sqlplus oracle命令提示空間
sqlplus /nologs
conn /as sysdba
2. 關閉資料庫//關閉資料庫
shutdown immediate
3. 移動資料檔案位置比如
移動到
c:\users\administrator\oracle\jcpt_ca.dbf
4. 啟動資料庫到 mount狀態//資料庫例程開啟
startup mount
5. 執行資料檔案位置更改//更改資料檔案位置
6. 啟動資料庫alter database open;
7. 重啟驗證//關閉資料庫
shutdown immediate
//啟動資料庫
startup
此步驟主要是為了刪除資料後 釋放表空間占用的物理空間
1. 刪除分割槽表中無用的歷史資料
//查詢所有分割槽表資料資料檔案
//按照時間刪除部分無用表分割槽 -- update global indexes 如果資料量大 可能會耗時
alter table 『表名』 drop partition 『分割槽』 -- update global indexes;
//
2. 查詢表空間中每個資料檔案的實際使用空間select d.bytes total ,s.bytes free,s.tablespace_name tablespace_,
d.file_name file_name,d.file_id file_id
from dba_free_space s ,dba_data_files d
where d.file_id = s.file_id and d.tablespace_name = '表空間名稱'
3. 重設每個資料檔案的空間大小為實際使用大小//根據上一步得到的使用空間 在以下位置釋放表空間略大於實際使用空間即可
alter database datafile '~/jcpt.dbf' resize 500m;
4. 關閉資料檔案的自動擴充套件-- 擴建資料檔案
alter tablespace jcpt add datafile 'd:/oracle/product/10.2.0/oradata/orcl/jcpt01.dbf' size 30048m
autoextend on next 100m maxsize unlimited
-- 關閉表空間自動擴充套件
5. 擴充套件資料檔案到新的碟符/位置alter tablespace jcpt add datafile 'd:/oracle/product/10.2.0/oradata/orcl/jcpt01.dbf' size 30048m;
並把jcpt01檔案按照3.3.2步驟設定成自動擴充套件大小。
或者一氣呵成:
alter tablespace jcpt add datafile 'd:/oracle/product/10.2.0/oradata/orcl/jcpt01.dbf' size 30048m autoextend on next 100m maxsize unlimited
這個步驟可能比較耗時,耐心等待
多少不凡、只因不甘
原創 待完善
遷移oracle資料檔案
引言 現在的生產環境,底層大多使用asm技術了。但這並不妨礙使用者把檔案 資料檔案 引數檔案 控制檔案等 放到檔案系統上。在一些不規範的操作場景下,乙個不小心,檔案位置就放錯了。此時,可能沒辦法將檔案刪除 再重建,只能將該檔案遷移到asm中。還有一種情況,某個存在asm中的檔案,要挪到檔案系統中,這...
oracle 資料檔案遷移
資料檔案所在磁碟損壞 磁碟空間已滿,更換乙個更大的磁碟 1 確定檔案所在表空間 2 使表空間離線 3 移動資料檔案 4 使表空間聯機 mkdir p datafileorcl chown r oracle oinstall datafileorcl chmod r 775 datafileorcl ...
oracle 遷移資料檔案
步驟 1.sql select file name from dba data files file name d oracle product 10.2.0 oradata test datafile o1 mf users 4yfv39n0 dbf d oracle product 10.2.0...