注册
达梦数据库日常运维高频命令总结
培训园地/ 文章详情 /

达梦数据库日常运维高频命令总结

绝影 2023/03/03 896 1 0

一、 数据库登录
说明:liunx环境下需要进入到软件的安装bin目录下使用disql工具进行登录

cd /data/dmdbms/bin
./disql SYSDBA/SYSDBA@127.0.0.1:5236

说明:
1./data/dmdbms/bin 为达梦数据库软件安装目录下的bin目录 2.SYSDBA/SYSDBA@127.0.0.1:5236 为disql的连接信息格式(用户名/密码@ip:port),若密码中含有特殊字符则需要使用双引号进行屏蔽即SYSDBA/‘“SYSDBA”’@127.0.0.1:5236
二、查看数据库相关进程

##查看数据库服务进程
ps -ef|grep dmserver|grep -v grep
##查看数据库守护服务进程(主备环境)
ps -ef|grep dmwatcher|grep -v grep
##查看监视器服务进程(主备环境)
ps -ef|grep dmmonitor|grep -v grep

说明:
1、查询dmserver进程时,如果数据库为主备环境,服务进程有mount的标识,普通单机环境则没有。
2、如果未查到对应的服务,则说明服务不存在。
三、查看数据库归档状态和当前模式

##查看归档状态和数据库当前模式
cd /data/dmdbms/bin
./disql SYSDBA/SYSDBA@127.0.0.1:5236
SQL>
select
   (case arch_mode when 'Y' then '归档已开启' when 'N' then '归档未开启' end) 归档状态,(select MODE$ from v$instance) 数据库模式
from
   v$database;

##说明:
1、归档的详细信息可以通过数据库的dmarch.ini配置文件获取,下面简单说明该配置文件的部分参数:
ARCH_DEST:归档路径
ARCH_FILE_SIZE:单个归档文件大小,单位 MB,取值范围(64~2048),默认为 1024MB,即 1G
ARCH_SPACE_LIMIT:本地归档文件空间限制。当同一节点号的本地归档文件达到限制值时,系统自动删除最早生成的本地归档日志文件。0 表示无空间限制,取值范围(1024M~2147483647M),缺省为 0
四、数据库故障日志

##数据库的系统log位于软件安装目录的log目录下,位置:/data/dmdbms/log
##以dmserver日志为例,快速检索并定位ERROR信息:
cd /data/dmdbms/log
统计错误条数:
grep ERROR dm_DAMENG_202303.log|wc -l
查看错误信息:
grep ERROR dm_DAMENG_202303.log

五、联机全量、增量、归档备份

cd /data/dmdbms/bin
./disql SYSDBA/SYSDBA@127.0.0.1:5236
SQL>backup database full to "FULL_BAK" backupset '/data/dmbak/FULL_BAK' compressed level 1 task thread 4 parallel 4;
cd /data/dmdbms/bin
./disql SYSDBA/SYSDBA@127.0.0.1:5236
SQL>backup database increment with backupdir '/data/dmbak/FULL_BAK' to "INCR_BAK" backupset '/data/dmbak/INCR_BAK' compressed level 1 task thread 4 parallel 4;
cd /data/dmdbms/bin
./disql
BACKUP ARCHIVE LOG ALL to "arch_all_bak_03" BACKUPSET '/data/dmbak/arch_all_bak_03';

说明:
1、compressed level 1 表示压缩级别,总共1-9,压缩级别越高,CPU资源占用越高,备份集越小。但是压缩级别的提升对备份集的输出大小影响有限,建议将压缩级别选择为1。
2、task thread 4 表示线程数,一般不超过总的CPU核心数。
3、parallel 4 表示备份的并行数,即备份集的分片数量,通常配合线程数使用。
4、backupset ‘/data/dmbak/FULL_BAK’ 为指定备份集路径

六、备份集还原

cd /data/dmdbms/bin
##第一步:使用备份集还原数据库
./dmrman CTLSTMT="RESTORE DATABASE '/data/dmdata/DAMENG/dm.ini' FROM BACKUPSET '/data/dmbak/FULL_BAK' TASK THREAD 4"
##第二步:使用备份集恢复数据库
./dmrman CTLSTMT="RECOVER DATABASE '/data/dmdata/DAMENG/dm.ini' FROM BACKUPSET '/data/dmbak/FULL_BAK' TASK THREAD 4"
##第三步:更新数据库魔数
./dmrman CTLSTMT="RECOVER DATABASE '/data/dmdata/DAMENG/dm.ini' UPDATE DB_MAGIC"
归档还原
##联机归档还原
cd /data/dmdbms/bin
./dmrman
RESTORE ARCHIVE LOG FROM BACKUPSET '/data/dmbak/arch_all_bak_01' TO ARCHIVEDIR '/data/dmarch' OVERWRITE 1;

