`
flowerina
  • 浏览: 34397 次
  • 性别: 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数据库学习指南

    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数据库表设计.pptx

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

    Oracle-数据库简答题.doc

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

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

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

    完整版Oracle11数据库教程课件 全套PPT课件资源集合 全套12个章节.rar

    完整版Oracle11数据库教程课件 第5章_表空间(共37页).ppt 完整版Oracle11数据库教程课件 第6章_创建表及约束(共39页).ppt 完整版Oracle11数据库教程课件 第7章_高级查询(共52页).ppt 完整版Oracle11数据库教程...

    ORACLE数据库基础知识-华为维护资料

    3.15 如何修改ORACLE数据库的SID 44 3.16 Unix环境下如何实现自动备份 44 3.16.1 设置运行环境 45 3.16.2 倒出数据 45 3.16.3 异地备份 46 3.16.4 启动备份进程 47 3.17 怎样分析Oracle故障 48 3.18 如何设置ORACLE ...

    使用PLSQL创建Oracle数据库User用户并设置权限

    使用PLSQL创建Oracle数据库User用户并设置权限 主要演示了如何使用 PLSQL 创建一个 User 用户, 并使之具有创建表、修改表、访问表的权限。解决了 使用自定义用户创建表时出现的 没有表空间的访问权限的问题。

    Oracle数据库管理员技术指南

    第1章 建立和配置数据库 1.1 数据库创建规划 1.1.1 规划以及提出正确的问题 1.1.2 怎样确定恰当的数据块尺寸 1.2 组织文件系统 1.2.1 怎样命名数据库文件 1.2.2 使用最佳灵活结构 1.2.3 怎样配置符合 OFA 的 ...

    赤兔Oracle数据库恢复软件 v11.6.zip

    1.不需要运行Oracle数据库软件,EOR直接读取数据库文件解析数据。支持ASM,能够直接从ASM磁盘中导出数据,即使相关的磁盘组不能成功mount 2.支持从ASM中直接抽取出数据文件和其他任意存储在ASM中的文件(包括控制...

    Oracle数据库维护培训

    修改和删除存在的数据库用户 监控已存在用户的信息 识别系统和对象权限 授予和回收权限 创建和管理初始化参数文件 启动和关闭实例 监控和使用诊断文件 登录到 SQL*Plus环境 编辑SQL 命令 SQL*Plus 命令格式化并输出...

    使用PLSQL创建Oracle数据库User用户并设置权限, 创建表

    使用PLSQL创建Oracle数据库User用户并设置权限 主要演示了如何使用 PLSQL 创建一个 User 用户, 并使之具有创建表、修改表、访问表的权限。解决了 使用自定义用户创建表时出现的 没有表空间的访问权限的问题。

    Oracle数据库实验操作

    实验54:更改表空间的名称,更改数据文件的名称 113 表空间 116 实验55:建立临时表空间 117 实验56:大文件表空间和表空间的管理模式 118 数据库的逻辑结构 120 实验57:建立表,描述表的存储属性 121 实验58:...

Global site tag (gtag.js) - Google Analytics