暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

【干货攻略】达梦数据库如何调整表空间存储位置

达梦E学 2024-05-30
1758



前提

本文介绍达梦数据库如何调整表空间存储位置。





一、表空间介绍及需求


在数据库管理中,表空间是数据库中存储数据的逻辑单位,它由一个或多个数据文件组成。在达梦数据库中,有四种主要的表空间:ROLL表空间,SYSTEM表空间,MAIN表空间和TEMP表空间。

1.ROLL表空间:ROLL表空间用于存储事务回滚信息。当数据库事务进行修改操作后,如果需要回滚(撤销)这些操作,回滚信息就会从ROLL表空间中获取。ROLL表空间有助于保障数据库事务的原子性和持久性。它是数据库事务控制的重要组成部分,确保在系统崩溃或其他故障情况下能够恢复到一致的状态。

2.SYSTEM表空间:SYSTEM表空间是达梦数据库中最重要的表空间,它用于存储数据库的系统信息,包括数据字典、系统表和视图等。数据字典中存储了数据库的结构信息,如表的定义、索引、用户权限等。SYSTEM表空间是在数据库创建时自动建立的,是数据库正常运行不可缺少的核心部分。用户通常不应该直接操作SYSTEM表空间中的对象。

3.TEMP表空间:TEMP表空间是用于存储临时数据的表空间,例如排序操作或哈希操作产生的中间结果。当数据库执行一些需要临时存储的操作时,这些数据会被存放在TEMP表空间中。这个表空间通常不需要持久保存数据,而是在查询执行完毕后清空。使用TEMP表空间可以减少对主要表空间的影响,并且提高查询性能。

4.MAIN表空间:MAIN表空间主要是由用户创建,用于存放业务数据。在该表空间内,用户有权限创建各种数据库对象,如表、索引和存储过程等。为了维持数据管理的清晰性和优化性能,在存在多个业务线或系统时,建议为每个业务或系统分别创建独立的表空间。这样的做法能够实现数据隔离,便于管理,并且有助于提升系统的维护效率和数据安全性。

随着数据库中数据的不断膨胀以及并发操作的日益频繁,表空间中的数据文件,如SYSTEM, ROLL, TEMP, 和MAIN等可能会显著增长,进而占据庞大的磁盘资源,有时甚至可能触及磁盘容量的极限。在这种情况下,尤其当原始数据分区不支持在线扩容,或存储设备无法满足性能与安全性需求时,我们便可以考虑对这些关键表空间的存放位置进行修改,从而提升数据库性能和保障数据完整性。

据库安装路径数据库实例路径

/home/dmdba/dmdbms

/dm/dmdata/DMDB

表空间名称

调整前路径

调整后路径

SYSTEM

/dm/dmdata/DMDB

/dm/dmdata/new_data

ROLL

/dm/dmdata/DMDB

/dm/dmdata/new_data

TEMP

/dm/dmdata/DMDB

/dm/dmdata/new_data

MAIN

/dm/dmdata/DMDB

/dm/dmdata/new_data






二、通过dmrman文件映射方式


2.1 查询当前数据文件路径

通过使用SYSDBA账户连接到数据库,对数据文件路径进行查找。

    --查找数据文件路径
    [dmdba@localhost bin]$ ./disql SYSDBA/SYSDBA
    SQL> select a.name,a.status$,b.path from v$tablespace a left join v$datafile b on a.id=b.group_id;
    复制

    2.2 数据库备份

    在利用dmrman文件映射功能更改数据目录路径之前,必须确保数据库已经创建了一份完整的备份。

      --关闭数据库
      [dmdba@localhost bin]$ ./DmServiceDMDB stop
      --数据库备份
      [dmdba@localhost bin]$ ./dmrman
      RMAN> backup database '/dm/dmdata/DMDB/dm.ini' backupset '/dm/dmbak/bak_full';
      复制

      2.3 生成映射文件

      通过dmrman生成全量备份的映射文件。

        [dmdba@localhost bin]$ ./dmrman
        RMAN> dump backupset '/dm/dmbak/bak_full' database '/dm/dmdata/DMDB/dm.ini' mapped file '/dm/dmdata/DMDB/dump_file.txt';
        cat dm/dmdata/DMDB/dump_file.txt
        复制

        2.4 编辑映射文件内数据文件路径

        使用vi命令对映射文件内数据文件的路径进行按需调整(例如我需要修改ROLL、SYSTEM及MAIN数据文件路径则修改以下内容),TEMP数据文件修改则直接修改dm.ini内TEMP_PATH参数即可。

          [dmdba@localhost bin]$ vi dm/dmdata/DMDB/dump_file.txt
          data_path = /dm/dmdata/new_data/SYSTEM.DBF
          data_path = /dm/dmdata/new_data/ROLL.DBF
          data_path = /dm/dmdata/new_data/MAIN.DBF
          [dmdba@localhost bin]$ vi dm/dmdata/DMDB/dm.ini
          TEMP_PATH = /dm/dmdata/new_data
          复制

          2.5 通过映射文件将备份进行还原

          使用DMRMAN将备份与映射文件进行还原和恢复。

            [dmdba@localhost bin]$ ./dmrman
            RMAN> restore database '/dm/dmdata/DMDB/dm.ini' from backupset '/dm/dmbak/bak_full' mapped file '/dm/dmdata/DMDB/dump_file.txt';
            RMAN> recover database '/dm/dmdata/DMDB/dm.ini' from backupset '/dm/dmbak/bak_full';
            RMAN> recover database '/dm/dmdata/DMDB/dm.ini' update db_magic;
            复制

            2.6 开启数据库并检查日志有无报错

            修改完成后对数据库进行开启,并检查开启过程中有误报错。若无报错可登录数据库查看表空间数据文件路径是否修改成功。

              --启动数据库
              [dmdba@localhost bin]$ ./DmServiceDMDB start
              --检查日志情况
              [dmdba@localhost bin]$ cat home/dmdba/dmdbms/log/dm_DMDB_202401.log | grep -iE 'error|fatal'
              --登录数据库查看是否修改成功
              [dmdba@localhost bin]$ ./disql SYSDBA/SYSDBA
              SQL> select a.name,a.status$,b.path from v$tablespace a left join v$datafile b on a.id=b.group_id;
              复制



              总结


              用dmrman工具进行文件映射,操作过程标准化且安全性更高,但在数据量大时可能导致较长的备份和恢复时间,更适合对数据完整性有较高要求的场景。

              上为本期分享,希望能带给大家帮助。想要了解更多往期干货,可访问页面最下方#达梦技术干货攻略#合集或下方相关分享。在此邀请更多学员参与“达梦技术干货投稿活动”,稿件获选后将在达梦“干货分享”专栏进行发布,欢迎来稿!


              相关分享:

              【总结帖】2023年达梦技术干货攻略年度合集

              【干货攻略】HAVING和WHERE正确使用

              【开班通知】第16期DM8-DCA线上培训班招生中(2024年06月12日开班)

              【开班通知】DM8-DCP线上培训班招生中(2024年06月17日开班)

              【公开课】火速关注!2024年达梦数据库运维系列公开课来啦!



              END

              达梦知识普及

              扫码关注我们
              学习共享
              知识普及

              作者:黄海峰
              审核:林夕
              排版:达梦培训中心



              文章转载自达梦E学,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

              评论