绿色模板网站,品牌建设项目申报,莘县网站建设电话,环球军事网达梦数据库基础操作(二)#xff1a;表空间操作 1. 表空间操作
1.1 达梦表空间介绍 表空间的概念#xff1a; 每个DM 数据库都是由一个或者多个表空间组成#xff0c;表空间是一个逻辑的存储容器#xff0c;它位于逻辑结构的顶层#xff0c;用于存储数据库中的所有数据表空间操作 1. 表空间操作
1.1 达梦表空间介绍 表空间的概念 每个DM 数据库都是由一个或者多个表空间组成表空间是一个逻辑的存储容器它位于逻辑结构的顶层用于存储数据库中的所有数据表空间的数据被物理存放在数据文件中一个表空可以包含一个或多个文件。也就是说表空是逻辑的概念我们可以把它理解为容器里面可以存放数据文件、表、索引等。 DM8 的逻辑架构为表空间- 段- 簇相当于oracle 的区- 页相当于oracle 的块。
# 可以通过命令查看系统内所有表空间的名字。
# 注意SYSTEM 、ROLL 、TEMP 不能手动创建。
SQL select tablespace_name from dba_tablespaces; 1SYSTEM表空间系统表空间存放的是数据库的关键性的信息例如数据字典和动态性能视图。 2ROLL表空间 回滚表空间存放的是数据库的回滚记录。MVCC事务多版本机制消除行锁回滚段保 留时长undo_retention 支持毫秒 3TEMP表空间 临时表空间创建的临时表,存放的是临时的信息 4MAIN表空间默认表空间达梦默认的表空间创建用户时**不指定表空间就为该默认表空间。**之后数据就存放在此表空间。 5HMAIN表空间 **HUGE 表空间**Huge file system(hfs):是达梦数据库实现的针对海量数据进行分析的 一种高效、简单的列存储机制列存储表huge)就是建立在 hfs 上的。 HUGE 表建立在自己特有的表空间huge 空间v$huge_tablespace 中最多可以创建 32767 个 hugeg 表空间。 如果不指定 huge 表空间默认放在 HMAIN 表空间中。
使用表空间的优点
Ø 能够隔离用户数据和数据字典减少对system 表空间的I/O 争用;
Ø 可以把不同表空间的数据文件存储在不同的磁盘上把负载均衡分布到各个磁盘上减少I/O 争用
Ø 隔离来自不同应用程序的数据能够执行基于表空间的备份和恢复同时可以避免一个应用程序的表空间脱机而影响其他应用程序的运行
1.2 表空间操作
1.2.0 查看表空间
# 可以通过命令查看系统内所有表空间的名字。
SQL select tablespace_name from dba_tablespaces;查询表空间及其所属用户和数据文件路径
SQL select username,user_id,default_tablespace,profile from dba_users;1.2.1 表空间创建
格式 create tablespace 表空间名 datafile 数据文件路径 size 数据文件初始大小 autoextend on maxsize 最大值 -----仅指定数据文件路径以及数据文件初始 大小单位为MB -----注意大小仅为数字不能带M符号 create tablespace tbs1 datafile ‘/dm7/data/DAMENG/tbs01.dbf’ size 32; 注意 DM8 建立初始化数据文件大小时有一个硬性规定那就是数据文件的初始化大小一定要是页大小的4096 倍否则就会报错。
# 案例1创建一个表空间初始大小50M, 最大1024M
SQL create tablespace chkproof datafile /dm8/data/MBWS/chkproof_01.dbf size 50 autoextend on next 1 maxsize 1024;
# 案例2创建一个表空间初始大小50M, 表空间由2个数据文件组成分别存储在不同的磁盘上每次扩展1M, 每个数据文件最大100M
SQL create tablespace tbs2 datafile ‘/dm8/disk1/tbs2_01.dbf’ size 50 autoextend on next 1 maxsize 100,’/dm8/disk2/tbs4_02.dbf’ size 50 autoextend on next 1 maxsize 100;注意 达梦数据库创建表空间报错-2401数据文件dbf大小无效 报错-2401数据文件dbf大小无效 表空间的大小和数据库的初始参数有关系 页大小为8K 表空间大小至少为40968K32M 页大小为16K 表空间大小至少为409616K64M 以此类推 然后将以上语句size 50 改成size 256就可以执行了 查看页大小 # 使用这个命令可以找到我们在配置数据库实例时多选的页大小参数注意此参数显示单位为字节在换算时我们需要将此参数转化为KB 进行计算。
SQL select page;
# 这样我们就得到了在页大小为8KB 的情况下数据文件的初始化大小的最小参数值。
# 注意不是说得到了这个大小就必须按照这个大小来设置只是不能比这个参数小只要比这个参数大任何初始化值都是可以的。
SQL select 4096*8/10241.2.2 删除表空间(表空间存在数据不允许直接删除)
# 第一种是表空间没有任何对象这样的情况下我们可以直接删除
SQL drop tablespace tbs1;
# 第二种情况就是表空间在有数据的情况下进行删除
# 直接删除是不会删除的必须先删除数据
SQL drop tablespace tbs1;1.2.3 扩展表空间
# 创建达标空间数据库导入导出
# resize 表空间数据文件的大小 (所有的数据文件大小都应该一致修改其中一个另外的都要更改)
alter tablespace tbs1 resize datafile /dm7/data/DAMENG/tbs01.dbf to 256;# 增加数据文件表空间大小不足的解决办法
alter tablespace tbs1 add datafile ‘/dm7/data/DAMENG/tbs02.dbf’ size 50 autoextend on next 1 maxsize 100;1.2.4 更改表空间的数据文件路径
# 查询表空间的数据文件存储位置
select file_name,tablespace_name from dba_data_files;
# 查询表空间的状态0---Online 1---offline更改为离线
Select tablespace_name,status from dba_tablespaces;
# 更改文件位置
alter tablespace tbs1 rename datafile /dm7/data/DAMENG/tbs01.dbf to /dm7/disk1/tbs01.dbf;1.2.5 表空间状态
表空间的状态分为online offline system 、roll 、temp 不能脱机
# 注意达梦数据库的表空间没有只读的概念。
# 更改test表空间为离线状态
SQL alter tablespace test offline;
# 查看表空间的状态
SQL select tablespace_name,status from dba_tablespaces;1.2.6 表空间大小不足的解决办法 普通表空间增加数据文件 SQL alter tablespace test add datafile ‘/dm8/data/DAMENG/test02.dbf’ size 50 autoextend on next 1 maxsize 100;临时表空间大小不足 # 查看一下临时表空间的默认信息。临时表空间的数据文件默认的大小是10 单位是MB 。
SQL select para_name,para_value from v$dm_ini where para_name like %TEMP%;
# 修改临时表空间大小
SQL sp_set_para_value(2,TEMP_SIZE,100);回滚表空间不足 # 更改数据文件大小
SQL alter tablespace roll resize datafile /dm8/dm1/DAMENG/ROLL.DBF to 2048;
# 添加数据文件
SQL alter tablespace roll add datafile ‘/dm8/dm1/DAMENG/ROLL01.DBF’ size 1024;1.2.7 修改用户默认表空间
# 修改用户默认表空间修改后所指定的表空间必须先被创建
alter user dmtest default tablespace testone ;