AIOps 一场颠覆传统运维的盛筵
1973
2022-10-02
达梦数据库日常运维手册
达梦连接篇
连接主备服务名配置:
cat /etc/dm_svc.conf
# 全局配置区GRP1=(192.168.43.131:32141,192.168.43.132:32142)TIME_ZONE=(+480) #表示+8:00 时区LOGIN_ENCRYPT=(0)DIRECT=(Y)# 服务配置区[GRP1]TIME_ZONE=(+540) #表示+9:00 时区LOGIN_MODE=(0)#指定优先登录的服务器模式。0:优先连接 Primary 模式的库,Normal 模式次之,#最后选择 Stantby 模式;1:只连接主库;2:只连接备库;3:优先连接 Standby 模式#的库,Primary 模式次之,最后选择Normal模式;4:优先连接Normal模式的库,Primary#模式次之,最后选择 Standby 模式。默认值为 0SWITCH_TIMES=(3)#指定连接失败切换的次数SWITCH_INTERVAL=(100)#连接失败切换的间隔,单位毫秒RW_SEPARATE=(1) #是否启用读写分离 0 不启用1 启用RW_PERCENT=(25) #读写分离分发比例,读事务向主库分发的比例
连接dsc服务名配置:
cat /etc/dm_svc.conf
TIME_ZONE=(480)LANGUAGE=(cn)dm_dsc=(10.10.10.10:6236,1:6236)[dm_dsc]CLUSTER=(DSC)##EP_SELECTION=(1)DO_SWITCH=(2)SWITCH_TIMES=(2000)SWITCH_INTERVAL=(300)
连接失败问题:
1:查找服务是否正常;
ps -ef|grep dmserver
2:端口是否正确;
cat /opt/dmdbms/data/DAMENG/dm.ini | grep PORT./disql SYSDBA/SYSDBA@IP:PORT
3:端口通不通;
telnet *.*.*.* 5236
日常使用篇
查达梦进程
ps -ef|grep dmserver
工具目录
ps -ef|grep dmserver
里面有个bin路径,工具在和bin同级的tool目录里面
查参数
Select * from v$parameter where name like ‘%PWD%’;
查归档状态
Select * from v$arch_file;
查建库参数
#查页大小SELECT cast(PAGE()/1024 as varchar);#查簇大小SELECT cast(SF_GET_EXTENT_SIZE() as varchar)#查字符集select substr(svr_version,instr(svr_version,'V')),svr_version FROM v$instanceSELECT CASE SF_GET_UNICODE_FLAG() WHEN '0' THEN 'GBK18030' WHEN '1' then 'UTF-8' when '2' then 'EUC-KR' end#查大小写敏感SELECT cast(SF_GET_CASE_SENSITIVE_FLAG() as varchar)#长度是否以字符为单位select SF_GET_LENGTH_IN_CHAR();
杀会话
begin for rec in ( select sess_id from v$sessions where sess_id <> sessid() ) loop sp_close_session(rec.sess_id); commit; end loop;end;
查表上面的锁
SELECT * FROM V$LOCK WHERE table_id=(SELECT OBJECT_ID FROM DBA_OBJECTS WHERE OBJECT_NAME='BDA_FP_T_A_ZDZJLMMX');
查表大小
1、创建一个表来存各表的大小
create table table_count (owner varchar(100),table_name varchar(100),used_space_MB varchar(100));
2、执行语句块,查出各表的大小,存进table_count这个表里。
declarebeginfor rec in(select owner, table_name from all_tables order by 1, 2)loopinsert into table_countselectrec.owner ,rec.table_name,table_used_pages(rec.owner, rec.table_name)*(page()/1024)/1024fromdual;end loop;end;
3、查询表table_count的信息,根据需求排序,就能看到各表的大小
select * from table_count order by used_space_mb desc;
查单表大小:
select table_used_pages('SYS', 'POLICIES')*(page()/1024)/1024 from dual;
sql执行篇
回滚段过旧
方法:优化sql,增加roll表空间
数据迁移篇
迁移方法
常见迁移报错解决
1.由于外键约束导致数据未导入(重新导入或者分批导入,先导表结构,再导数据,最后导约束)2.超度超出上限,扩大表字段长度,然后再重新导入数据
备份恢复篇
备份失败解决
1:确保使用的是dmdba用户2:确定dmap服务正常
ps -ef|grep dmap
数据库升级
替换bin目录
1、正常关闭数据库服务
[dmdba@localhost /]$ cd /dmdbms/bin[dmdba@localhost bin]$ ./dmserver stop DmServiceDMSERVER
2、检查目前数据库的版本
[dmdba@db1 bin]$ ./disql -id1-1-156-21.01.13-133136-ENT
3、备份当前bin目录
[dmdba@localhost dmdbms]$ mv bin bin_BAK
4、另找一台新服务器安装新版的DM软件,将新的bin文件夹上传至原来bin目录下。5、修改文件夹所有者
[dmdba@localhost dmdbms]$ chown –R dinstall: dmdba bin/
6、启动数据库:注意:如果在新机器上只复制了bin目录,是无法注册后台服务的,需要将原本已注册的服务文件(例如DmServiceDMSERVER01)进行编辑,确保里面的PATH路径与实际环境一致,才能后台启动这个脚本:
[dmdba@localhost bin]$ ./dmserver start DmServiceDMSERVER
使用卡顿问题定位
sql执行慢
优化sql
内存不足
查找当前的内存使用情况:
select (select sum(n_pages * page_size)/1024/1024 from v$bufferpool)||'MB' as BUFFER_SIZE ,( select sum(total_size)/1024/1024 from v$mem_pool)||'MB' as mem_pool,(select sum(n_pages * page_size)/1024/1024 from v$bufferpool) + (select sum(total_size)/1024/1024 from v$mem_pool)||'MB' as TOTAL_SIZE from dual;
一般都是由于mem_pool过大引起的。常见的原因:1:memory_target设置为0,导致会话使用的内存未释放,考虑设置memory_target参数。2:会话执行的sql消耗大量的内存,此时根据下面sql找到最占用内存的sql,然后进行优化
SELECT "SESSID", MAX_MEM_USED||'KB',SQL_TXT FROM V$SQL_STAT order by MAX_MEM_USED DESC;
发表评论
暂时没有评论,来抢沙发吧~