dm8 redo日志管理

发布于:2024-04-03 ⋅ 阅读:(170) ⋅ 点赞:(0)

dm8 redo日志管理

基础环境
操作系统:Red Hat Enterprise Linux Server release 7.9 (Maipo)
数据库版本:DM Database Server 64 V8
架构:单实例

1 查看

1.1v$rlogfile

可以查出文件路径、文件大小、创建时间等
SQL> select GROUP_ID,FILE_ID,PATH,CREATE_TIME,RLOG_SIZE/1024/1024 as size_mb from v$rlogfile;

行号     GROUP_ID    FILE_ID     PATH                      CREATE_TIME                SIZE_MB             
---------- ----------- ----------- ------------------------- -------------------------- --------------------
1          2           0           /dm8/data/PROD/PROD01.log 2023-08-05 19:51:26.000000 500
2          2           1           /dm8/data/PROD/PROD02.log 2023-08-05 19:51:26.000000 500
3          2           2           /dm8/data/PROD/PROD03.log 2023-08-05 19:51:26.000000 500

2 添加redo日志

达梦数据库的REDO日志文件是有最小大小限制的,最小大小为4096 * 页大小 ,当前数据库的页大小可以通过如下语句查看:

SQL> select para_name,para_value from v$dm_ini where para_name = 'GLOBAL_PAGE_SIZE';

行号     PARA_NAME        PARA_VALUE
---------- ---------------- ----------
1          GLOBAL_PAGE_SIZE 16384

已用时间: 3.314(毫秒). 执行号:505.
SQL> 

所以当前数据库能够添加的REDO日志文件最小大小为(4096*16384)/1024/1024=64MB,我们可以通过alert database add logfile的方式添加REDO日志文件

测试一:添加小于64M的REDO日志文件

SQL> alter database add logfile '/dm8/data/PROD/PROD01_t1.log' size 60;
alter database add logfile '/dm8/data/PROD/PROD01_t1.log' size 60;1 行附近出现错误[-2410]:数据文件[/dm8/data/PROD/PROD01_t1.log]大小无效.
已用时间: 0.415(毫秒). 执行号:0.

测试二:添加大于等于64M的REDO日志文件

SQL> alter database add logfile '/dm8/data/PROD/PROD01_t1.log' size 64;
操作已执行
已用时间: 14.686(毫秒). 执行号:506.

SQL> 
SQL> select GROUP_ID,FILE_ID,PATH,CREATE_TIME,RLOG_SIZE/1024/1024 as size_mb from v$rlogfile;

行号     GROUP_ID    FILE_ID     PATH                         CREATE_TIME                SIZE_MB             
---------- ----------- ----------- ---------------------------- -------------------------- --------------------
1          2           0           /dm8/data/PROD/PROD01.log    2023-08-05 19:51:26.000000 500
2          2           1           /dm8/data/PROD/PROD02.log    2023-08-05 19:51:26.000000 500
3          2           2           /dm8/data/PROD/PROD03.log    2023-08-05 19:51:26.000000 500
4          2           3           /dm8/data/PROD/PROD01_t1.log 2023-08-10 22:43:00.000000 64

已用时间: 0.305(毫秒). 执行号:507.
SQL> 

注意:以上过程我们可以看到,当日志文件大小小于64MB时,会提示“第1 行附近出现错误[-2410]:数据文件[/dm8/data/PROD/PROD01_t1.log]大小无效.”。

2 删除redo日志

通过以下两个测试删除redo日志均报错,说明达梦数据库当前不支持删除重做REDO日志。

测试一:alter database drop logfile XX

SQL> alter database drop logfile '/dm8/data/PROD/PROD01_t1.log';
alter database drop logfile '/dm8/data/PROD/PROD01_t1.log';

alter database drop logfile '/dm8/data/PROD/PROD01_t1.log';
                               *1,32[drop]附近出现错误[-2007]:
