今天给虚拟机扩展了空间,就顺带着做一次表空间迁移。
操作环境:
数据库: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