WIN下UNDO表空間的修改,在生產庫中不建議這麼做。
我們的資料庫系統CPU效能很好,但由於磁碟陣列是09年的,所以I/O 讀寫這塊比較差一些,領導說能否把undo表空間挪到另外一個盤上,把讀寫分散在不同的盤上,增加效率,於是,我就開始執行:
一.建立一個表空間:untotbs2.
SQL>CREATE UNDO TABLESPACE "UNDOTBS1" DATAFILE
2 'E:\ORADATA\APTS\UNDOTBS01_new.DBF' SIZE 30644633600
3 AUTOEXTEND ON NEXT 5242880 MAXSIZE 32767M
4 BLOCKSIZE 8192
5 EXTENT MANAGEMENT LOCAL AUTOALLOCATE
注意:這種大型的ddl操作建議在遠端桌面上直接操作,不要使用pl/sql developer,容易掛死。
二.把資料庫undo_tablespace修改為undotbs2.
SQL> alter system set undo_tablespace='UNDOTBS2' scope=both;
這裡注意一下,我們現在把undotbs2設定成undo表空間之後,它的狀態在dba_rollback_segs裡就是online了
SQL>select tablespace_name,segment_name,status from dba_rollback_segs
檢視這個會表示出有幾個回退段,他們的狀態是什麼,有online,有offline的,在生產庫中,不會馬上undotbs1就變成offline,會有一些事online,這很正常,因為有些使用者沒有提交,這時我們還可以檢視一個動態效能檢視 :v$rollstat:
SQL>select usn,status from v$rollstat;
0 online
10 PENGING OFFLINE
11 ONLINE
12 ONLINE
..............................................................
這裡只會顯示ONLINE和PENDING OFFLINE,也就是線上和正在離線的狀態。我們必須等待所有的回退段都ONLINE,我們才能進行下一步,刪除老的回退表空間。
三.刪除老的undo表空間:
SQL> drop tablespace undotbs1 including contents and datafiles; ##刪除表空間極其資料檔案。
注意:這裡會顯示執行成功,但在alert日誌裡,
會顯示:
ORA-01265: 無法刪除 DATA D:\APP\ADMINISTRATOR\UNDO_DATAFILE_APTS\UNDOTBS02.DBF
ORA-27056: 無法刪除檔案
OSD-04024: 無法刪除檔案。
O/S-Error: (OS 32) 另一個程式正在使用此檔案,程式無法訪問。
Completed: drop tablespace undotbs2 including contents and datafiles
我們在作業系統手工刪除也會出問題,不能手工刪除。但我之前在linux操作時就沒有這個問題,估計是作業系統的原因。有人說刪除undo必須重啟資料庫,有人說不用。
看來在win下的資料庫修改undo表空間,必須重啟資料庫才能真正的生效。但我們在系統裡檢視undo表空間:
SQL>show parameter undo
會正確的顯示出undo是修改過的,說明什麼呢,說明undo確實是改的,也修改了引數檔案。但只有重新啟動才算是真正的修改了。因為只有這樣,才能重新讀取引數檔案到記憶體。
一.建立一個表空間:untotbs2.
SQL>CREATE UNDO TABLESPACE "UNDOTBS1" DATAFILE
2 'E:\ORADATA\APTS\UNDOTBS01_new.DBF' SIZE 30644633600
3 AUTOEXTEND ON NEXT 5242880 MAXSIZE 32767M
4 BLOCKSIZE 8192
5 EXTENT MANAGEMENT LOCAL AUTOALLOCATE
注意:這種大型的ddl操作建議在遠端桌面上直接操作,不要使用pl/sql developer,容易掛死。
二.把資料庫undo_tablespace修改為undotbs2.
SQL> alter system set undo_tablespace='UNDOTBS2' scope=both;
這裡注意一下,我們現在把undotbs2設定成undo表空間之後,它的狀態在dba_rollback_segs裡就是online了
SQL>select tablespace_name,segment_name,status from dba_rollback_segs
檢視這個會表示出有幾個回退段,他們的狀態是什麼,有online,有offline的,在生產庫中,不會馬上undotbs1就變成offline,會有一些事online,這很正常,因為有些使用者沒有提交,這時我們還可以檢視一個動態效能檢視 :v$rollstat:
SQL>select usn,status from v$rollstat;
0 online
10 PENGING OFFLINE
11 ONLINE
12 ONLINE
..............................................................
這裡只會顯示ONLINE和PENDING OFFLINE,也就是線上和正在離線的狀態。我們必須等待所有的回退段都ONLINE,我們才能進行下一步,刪除老的回退表空間。
三.刪除老的undo表空間:
SQL> drop tablespace undotbs1 including contents and datafiles; ##刪除表空間極其資料檔案。
注意:這裡會顯示執行成功,但在alert日誌裡,
會顯示:
ORA-01265: 無法刪除 DATA D:\APP\ADMINISTRATOR\UNDO_DATAFILE_APTS\UNDOTBS02.DBF
ORA-27056: 無法刪除檔案
OSD-04024: 無法刪除檔案。
O/S-Error: (OS 32) 另一個程式正在使用此檔案,程式無法訪問。
Completed: drop tablespace undotbs2 including contents and datafiles
我們在作業系統手工刪除也會出問題,不能手工刪除。但我之前在linux操作時就沒有這個問題,估計是作業系統的原因。有人說刪除undo必須重啟資料庫,有人說不用。
看來在win下的資料庫修改undo表空間,必須重啟資料庫才能真正的生效。但我們在系統裡檢視undo表空間:
SQL>show parameter undo
會正確的顯示出undo是修改過的,說明什麼呢,說明undo確實是改的,也修改了引數檔案。但只有重新啟動才算是真正的修改了。因為只有這樣,才能重新讀取引數檔案到記憶體。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25116248/viewspace-1061156/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- undo表空間容量
- Innodb:Undo 表空間巨大
- 更改undo表空間大小
- UNDO表空間空間回收及切換
- MySQL InnoDB Undo表空間配置MySql
- 2.5.5 使用自動Undo管理: 建立 Undo 表空間
- oracle中undo表空間丟失處理方法Oracle
- ORACLE線上切換undo表空間Oracle
- 檢查及設定合理的undo表空間
- Oracle切換undo表空間操作步驟Oracle
- MySQL UNDO表空間獨立和截斷MySql
- [20210527]rman與undo表空間備份.txt
- undo表空間使用率100%的原因檢視
- win10 如何修改磁碟空間 win10修改磁碟空間方法Win10
- 為什麼不建議你用 MongoDB 這類產品替代時序資料庫?MongoDB資料庫
- undo表空間使用率過高解決
- 不建議開發來做資料庫選型資料庫
- Oracle 批量建表空間Oracle
- 【UNDO】Oracle undo表空間使用率過高,因為一個查詢Oracle
- MySQL 5.7新特性之線上收縮undo表空間MySql
- Oracle 19c 線上縮減 UNDO 表空間 容量Oracle
- PostgreSQL:表空間-->資料庫-->表SQL資料庫
- 刪除UNDO表空間並處理ORA-01548問題
- 12C關於CDB、PDB 回滾undo表空間的總結
- 18_深入解析Oracle undo原理(2)_undo表空間使用率100%問題處理Oracle
- MySQL 中的共享表空間與獨立表空間如何選擇MySql
- Oracle臨時表空間檢視、新增臨時表空間資料檔案、修改預設臨時表空間 方法!Oracle
- 16、表空間 建立表空間
- 2.6.8 設定UNDO空間管理方法
- 學習Java,我建議這樣做Java
- openGauss中如何管理表空間
- 表空間利用率及表空間的補充
- linux 修改swap空間Linux
- win10空間音效無法開啟怎麼辦 win10空間音效打不開如何解決Win10
- Oracle undo 表空間資料檔案丟失強制啟動資料庫(沒有未提交的事務)Oracle資料庫
- KingbaseES的表空間
- 在css中為什麼說不建議使用@import?CSSImport
- Spring中為什麼不建議使用欄位注入Spring
- 談談什麼是MySQL的表空間?MySql