zoukankan      html  css  js  c++  java
  • 达梦数据库学习(四、表空间管理)

    达梦数据库学习(四、表空间管理)

     

    上期回顾:

    达梦数据库学习(一、linux操作系统安装及数据库安装) 

    达梦数据库学习(二、管理数据库实例) 

    达梦数据库学习(三、体系结构) 

    一、数据库的物理结构和逻辑结构

            物理结构:

                     文件系统(XFS、ext4、NTFS、DMASM等

                     分析场景:文件系统(有缓存,易扩展)、裸设备(有缓存,不易扩展)

                     格式化:mkfs、format、inode、block

            逻辑结构:

                     数据库----表空间(一个或多个文件构成)----段----簇----页

                     备注:达梦数据库不支持传输表空间(达梦通过导出导入的方式来实现把一个库移到另一个库)

    表空间部分需要掌握的内容:

         1、数据库默认表空间的作用

            SQL>select tablespace_name from dba_tablespaces;

            行号     TABLESPACE_NAME

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

    1          SYSTEM                      系统表空间             存放数据字典

    2          ROLL                           回滚表空间             存放回滚段

    3          TEMP                          临时表空间             临时段

    4          MAIN                          默认表空间           

    5          BOOKSHOP                某示例库表空间

    6          DMHR                         某示例库表空间

    7          HMAIN                       HUGE表空间          存放列存储

            SQL>select tablespace_name,file_name from dba_data_files;

    行号     TABLESPACE_NAME FILE_NAME                   

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

    1          SYSTEM          /dm8/data/DAMENG/SYSTEM.DBF

    2          DMHR            /dm8/data/DAMENG/DMHR.DBF

    3          BOOKSHOP        /dm8/data/DAMENG/BOOKSHOP.DBF

    4          MAIN            /dm8/data/DAMENG/MAIN.DBF

    5          TEMP            /dm8/data/DAMENG/TEMP.DBF

    6          ROLL            /dm8/data/DAMENG/ROLL.DBF

            SQL>select tablespace_name,BYTES/1024/1024 from dba_free_space;

                     行号     TABLESPACE_NAME BYTES/1024./1024

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

    1          SYSTEM          17.1953125

    2          DMHR            127.9375

    3          BOOKSHOP        149.1015625

    4          MAIN            127.5390625

    5          TEMP            9.9375

    6          ROLL            118.8828125

         2、创建表空间

            注意创建表空间中所有大小单位都是M,且不需要写单位

                     案例1:规划一个表空间TBS1,要求初始文件大小为31M;

            SQL>create tablespace TBS1 datafile ‘/dm8/data/DAMENG/tbs1.dbf’ size 31;

            出现错误提示“数据文件大小无效”

            为什么呢?

            SQL>select page;--查看数据库页大小;

     

            SQL>select 8192*4096/1024/1024;--32M

    根据页大小算表空间单个数据文件最小大小。

    这段没弄懂,但是上网查询了资料,还是不太懂。

    http://blog.itpub.net/31403259/viewspace-2687231/

    所以当页大小为8K时,对应数据库表空间单个数据文件最小为32M。

            SQL>create tablespace TBS1 datafile ‘/dm8/data/DAMENG/TBS1.dbf’ size 32;

    案例2:创建一个表空间TBS2,初始大小为32M,最大大小1G

            SQL>create tablespace TBS2 datafile ‘/dm8/data/DAMENG/TBS2.dbf’ size 32 autoextend on maxsize 1024;

                     注意其中若设定最大大小的话,则需要增加自动扩展参数autoextend on

                     案例3:创建一个表空间TBS3,初始大小32M,最大1G,每次自动扩展2M

            SQL>create tablespace TBS3 datafile ‘/dm8/data/DAMENG/TBS3.dbf’ size 32 autoextend on next 2 maxsize 1024

                     案例4:规划表空间TBS4,包含2个数据文件,单个文件初始值32M,最大2G

            SQL>create tablespace TBS4 datafile ‘/dm8/data./DAMENG/TBS4_1.dbf’ size 32 autoextend on maxsize 2048,’/dm8/data/DAMENG/TBS4_2.dbf’ size 32 autoextend on maxsize 2048

                     注意其中最关键的是“,”逗号,两个数据文件之间使用“,”隔开。

                     若表空间有多个数据文件,则多个数据文件是交替使用的

                     此处不是很明白交替使用的意思,是写入一个事务数据写在1号数据文件,下个事务写在2号数据文件中?还是1号数据文件空间使用完毕后再使用2号数据文件?

          3、维护表空间

                     表空间的状态:online、offline

            SQL>select name,status$ from v$tablespace;

                     其中,0表示online,1表示offline

                     状态切换:

            SQL>alter tablespace TBS4 offline;

            SQL>alter tablespace TBS4 online;

                     注意:系统表空间、临时表空间、回滚表空间不能offline

                    

                     表空间大小不足如何解决

                     一般遇到的表空间大小不足提示为“[-523]:磁盘空间不足”,该报错并不一定意味着实际物理磁盘空间不足,往往都是表空间达到了预设的最大大小。

                     处理办法:

    1、  创建一个更大的表空间,使用导出导入方法将数据迁移

    2、  Resize数据文件大小(有可能造成单个数据文件超大)

    3、  增加数据文件(推荐此方法)

    SQL>alter tablespace tbs5 add datafile ‘/dm8/data/DAMENG/tbs5_3.dbf’ size 32 autoextend on next 2 maxsize 1024;

           

            临时表空间不足

    SQL>select para_name,para_value from v$dm_ini where para_name like ‘%TEMP%’;

    SQL>sp_set_para_value(2,’TEMP_SIZE’,200);--调整数据库temp表空间大小200

    SQL>sp_set_para_value(2,’TEMP_SPACE_LIMIT’,2048);--调整数据库表空间最大大小2048

           

            回滚表空间不足

    SQL>alter tablespace roll add datafile ‘/dm8/data/DAMENG/roll1.dbf’ size 32;

    --增加一个回滚表空间数据文件roll1.dbf

    SQL>alter tablespace roll resize datafile ‘/dm8/data/DAMENG/roll1.dbf’ to 2048;

    --调整表空间resize to

           

            系统表空间不足

    SQL>alter tablespace system add datafile ‘/dm8/data/DAMENG/system1.dbf’ size 32;

    --增加一个system表空间数据文件system1.dbf

            表空间更换存储位置(同数据库)

    SQL>alter tablespace TBS1 offline;

    --首先将表空间离线

    SQL>alter tablespace TBS1 rename datafile ‘/dm8/data/DAMENG/TBS1.dbf’ to ‘/dm8/data/tbs1/TBS1.dbf’;

    --然后将表空间转移位置,注意该语句会自动将实际物理文件拷贝至新位置

     

     

    SQL>alter tablesapce TBS1 online;

    --最后将表空间恢复在线

         4、删除表空间

    SQL>drop tablespace TBS1;

            注意:

    如果表空间存在数据,则不允许直接删除。

            如果表空间为空,可以直接删除。

            表空间的存储对象:表、索引、全文索引、用户

     

  • 相关阅读:
    用JavaScript中jQuery编写放大镜效果
    用JavaScript中lodash编写双色球
    用画布canvas画安卓logo
    用JavaScript编写气泡
    用JavaScript编写简单斗地主效果Es6
    用javascript编写地区表单ES6
    JavaScript编写简单的增加与减少元素
    JavaScript编写学生查询系统
    JS第三堂课
    JS第三堂课
  • 原文地址:https://www.cnblogs.com/moonliu/p/14293055.html
Copyright © 2011-2022 走看看