Oracle 11g筆記——調整表空間和資料檔案的大小、移動資料檔案、聯機重做日誌檔案、控制檔案
阿新 • • 發佈:2019-02-12
一、調整表空間和資料檔案的大小
1、調整表空間大小
alter database datafile '/u01/app/oracle/oradata/rmanrep/users01.dbf' resize 15m;
2、調整表空間大小為允許自動擴充套件
SQL>alter database datafile '/u01/app/oracle/oradata/rmanrep/users01.dbf'
autoextend on
next 20M
maxsize 1g;
注:autoextend設為on時,允許擴充套件資料檔案,設為OFF時,不允許擴充套件
next <size>:分配給資料檔案的下一個磁碟空間量的大小,單位:K、M、G、T
maxsize <size>:設為unlimited時,資料檔案的大小是無限的;大檔案表空間,最大為128TB;具有32K塊的小檔案表空間,資料檔案最大為128GB。單位:K、M、G、T
3、增加表空間,將資料檔案放至users表空間
SQL>alter tablespace users add datafile '/u03/oradata/users02.dbf'
size 50m
autoextend on
next 10m
maxsize 200m;
4、從表空間中刪除資料檔案,以前的版本有以下三個方法:
(1)容忍該資料檔案
(2)縮減該資料檔案並關閉AUTOEXTEND
(3)建立新的表空間,將所有的物件移動至新的表空間,並且刪除原來的表空間
目前版本,可使用EM Database Control的Reorganize
5、使用alter tablespace調整大檔案表空間的大小
create bigfile tablespace dmarts
datafile '/u05/oradata/dmarts.dbf' size 750m
autoextend on next 100m maxsize unlimited
extent management local
segment space management auto;
修改大小,注:大檔案的表空間只有一個數據檔案,不需要指定資料檔名,並可用alter tablespace
alter tablespace dmarts resize 1g;
二、移動資料檔案
1、使用ALTER DATABASE移動資料檔案
a.作為SYSDBA連線至資料庫,並且關閉例項
b.使用作業系統命令移動資料檔案
c.以MOUNT模式開啟資料庫
d.使用alter database改變對資料庫中資料檔案的引用
e.以OPEN模式開啟資料庫
f.對包括控制檔案的資料庫執行增量備份或完整備份
例:將表空間XPORT的資料檔案從檔案系統/u04移動至檔案系統/u06:
sqlplus / as sysdba
SQL>select d.name,t.name
from v$datafile d join v$tablespace t using(ts#)
where t.name='XPORT';
查詢後顯示的資料檔名為:/u04/oradata/xport.dbf
a.關閉例項
SQL>shutdown immediate;
b.移動資料檔案,以“!”轉義字元。
SQL>! mv /u04/oradata/xport.dbf /u06/oradata
c.以MOUNT模式啟動資料庫,從而在不需要開啟資料檔案的情況下就可以使用控制檔案:
SQL>startup mount
d.改變控制檔案中的路徑名引用,以將其指向資料檔案的新位置:
SQL>alter database rename file '/u04/oradata/xport.dbf' to 'u06/oradata/xport.dbf';
e.alter database open;
f. 建立更新過的控制檔案的備份副本:
SQL>alter database backup controlfile to trace;
2、使用ALTER TABLESPACE移動資料檔案
如果希望移動的資料檔案是某個表空間的一部分,而該表空間不是SYSTEM、SYSAUX、活動的撤銷表空間或臨時表空間,則推薦使用ALTER TABLESPACE的方法。
原因:除了其資料檔案將被移動的表空間外,所有使用者在整個操作期間都可以使用資料庫的剩餘部分,比較少的中斷時間。
a.使用alter tablespace許可權的賬戶,對錶空間進行離線處理:
SQL>alter tablespace xport offline;
b.移動資料檔案
SQL>! mv /u04/oradata/xport.dbf /u06/oradata
c.使用alter tablespace改變對資料庫中資料檔案的引用
SQL>alter database rename file '/u04/oradata/xport.dbf' to 'u06/oradata/xport.dbf';
d.將表空間返回到聯機狀態
SQL>alter tablespace xport online;
三、移動聯機重做日誌檔案
1、檢視重做日誌檔案
SQL>select group#,member from v$logfile order by group#,member;
顯示結果為:
1/u01/app/oracle/oradata/redo01.log
1/u05/oradata/redo01.log
2/u01/app/oracle/oradata/redo02.log
2/u05/oradata/redo02.log
3/u01/app/oracle/oradata/redo03.log
3/u05/oradata/redo03.log
注:有三個日誌檔案是在/u01/app/oracle/oradata中,此目錄為oracle安裝目錄,需要移至別的目錄,以消除寫入日誌檔案與訪問Oracle元件之間的爭用問題。
SQL>shutdown immediate;
SQL>! mv /u01/app/oracle/oradata/redo0[1-3].log /u04/oradata
SQL>startup mount
SQL>alter database rename file '/u01/app/oracle/oradata/redo01.log' to '/u04/oradata/redo01.log';
SQL>alter database rename file '/u01/app/oracle/oradata/redo02.log' to '/u04/oradata/redo02.log';
SQL>alter database rename file '/u01/app/oracle/oradata/redo03.log' to '/u04/oradata/redo03.log';
SQL>alter database open;
SQL>select group#,member from v$logfile order by group#,member;
顯示結果為:
1/u04/oradata/redo01.log
1/u05/oradata/redo01.log
2/u04/oradata/redo02.log
2/u05/oradata/redo02.log
3/u05/oradata/redo03.log
3/u05/oradata/redo03.log
注:重做日誌檔案不再和Oracle軟體競爭I/O,/u04與/u05之間多元複用了重做日誌檔案。
四、移動控制檔案
1、在使用初始引數檔案時,移動控制檔案類似於:移動資料檔案或重做日誌檔案。
過程:關閉例項、使用作業系統命令移動檔案、重新啟動例項
在使用伺服器引數檔案(SPFILE)時,該過程稍有不同。需要改變初始檔案引數CONTROL_FILES
SQL>select name,value from v$spparameter where name='control_files';
顯示結果為:
control_files/u01/app/oracle/oradata/control01.log
control_files/u01/app/oracle/oradata/control02.log
control_files/u01/app/oracle/oradata/control03.log
SQL>show parameter control_files
SQL>alter system set control_files='/u02/oradata/control01.log','/u02/oradata/control02.log','/u02/oradata/control03.log' scope=spfile;
SQL>shutdown immediate
SQL>! mv /u01/app/oracle/oradata/control01.log /u02/oradata
SQL>! mv /u01/app/oracle/oradata/control02.log /u03/oradata
SQL>! mv /u01/app/oracle/oradata/control03.log /u04/oradata
SQL>startup
至此已將3個控制檔案移動至單獨的檔案系統,不再位於具有Oracle軟體的捲上,如果包含一個控制檔案的卷失敗,那麼其他兩個捲包含更新的控制檔案。