当前位置:数据库 > Oracle >>

Oracle 10g表空间物理位置转移

Oracle 10g表空间物理位置转移
 
于是我将表空间转移到另外一个硬盘,流程如下:
 
  操作环境:
 
  数据库:Oracle Database 10g Enterprise Edition Release 10.2.0.1.0
 
  表空间:USERS
 
  转移前运用的数据库文件:C:\oracle\product\10.2.0\oradata\orcl\USERS01.DBF
 
  转移后运用的数据库文件:D:\DB Data\Oracle\orcl\USERS01.DBF
 
  扼要操作步骤:
 
  第一步:登陆数据库
 
  第二步:中止数据库
 
  第三步:在open方式下启动数据库
 
  第四步:将表空间(USERS)脱机
 
  第五步:手工将表空间所运用的数据库文件(C:\oracle\product\10.2.0\oradata\orcl\USERS01.DBF),
 
  复制到你要转移的目录(D:\DB Data\Oracle\orcl\USERS01.DBF),
 
  第六步:将表空间与新目录下的数据库文件关联
 
  第七步:将表空间联机,提交,OK,完成。
 
  细致SQL:
 
  第一步:
 
  C:\>sqlplus /nolog
 
  SQL> conn / as sysdba
 
  第二步:
 
  SQL> shutdown immediate
 
  第三步:
 
  SQL> startup open
 
  第四步:
 
  SQL> alter tablespace eucrmspace offline;
 
  第五步:
 
  手工拷贝数据库文件到你想抵达的目录下。
 
  第六步:【操作前后能够用SQL来查询表空间所运用的数据库文件的改变情况: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.    转移表空间时,请确保不要对该表空间执行任何写操作(如项目顺序仍在运转),否则能够后面报错
 
  我测试了下,边转移边对该表空间执行写操作,结果在执行第六步时,报错了:
 
  ERROR 位于第 1 行:
 
  ORA-01113: 文件 11 须要介质恢复
 
  ORA-01110: 数据文件 11: 'D:\DB Data\Oracle\orcl\USERS01.DBF '
 
  2.第五步(复制文件操作),必需是在第四步之后,否则第六步能够会报错,错误信息同上差不多
 
3.假设第六步报错了,只好这样恢复:将如今运用的数据库文件(D:\DB Data\Oracle\orcl\USERS01.DBF),重新复原成之前所运用的数据库文件(C:\oracle\product\10.2.0\oradata\orcl\USERS01.DBF),即重新执行第五、六、七步,只不过第五步的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
 
  数据库以前关闭。
 
  以前卸载数据库。
 
  ORACLE 例程以前关闭。
 
  SQL> startup open
 
  ORACLE 例程以前启动。
 
  Total System Global Area  612368384 bytes
 
  Fixed Size                  1250428 bytes
 
  Variable Size              83889028 bytes
 
  Database Buffers          520093696 bytes
 
  Redo Buffers                7135232 bytes
 
  数据库装载终了。
 
  数据库以前翻开。
 
  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;
 
  提交完成。
Oracle
MySQL
Access
SQLServer
DB2
Excel
SQLite
SYBASE
Postgres
如果你遇到数据库难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,