IT168-服务器专区:更改Oracle数据库表的表空间

更改Oracle数据库表的表空间

作者:chinaitlab 佚名   更新时间:2005-11-17    收藏此页

【IT168 服务器学院】在Oracle数据库管理系统中,创建库表(table)时要分配一个表空间(tablespace),如果未指定表空间,则使用系统用户确省的表空间。

在Oracle实际应用中,我们可能会遇到这样的问题。处于性能或者其他方面的考虑,需要改变某个表或者是某个用户的所有表的表空间。通常的做法就是首先将表删除,然后重新建表,在新建表时将表空间指定到我们需要改变的表空间。如果该用户已经保存了大量数据,这种办法就就显得不是很方便,因为有大量数据需要提前备份出来。下面介绍一种利用数据库的导出/导入功能来实现重新组织数据库表空间的方法。

下面是一个简单的例子,假定要将用户oa下的全部表从表空间A转换到表空间B,具体步骤(在Oracle 9i for linux环境)如下:

1.1. 导出db_zgxt下的所有表(Dos控制台下) 导出db_zgxt下的所有表(Dos控制台下)

1. 导出db_zgxt下的所有表(Dos控制台下)

EXP oa/password@pararmount_server FILE=d:\10_27_oa.dmp LOG=d:\10_27_oa.LOG

2. 删除oa下的所有表(在SQL/PLUS中)

可以采用批处理的方式删除掉db_zgxt下的所有表,生成批处理的语句如下:

--其中set head off将表头信息去掉

SET HEAD OFF

SPOOL c:\drop_tables.sql

select ‘drop table ‘||table_name||‘;‘ from user_tables;

spool off;

@c:\drop_tables.sql;

sql >@drop_tables.sql

3. 采用导入参数 INDEXFILE导入oa用户下的所有表(Dos控制台下)

把建表和索引的语句导出到文件,其中建表语句是加注释的,并没有实际导入

IMP oa/password@paramount_server FULL=Y FILE=d:\10_27_oa.dmp INDEXFILE=d:\altertablespace_table_index.SQL LOG=d:\altertablespace.LOG

其中,指定参数INDEXFILE后,系统就将创建表和索引的语句写到一个文件,这里是altertablespace_table_index.SQL 中。该文件中包含了所有创建索引(CREATE INDEX)语句和创建表(CREATETABLE)语句,但是这里所有创建表的语句均加了注释标志。在任何文本编辑器中打开并编辑该文件,去掉所有创建表语句的注释标志,将所有的表空间名称由A替换为B,同时对所有的创建索引语句加上注释标志。这些工作作完以后,在SQL/PLUS中运行该脚本文件,这些表就被创建,其表空间由A变为B。

采用导入参数INDEXES=N 和IGNORE=Y将db_zgxt用户的表数据导入库中(Dos控制台下)

4. 采用导入参数INDEXES=N 和IGNORE=Y将oa用户的表数据导入库中(Dos控制台下)

IMP oa/password@paramount_server FULL=Y INDEXES=N FILE=d:\10_27_oa.dmp IGNORE=Y LOG=d:\altertablespace.LOG

其中,参数INDEXES=N是指将数据导入数据库中时不加索引。IGNORE=Y是指在导入数据过程中,忽略表已经存在(table already exists)的错误。这样Oralce就将数据和一些约束条件导入到第3步创建的表中。

5. 创建索引

在文本编辑器中重新打开在第3步中创建的altertablespace_table_index.SQL 脚本文件,这次,将所有创建表(CREATE TABLE)的语句加上注释标志,然后将所有的创建索引(CREATE INDEX)语句去掉注释标志。在SQL/PLUS中再次运行该脚本文件。

至此,我们就成功完成了将oa用户下的全部表从表空间A转换到表空间B的工作。当然你可以只导入一部分表。

更改Oracle数据库表的表空间

作者:chinaitlab 佚名   更新时间:2005-11-17    收藏此页

【IT168 服务器学院】在Oracle数据库管理系统中,创建库表(table)时要分配一个表空间(tablespace),如果未指定表空间,则使用系统用户确省的表空间。

在Oracle实际应用中,我们可能会遇到这样的问题。处于性能或者其他方面的考虑,需要改变某个表或者是某个用户的所有表的表空间。通常的做法就是首先将表删除,然后重新建表,在新建表时将表空间指定到我们需要改变的表空间。如果该用户已经保存了大量数据,这种办法就就显得不是很方便,因为有大量数据需要提前备份出来。下面介绍一种利用数据库的导出/导入功能来实现重新组织数据库表空间的方法。

下面是一个简单的例子,假定要将用户oa下的全部表从表空间A转换到表空间B,具体步骤(在Oracle 9i for linux环境)如下:

1.1. 导出db_zgxt下的所有表(Dos控制台下) 导出db_zgxt下的所有表(Dos控制台下)

1. 导出db_zgxt下的所有表(Dos控制台下)

EXP oa/password@pararmount_server FILE=d:\10_27_oa.dmp LOG=d:\10_27_oa.LOG

2. 删除oa下的所有表(在SQL/PLUS中)

可以采用批处理的方式删除掉db_zgxt下的所有表,生成批处理的语句如下:

--其中set head off将表头信息去掉

SET HEAD OFF

SPOOL c:\drop_tables.sql

select ‘drop table ‘||table_name||‘;‘ from user_tables;

