【TABLESPACE】通過重建控制檔案調整表空間資料檔案位置及名稱
本文給出通過重建控制檔案來調整表空間資料檔案位置及名稱的方法。關於在資料庫Open狀態及Mount狀態下調整方法參見以下文章:
《【TABLESPACE】資料庫Open狀態下調整表空間資料檔案位置及名稱》(http://space.itpub.net/519536/viewspace-692267);
《【TABLESPACE】資料庫Mount狀態下調整表空間資料檔案位置及名稱》(http://space.itpub.net/519536/viewspace-692362)。
注意:在完成調整操作之前請對資料庫做好有效備份,防止出現故障給資料庫的使用帶來不便。
1.建立測試用表空間TBS_SECOOLER_D
sys@ora10g> create tablespace tbs_secooler_d datafile '/oracle/ora10gR2/oradata/ora10g/tbs_secooler_d_01.dbf' size 10m;
Tablespace created.
2.獲取表空間與資料檔案之間的對應關係
sys@ora10g> select tablespace_name,file_name from dba_data_files where tablespace_name='TBS_SECOOLER_D';
TABLESPACE_NAME FILE_NAME
----------------- ------------------------------------------------------
TBS_SECOOLER_D /oracle/ora10gR2/oradata/ora10g/tbs_secooler_d_01.dbf
3.生成控制檔案的轉儲檔案
sys@ora10g> alter database backup controlfile to trace;
Database altered.
4.獲取到控制檔案的轉儲檔案
檔案存放在user_dump_dest引數對應的目錄中。
sys@ora10g> show parameter user_dump_dest
NAME TYPE VALUE
----------------- -------- -------------------------------------
user_dump_dest string /oracle/ora10gR2/admin/ora10g/udump
ora10g@secdb /home/oracle$ cd /oracle/ora10gR2/admin/ora10g/udump
ora10g@secdb /oracle/ora10gR2/admin/ora10g/udump$ ls -ltr | tail -1
-rw-r----- 1 oracle oinstall 6.3K Apr 13 21:19 ora10g_ora_13635.trc
trace檔案中給出了建立控制檔案的詳細過程,其中給出了兩種方法,一種是NORESETLOGS方式,另外一種是RESETLOGS方式。
這裡我們使用NORESETLOGS方式。
5.調整建立控制檔案語句中的資料檔案路徑
STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "ORA10G" NORESETLOGS NOARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 '/oracle/ora10gR2/oradata/ora10g/redo01.log' SIZE 50M,
GROUP 2 '/oracle/ora10gR2/oradata/ora10g/redo02.log' SIZE 50M,
GROUP 3 '/oracle/ora10gR2/oradata/ora10g/redo03.log' SIZE 50M
DATAFILE
'/oracle/ora10gR2/oradata/ora10g/system01.dbf',
'/oracle/ora10gR2/oradata/ora10g/undotbs01.dbf',
'/oracle/ora10gR2/oradata/ora10g/sysaux01.dbf',
'/oracle/ora10gR2/oradata/ora10g/users01.dbf',
'/home/oracle/tbs_secooler_d.dbf'
CHARACTER SET WE8ISO8859P1
;
RECOVER DATABASE
ALTER DATABASE OPEN;
ALTER TABLESPACE TEMP ADD TEMPFILE '/oracle/ora10gR2/oradata/ora10g/temp01.dbf'
SIZE 26214400 REUSE AUTOEXTEND ON NEXT 655360 MAXSIZE 32767M;
6.關閉資料庫
sys@ora10g> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
7.在作業系統中調整資料檔案位置和名稱
在Linux/UNIX作業系統中可以使用作業系統命令mv完成這一步的調整。
ora10g@secdb /oracle/ora10gR2/admin/ora10g/udump$ mv /oracle/ora10gR2/oradata/ora10g/tbs_secooler_d_01.dbf /home/oracle/tbs_secooler_d.dbf
確認檔案位置及名稱調整完畢。
ora10g@secdb /oracle/ora10gR2/admin/ora10g/udump$ ls -l /oracle/ora10gR2/oradata/ora10g/tbs_secooler_d_01.dbf
ls: /oracle/ora10gR2/oradata/ora10g/tbs_secooler_d_01.dbf: No such file or directory
ora10g@secdb /oracle/ora10gR2/admin/ora10g/udump$ ls -l /home/oracle/tbs_secooler_d.dbf
-rw-r----- 1 oracle oinstall 11M Apr 13 21:35 /home/oracle/tbs_secooler_d.dbf
8.完成控制檔案的重建
執行上面調整之後的控制檔案的建立指令碼。
詳細記錄一下這個執行過程,供參考。
1)啟動資料庫到nomount狀態
ora10g@secdb /oracle/ora10gR2/admin/ora10g/udump$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Wed Apr 13 21:37:00 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to an idle instance.
SQL> STARTUP NOMOUNT
ORACLE instance started.
Total System Global Area 268435456 bytes
Fixed Size 1218868 bytes
Variable Size 117442252 bytes
Database Buffers 142606336 bytes
Redo Buffers 7168000 bytes
2)建立控制檔案
SQL> CREATE CONTROLFILE REUSE DATABASE "ORA10G" NORESETLOGS NOARCHIVELOG
2 MAXLOGFILES 16
3 MAXLOGMEMBERS 3
4 MAXDATAFILES 100
5 MAXINSTANCES 8
6 MAXLOGHISTORY 292
7 LOGFILE
8 GROUP 1 '/oracle/ora10gR2/oradata/ora10g/redo01.log' SIZE 50M,
9 GROUP 2 '/oracle/ora10gR2/oradata/ora10g/redo02.log' SIZE 50M,
10 GROUP 3 '/oracle/ora10gR2/oradata/ora10g/redo03.log' SIZE 50M
11 DATAFILE
12 '/oracle/ora10gR2/oradata/ora10g/system01.dbf',
13 '/oracle/ora10gR2/oradata/ora10g/undotbs01.dbf',
14 '/oracle/ora10gR2/oradata/ora10g/sysaux01.dbf',
15 '/oracle/ora10gR2/oradata/ora10g/users01.dbf',
16 '/home/oracle/tbs_secooler_d.dbf'
17 CHARACTER SET WE8ISO8859P1
18 ;
Control file created.
3)恢復資料庫
SQL> RECOVER DATABASE
ORA-00283: recovery session canceled due to errors
ORA-00264: no recovery required
SQL> ALTER DATABASE OPEN;
Database altered.
4)新增臨時表空間
SQL> ALTER TABLESPACE TEMP ADD TEMPFILE '/oracle/ora10gR2/oradata/ora10g/temp01.dbf'
SIZE 26214400 REUSE AUTOEXTEND ON NEXT 655360 MAXSIZE 32767M;
2
Tablespace altered.
到此完成了控制檔案重建。
9.最後的確認
sys@ora10g> select tablespace_name,file_name from dba_data_files where tablespace_name='TBS_SECOOLER_D';
TABLESPACE_NAME FILE_NAME
----------------- -----------------------------------------------------
TBS_SECOOLER_D /home/oracle/tbs_secooler_d.dbf
調整表空間資料檔案位置及名稱的任務完成。
10.小結
三種調整資料檔名稱及位置的方法中,本文描述的通過調整控制檔案以達到調整目的的方法是成本較大的,也存在一定的風險。實際環境中需要根據具體場景進行選擇。
Good luck.
secooler
11.04.13
-- The End --
《【TABLESPACE】資料庫Open狀態下調整表空間資料檔案位置及名稱》(http://space.itpub.net/519536/viewspace-692267);
《【TABLESPACE】資料庫Mount狀態下調整表空間資料檔案位置及名稱》(http://space.itpub.net/519536/viewspace-692362)。
注意:在完成調整操作之前請對資料庫做好有效備份,防止出現故障給資料庫的使用帶來不便。
1.建立測試用表空間TBS_SECOOLER_D
sys@ora10g> create tablespace tbs_secooler_d datafile '/oracle/ora10gR2/oradata/ora10g/tbs_secooler_d_01.dbf' size 10m;
Tablespace created.
2.獲取表空間與資料檔案之間的對應關係
sys@ora10g> select tablespace_name,file_name from dba_data_files where tablespace_name='TBS_SECOOLER_D';
TABLESPACE_NAME FILE_NAME
----------------- ------------------------------------------------------
TBS_SECOOLER_D /oracle/ora10gR2/oradata/ora10g/tbs_secooler_d_01.dbf
3.生成控制檔案的轉儲檔案
sys@ora10g> alter database backup controlfile to trace;
Database altered.
4.獲取到控制檔案的轉儲檔案
檔案存放在user_dump_dest引數對應的目錄中。
sys@ora10g> show parameter user_dump_dest
NAME TYPE VALUE
----------------- -------- -------------------------------------
user_dump_dest string /oracle/ora10gR2/admin/ora10g/udump
ora10g@secdb /home/oracle$ cd /oracle/ora10gR2/admin/ora10g/udump
ora10g@secdb /oracle/ora10gR2/admin/ora10g/udump$ ls -ltr | tail -1
-rw-r----- 1 oracle oinstall 6.3K Apr 13 21:19 ora10g_ora_13635.trc
trace檔案中給出了建立控制檔案的詳細過程,其中給出了兩種方法,一種是NORESETLOGS方式,另外一種是RESETLOGS方式。
這裡我們使用NORESETLOGS方式。
5.調整建立控制檔案語句中的資料檔案路徑
STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "ORA10G" NORESETLOGS NOARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 '/oracle/ora10gR2/oradata/ora10g/redo01.log' SIZE 50M,
GROUP 2 '/oracle/ora10gR2/oradata/ora10g/redo02.log' SIZE 50M,
GROUP 3 '/oracle/ora10gR2/oradata/ora10g/redo03.log' SIZE 50M
DATAFILE
'/oracle/ora10gR2/oradata/ora10g/system01.dbf',
'/oracle/ora10gR2/oradata/ora10g/undotbs01.dbf',
'/oracle/ora10gR2/oradata/ora10g/sysaux01.dbf',
'/oracle/ora10gR2/oradata/ora10g/users01.dbf',
'/home/oracle/tbs_secooler_d.dbf'
CHARACTER SET WE8ISO8859P1
;
RECOVER DATABASE
ALTER DATABASE OPEN;
ALTER TABLESPACE TEMP ADD TEMPFILE '/oracle/ora10gR2/oradata/ora10g/temp01.dbf'
SIZE 26214400 REUSE AUTOEXTEND ON NEXT 655360 MAXSIZE 32767M;
6.關閉資料庫
sys@ora10g> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
7.在作業系統中調整資料檔案位置和名稱
在Linux/UNIX作業系統中可以使用作業系統命令mv完成這一步的調整。
ora10g@secdb /oracle/ora10gR2/admin/ora10g/udump$ mv /oracle/ora10gR2/oradata/ora10g/tbs_secooler_d_01.dbf /home/oracle/tbs_secooler_d.dbf
確認檔案位置及名稱調整完畢。
ora10g@secdb /oracle/ora10gR2/admin/ora10g/udump$ ls -l /oracle/ora10gR2/oradata/ora10g/tbs_secooler_d_01.dbf
ls: /oracle/ora10gR2/oradata/ora10g/tbs_secooler_d_01.dbf: No such file or directory
ora10g@secdb /oracle/ora10gR2/admin/ora10g/udump$ ls -l /home/oracle/tbs_secooler_d.dbf
-rw-r----- 1 oracle oinstall 11M Apr 13 21:35 /home/oracle/tbs_secooler_d.dbf
8.完成控制檔案的重建
執行上面調整之後的控制檔案的建立指令碼。
詳細記錄一下這個執行過程,供參考。
1)啟動資料庫到nomount狀態
ora10g@secdb /oracle/ora10gR2/admin/ora10g/udump$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Wed Apr 13 21:37:00 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to an idle instance.
SQL> STARTUP NOMOUNT
ORACLE instance started.
Total System Global Area 268435456 bytes
Fixed Size 1218868 bytes
Variable Size 117442252 bytes
Database Buffers 142606336 bytes
Redo Buffers 7168000 bytes
2)建立控制檔案
SQL> CREATE CONTROLFILE REUSE DATABASE "ORA10G" NORESETLOGS NOARCHIVELOG
2 MAXLOGFILES 16
3 MAXLOGMEMBERS 3
4 MAXDATAFILES 100
5 MAXINSTANCES 8
6 MAXLOGHISTORY 292
7 LOGFILE
8 GROUP 1 '/oracle/ora10gR2/oradata/ora10g/redo01.log' SIZE 50M,
9 GROUP 2 '/oracle/ora10gR2/oradata/ora10g/redo02.log' SIZE 50M,
10 GROUP 3 '/oracle/ora10gR2/oradata/ora10g/redo03.log' SIZE 50M
11 DATAFILE
12 '/oracle/ora10gR2/oradata/ora10g/system01.dbf',
13 '/oracle/ora10gR2/oradata/ora10g/undotbs01.dbf',
14 '/oracle/ora10gR2/oradata/ora10g/sysaux01.dbf',
15 '/oracle/ora10gR2/oradata/ora10g/users01.dbf',
16 '/home/oracle/tbs_secooler_d.dbf'
17 CHARACTER SET WE8ISO8859P1
18 ;
Control file created.
3)恢復資料庫
SQL> RECOVER DATABASE
ORA-00283: recovery session canceled due to errors
ORA-00264: no recovery required
SQL> ALTER DATABASE OPEN;
Database altered.
4)新增臨時表空間
SQL> ALTER TABLESPACE TEMP ADD TEMPFILE '/oracle/ora10gR2/oradata/ora10g/temp01.dbf'
SIZE 26214400 REUSE AUTOEXTEND ON NEXT 655360 MAXSIZE 32767M;
2
Tablespace altered.
到此完成了控制檔案重建。
9.最後的確認
sys@ora10g> select tablespace_name,file_name from dba_data_files where tablespace_name='TBS_SECOOLER_D';
TABLESPACE_NAME FILE_NAME
----------------- -----------------------------------------------------
TBS_SECOOLER_D /home/oracle/tbs_secooler_d.dbf
調整表空間資料檔案位置及名稱的任務完成。
10.小結
三種調整資料檔名稱及位置的方法中,本文描述的通過調整控制檔案以達到調整目的的方法是成本較大的,也存在一定的風險。實際環境中需要根據具體場景進行選擇。
Good luck.
secooler
11.04.13
-- The End --
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/519536/viewspace-692460/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【TABLESPACE】資料庫Open狀態下調整表空間資料檔案位置及名稱資料庫
- 【TABLESPACE】資料庫Mount狀態下調整表空間資料檔案位置及名稱資料庫
- 重建控制檔案後,對臨時表空間(temporary tablespace)進行重建
- 資料檔案位置調整
- 表空間&資料檔案和控制檔案(zt)
- 含read only表空間的資料庫的控制檔案重建資料庫
- 【問題處理】通過調整資料檔案的位置解決磁碟空間緊張的問題
- 移動資料檔案、系統表空間檔案、臨時表空間檔案
- RMAN恢復表空間,資料檔案,歸檔檔案,控制檔案等介紹
- 新建的表空間(或資料檔案)丟失以及控制檔案丟失,有新建表空間(或資料檔案)前的控制文
- 【學習日記】oracle之表空間、資料檔案、控制檔案Oracle
- Oracle Bigfile Tablespace大檔案表空間Oracle
- Oracle根據表名查詢表空間及資料檔案的地址Oracle
- yaml檔案中在哪加名稱空間?YAML
- 重建Oracle資料庫控制檔案Oracle資料庫
- Oracle 表空間與資料檔案Oracle
- 表空間和資料檔案管理
- oracle 資料檔案表空間管理Oracle
- 重建控制檔案之後,只讀表空間的狀態變化
- 重建控制檔案
- 重建控制檔案--
- 表空間和資料檔案的管理
- oracle 表空間 資料檔案 筆記Oracle筆記
- 資料檔案,表空間的移動
- 表空間資料檔案故障處理
- 線上遷移表空間資料檔案
- Oracle 表空間資料檔案遷移Oracle
- 表空間新增資料檔案的疑惑
- 不完全恢復(資料檔案備份--新建表空間--控制檔案備份--日誌歸檔檔案)
- MySQL innodb共享表空間新增表空間資料檔案方法MySql
- 資料檔案、表空間offline用法及區別
- 表空間中有資料也可以壓縮表空間(資料檔案)大小
- Oracle重建控制檔案Oracle
- DataGuard重建控制檔案
- oracle 重建控制檔案Oracle
- 大檔案表空間
- 用重建控制檔案的方法修改oracle資料檔案路徑Oracle
- 通過RMAN-transport獲取傳輸表空間檔案