语法分析出错.
已用时间: 0.259(毫秒). 执行号:0.

SQL> alter database drop logfile 'PROD01_t1.log';
alter database drop logfile 'PROD01_t1.log';

alter database drop logfile 'PROD01_t1.log';
                               *1,32[drop]附近出现错误[-2007]:
语法分析出错.
已用时间: 0.285(毫秒). 执行号:0.

测试二:alter database delete logfile XX

SQL> alter database delete logfile '/dm8/data/PROD/PROD01_t1.log';
alter database delete logfile '/dm8/data/PROD/PROD01_t1.log';

alter database delete logfile '/dm8/data/PROD/PROD01_t1.log';
                                               *1,48[logfile]附近出现错误[-2007]:
语法分析出错.
已用时间: 0.194(毫秒). 执行号:0.
SQL> 
SQL> alter database delete logfile 'PROD01_t1.log';
alter database delete logfile 'PROD01_t1.log';

alter database delete logfile 'PROD01_t1.log';
                                             *1,48[logfile]附近出现错误[-2007]:
语法分析出错.
已用时间: 0.189(毫秒). 执行号:0.

4 修改现有redo日志大小

达梦8数据库目前只能对日志文件进行向上(扩大)RESIZE操作,不能进行向下(缩小)RESIZE操作,可以通过
alter database resize logfile ‘日志文件’ to XX; 语句实现,我们现在将上面添加的日志文件由64MB扩大到70MB,再尝试缩小到64MB。

测试一:扩大

SQL> select path,RLOG_SIZE/1024/1024 as size_mb from v$rlogfile;

行号     PATH                         SIZE_MB             
---------- ---------------------------- --------------------
1          /dm8/data/PROD/PROD01.log    500
2          /dm8/data/PROD/PROD02.log    500
3          /dm8/data/PROD/PROD03.log    500
4          /dm8/data/PROD/PROD01_t1.log 64

已用时间: 1.482(毫秒). 执行号:511.
SQL> alter database resize logfile '/dm8/data/PROD/PROD01_t1.log' to 70;
操作已执行
已用时间: 5.239(毫秒). 执行号:512.
SQL> select path,RLOG_SIZE/1024/1024 as size_mb from v$rlogfile;

行号     PATH                         SIZE_MB             
---------- ---------------------------- --------------------
1          /dm8/data/PROD/PROD01.log    500
2          /dm8/data/PROD/PROD02.log    500
3          /dm8/data/PROD/PROD03.log    500
4          /dm8/data/PROD/PROD01_t1.log 70

已用时间: 0.250(毫秒). 执行号:513.

测试二:缩小

SQL> select path,RLOG_SIZE/1024/1024 as size_mb from v$rlogfile;

行号     PATH                         SIZE_MB             
---------- ---------------------------- --------------------
1          /dm8/data/PROD/PROD01.log    500
2          /dm8/data/PROD/PROD02.log    500
3          /dm8/data/PROD/PROD03.log    500
4          /dm8/data/PROD/PROD01_t1.log 70

已用时间: 0.242(毫秒). 执行号:514.
SQL> alter database resize logfile '/dm8/data/PROD/PROD01_t1.log' to 64;
alter database resize logfile '/dm8/data/PROD/PROD01_t1.log' to 64;
[-2410]:数据文件[/dm8/data/PROD/PROD01_t1.log]大小无效.
已用时间: 1.705(毫秒). 执行号:0.

5 修改redo日志路径

达梦数据库REDO日志文件修改路径必须在MOUNT状态下进行,通过alter database rename to语句实现。

SQL> select path from v$rlogfile;

行号     PATH                        
---------- ----------------------------
1          /dm8/data/PROD/PROD01.log
2          /dm8/data/PROD/PROD02.log
3          /dm8/data/PROD/PROD03.log
4          /dm8/data/PROD/PROD01_t1.log

