概述
数据库集群的启停
严格按照顺序执行
读写分离集群重启:
关闭主库守护进程:systemctl stop DmWatcherServicedmdb_ekp
关闭备库守护进程:systemctl stop DmWatcherServicedmdb_ekp
关闭主库实例:systemctl stop DmServicedmdb_ekp
关闭备库实例:systemctl stop DmServicedmdb_ekp
启动主库实例:systemctl start DmServicedmdb_ekp
启动备库实例:systemctl start DmServicedmdb_ekp
启动主库守护进程:systemctl start DmWatcherServicedmdb_ekp
启动备库守护进程:systemctl start DmWatcherServicedmdb_ekp
主备集群和多节点集群也请参考以上顺序对数据库进行启停维护
数据库相关进程检查(dmap:备份进程,dmserver:实例进程,dmwatcher:集群守护进程)
ps -ef | grep 'dmap|dms|dmw' |grep -v gre
数据库运行日志目录
/home/dmdba/dmdbms/log
集群日志
dmwatcher_实例名_年月.log
实例日志
dm_实例名_年月.log
查看备份记录,备份校验
备份文件目录
/dm/bak/
查看备份作业历史记录(其中bakfull:全备作业,bakincr:增量备份作业,delbak:删除备份作业)
select name "作业名",start_time "开始时间",end_time "结束时间",errcode "错误代码",errinfo "错误描述" from "SYSJOB"."SYSJOBHISTORIES2" order by start_time desc limit 0,20;
集群运行状态
dmmonitor /home/dmdba/dmdbms/bin/dmmonitor0.ini
或查看实例信息
select NAME "数据库名",INSTANCE_NAME "实例名",SVR_VERSION "数据库版本",START_TIME "启动时间",STATUS$ "实例状态",MODE$ "数据模式" from v$instance;
会话数
SELECT sysdate,* FROM (
SELECT '0数据库总会话数 '||COUNT(*) CONNECTS FROM V$SESSIONS UNION ALL
SELECT '0数据库总活动会话数 '||COUNT(*) CONNECTS FROM V$SESSIONS where STATE='ACTIVE' UNION ALL
SELECT '1所有会话'||USER_NAME||'用户从IP' || CLNT_IP ||'的所有会话 '||COUNT(*) CONNECTS FROM V$SESSIONS GROUP BY USER_NAME ,CLNT_IP UNION ALL
SELECT '2活动会话'||USER_NAME||'用户从IP' || CLNT_IP ||'的所有活动 '||COUNT(*) CONNECTS FROM V$SESSIONS WHERE STATE='ACTIVE' GROUP BY USER_NAME ,CLNT_IP
);
查看长时间执行的活动会话情况
select
sess_id,datediff(ss,last_recv_time,sysdate) MsgT ,--已执行时间 s
to_char(sf_get_session_sql(sess_id)) "SQL" ,--完整sql
curr_sch,user_name,
clnt_host,clnt_ip,osname,left(last_send_time,19)from v$sessions where state='ACTIVE'
--and clnt_ip='::ffff:10.12.20.51'
order by 2 desc;
关闭会话(sess_id为v$sessions中的sess_id(会话ID))
sp_close_session(sess_id);
用户数据表
select owner "所属用户",table_name "表名",tablespace_name "所属表空间",status "表状态" from dba_tables
where owner='SYSDBA';
--统计用户对象数目
select object_type "对象类型",count(*) "对象数量" from all_objects
where owner='SYSDBA' group by object_type order by 1;
对象占用空间大小
SELECT OWNER "对象所有者",SEGMENT_NAME "对象名",SEGMENT_TYPE "对象类型",BYTES/1024/1024 "对象占空间MB" FROM DBA_SEGMENTS
where owner='SYSDBA'
AND SEGMENT_TYPE='TABLE'
and segment_name = 'BAK_DMINI_211115'
order by 4 desc;
用户默认表空间
select username "用户",default_tablespace "表空间" from dba_users;
表空间及数据文件使用情况
SELECT
T.NAME "表空间" ,
T.STATUS$ "表空间状态" ,
1.0*T.TOTAL_SIZE*F.PAGE_SIZE/1024/1024 "表空间大小MB" ,
F.PATH "数据文件路径" ,
(case F.STATUS$ when 1 then '可用' else '不可用' end) "文件状态" ,
1.0*F.TOTAL_SIZE*F.PAGE_SIZE/1024/1024 "文件总大小MB" ,
1.0*(F.TOTAL_SIZE-F.FREE_SIZE)*F.PAGE_SIZE/1024/1024 "文件已用空间MB",
1.0*F.FREE_SIZE *F.PAGE_SIZE/1024/1024 "文件剩余空间MB",
(CASE F.AUTO_EXTEND WHEN 1 then '自动扩展' else '非自动扩展' end) "文件自动扩展",
1.0*F.MAX_SIZE "文件最大大小MB"
FROM
V$TABLESPACE T,
V$DATAFILE F
WHERE
F.GROUP_ID = T.ID;
用户和表空间维护
DM8不给DBA权限情况下给VTI权限可以正常使用DM管理工具
请不要使用系统管理员SYSDBA用户作为应用用户,登录数据库后使用下面语句创建应用用户
创建表空间并设置表空间大小和是否自动扩展(单位MB)
CREATE TABLESPACE TEST DATAFILE 'TEST.DBF' size 128 AUTOEXTEND TEST;
创建用户并指定默认数据表空间和默认索引表空间
CREATE USER TEST IDENTIFIED by "aaaaaaaaa" DEFAULT TABLESPACE TEST DEFAULT INDEX TABLESPACE TEST;
普通用户常规角色授权
GRANT VTI TO TEST;
GRANT PUBLIC TO TEST;
GRANT RESOURCE TO TEST;
GRANT SOI to TEST;
修改用户TEST密码为XXXX
ALTER USER TEST IDENTIFIED BY "XXXX";
--删除用户(操作前请确认)
DROP USER TEST;
表空间添加数据文件(单位MB)
ALTER TABLESPACE TEST ADD DATAFILE 'TEST_01.DBF' SIZE 128 AUTOEXTEND ON;
修改表空间数据文件大小(只能曾不能减)
ALTER TABLESPACE TEST RESIZE DATAFILE 'TEST_01.DBF' TO 256;
删除表空间(操作前请确认)
--DROP TABLESPACE TEST;
最后
以上就是粗心金鱼为你收集整理的达梦数据库常用维护命令的全部内容,希望文章能够帮你解决达梦数据库常用维护命令所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复