达梦数据库物理结构

物理结构

控制文件

  1. 实例路径、数据文件路径迁移使用到
  2. 记录了很多信息
  • 阅读控制文件
[dmdba@dmdb04 bin]$ ./dmctlcvt help
DMCTLCVT V8
version: 03134283890-20220304-158322-10045
格式: ./dmctlcvt KEYWORD=value
注意: 控制文件名称必须指定为dm.ctl、dmmpp.ctl、dss.ctl
关键字              说明
--------------------------------------------------------------------------------
TYPE                1 转换控制文件为文本文件(源文件路径中控制文件名称必须是dm.ctl或dmmpp.ctl或dss.ctl)
                    2 转换文本文件为控制文件(目标文件路径中控制文件名称必须是dm.ctl或dmmpp.ctl或dss.ctl)
SRC                 源文件路径
DEST                目标文件路径
DCR_INI             dmdcr.ini文件路径
DFS_INI             dmdfs.ini文件路径
HELP                打印帮助信息

示例:
./dmctlcvt TYPE=1 SRC=/opt/dmdbms/data/dameng/dm.ctl DEST=/opt/dmdbms/data/dameng/dmctl.txt
./dmctlcvt TYPE=2 SRC=/opt/dmdbms/data/dameng/dmctl.txt DEST=/opt/dmdbms/data/dameng/dm.ctl
[dmdba@dmdb04 bin]$ ./dmctlcvt type=1 src=/dm8/data/DAMENG/dm.ctl dest=/dm8/data/DAMENG/dm.txt
DMCTLCVT V8
convert ctl to txt success!
[dmdba@dmdb04 DAMENG]$ cat /dm8/data/DAMENG/dm.txt 
[dmdba@dmdb04 bin]$ ./dmctlcvt type=2 src=/dm8/data/DAMENG/dm.txt dest=/dm8/data/DAMENG/dm.ctl
##控制文件备份路径
[dmdba@dmdb04 DAMENG]$ cat dm.ini | grep CTL_BAK_PATH

数据文件

  1. 建议使用.DBF后缀
  2. 创建表空间时创建一个数据文件
  3. 还可以添加数据文件
create tablespace "DAMENG" datafile '/dm8/data/DAMENG/DAMENG01.DBF' size 1024 autoextend on next 1024 maxsize 40960 cache=NORMAL;
alter tablespace "DAMENG" add datafile '/dm8/data/DAMENG/DAMENG02.DBF' size 1024 autoextend on next 1024 maxsize 40960;

联机重做日志

  1. 联机重做日志只能加大大小,不能缩小大小
  2. 联机重做日志可以增加文件
alter database resize logfile '/dm8/data/DAMENG/dmdb01.log' to 2048;
alter database add logfile '/dm8/data/DAMENG/dmdb03.log' size 2048;

初始化参数

参数类型

  1. 有两个视图可以查看初始化参数的值,vKaTeX parse error: Can't use function '\v' in math mode at position 10: parameter\̲v̲dm_ini
SQL> select distinct type from v$parameter;
行号     TYPE     
---------- ---------
1          READ ONLY
2          SYS
3          IN FILE
4          SESSION
  1. READ ONLY:只读参数,不能通过系统函数或者sql命令修改,只能修改dm.ini配置文件,有些还要重建实例才能修改。
  2. IN FILE:静态参数,可以通过系统函数或者SQL命令修改
  3. SYS:动态参数(系统级)
  4. SESSION:动态参数(会话级)

静态和动态参数都可以通过系统函数或者SQL命令修改,但静态参数修改后要重启数据库才生效;
动态参数即能修改内存中的值,也能修改配置参数文件中的值。
相当于oracle中的:scope=both|spfile|memory

修改参数的方法

  1. 直接修改配置文件
  2. 通过console 工具修改,其实也是修改配置文件
  3. 通过SQL命令修改(类似oracle的)
  4. 通过函数修改
SQL命令修改参数
  • 修改静态参数:数据库兼容性参数,COMPATIBLE_MODE
SQL> select NAME,TYPE,VALUE,SYS_VALUE,FILE_VALUE,DESCRIPTION from v$parameter where name='COMPATIBLE_MODE';
行号     NAME            TYPE    VALUE SYS_VALUE FILE_VALUE DESCRIPTION                                                                                    
---------- --------------- ------- ----- --------- ---------- -----------------------------------------------------------------------------------------------
1          COMPATIBLE_MODE IN FILE 0     0         0          Server compatible mode, 0:none, 1:SQL92, 2:Oracle, 3:MS SQL Server, 4:MySQL, 5:DM6, 6:Teradata 

## TYPE=IN FILE的不能修改内存值,只能修改文件值,重启生效
SQL> alter system set 'COMPATIBLE_MODE' = 2 both;
alter system set 'COMPATIBLE_MODE' = 2 both;
[-839]:不能修改静态配置参数的内存值.
SQL> alter system set 'COMPATIBLE_MODE' = 2 spfile;
DMSQL 过程已成功完成
  • 修改动态参数:UNDO_RETENTION
SQL> select NAME,TYPE,VALUE,SYS_VALUE,FILE_VALUE,DESCRIPTION from v$parameter where name='UNDO_RETENTION';
行号     NAME           TYPE VALUE      SYS_VALUE  FILE_VALUE DESCRIPTION                                                                             
---------- -------------- ---- ---------- ---------- ---------- ----------------------------------------------------------------------------------------
1          UNDO_RETENTION SYS  90.000000 90.000000 90.000000 Maximum retention time in seconds for undo pages since relative transaction is committed

