`
flowerina
  • 浏览: 34524 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

更改Oracle数据库表的表空间-方法1

阅读更多
在Oracle数据库管理系统中,创建库表(table)时要分配一个表空间(tablespace),如果未指定表空间,则使用系统用户确省的表空间。

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

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

2.1可以采用批处理的方式删除掉db_zgxt下的所有表,生成批处理的语句如下:
--其中set head off将表头信息去掉。

SET HEAD OFF

SPOOL c:\drop_tables.sql

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

spool off;

2.2执行删除表的操作

sql >@drop_tables.sql

3. 建表和索引的语句导出到文件

采用导入参数 INDEXFILE导入oa用户下的所有表(Dos控制台下)把建表和索引的语句导出到文件,其中建表语句是加注释的,并没有实际导入。

IMP oa/password@paramount_server FULL=Y FILE=d:\220oa_expdata.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:\ 220oa_expdata.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数据库表的表空间实践.pdf

    更改Oracle数据库表的表空间实践.pdf

    oracle数据库-改变表空间数据文件的位置

    "Oracle数据库-改变表空间数据文件的位置" 本文将详细介绍如何在Oracle数据库中改变表空间数据文件的位置。 在开始之前,我们需要了解Oracle数据库中的表空间和数据文件的概念。表空间是Oracle数据库中用于存储...

    Oracle-12c数据库基础教程-Oracle-12c数据库ADO.NET数据访问技术完整.pptx

    Oracle 12c 数据库基础教程 - ADO.NET 数据访问技术...OracleConnection 类用于定义打开或连接数据库的字符串,连接超时时间、当前数据库或连接打开后要使用的数据库名称、连接状态、IDbConnection 接口的主要方法等。

    ORACLE数据库表空间转换器

    ORACLE数据库表空间转换器 获取oracle表空间名,然后进行修改进行转换

    Oracle数据库常见表空间故障恢复方案.pdf

    Oracle 数据库常见表空间故障恢复方案 本文主要阐述用户表...本文对 Oracle 数据库常见表空间故障恢复方案进行了详细的介绍,包括用户表空间、临时表空间、系统表空间、回滚表空间和控制文件丢失或损坏的恢复方案。

    oracle创建数据库表空间.doc

    Oracle 创建数据库表空间 Oracle 是一种流行的关系数据库管理系统,创建数据库表空间是 Oracle 数据库管理员的一项基本任务。本文将详细介绍如何在 Linux 环境下创建和删除 Oracle 表空间及用户。 一、创建临时表...

    Oracle数据库学习指南

    25. 安装Oracle后,经常使用的修改表空间的SQL代码 26. 比较SQL Server与Oracle、DB2 27. 多个数据库时,如何设置默认数据库 28. 各种数据类型的比较 29. 漫谈oracle中的空值 30. 没有备份、只有归档日志,如何...

    oracle10g课堂练习I(1)

    Oracle 数据库体系结构 1-8 数据库结构 1-9 Oracle 内存结构 1-10 进程结构 1-12 Oracle 实例管理 1-13 服务器进程和数据库缓冲区高速缓存 1-14 物理数据库结构 1-15 表空间和数据文件 1-17 SYSTEM 和 ...

    Oracle DBA workshop1 (中文版)

    Oracle 数据库体系结构1-8 数据库结构1-9 Oracle 内存结构1-10 进程结构1-12 Oracle 实例管理1-13 服务器进程和数据库缓冲区高速缓存1-14 物理数据库结构1-15 表空间和数据文件1-17 SYSTEM 和SYSAUX 表空间1-18 段、...

    oracle修改表结构

    使用oracle数据库时修改表结构,创建表空间等等

    Oracle数据库维护手册.docx

    表空间是 Oracle 数据库的重要组件,用于存储数据库中的数据。 * 表空间的管理方式:CREATE TABLESPACE 命令、ALTER TABLESPACE 命令等 * 表空间的管理技巧:使用自动分配表空间、使用表空间模板等

    Oracle数据库语句大全.doc

    Oracle 数据库语句大全还包括创建表空间、删除表空间、查询表空间基本信息、创建用户、更改用户、锁定用户、删除用户等语句。 二.数据操纵语言(DML) 数据操纵语言(DML)用于操作数据库中的数据,包括插入、...

    oracle数据库题库.pdf

    Oracle数据库的核心组件包括实例、数据库、表空间、数据文件、控制文件、redo日志文件等。 Oracle数据库的基本概念包括数据类型、表、视图、索引、存储过程、函数、触发器等。 2. Oracle数据库管理: Oracle数据库...

    ORACLE数据库学习总结资料.pdf

    Oracle数据库学习总结资料.pdf 是一份关于 Oracle 数据库的学习总结资料,涵盖了 Oracle 数据库的各个方面,包括 Oracle 的简介、简单查询、标量函数和算数运算、多表查询、列函数和分组、子查询、表的更新操作、表...

    oracle数据库大作业.pdf

    Oracle数据库大作业.pdf 本资源摘要信息是关于Oracle数据库的大作业,主要介绍了图书管理系统的设计...本资源摘要信息详细介绍了Oracle数据库大作业的设计和实现,包括系统的功能模块、数据库设计和表空间创建等方面。

    oracle数据库表设计.pptx

    表设计规范 2017年11月3日 oracle数据库表设计全文共29页,当前为第1页。 表设计范式 表与表关联关系 主键、外键、约束 表分区 目录 oracle数据库表设计全文共29页,当前为第2页。 表设计规范-范式 1NF:如果关系R ...

    Oracle数据库培训.ppt

    Oracle 数据库培训 Oracle 数据库培训是一个专业的数据库管理系统,具有高...通过学习 Oracle 数据库培训,可以掌握 Oracle 数据库的基本概念、逻辑结构、物理结构、连接、表空间的建立、用户的建立与授权等知识点。

    Oracle-数据库简答题.doc

    答:数据库由若干个表空间组成,表空间由表、索引、视图等逻辑对象组成,表由段 组成,段由区组成,区则由数据块组成。 2.简述Oracle数据库物理结构中包含的文件类型,以及不同类型文件所能起的作用 。 答:物理...

    数据库系统-招标参数---模板.doc

    " " "数据库性能 "数据库提供数据表分区能力的商务和技术许可,以" " " "便支持海量数据表的需求。 " " " "具有支持并行操作所需的技术,如并行装载,并行" " " "查询,并行创建索引等 " " " "提供分区索引视图功能 ...

Global site tag (gtag.js) - Google Analytics