一、表空间管理

1、管理表空间

1.1 表空间的定义

表空间是数据库最大逻辑存储单元。在项目初期创建和管理表空间,搭建项目数据库环境。创建表空间是为了规划磁盘空间存放业务数据。通过Create/Alter/Drop语句创建和管理表空间。

数据库创建完成之后,默认会创建如下表空间: SYSTEM:存储数据字典信息; ROLL:存放回滚信息。

如果 SQL 查询时间过长,可能会报错“[-7120]:回滚记录版本太旧,无法获取用户记录.”。解决办法: (1)加快查询效率; (2)增大 UNDO_RETENTION 回滚段保留时长。

MAIN:用户默认表空间;如果创建用户时未指定用户默认使用的表空间,则使用MAIN 表空间。 TEMP:临时表空间;存放临时表等临时数据,创建索引,大量的排序,大表的 HASH连接占用临时表空间。

在线收缩临时表空间的方法:SP_TRUNC_TS_FILE(3,0,10);

1.2 表空间的创建

注意:数据文件的大小不能低于页大小的 4096 倍,最大不能大于页大小的 2 的 31 次方倍-1(页大小为 8k, 16T-1)

[执行语句1]:

create tablespace tbs DATAFILE 'TBS01.DBF' SIZE 30;

否则会如下报错:

数据字典

select * from DBA_TABLESPACES;

select * from v$tablespace;

select * from v$datafile;

select * from DBA_DATA_FILES;

创建表空间

create tablespace tbs DATAFILE 'TBS01.DBF' SIZE 32;

修改数据库文件扩展属性

alter tablespace tbs datafile 'TBS01.DBF' AUTOEXTEND off;

添加数据文件

alter tablespace tbs add datafile 'TBS02.DBF' SIZE 32 AUTOEXTEND off;

修改数据文件大小

alter tablespace tbs Resize DATAFILE 'TBS01.DBF' to 128;

SYSTEM、ROLL、TEMP 表空间不能脱机,因为表空间脱机后,该表空间中的表将无法读写。但是自定义表空间可以脱机。

自定义表空间支持重命名

alter tablespace tbs RENAME TO dmtbs;

可以删除空的表空间,但是不能删除系统预定义的表空间。

drop tablespace dmtbs;

DM 管理工具创建表空间

2、管理数据文件

打开数据文件的自动扩展:

alter tablespace tbs datafile '/dm8/data/TBS/TBS01.DBF' AUTOEXTEND on NEXT 4

MAXSIZE 10240;

数据文件的迁移:

alter tablespace tbs offline;

alter tablespace tbs RENAME DATAFILE 'TBS01.DBF' TO '/dm8/data/TBS/TBS01.DBF';

alter tablespace tbs RENAME DATAFILE 'TBS02.DBF' TO '/dm8/data/TBS/TBS02.DBF';

alter tablespace tbs online;

3、管理重做日志文件

重做日志文件记录 DML 修改的数据页,包含操作的数据文件号,页偏移等。重做日志包含联机日志和归档日志。达梦的联机日志默认 2 个,两个联机日志循环使用,内容不断覆盖。

重做日志用于数据库非正常关闭后的自动数据恢复

联机重做日志过小,会造成日志的频繁切换;如果过大,浪费空间,所以需要管理重做日志。

Alter database add logfile ‘XXX’size xx;–添加联机日志

Alter database resize logfile ‘XXX’ to xx; --修改联机日志大小

Alter database rename logfile ‘XXX’ to xx; --迁移联机日志

dm的联机日志只支持系统自动切换,由系统自动维护,不支持手动切换。 联机日志的迁移,数据库需要mount状态

4、归档管理

4.1 归档的定义

因为联机日志循环使用,不断覆盖。归档保存了 REDO 日志,用于数据库的还原与恢复,也可以用于日志挖掘。dm数据库在 MOUNT 状态下开归档。

select arch_mode from SYS."V$DATABASE";

select * from SYS."V$DM_ARCH_INI";

4.2 开启归档

SQL语句开启归档

alter database mount;

alter database ARCHIVELOG;

alter database add ARCHIVELOG 'type=local, dest=/dm8/arch,

file_size=64,space_limit=10240';

alter database open;

SQL语句关闭归档

alter database mount;

alter database noARCHIVELOG;

alter database delete ARCHIVELOG 'type=local, dest=/dm8/arch,

file_size=64,space_limit=10240';

alter database open;

图形化开启归档

4.修改数据库配置文件开启归档

修改dm.ini配置文件的ARCH_INI参数为1,同目录下新建dmarch.ini文件

而达梦的归档日志文件由数据自动切换,也支持手工切换。

alter system SWITCH LOGFILE;

alter SYSTEM ARCHIVE LOG CURRENT;

alter DATABASE ARCHIVELOG CURRENT;

归档数据字典:

select * from v$arch_file;

归档清理:

select * from v$ifun t where t.name like upper('sf_archive%');

SF_ARCHIVELOG_DELETE_BEFORE_LSN(3316220);

SF_ARCHIVELOG_DELETE_BEFORE_TIME(sysdate -10);

文章来源

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。