時(shí)間:2015-06-28 00:00:00 來(lái)源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評(píng)論(7)
上周五花了幾個(gè)小時(shí),專門來(lái)了解了下ORACLE表空間轉(zhuǎn)移的知識(shí),因?yàn)闇y(cè)試站點(diǎn)ORACLE所在的磁盤只剩下十幾M的空間了。于是我將表空間轉(zhuǎn)移到另外一個(gè)磁盤,過(guò)程如下:
操作環(huán)境:
數(shù)據(jù)庫(kù):Oracle Database 10g Enterprise Edition Release 10.2.0.1.0
表空間:USERS
轉(zhuǎn)移前使用的數(shù)據(jù)庫(kù)文件:C:\oracle\product\10.2.0\oradata\orcl\USERS01.DBF
轉(zhuǎn)移后使用的數(shù)據(jù)庫(kù)文件:D:\DB Data\Oracle\orcl\USERS01.DBF
簡(jiǎn)要操作步驟:
第一步:登陸數(shù)據(jù)庫(kù)
第二步:停止數(shù)據(jù)庫(kù)
第三步:在open模式下啟動(dòng)數(shù)據(jù)庫(kù)
第四步:將表空間(USERS)脫機(jī)
第五步:手工將表空間所使用的數(shù)據(jù)庫(kù)文件(C:\oracle\product\10.2.0\oradata\orcl\USERS01.DBF),
復(fù)制到你要轉(zhuǎn)移的目錄(D:\DB Data\Oracle\orcl\USERS01.DBF),
第六步:將表空間與新目錄下的數(shù)據(jù)庫(kù)文件關(guān)聯(lián)
第七步:將表空間聯(lián)機(jī),提交,OK,完成。
詳細(xì)SQL:
第一步:
C:\>sqlplus /nolog
SQL> conn / as sysdba
第二步:
SQL> shutdown immediate
第三步:
SQL> startup open
第四步:
SQL> alter tablespace eucrmspace offline;
第五步:
手工拷貝數(shù)據(jù)庫(kù)文件到你想到達(dá)的目錄下。
第六步:【操作前后可以用SQL來(lái)查詢表空間所使用的數(shù)據(jù)庫(kù)文件的變化情況:select name from v$datafile;】
SQL> alter tablespace eucrmspace rename datafile
'C:\oracle\product\10.2.0\oradata\orcl\USERS01.DBF'??? to? ' D:\DB Data\Oracle\orcl\USERS01.DBF';
第七步:
SQL> alter tablespace eucrmspace online;
SQL>commit;
SQL>exit;
注意:
1.??? 轉(zhuǎn)移表空間時(shí),請(qǐng)確保不要對(duì)該表空間執(zhí)行任何寫操作(如項(xiàng)目程序仍在運(yùn)行),否則可能后面報(bào)錯(cuò)
我測(cè)試了下,邊轉(zhuǎn)移邊對(duì)該表空間執(zhí)行寫操作,結(jié)果在執(zhí)行第六步時(shí),報(bào)錯(cuò)了:
ERROR 位于第 1 行:
ORA-01113: 文件 11 需要介質(zhì)恢復(fù)
ORA-01110: 數(shù)據(jù)文件 11: 'D:\DB Data\Oracle\orcl\USERS01.DBF '
2.第五步(復(fù)制文件操作),必須是在第四步之后,否則第六步可能會(huì)報(bào)錯(cuò),錯(cuò)誤信息同上差不多
3.如果第六步報(bào)錯(cuò)了,只能這樣恢復(fù):將現(xiàn)在使用的數(shù)據(jù)庫(kù)文件(D:\DB Data\Oracle\orcl\USERS01.DBF),重新還原成之前所使用的數(shù)據(jù)庫(kù)文件(C:\oracle\product\10.2.0\oradata\orcl\USERS01.DBF),即重新執(zhí)行第五、六、七步,只不過(guò)第五步的SQL稍微改下。
…….
SQL>rollback;
SQL> alter tablespace eucrmspace rename datafile
' D:\DB Data\Oracle\orcl\USERS01.DBF'??? to? 'C:\oracle\product\10.2.0\oradata\orcl\USERS01.DBF';
……
下面是完整的操作命令:
C:\Documents and Settings\XXX>sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on 星期一 11月 15 16:29:14 2010
Copyright (c) 1982, 2005, Oracle.? All rights reserved.
SQL> conn / as sysdba
已連接。
SQL> shutdown immediate
數(shù)據(jù)庫(kù)已經(jīng)關(guān)閉。
已經(jīng)卸載數(shù)據(jù)庫(kù)。
ORACLE 例程已經(jīng)關(guān)閉。
SQL> startup open
ORACLE 例程已經(jīng)啟動(dòng)。
Total System Global Area? 612368384 bytes
Fixed Size????? 1250428 bytes
Variable Size? 83889028 bytes
Database Buffers??? 520093696 bytes
Redo Buffers??? 7135232 bytes
數(shù)據(jù)庫(kù)裝載完畢。
數(shù)據(jù)庫(kù)已經(jīng)打開。
SQL> alter tablespace users offline;
表空間已更改。
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF
C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF
C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF
C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF
SQL> alter tablespace USERS rename datafile 'C:\oracle\product\10.2.0\oradata\orcl\USERS01.DBF' to 'D:\DB Data\Oracle\orcl\USERS01.DBF';
表空間已更改。
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF
C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF
C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF
D:\DB DATA\ORACLE\ORCL\USERS01.DBF
SQL> alter tablespace users online;
表空間已更改。
SQL> commit;
提交完成。
關(guān)鍵詞標(biāo)簽:Oracle
相關(guān)閱讀
熱門文章 Oracle中使用alter table來(lái)增加,刪除,修改列的語(yǔ)法 oracle中使用SQL語(yǔ)句修改字段類型-oracle修改SQL語(yǔ)句案例 誤刪Oracle數(shù)據(jù)庫(kù)實(shí)例的控制文件 為UNIX服務(wù)器設(shè)置Oracle全文檢索
人氣排行 oracle中使用SQL語(yǔ)句修改字段類型-oracle修改SQL語(yǔ)句案例 Oracle中使用alter table來(lái)增加,刪除,修改列的語(yǔ)法 ORACLE SQL 判斷字符串是否為數(shù)字的語(yǔ)句 ORACLE和SQL語(yǔ)法區(qū)別歸納(1) oracle grant 授權(quán)語(yǔ)句 ORACLE修改IP地址后如何能夠使用 如何加速Oracle大批量數(shù)據(jù)處理 Oracle刪除表的幾種方法