SQL>  alter system set 'UNDO_RETENTION'=180 both;
DMSQL 过程已成功完成
SQL> select NAME,TYPE,VALUE,SYS_VALUE,FILE_VALUE,DESCRIPTION from v$parameter where name='UNDO_RETENTION';
行号     NAME           TYPE VALUE      SYS_VALUE  FILE_VALUE DESCRIPTION                                                                             
---------- -------------- ---- ---------- ---------- ---------- ----------------------------------------------------------------------------------------
1          UNDO_RETENTION SYS  180.000000 180.000000 180.000000 Maximum retention time in seconds for undo pages since relative transaction is committed
SQL>  alter system set 'UNDO_RETENTION'=300 memory;
已用时间: 3.739(毫秒). 执行号:1113.
SQL> select NAME,TYPE,VALUE,SYS_VALUE,FILE_VALUE,DESCRIPTION from v$parameter where name='UNDO_RETENTION';
行号     NAME           TYPE VALUE      SYS_VALUE  FILE_VALUE DESCRIPTION                                                                             
---------- -------------- ---- ---------- ---------- ---------- ----------------------------------------------------------------------------------------
1          UNDO_RETENTION SYS  300.000000 300.000000 180.000000 Maximum retention time in seconds for undo pages since relative transaction is committed
  • 修改会话类型的参数:只有当前会话的值变了,这个值代表默认创建的表类型,1代表创建堆表
SQL> select NAME,TYPE,VALUE,SYS_VALUE,FILE_VALUE,DESCRIPTION from v$parameter where name='LIST_TABLE';
行号     NAME       TYPE    VALUE SYS_VALUE FILE_VALUE DESCRIPTION                                          
---------- ---------- ------- ----- --------- ---------- -----------------------------------------------------
1          LIST_TABLE SESSION 0     0         0          Whether to convert tables to LIST tables when created
SQL>  alter session set 'LIST_TABLE'=1;
DMSQL 过程已成功完成
SQL> select NAME,TYPE,VALUE,SYS_VALUE,FILE_VALUE,DESCRIPTION from v$parameter where name='LIST_TABLE';
行号     NAME       TYPE    VALUE SYS_VALUE FILE_VALUE DESCRIPTION                                          
---------- ---------- ------- ----- --------- ---------- -----------------------------------------------------
1          LIST_TABLE SESSION 1     0         0          Whether to convert tables to LIST tables when created
函数的方法修改参数
  • 查看系统函数的方法
--绑定执行计划函数(有多条记录说明可能多个参数不同的用法)
select * from v$ifun where name like '%PLN%';--SP_SET_PLN_BINDED
--清理执行计划函数
select * from v$ifun where name like '%CLEAR%';--SP_CLEAR_PLAN_CACHE
  • 查看修改参数函数
  1. SP_SET_PARA_DOUBLE_VALUE:修改double类型参数
  2. SP_SET_PARA_STRING_VALUE:修改string类型参数
  3. SP_SET_PARA_VALUE :修改INT类型参数
  4. 第一个参数scope=0|1|2,分别代表修改内存值、内存和配置文件值、配置文件值
SQL> select NAME,ID,ARG_NUM,EXTRA_ATTR from v$ifun where  name like '%SP_SET%_PARA%';
行号     NAME                     ID          ARG_NUM     EXTRA_ATTR
---------- ------------------------ ----------- ----------- ----------
1          SP_SET_PARA_DOUBLE_VALUE 586         3           NULL
2          SP_SET_PARA_STRING_VALUE 585         3           NULL
3          SP_SET_PARA_VALUE        584         3           NULL
##查看函数使用方法
SQL> select ID,NAME,SEQ,DATA_TYPE from v$ifun_arg where id=586;
行号     ID          NAME     SEQ         DATA_TYPE       
---------- ----------- -------- ----------- ----------------
1          586         RVAL     -1          UNKNOWN DATATYPE
2          586         SCOPE    0           INTEGER
3          586         PARANAME 1           VARCHAR
4          586         VALUE    2           DOUBLE
  • 函数使用示例
SQL> SP_SET_PARA_VALUE(1,'LIST_TABLE',0);
DMSQL 过程已成功完成
SQL> select NAME,TYPE,VALUE,SYS_VALUE,FILE_VALUE,DESCRIPTION from v$parameter where name='LIST_TABLE';
行号     NAME       TYPE    VALUE SYS_VALUE FILE_VALUE DESCRIPTION                                          
---------- ---------- ------- ----- --------- ---------- -----------------------------------------------------
1          LIST_TABLE SESSION 0     0         0          Whether to convert tables to LIST tables when created
SQL> SP_SET_PARA_VALUE(0,'COMPATIBLE_MODE',0);
SP_SET_PARA_VALUE(0,'COMPATIBLE_MODE',0);
[-839]:不能修改静态配置参数的内存值.
SQL> SP_SET_PARA_VALUE(1,'COMPATIBLE_MODE',0);
SP_SET_PARA_VALUE(1,'COMPATIBLE_MODE',0);
[-839]:不能修改静态配置参数的内存值.
SQL> SP_SET_PARA_VALUE(2,'COMPATIBLE_MODE',0);
DMSQL 过程已成功完成
##UNDO_RETENTION是DOUBLE类型
SQL> SP_SET_PARA_DOUBLE_VALUE(1,'UNDO_RETENTION',90);
DMSQL 过程已成功完成
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

很Man的DM

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值