精华内容
下载资源
问答
  • 我原先的数据库的表空间是XMGL,然后我修改了一张,将其表空间修改为了 WGP,然后...报错说是 XMGL不存在,问题是我原先导出前已经修改表空间,导出还是原先的表空间,求解,数据库我也重启了,还是不行,求大神!
  • -----oracle创建表空间的方法 create tablespace dragon --dragon为创建的表空间名称 bagfile/smallfile代表创建 datafile 'D:\dragon.dbf' --D:\dragon.dbf为数据文件名称和 存放的地址 size 100M reuse --设置...
    -----oracle创建表空间的方法 
    create  tablespace dragon  
    --dragon为创建的表空间名称 
    bagfile/smallfile代表创建 
    datafile 'D:\dragon.dbf' 
    --D:\dragon.dbf为数据文件名称和 存放的地址 size 100M reuse
    --设置初始大小 reuse参数为 如果文件存在则删除 autoextend on next 50 
    --设置自动扩展 maxsize unlimited 
    --默认无限扩展 logging 
    --默认生成日志文件 ; 
    -----删除表空间 
    drop tablespace dragon 
    --为删除dragon表空间 including contents 
    --表示再删除表空间的同时 删除表空间的数据如果不指定 如果该表空间有事非空时 删除就会报错 cascade constraints 
    --删除当前表空间的同时也删除完整性限制 ;
     commit; 
    --修改表空间的名称 dba不能对 system和 sysaux的表空间进行改名 也不能对已经处于 offline的表空间改名 
    alter tablespace dragon rename to new_dragon;
    
    展开全文
  • Oracle表空间存在问题

    千次阅读 2019-07-18 12:00:15
    问题原因:涉及到源库(导出库)中的、索引、LOB字段的表空间在目的库(导入库)中不存在的问题。 解决思路:所以该问题正确解决方式应该分三步: 表空间迁移。 索引的表空间迁移。 LOB字段的表空间迁移。 ...

    一、问题引出

    相信大家对如上报错应该不陌生(ORA-00959:表空间XXX不存在)。

     

    二、问题分析

    问题原因:涉及到源库(导出库)中的表、索引、LOB字段的表空间在目的库(导入库)中不存在的问题。

    解决思路:所以该问题正确解决方式应该分三步:

    1. 表的表空间迁移。
    2. 索引的表空间迁移。
    3. LOB字段的表空间迁移。

     

    三、解决方法

    3.1、表的表空间迁移

    首先,我们需要知道该用户名下有哪些表空间,总不能等到我都导出库了,等导入报错后再确认吧?,这样太费事了,可以根据下条sql语句查出:

    -- 查看用户的表被存储在哪些表空间中(需要修改表空间的表即在这些表空间中)
    SELECT * FROM dba_users where username = upper('&inputUserName');   

    然后,根据需要修改表所属的表空间:

    SELECT 'alter table '||TABLE_NAME||' move tablespace dstTableSpace;' 
    FROM USER_TABLES WHERE status = 'VALID' AND  TABLESPACE_NAME = upper('&srcTablespace');

    Tips:我们还可以查看下在用户不同表空间下各有多少张表:

    SELECT count(*) FROM dba_segments where tablespace_name = '&表空间1' and owner = '&用户名' and segment_type = 'TABLE'
    UNION
    SELECT count(*) FROM dba_segments where tablespace_name = '&表空间2' and owner = '&用户名' and segment_type = 'TABLE';

     

    3.2、索引的表空间迁移

    由3.1步知道有哪些表空间后,可以用如下sql语句批量进行索引的表空间迁移。

    SELECT 'alter index '|| INDEX_NAME ||' rebuild tablespace index_DstTablespace;' FROM user_indexes where table_owner=upper('&username');

    Tips:同3.1,我们也可以知道在用户不同表空间下各有多少索引:

    SELECT count(*) FROM dba_segments where tablespace_name = '&表空间1' and owner = '&用户名' and segment_type = 'INDEX'
    UNION
    SELECT count(*) FROM dba_segments where tablespace_name = '&表空间2' and owner = '&用户名' and segment_type = 'INDEX';

     

    3.3、LOB字段的表空间迁移

    1、查看有哪些blob字段

    SELECT a.table_name, a.column_name, a.segment_name, b.tablespace_name, b.bytes  -- b.btypes为lob字段总大小
      FROM user_lobs a, user_segments b
     where a.segment_name = b.segment_name;

    2、再逐个或批量修改CLOB、BLOB字段所属表空间

    -- 注意是LOB(col_lob1, col_lob2...)
    ALTER TABLE TEST2 MOVE TABLESPACE table_DstTablespace LOB(col_lob1,col_lob2) STORE AS(TABLESPACE lob_DstTablespace);

     

    最后

    有可能还会遇到如下问题:ORA-14063:唯一/主约束条件关键字中存在无用索引

     解决方法:rebuild无效索引。

    -- 查看有哪些索引是无效的
    SELECT tablespace_name,
           index_name,
           table_name,
           table_owner,
           index_type,
           status
      FROM user_indexes
     where status <> 'VALID';
    
    -- 批量重构无效索引
    select 'alter index ' || index_name || ' rebuild;'
      from user_indexes
     where tablespace_name = '&tablespaceName'
       and status <> 'VALID' --(过滤无效索引后重建)
    

     

    展开全文
  • oracle数据库-修改表空间表数据文件

    千次阅读 2016-03-17 15:38:41
    数据库-修改表空间表数据语句 表空间是数据库的逻辑划分,一个表空间只能属于一个数据库。所有的数据库对象存放在指定的表空间中。但主要存放的是, 所以称作表空间。 数据库中中少存在一个表空间,即SYSTEM的...

    数据库-修改表空间表数据语句

    表空间是数据库的逻辑划分,一个表空间只能属于一个数据库。所有的数据库对象存放在指定的表空间中。但主要存放的是表, 所以称作表空间。

    数据库中中少存在一个表空间,即SYSTEM的表空间。

    SQL Server数据库与Oracle数据库之间最大的区别要属表空间设计。Oracle数据库开创性地提出了表空间的设计理念,这为Oracle数据库的高性能做出了不可磨灭的贡献。可以这么说,Oracle中很多优化都是基于表空间的设计理念而实现的。

    前置机(前置机即相当于一台服务器)数据库可能出问题了,我这边连接提示:

    Oracle数据库连接异常!ORA-03135: connection lost contact

    Process ID: 496

    Session ID: 81 Serial number: 49190

    系统资源不足,无法完成请求的服务。

    处理步骤

    1.首先需要了解是那一台的服务器的数据库出问题了--本案例是在8服务器上;

    2.登录该服务器上的数据库查询是否由于表空间或者表数据不够造成的;

    3.如果是这个问题则修改或者增加表空间和表数据;

    4.修改后询问反应问题的客户的反馈;

    这次遇到的问题是在工商扫描软件开发中在8服务器上 

    首先查一下表空间是否足够:

    1,怎么查表空间,怎么增加表空间

    2、表数据文件属于表空间里的表;


    --查看表空间空间等详细信息详细

    ---尽量查找这个语句比较直观一点

    select * from (
    SELECT D.TABLESPACE_NAME, 
             SPACE  ||  'M'  "SUM_SPACE(M)", 
            BLOCKS "SUM_BLOCKS", 
             SPACE  -  NVL  (FREE_SPACE,  0 ) ||  'M'  "USED_SPACE(M)", 
             ROUND  ( ( 1  -  NVL  (FREE_SPACE,  0 ) /  SPACE ) *  1002 ) ||  '%'  
               "USED_RATE(%)", 
            FREE_SPACE ||  'M'  "FREE_SPACE(M)" 
        FROM  (   SELECT  TABLESPACE_NAME, 
                       ROUND  ( SUM  (BYTES) / ( 1024  *  1024 ),  2SPACE
                       SUM  (BLOCKS) BLOCKS 
                  FROM  DBA_DATA_FILES 
              GROUP   BY  TABLESPACE_NAME) D, 
            (   SELECT  TABLESPACE_NAME, 
                       ROUND  ( SUM  (BYTES) / ( 1024  *  1024 ),  2 ) FREE_SPACE 
                  FROM  DBA_FREE_SPACE 
              GROUP   BY  TABLESPACE_NAME) F 
       WHERE  D.TABLESPACE_NAME = F.TABLESPACE_NAME(+) 
      UNION   ALL                                                            
      SELECT  D.TABLESPACE_NAME, 
             SPACE  ||  'M'  "SUM_SPACE(M)", 
            BLOCKS SUM_BLOCKS, 
            USED_SPACE ||  'M'  "USED_SPACE(M)", 
             ROUND  ( NVL  (USED_SPACE,  0 ) /  SPACE  *  1002 ) ||  '%'  "USED_RATE(%)", 
             NVL  (FREE_SPACE,  0 ) ||  'M'  "FREE_SPACE(M)" 
        FROM  (   SELECT  TABLESPACE_NAME, 
                       ROUND  ( SUM  (BYTES) / ( 1024  *  1024 ),  2SPACE
                       SUM  (BLOCKS) BLOCKS 
                  FROM  DBA_TEMP_FILES 
              GROUP   BY  TABLESPACE_NAME) D, 
            (   SELECT  TABLESPACE_NAME, 
                       ROUND  ( SUM  (BYTES_USED) / ( 1024  *  1024 ),  2 ) USED_SPACE, 
                       ROUND  ( SUM  (BYTES_FREE) / ( 1024  *  1024 ),  2 ) FREE_SPACE 
                  FROM  V$TEMP_SPACE_HEADER 
              GROUP   BY  TABLESPACE_NAME) F 
       WHERE  D.TABLESPACE_NAME = F.TABLESPACE_NAME(+) 
      ORDER   BY   1 )
    结果如下:    
    其中pydata为数据库表空间,而其他5个表空间是一般数据库通常会自带创建的表空间,具体度娘,其中后两列就分别是使用百分比以及空闲的空间
      

    --查看所有表空间文件路径

      select  *  from   DBA_DATA_FILES 
    --结果可以查找相关文件路径


    2.select  tablespace_name,bytes/ 1024 / 1024   from  dba_data_files  order   by  bytes;  




    #创建一个表空间 . DBF数据 -- 注意增加表空间要sys用户
    --在一个表空间中增加.DBF数据   假如在一个物理硬盘中磁盘空间已满,需要在另一个盘符中创建数据文件,需要先创建相关路径才能语句添加成功(特别注意)
    --惯例是把最大数的dbf文件,+1为新建的dbf文件来创建该数据文件,即完成扩展
      alter    tablespace  PYDATA  add   datafile  'e:\ORA\DATA\PYDATA_33.DBF'   size  20480M;  
    --你先看看是不是这个情况,如果最大块FSFI只有2位数的话,那就要整理碎片了 
      select  tablespace_name, sqrt ( max (blocks)/ sum (blocks))* 
      (100/sqrt(sqrt(count(blocks)))) FSFI 
      from dba_free_space 
      group by tablespace_name order by 1;

    --删除表空间
    drop tablespace 表空间名

    --重新修改表空间大小

    alter database datafile 'E:\APP\ADMINISTRATOR\ORADATA\ORCL\EXDBDATA14.DBF' resize 8000m 


    注意事项:A不要设自动增长,因为会在D盘里面不断的增加DBF文件,很容易让D盘0字节,系统报错。应该手工指定dbf文件存放的位置;B定期要检查各表空间,预防无空间系统报错


    可能遇到的报错:

    #提示ORA-00959:表空间'MC_DATA'不存在的解决

    #先确认当前用户的表空间。

    select username,default_tablespace,temporary_tablespace from dba_users where username='EXDB';

    查看表空间是否自动增长

    SELECT FILE_NAME,TABLESPACE_NAME,AUTOEXTENSIBLE FROM dba_data_files;



    #修改数据文件的扩展性

    alter database datafile '文件路径' autoextend on next 100maxsize 4000M

    #查看表空间是否扩容 no 为不扩容

    select file_name,autoextensible from dba_data_files where tablespace_name = 'EXDBDATA'



    #修改表空间为扩容

    ALTER DATABASE DATAFILE 'E:\APP\ADMINISTRATOR\ORADATA\ORCL\EXDBDATA19.DBF' AUTOEXTEND ON NEXT 10MAXSIZE UNLIMITED;

     

     

     

     

     

     

    展开全文
  • Oracle修改表空间大小

    千次阅读 2017-03-10 16:05:21
    无法为表空间 XXX中的段创建 INITIAL 区错误。 Oracle我在创建表空间的时候初始化大小为200M,当数据库中数据量达到这个值,再向数据库中导入数据就会报错。 解决方法是扩展表空间。 可以选择将容量扩大...
    在向orale 数据库 导入数据的时候报  ORA-01658: 无法为表空间 XXX中的段创建 INITIAL 区错误。

    Oracle我在创建表空间的时候初始化大小为200M,当数据库中数据量达到这个值,再向数据库中导入数据就会报错。

    解决方法是扩展表空间。

    可以选择将表容量扩大,比如扩展到2G,或者当表空间不够时每次自动增加一定的容量,如每次自增200M。


    查看各表空间分配情况

    [sql]  view plain  copy
      在CODE上查看代码片 派生到我的代码片
    1. select tablespace_name,bytes/1024/1024 from dba_data_files order by bytes;  

    查看各表空间空闲情况

    [sql]  view plain  copy
      在CODE上查看代码片 派生到我的代码片
    1. select tablespace_name, sum(bytes)/1024/1024 from dba_free_space group by tablespace_name;  

    更改表空间大小(2G)

    [sql]  view plain  copy
      在CODE上查看代码片 派生到我的代码片
    1. alter database datafile 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\xxx.DBF' resize 2048m;  

    设置表空间不足时自动增长

    1、查看表空间是否开启自动增长

    [sql]  view plain  copy
      在CODE上查看代码片 派生到我的代码片
    1. SELECT FILE_NAME,TABLESPACE_NAME,AUTOEXTENSIBLE FROM dba_data_files;  

    2、设置表空间自动增长

    [sql]  view plain  copy
      在CODE上查看代码片 派生到我的代码片
    1. ALTER DATABASE DATAFILE 'xxx\xxx.dbf' AUTOEXTEND ON;//打开自动增长  
    2. ALTER DATABASE DATAFILE 'xxx\xxx.dbf' AUTOEXTEND ON NEXT 200M ;//每次自动增长200m  
    3. //每次自动增长200m,表空间最大不超过1G  
    4. ALTER DATABASE DATAFILE 'xxx\xxx.dbf' AUTOEXTEND ON NEXT 200M MAXSIZE 1024M;  
    展开全文
  • 一、使用imp/exp。...据目前所了解,正长情况下需要修改表空间的索引的空间,如果涉及到BOLB字段的修改的方式又不一样了! 正常情况下的修改脚本: 1.修改表空间 alter table TABLE_NAME move ta
  • 一、表空间名称修改  1.查看所有表空间:select * from dba_tablespaces  2.修改表空间名称:alter tablespace TABLESPACENAME rename to NEWTABLESPACENAME ; 二、数据文件名称修改  ...
  • 1.登陆表空间B,创建b_tables  create table b_...2.登陆表空间A,执行下面的sql语句,得到表空间A存在B不存在  select ','||table_name from user_tables a where not exists (select 1 from B.b_tables
  • 表空间:最大的逻辑存储文件,与物理上的一个或多个数据文件对应,每个数据库至少拥有一个表空间表空间的大小等于构成表空间的所有数据文件的大小总和,用于存储用户在数据库中存储的所有内容。 分为基本表空间、...
  • 业务需要创建几个临时,结果创建时提示表空间EMSDATA不存在。原来这是我创建用户时指定的默认表空间,后来由于项目变化,这个表空间删掉了,所以有此提示。 create user emssxjk identified by emssxjk default ...
  • ORACLE修改用户所属表空间的步骤

    千次阅读 2020-12-20 17:15:38
    据目前所了解,正长情况下需要修改表空间的索引的空间,如果涉及到BOLB字段的修改的方式又不一样了! 正常情况下的修改脚本: 1.修改表空间 alter table TABLE_NAME move tablespace TABLESPACENAME ...
  • 修改mysql表空间为独立模式

    千次阅读 2014-04-24 17:44:10
    使用过MySQL的同学,刚开始接触最多的莫过于MyISAM引擎了,这种引擎的数据库会分别创建三个文件:结构、索引、数据空间。我们可以将某个数据库目录直接迁移到其他数据库也可以正常工作。 然而当你使用...
  • 如何修改表空间

    千次阅读 2009-12-13 22:23:00
    据目前所了解,正长情况下需要修改表空间的索引的空间,如果涉及到BOLB字段的修改的方式又不一样了! 正常情况下的修改脚本: 1.修改表空间 alter table TABLE_NAME move tablespace
  • 分区与表空间

    千次阅读 2017-11-15 15:50:46
    介绍了关于分区和表空间的基本内容。
  • oracle 查看表空间有哪些 ...select * from dba_tables wheretablespace_name='表空间名',注意表空间名大小写敏感。 select table_name,tablespace_name from user_tables; from http://w
  • 数据库的表空间

    千次阅读 2018-04-07 17:00:49
    表空间存在就是为了用来存储数据库的数据对象,一个数据库可以由多个数据表空间组成,可以通过表空间来实现对数据库的调参。表空间的分类永久性表空间:在存储过程中需要永久化存储的对象,比如二维,视图,存储...
  • 修改Oracle数据库表空间

    千次阅读 2010-04-24 23:44:00
    通常的做法就是首先将删除,然后重新建表,在新建时将表空间指定到我们需要改变的表空间。如果该用户已经保存了大量数据,这种办法就就显得不是很方便,因为有大量数据需要提前备份出来。下面介绍一种利用数据库...
  • ORACLE修改表空间方法

    千次阅读 2009-05-27 17:01:00
    据目前所了解,正长情况下需要修改表空间的索引的空间,如果涉及到BOLB字段的修改的方式又不一样了! 正常情况下的修改脚本: 1.修改表空间 alter table TABLE_NAME move tablespace
  • 3一个数据库可以存在多个撤销表空间 4任何时间内只有一个撤销表空间是可以获得或者使用。 5作用:实现对数据的回退,恢复,事务回滚以及撤销等操作 6.默认情况,数据库使用的是系统自动创建的undotbs1撤销表空间 ...
  • Oracle 表空间详解

    万次阅读 多人点赞 2016-06-07 00:28:02
    目录目录 表空间概述 表空间的分类 默认表空间 查看默认的永久表空间 ...修改用户的默认和临时表空间 修改表空间的状态 修改表空间的数据文件 删除表空间 用户表空间限额表空间概述Oracle的表空间属于
  • 此文从以下几个方面来整理关于分区的概念及...是一个或多个数据文件的集合,所有的数据对象都存放在指定的表空间中,但主要存放的是, 所以称作表空间。 分区: 当中的数据量不断增大,查询数据的速度就
  • oracle回滚表空间的操作

    千次阅读 2019-05-07 20:29:08
    SYSTEM回滚段是特殊的回滚段,它存在于SYSTEM表空间,SYSTEM回滚段用于回滚系统事务。非系统事务只能交由非系统回滚段来处理。因此,除了系统回滚表空间外,每个数据库应该另外创建一个回滚表空间。 ...
  • 普通表空间 新建表空间test11,数据文件为/u01/oracle/oradata/primary/primary/test11.dbf SQL> createtablespace test1 datafile '/u01/oracle/oradata/primary/primary/test1.dbf' size10m; Undo表空间 新建...
  • DB2表空间的管理

    千次阅读 2019-01-28 00:27:41
    DB2表空间的管理 表空间的作用 ​ ①表空间是用户逻辑对象的存储空间 ​ ②表空间在物理层上对应着若干个容器 ​ ③容器可以是目录、文件或者裸设备 ​ ④表空间是逻辑层与物理层的桥梁 ​ ⑤数据库可以有多个表空间...
  • 更改Oracle数据库表空间

    千次阅读 2004-11-23 16:36:00
    在Oracle数据库管理系统中,创建库(table)时要分配一个表空间(tablespace),如果未指定表空间,则使用系统用户确省的表空间。在Oracle实际应用中,我们可能会遇到这样的问题。处于性能或者其他方面的考虑,...
  • 首先,先确认当前用户的表空间。 select username,default_tablespace,temporary_tablespace from dba_users where username='...只需要将默认表空间改为,用户中存在表空间即可。 修改语句如下。 ALTER USER 用户
  • 3一个数据库可以存在多个撤销表空间 4任何时间内只有一个撤销表空间是可以获得的 5作用:实现对数据的回退,恢复,事务回滚以及撤销等操作创建撤销表空间create undo tablespace undospace datafile ‘F:\test\...
  • oracle12c表空间管理

    千次阅读 2019-06-12 11:08:30
    描述:本文包括创建表空间,为表空间添加数据文件,更改数据文件大小,移动和重命名数据文件以及一些oracle12c表空间管理新增的keep和reuse选项 操作如下: C:\Users\v074>sqlplus / as sysdba SQL*Plus: ...
  • Innodb独立表空间的配置

    万次阅读 2015-05-22 17:08:59
    Innodb独立表空间的配置

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 900,054
精华内容 360,021
关键字:

已存在的表更改表空间