精华内容
下载资源
问答
  • 修改表的表空间语句
    2021-05-01 04:38:02

    这篇文章主要介绍了Oracle修改表空间大小的方法,实例讲述了Oracle通过命令行实现修改Oracle表空间大小的方法,非常简单实用,需要的朋友可以参考下

    本文讲述了Oracle修改表空间大小的方法。分享给大家供大家参考,具体如下:

    1)查看各表空间分配情况

    SQL> select tablespace_name, sum(bytes) / 1024 / 1024 from dba_data_files group by tablespace_name;

    TABLESPACE_NAME SUM(BYTES)/1024/1024

    ------------------------------ --------------------

    UNDOTBS1 100

    SYSAUX 530

    USERS 5

    SYSTEM 700

    EXAMPLE 100

    5 rows selected

    2)查看各表空间空闲情况

    SQL> select tablespace_name, sum(bytes) / 1024 / 1024 from dba_free_space group by tablespace_name;

    TABLESPACE_NAME SUM(BYTES)/1024/1024

    ------------------------------ --------------------

    SYSAUX 26.125

    UNDOTBS1 69.6875

    USERS 0.9375

    SYSTEM 1.1875

    EXAMPLE 21.25

    5 rows selected

    3)更改数据表大小(10G)

    alter database datafile '/ora/oradata/radius/testNS.dbf' resize 10240m;

    希望本文所述对大家Oracle数据库程序设计有所帮助。

    相关文章

    更多相关内容
  • 修改表空间大小语句

    千次阅读 2022-01-19 17:34:09
    查看表空间 Sql代码 –1.查看剩余表空间大小 SELECT tablespace_name 表空间,sum(blocks8/1024) 剩余空间M FROM dba_free_space GROUP BY tablespace_name; –一种是分配给一个的物理空间数量,而不管空间是否被...

    查看表空间

    Sql代码

    –1.查看剩余表空间大小
    SELECT tablespace_name 表空间,sum(blocks8/1024) 剩余空间M FROM dba_free_space GROUP BY tablespace_name;
    –一种是分配给一个表的物理空间数量,而不管空间是否被使用。可以这样查询获得字节数:
    Select Tablespace_Name,Sum(bytes)/1024/1024 物理空间数量M From Dba_Segments Group By Tablespace_Name;
    –2.检查系统中所有表空间总体空间
    select b.name,sum(a.bytes/(1024
    1024))总空间M from v d a t a f i l e a , v datafile a,v datafilea,vtablespace b where a.ts#=b.ts# group by b.name;

    修改表空间大小有两种方法,一种是为表空间增加数据文件(适用于刚建立的表空间)

    alter tablespace users add datafile ‘c:\oracle\ora81\oradata\sid\user002.dbf’ size 100M;

    另一种方法是增加表空间原有数据文件尺寸:(适用于表空间中已经有数据文件的情况)

    alter database datafile ‘c:\oracle\ora81\oradata\sid\users.dbf’ resize 1000M;

    展开全文
  • ORACLE修改表空间方法

    千次阅读 2021-05-02 01:38:01
    据目前所了解,正长状况下须要修改表空间的索引的空间,若是涉及到BOLB字段的修改的方式又不同了!正常状况下的修改脚本:1.修改表空间alter table TABLE_NAME move tablespace TABL...

    1、使用imp/exp。先导出源库,再建立新库把表空间建立好,而后再导入。(听说这样能够,前提是新的库里面不能有与源库相同名字的表空间。有待验证!)

    2、使用脚本进行修改。据目前所了解,正长状况下须要修改表的空间和表的索引的空间,若是涉及到BOLB字段的表,修改的方式又不同了!

    正常状况下的修改脚本:

    1.修改表的空间

    alter table TABLE_NAME move tablespace TABLESPACENAME

    查询当前用户下的全部表

    select 'alter table  '|| table_name ||'  move tablespace tablespacename;'  from user_all_tables;

    2.修改表的索引的空间

    alter index INDEX_NAME rebuild tablespace TABLESPACENAME

    查询当前用户下的全部索引

    select 'alter index '|| index_name ||' rebuild tablespace tablespacename;' from user_indexes;

    可使用脚本执行查询的结果,这样就能够批量处理!

    不正常状况即含有BLOB字段的表:

    参考下面的文档

    本人已经执行过,是可行的,可是不知道有没有漏掉数据库中其它对象。是否还存在有对象的表空间须要修改,须要进一步发现或有数据库高手帮忙讲解则不胜感激!目前的修改在项目中尚未出现问题!

    在移植看注意研究了下ORACLE ALTER TABLE MOVE 的语法:

    ALTER TABLE table_name MOVE [ONLINE] tablespace_name;

    经过上面的语句能够移植表到新表空间,

    若是要移植LOB字典须要参考如下语法:

    ALTER TABLE table_name LOB (lob_item) STORE AS [lob_segment]

    (

    TABLESPACE tablespace_name

    (STORAGE.....)

    ENABLE|DISABLE STORAGE IN ROW

    CHUNK integer

    PCTVERSION integer

    RETENTION

    FREEPOOLS integer

    CACHE|NOCACHE|CACHE READS

    INDEX lobindexname

    (TABLESPACE tablesapce_name

    ((STORAGE.....))

    )

    ....

    注解:

    LOB (lob_item):表中的lob字段

    STORE AS [lob_segment]:每一个lob字段在表建立后系统都会自动单首创建一个段,能够经过这个参数手动指定一个段名

    tablespace_name:LOB字段新的存储表空间

    (STORAGE.....):指定tablespace_name的存储属性

    ENABLE STORAGE IN ROW:若是设置了enable storage in row 那么oracle会自动将小于4000bytes的数据存储在行内, 这是ORACLE的默认值,对于大于4000字节的lob字段保存在lob段(同disable storage in row),在表段将保留36-84字节的控制信息。对于disable storage in row,Oracle将lob字段分开保存在lob段中,而仅仅在行位置保留20字节的指针。对于至关于disable storage in row的这部分(也就是单独保存在LOB段的这部分数据),UNDO仅仅是记录指针与相关lob索引改变,若是发生更新操做等DML操做,原始数据将保留在LOB段。

    DISABLE STORAGE IN ROW:若是DISABLE这个属性,那么lob数据会在行外存储,行内只存储该lob值得指针,并且这个属性在表

    建立后只能在MOVE表时才能够被改变

    CHUNK:是一个很特别的属性,对一次LOB数据的操做(插入或更新),因该分配多少存储空间,指定的值最好是数据库块的倍数,并且指定的值不能大于表空间区间中NEXT的值, 要否则ORACLE会return一个错误,若是之前已经设置这个值了,那么在后期指定的值是不能被改变的。

    storage as ( CHUNK bytes )表示对于disable storage in row的这部分,最小的LOB块的大小,必须是数据库块(DB_BLOCK_SIZE)的整数倍。一个chunk最多只保留一行LOB数据,也就是说,若是你设置了32K的CHUNK,可是若是LOB字段大小只有4K,也将占用32K的空间

    storage as(cache|nocahce)表示是否容许lob段通过buffer cache并缓存。默认是nocache,表示直接读与直接写,不通过数据库的data buffer。因此,默认状况下,对于单独保存在LOB段的这部分数据,在发生物理读的时候,是直接读,如direct path read (lob)

    storage as(nocache logging |nocache nologging),logging/nologging属性只对nocache方式生效,默认是logging,若是是nologging方式,对于 保存在行外的log部分,在update等DML操做时将不记录redo日志。

    PCTVERSION integer、RETENTION:都是ORACLE用来管理LOB字段镜像数据的。在LOB 数据的更新过程当中,

    ORACLE没有用UNDO TABLESPACE空间,而是从LOB字段所在的表空间里划分一段空间来作镜像空间的,

    这个空间的大小由PCTVERSION参数控制,默认值为10,表明划分表空间的10%做为镜像空间,

    每一个镜像空间的单元大小由CHUNK参数指定,pctversion可使用在manual undo mode和automatic undo mode 环境中.

    retention应用了automatic undo mode中的undo_retention经过时间来管理lob镜像空间.

    pctversion和retention不能同时被指定.建议数据库在automatic undo mode下使用retention参数。

    FREEPOOLS integer:给LOG segment指定free list.RAC环境下integer为实例的个数.单实例环境下为1.在automatic undo mode下oracle默认采用

    FREEPOOLS来管理空闲块列表。除非咱们在表的storage配置中指定了freelist groups参数.

    CACHE|NOCACHE|CACHE READS:指定lob块是否在database buffer中缓存.

    INDEX lobindexname (TABLESPACE tablesapce_name ((STORAGE.....):给lob列指定索引存储参数

    举例:

    SQL> show parameter db_create_file_dest

    SQL> create tablespace test datafile size 100M autoextend off;

    SQL> create table test(a varchar2(100), b clob, d blob) pctfree 10 tablespace test;

    SQL> desc test

    SQL> SELECT segment_name,tablespace_name,segment_type FROM dba_segments WHERE tablespace_name='TEST';

    咱们发现每一个LOB字段单独有一个LOGSEGMENT和LOBINDEX;

    SQL> set linesize 200

    col table_name format a5

    col column_name format a5

    SELECT b.table_name,

    a.segment_name,

    b.index_name,

    a.segment_type,

    b.column_name,

    a.tablespace_name,

    b.chunk,

    b.cache,

    b.freepools,

    b.pctversion,

    b.retention

    FROM dba_segments a,dba_lobs b

    WHERE a.segment_name = b.segment_name

    AND a.tablespace_name = 'TEST'

    /

    SQL>

    从上面的结果咱们能够观察到LOB字段的各个属性.

    下面咱们对LOB字段move到另外一个表空间

    SQL> create tablespace lob_test datafile size 100M autoextend off;

    SQL> ALTER TABLE TEST MOVE LOB(B) STORE AS TEST_B (

    TABLESPACE lob_test

    DISABLE STORAGE IN ROW

    CHUNK 16384

    RETENTION

    FREEPOOLS 1

    NOCACHE);

    SQL> ALTER TABLE TEST MOVE LOB(D) STORE AS TEST_D (

    TABLESPACE lob_test

    DISABLE STORAGE IN ROW

    CHUNK 16384

    RETENTION

    FREEPOOLS 1

    NOCACHE);

    SQL> SELECT segment_name,tablespace_name,segment_type FROM dba_segments WHERE tablespace_name='TEST';

    SQL> set linesize 200

    col table_name format a5

    col column_name format a5

    SELECT b.table_name,

    a.segment_name,

    b.index_name,

    a.segment_type,

    b.column_name,

    a.tablespace_name,

    b.chunk,

    b.cache,

    b.freepools,

    b.pctversion,

    b.retention

    FROM dba_segments a,dba_lobs b

    WHERE a.segment_name = b.segment_name

    AND a.tablespace_name = 'LOB_TEST'

    /SQL>

    在一些复杂状况下可能须要连表一块儿移植

    alter table table_name move [tablespace_name] lob (lob_item) store as [lobsegmentname] (tablespace tablespace_name.....);

    移植分区中lob

    alter table table_name move partition [partition_name] lob (lob_item) store as [logsegmentname] (tablespace_name.....);

    移植分区表

    alter table table_name move partition [partition_name] tablespace_name lob (lob_item) store as [logsegmentname] (tablespace_name.....);

    若是不须要修改lobsegmentname,能够同时移植多个列

    alter table table_name move lob (lob_item1,lob_item2,lob_item3...) store as [lobsegmentname] (tablespace tablespace_name.....);

    LOB段也能够利用move来重整数据,如下的语句会将表与lob字段move到指定的表空间:

    alter table table_name move [tablespace tbs_name]

    lob(lob_field1,lob_field2) store as (tablespace new_tbs_name);

    若是LOB字段在分区表中,则增长partition关键字,如

    alter table table_name move [partition partname] [tablespace tbs_name]

    lob(field) store as (tablespace new_tbs_name);

    在数据库中合理的存储LOB列,不只能够提高性能,并且还能够有效的管理存储空间.程序员

    程序员的基础教程:菜鸟程序员数据库

    展开全文
  • 查看修改表空间语句,能够通过命令语句去实现表空间扩展,利于数据库维护。
  • Oracle表空间的增删改

    2020-12-14 09:41:30
    表空间分类 1.永久性表空间,如system,users。...通过上面的sql语句就创建了一个名为test的表空间,在d:\Oracledb路径下会找到一个test.dbf数据文件,他的大小是30m。 修改表空间 1.调整表空间大小 方法一:更改
  • Oracle 11g 修改表的所属表空间应领导要求,需要将部分的所属表空间进行更改,目的为了整理用户。查询owner下 对于级别的表空间分类select tablespace_name,count(*) from dba_tables where owner = 'XXX' group...

    Oracle 11g 修改表的所属表空间

    应领导要求,需要将部分表的所属表空间进行更改,目的为了整理用户。

    查询owner下 对于表级别的表空间分类

    select tablespace_name,count(*) from dba_tables where owner = 'XXX' group by tablespace_name order by 2;

    核对上面的数量情况

    select * from dba_tables where owner = 'XXX' and tablespace_name = 'USERS';

    查看每张表的基本信息

    select table_name,num_rows from dba_tables where owner = 'XXX' and tablespace_name = 'USERS' order by 2 desc;

    查询需要move表的详细信息

    select t.table_name as "表名",

    t.num_rows as "表行数",

    nvl(s.partition_name, 0) as "分区名",

    s.segment_type "段类型",

    s.bytes / 1024 / 1024 as "段大小(MB)"

    FROM dba_tables t, dba_segments s

    where t.table_name = s.segment_name(+)

    and t.owner = 'XXX'

    and t.tablespace_name = 'USERS'

    order by s.bytes

    desc;

    select count(*) from(

    select table_name

    from dba_tables

    where owner = 'XXX'

    and table_name not like 'T\_%' escape '\'

    and table_name not like 'JF\_%' escape '\'

    and table_name not like 'PAYMENT\_%' escape '\'

    and table_name not like 'PROM%'

    and table_name <> 'CUSTOMER_BUY_HIS');

    查询需要move表的索引情况,11g中要考虑move后的索引重建,12c版本中可以支持online move

    select index_name,index_type,table_name,table_owner,table_type,uniqueness,status from dba_indexes where owner = 'XXX' and tablespace_name = 'USERS';

    拼接move的sql语句

    SELECT 'alter table '||TABLE_NAME||' move tablespace YLPW;' FROM DBA_TABLES WHERE TABLESPACE_NAME = 'USERS' and OWNER = 'XXX';

    拼接重建索引的sql语句(rebuild 跟 rebuid online的区分要注意,online不会阻塞dml语句)

    select 'alter index ' ||index_name||' rebuild online;' from dba_indexes where table_owner = 'YL2012' and status <> 'VALID';

    1、要考虑move后的索引重建问题

    2、尽量放在业务低峰期或者夜间进行

    3、对于大表考虑重建索引时占用的cpu跟临时表空间的问题

    展开全文
  • oracle数据库创建表空间语句
  • Oracle:如何非常简单修改表表空间? 下面来介绍两种非常简单基础的修改: 1.针对无分区的表空间修改 2.针对有分区也就是有blob的修改 ---------------------对于没有分区的表空间修改----------------------- ...
  • 在Oracle数据库管理系统中,创建库(table)时要分配一个表空间(tablespace),如果未指定表空间,则使用系统用户确省的表空间。在Oracle实际应用中,我们可能会遇到这样的问题。处于性能或者其他方面的考虑,需要...
  • 空间迁移时,使用如下语句:例1:alter table tb_name move tablespace tbs_name;索引表空间做迁移,使用如下语句:例2:alter index index_name rebuild tablespace tbs_name;对于含有lob字段的,在建立时,...
  • 创建表空间语句

    千次阅读 2017-03-31 18:11:38
    创建表空间语句: create tablespace train_tab datafile 'E:\oracle\train\train_tab.def' size 100M --生成数据文件并定义文件大小 autoextend on next 10M maxsize unlimited logging  --设置自动扩展 extent ...
  • 7、更改数据大小(2G) alter database datafile '/u01/oracle/app/oradata/DBPRIMARY/WEBONLINEPRE.dbf' resize 2048m; 8、查看表空间是否自动增长 select file_name,tablespace_name,autoextensible from dba_...
  • 达梦数据库用户和表空间常用SQL语句 我使用的环境是DM7,达梦数据库默认情况下可以使用SYSDBA用户使用默认表空间进行数据库操作。但是对于业务开发来说,使用普通用户和表空间进行使用保证数据的区分。 1、表空间 ...
  • ORACLE修改用户所属表空间的步骤

    千次阅读 2021-05-07 07:58:11
    ORACLE修改用户所属表空间的步骤 使用脚本进行修改.据目前所了解,正长情况下需要修改表空间的索引的空间,如果涉及到BOLB字段的,修改的方式又不一样了!正常情况下的修改脚本:1.修改表空间alter table ...
  • DB2数据库表更改表空间

    千次阅读 2019-11-26 15:24:11
    --重命名 rename table T_HELLO to T_HELLO_bak; --创建建表并指定表空间 CREATE TABLE T_HELLO ( ID BIGINT NOT NULL, NAME VARCHAR(64), BIRTHDAY TIMESTAMP, AGE INTEGER, P...
  • db2 创建数据库及表空间语句

    千次阅读 2020-06-13 17:34:42
    db2 创建数据库及表空间语句 1、首先在windows安装完DB2以后,打开DB2的命令行,然后依次执行下面代码.(下面有一句话脚本会提示你一个类似异常的信息,不予以理会,继续执行下面别的代码) db2 “CREATE DB TestDB ...
  • Oracle中备份的简单sql命令语句

    千次阅读 2021-05-02 06:09:51
    Oracle中备份的简单sql命令语句复制代码 代码如下:create table bmpforest.E_PKG_ATPCFG_BAC as select * from bmpforest.e_pkg_atpcfg where 1=2insert into E_PKG_ATPCFG_BAC select * from E_PKG_ATPCFG;...
  • Kingbase金仓更改表空间

    千次阅读 2021-03-07 14:15:19
    修改表空间状态为OFFLINE,随后对该表空间内容进行修改语句会报错。系统表空间不可以被ONLINE或OFFLINE。该语句不能在事务内使用。 5.修改表空间状态为READ ONLY,随后只能对该表空间对象进行读操作。系统表空间不...
  • Oracle修改表空间名称以及数据文件

    千次阅读 2021-10-19 21:31:38
    目的:我想将表空间IRC_NEW_BASE的名称和对应的数据文件名称/u01/app/oradata/oradb/IRC_NEW_BASE.dbf都修改为IRC_NEW_HR 系统用户sys以sysdba的身份登录 修改oracle表空间名称和数据文件名称的步骤如下: 1、修改表...
  • -- 表空间的创建 CREATE TABLESPACE my_tabs2 DATAFILE 'd:/software/Oracle/Space/my_tabs2.dbf' size 60M AUTOEXTEND ON NEXT 30M MAXSIZE UNLIMITED; -- 创建用户 create user user2 identified by user2 default...
  • 里介绍创建Oracle表空间的步骤,首先查询空闲空间、增加Oracle表空间修改文件大小语句如下、创建Oracle表空间,最后更改自动扩展属性
  • 第一节:Oracle 表空间 一个数据库可以有多个表空间,一个表空间里可以有多个表空间就是存多个的物理空间; 可以指定表空间的大小位置等。 创建表空间:create tablespace ts1 datafile 'C:\tablespace\ts1....
  • 表空间名称:TEST 登录用户名密码:TESTUSER/TESTPWD 切换到/home/dmdba/dmdbms/bin目录下, 1、切换用户到达梦用户:dmdba [root@test bin]# su dmdba [dmdba@test bin]$ 2、登录达梦数据库命令: [dmdba@...
  • 设置默认空636f70793231313335323631343130323136353331333365633939间:在Oracle数据库中创建用户(使用CREATE USER语句)时,如果不指定表空间,则默认的临时表空间时TEMP,默认的永久表空间时SYSTEM,这样旧导致...
  • sql ...1.查询出当前用户下所有索引进行表空间修改的sql语句。 select 'alter index '|| index_name ||' rebuild tablespace tablespacename;' from user_indexes; 2.执行第1步的所有查询结果。 ...
  • oracle创建删除表空间和用户授权的一段代码 可以直接使用 只需要修改表空间以及表明即可
  • 表空间管理之bigfile表空间设置

    千次阅读 2021-04-30 09:21:53
    我们有两个途径创建bigfile表空间1....这样我们创建表空间的时候,如果在create tablespace语句中没有设置表空间的类型为smallfile,则缺省创建bigfile表空间。2.在创建表空间时,指定表空间的类型为bigfilecrea...
  • 有事我们在创建数据库时未明确指定用户的空间,导致后期创建的都自动创建在了users空间内, 这时我们想要转移用户所有到指定空间可以执行以下步骤: ...--所有移动到指定表空间语句 SELECT 'ALTER ...
  • Oracle 删除用户和表空间

    千次阅读 2021-05-08 04:17:11
    oracle创建/删除 用户,表空间-九五小庞 以下红色标示的都是可以修改的字段 可以按照如下顺序来创建表空间,创建用户,以及删除表空间,删除用户 查看oracle数据库已有的表空间路径 select name from v$datafile;...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 528,257
精华内容 211,302
热门标签
关键字:

修改表的表空间语句