spool off;

@c:\drop_tables.sql;

sql >@drop_tables.sql

3. 采用导入参数 INDEXFILE导入oa用户下的所有表(Dos控制台下)

把建表和索引的语句导出到文件,其中建表语句是加注释的,并没有实际导入

IMP oa/password@paramount_server FULL=Y FILE=d:\10_27_oa.dmp INDEXFILE=d:\altertablespace_table_index.SQL LOG=d:\altertablespace.LOG

其中,指定参数INDEXFILE后,系统就将创建表和索引的语句写到一个文件,这里是altertablespace_table_index.SQL 中。该文件中包含了所有创建索引(CREATE INDEX)语句和创建表(CREATETABLE)语句,但是这里所有创建表的语句均加了注释标志。在任何文本编辑器中打开并编辑该文件,去掉所有创建表语句的注释标志,将所有的表空间名称由A替换为B,同时对所有的创建索引语句加上注释标志。这些工作作完以后,在SQL/PLUS中运行该脚本文件,这些表就被创建,其表空间由A变为B。

采用导入参数INDEXES=N 和IGNORE=Y将db_zgxt用户的表数据导入库中(Dos控制台下)

4. 采用导入参数INDEXES=N 和IGNORE=Y将oa用户的表数据导入库中(Dos控制台下)

IMP oa/password@paramount_server FULL=Y INDEXES=N FILE=d:\10_27_oa.dmp IGNORE=Y LOG=d:\altertablespace.LOG

其中,参数INDEXES=N是指将数据导入数据库中时不加索引。IGNORE=Y是指在导入数据过程中,忽略表已经存在(table already exists)的错误。这样Oralce就将数据和一些约束条件导入到第3步创建的表中。

5. 创建索引

在文本编辑器中重新打开在第3步中创建的altertablespace_table_index.SQL 脚本文件,这次,将所有创建表(CREATE TABLE)的语句加上注释标志,然后将所有的创建索引(CREATE INDEX)语句去掉注释标志。在SQL/PLUS中再次运行该脚本文件。

至此,我们就成功完成了将oa用户下的全部表从表空间A转换到表空间B的工作。当然你可以只导入一部分表。


相关文章

  • ※发电设备可靠性管理信息系统安装说明书
  • 发电设备可靠性管理信息系统(网络版) 安装说明书 山东天辉科技有限公司 2004-09 一. 硬件需求: (1).数据库服务器: 1. 最低配置:Pentium II/III 550或以上 CPU.256M内存.2G剩余硬盘空间 2. 建议 ...查看


  • 网络课程设计报告
  • 淮海工学院计算机工程学院 课程设计报告 设计名称: 姓 名: 计算机网络课程设计 学 号: 专业班级: 系 (院) : 设计时间: 设计地点: 计算机工程学院 2012.06.25~2012.07.06 计算机网络实验室 指导教师评语: 成 ...查看


  • 阿里巴巴的OracleDBA笔试题参考答案
  • 阿里巴巴的Oracle DBA笔试题参考答案+++++++++++++++++++++++++++++++++++++本文的阿里巴巴数据库面试题主要针对于Oracle DBA,题目可以是笔试题,也可以口头回答.以下题目,可根据自己情况挑选题 ...查看


  • 广西社保局技术方案
  • 2.技术方案 第一章 概述 1.1. 需求分析 随着互联网技术.通信技术的快速发展,各行各业信息化建设也从通常的文字录入.办公自动化发展到业务活动的信息化,为了满足不同应用的需求,基于互联网的应用模型和计算模型得到了广泛的应用.PC服务器随 ...查看


  • 如何搭建一个数据库服务器平台
  • 如何搭建一个数据库服务器平台如何搭建一个数据库服务器平台 玩Oracle 2年多了,从接触Oracle 到现在,一直没有停止过学习. 要学的东西太多,刚入门的时候是这样的感觉,现在还是这样的感觉. 有时候也在想,还要学多长时间才能感觉自我良 ...查看


  • Oracle体系结构前必须掌握的两个概念
  • Oracle体系结构前必须掌握的两个概念 对于初学者来讲,在了解Oracle体系结构之前必须掌握以下两个基本的概念: 数据库和实例. 一.数据库 数据库(database)是一个数据集合. 无论数据库是采用关系结构还是面向对象结构, ora ...查看


  • 百亿食品安全检测蛋糕出炉 10股盛宴开席
  • 多家公司抢滩食品(行情 专区)安全百亿蛋糕 2014年新年伊始,北京食品药品监督管理局就召开会议部署2014年重点工作,会议表示,将建最严格食品药品监管制度,实现食品"从农田到餐桌".药品"从研发到使用&quo ...查看


  • 软件天才与技术民工 天才是训练出来的?-IT168 技术开发专区
  • "程序员"真的是"IT民工"? 在中国,不少程序员都是"CRUD"程序员,这不能怪他们,因为中国多数项目都是CRUD的.所以,CRUD似乎成为了"IT民工"身上 ...查看


  • 供应商关系管理解决方案
  • 供应商关系管理解决方案 2012.10.11 采贩管理系统的拓展方向 差异化采贩策略 采贩分析与寻源 采贩支出分析 品类管理 订单 非生产物资 在线寻源 供应商协作 有效的采贩流程控制 服务采贩 采贩申请 采贩计划 采贩合同 采贩订单 审批 ...查看


热门内容