今天給虛擬機擴展了空間,就順帶着做一次表空間遷移。
操作環境:
數據庫:Oracle Database 10g Enterprise Edition Release 10.2.0.1.0
表空間:LHRS
轉移前使用的數據庫文件:C:\oracle\product\10.2.0\oradata\orcl\LHRS01.DBF
轉移后使用的數據庫文件:D:\ORADATA\orcl\LHRS01.DBF
簡要操作步驟:
前 提:手工將表空間所使用的數據庫文件(C:\oracle\product\10.2.0\oradata\orcl\USERS01.DBF),
復制到你要轉移的目錄(D:\DB Data\Oracle\orcl\USERS01.DBF)(此步驟有點非主流,操作失誤,直接剪切了,造成了一堆麻煩)
第一步:登陸數據庫
第二步:啟動數據庫
第三步:將數據文件(LHRS01)脫機
第四步:打開數據庫
第五步:將表空間和數據文件關聯
第六步:使表空間online(會報錯)
第七步:將數據文件介質恢復。
第八步:將表空間聯機,提交,OK,完成。
操作如下:
1、sqlplus /nolog
2、啟動數據庫:
SQL> startup
ORA-32004: obsolete and/or deprecated parameter(s) specified
ORACLE 例程已經啟動。
Total System Global Area 163577856 bytes
Fixed Size 787948 bytes
Variable Size 145750548 bytes
Database Buffers 16777216 bytes
Redo Buffers 262144 bytes
數據庫裝載完畢。
ORA-01157: 無法標識/鎖定數據文件 5 - 請參閱 DBWR 跟蹤文件
ORA-01110: 數據文件 5: 'C:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\LHRS01.DBF'
3、將數據文件脫機:
SQL> alter database datafile 'C:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\LHRS01.DBF' offline;
alter database datafile 'C:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\LHRS01.DBF' offline
*
第 1 行出現錯誤: ORA-01145: 除非啟用了介質恢復, 否則不允許立即脫機
檢查發現數據庫是非歸檔模式,然后使用:
SQL> alter database datafile 'C:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\LHRS01.DBF' offline drop;
數據庫已更改。
4、打開數據庫:
SQL> alter database open;
數據庫已更改。
5、將表空間和數據文件關聯
SQL> alter tablespace lhrs rename datafile 'C:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\lhrs01.DBF' to 'D:\ORADATA\ORCL\lhrs01.d bf';
表空間已更改。
6、使表空間(LHRS)online
SQL> alter tablespace lhrs online;
alter tablespace lhrs online
*
第 1 行出現錯誤:
ORA-01113: 文件 5 需要介質恢復
ORA-01110: 數據文件 5: 'D:\ORADATA\YGL\LHRS01.DBF'
7、數據文件介質恢復:
SQL> recover datafile 'D:\ORADATA\ORCL\LHRS01.DBF';
完成介質恢復。
8、重新啟動數據庫:
SQL> shutdown immediate
數據庫已經關閉。
已經卸載數據庫。
ORACLE 例程已經關閉。
SQL> startup
ORA-32004: obsolete and/or deprecated parameter(s) specified
ORACLE 例程已經啟動。
Total System Global Area 163577856 bytes
Fixed Size 787948 bytes
Variable Size 145750548 bytes
Database Buffers 16777216 bytes
Redo Buffers 262144 bytes
數據庫裝載完畢。
數據庫已經打開。
在線遷移請參照:http://kaoshi.china.com/oracle/learning/496893-1.htm