IT猫扑网:您身边最放心的安全下载站! 最新更新|软件分类|软件专题|手机版|论坛转贴|软件发布

您当前所在位置:首页数据库Oracle → Oracle 10g表空间物理位置转移

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

时间:2015/6/28来源:IT猫扑网作者:网管联盟我要评论(0)

  上周五花了几个小时,专门来了解了下oracle表空间转移的知识,因为测试站点ORACLE所在的磁盘只剩下十几M的空间了。于是我将表空间转移到另外一个磁盘,过程如下:

  操作环境:

  数据库: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

相关阅读

文章评论
发表评论

热门文章 Oracle中使用alter table来增加,删除,修改列Oracle中使用alter table来增加,删除,修改列oracle中使用SQL语句修改字段类型-oracle修oracle中使用SQL语句修改字段类型-oracle修使用低权限Oracle数据库账户得到管理员权限使用低权限Oracle数据库账户得到管理员权限Oracle对user的访问控制Oracle对user的访问控制

相关下载

人气排行 ORACLE SQL 判断字符串是否为数字的语句Oracle中使用alter table来增加,删除,修改列的语法ORACLE和SQL语法区别归纳(1)oracle grant 授权语句如何加速Oracle大批量数据处理Oracle删除表的几种方法ORACLE修改IP地址后如何能够使用Oracle 10g创建表空间和用户并指定权限