##脱机归档还原
cd /data/dmdbms/bin
./dmrman
RESTORE ARCHIVE LOG FROM BACKUPSET '/data/dmbak/arch_all_bak_01' TO database '/data/dmdata/DAMENG/dm.ini' OVERWRITE 1;

说明:
OVERWRITE 参数为:1 表示认为归档文件完好,不再还原该归档文件,添加一条日志记录;2 表示存在同名归档立即报错返回,终止还原;3 表示强制删除归档,重新还原同名归档。
七、数据的导入导出

库级导出导入
cd /data/dmdbms/bin
./dexp USERID=SYSDBA/SYSDBA@127.0.0.1:5236 FILE=db_str.dmp LOG=db_dexp.log FULL=Y DIRECTORY=/data/dmbak
./dimp USERID=SYSDBA/SYSDBA@127.0.0.1:5236 FILE=db_str.dmp LOG=db_dimp.log FULL=Y DIRECTORY=/data/dmbak
用户级导出导入
./dexp USERID=SYSDBA/SYSDBA@127.0.0.1:5236 FILE=user_str.dmp LOG=user_dexp.log OWNER=USER01 DIRECTORY=/data/dmbak
./dimp USERID=SYSDBA/SYSDBA@127.0.0.1:5236 FILE=user_str.dmp LOG=user_dimp.log OWNER=USER01 DIRECTORY=/data/dmbak
模式级导出导入
./dexp USERID=SYSDBA/SYSDBA@127.0.0.1:5236 FILE=schema_str.dmp LOG=schema_dexp.log SCHEMAS=USER01 DIRECTORY=/data/dmbak
./dimp USERID=SYSDBA/SYSDBA@127.0.0.1:5236 FILE=schema_str.dmp LOG=schema_dimp.log SCHEMAS=USER01 DIRECTORY=/data/dmbak
表级导出导入
./dexp USERID=SYSDBA/SYSDBA@127.0.0.1:5236 TABLES=table1 FILE=table_str.dmp LOG=table_dexp.log DIRECTORY=/data/dmbak
./dimp USERID=SYSDBA/SYSDBA@127.0.0.1:5236 TABLES=table1 FILE=table_str.dmp LOG=table_dimp.log DIRECTORY=/data/dmbak

八、查数据文件、查表空间、查归档路径

--查看数据文件
SQL> SELECT FILE_NAME,STATUS,TABLESPACE_NAME,BYTES/1024/1024/1024.0 AS SIZE_GB,MAXBYTES/1024/1024/1024.0 AS MAX_SIZE_GB,AUTOEXTENSIBLE,ONLINE_STATUS FROM DBA_DATA_FILES;
查看表空间
SQL> SELECT F.TABLESPACE_NAME,
       (T.TOTAL_SPACE - F.FREE_SPACE) / 1024 "USED (GB)",
       F.FREE_SPACE / 1024 "FREE (GB)",
       T.TOTAL_SPACE / 1024  "TOTAL (GB)",
       (ROUND((F.FREE_SPACE / T.TOTAL_SPACE),4)* 100) ||  '%' PEC_FREE,
       (ROUND((T.TOTAL_SPACE - F.FREE_SPACE) / T.TOTAL_SPACE, 4) * 100)||'%' PEC_USED
     FROM (SELECT TABLESPACE_NAME,
        ROUND(SUM(BLOCKS * (SELECT PARA_VALUE / 1024 FROM V$DM_INI
                            WHERE PARA_NAME = 'GLOBAL_PAGE_SIZE') / 1024)) FREE_SPACE
                            FROM DBA_FREE_SPACE
                            GROUP BY TABLESPACE_NAME) F,
       (SELECT TABLESPACE_NAME, ROUND(SUM(BYTES / 1048576)) TOTAL_SPACE
        FROM DBA_DATA_FILES
        GROUP BY TABLESPACE_NAME) T
     WHERE F.TABLESPACE_NAME = T.TABLESPACE_NAME;
查看归档
--查看归档配置
SELECT * FROM V$DM_ARCH_INI;
--查看归档路径
SQL> SELECT PATH,STATUS,LEN/1024.0/1024,FREE/1024.0/1024,ARCH_LSN,ARCH_SEQ,NEXT_SEQ,CREATE_TIME,DB_MAGIC,PMNT_MAGIC FROM V$ARCH_FILE;
评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服