已用时间: 1.007(毫秒). 执行号:516.
SQL> alter database rename logfile '/dm8/data/PROD/PROD01_t1.log' to '/dm8/data/PROD/logfile/PROD01_t1.log';
alter database rename logfile '/dm8/data/PROD/PROD01_t1.log' to '/dm8/data/PROD/logfile/PROD01_t1.log';1 行附近出现错误[-530]:只允许在MOUNT状态NORMAL模式下执行.
已用时间: 0.299(毫秒). 执行号:0.
SQL> alter database mount;   --可以直接从open状态,改变到mount状态
操作已执行
已用时间: 3.609(毫秒). 执行号:0.
SQL> select status$ from v$instance;

行号     STATUS$
---------- -------
1          MOUNT

已用时间: 0.599(毫秒). 执行号:517.
SQL> alter database rename logfile '/dm8/data/PROD/PROD01_t1.log' to '/dm8/data/PROD/logfile/PROD01_t1.log';
操作已执行
已用时间: 508.509(毫秒). 执行号:518.
SQL> select path from v$rlogfile;

行号     PATH                                
---------- ------------------------------------
1          /dm8/data/PROD/PROD01.log
2          /dm8/data/PROD/PROD02.log
3          /dm8/data/PROD/PROD03.log
4          /dm8/data/PROD/logfile/PROD01_t1.log

已用时间: 0.482(毫秒). 执行号:519.



[dmdba@test1 logfile]$ pwd
/dm8/data/PROD/logfile
[dmdba@test1 logfile]$ ll
total 71680
-rw-r--r-- 1 dmdba dinstall 73400320 Aug 10 23:40 PROD01_t1.log

6 重命名

达梦数据库REDO日志文件重命名必须在MOUNT状态下进行,通过alter database rename to语句实现。与修改路径的方式一样。

SQL> select path from v$rlogfile;

行号     PATH                                
---------- ------------------------------------
1          /dm8/data/PROD/PROD01.log
2          /dm8/data/PROD/PROD02.log
3          /dm8/data/PROD/PROD03.log
4          /dm8/data/PROD/logfile/PROD01_t1.log

已用时间: 0.470(毫秒). 执行号:520.
SQL> alter database rename logfile '/dm8/data/PROD/logfile/PROD01_t1.log' to '/dm8/data/PROD/logfile/PROD01_t2.log';
alter database rename logfile '/dm8/data/PROD/logfile/PROD01_t1.log' to '/dm8/data/PROD/logfile/PROD01_t2.log';1 行附近出现错误[-530]:只允许在MOUNT状态NORMAL模式下执行.
已用时间: 0.269(毫秒). 执行号:0.
SQL> alter database mount;
操作已执行
已用时间: 2.649(毫秒). 执行号:0.
SQL> select status$ from v$instance;

行号     STATUS$
---------- -------
1          MOUNT

已用时间: 0.712(毫秒). 执行号:521.
SQL> alter database rename logfile '/dm8/data/PROD/logfile/PROD01_t1.log' to '/dm8/data/PROD/logfile/PROD01_t2.log';
操作已执行
已用时间: 286.390(毫秒). 执行号:522.
SQL> select path from v$rlogfile;

行号     PATH                                
---------- ------------------------------------
1          /dm8/data/PROD/PROD01.log
2          /dm8/data/PROD/PROD02.log
3          /dm8/data/PROD/PROD03.log
4          /dm8/data/PROD/logfile/PROD01_t2.log

已用时间: 0.459(毫秒). 执行号:523.

[dmdba@test1 logfile]$ pwd
/dm8/data/PROD/logfile
[dmdba@test1 logfile]$ ll
total 71680
-rw-r--r-- 1 dmdba dinstall 73400320 Aug 10 23:46 PROD01_t2.log

谨记:心存敬畏,行有所止。


网站公告

今日签到

点亮在社区的每一天
去签到