介质下载地址

名称网址
银河麒麟高级服务器操作系统V10(SP3)用户手册https://www.kylinos.cn/support/document/60.html
DM8 安装手册https://eco.dameng.com/document/dm/zh-cn/pm/install-uninstall.html
DM 数据库安装(Linux安装)https://eco.dameng.com/document/dm/zh-cn/start/install-dm-linux-prepare.html
达梦官网https://www.dameng.com/
达梦数据库下载地址https://www.dameng.com/list_103.html
x86_rh7下载地址https://download.dameng.com/eco/adapter/DM8/202410/dm8_20240920_x86_rh7_64.zip

一键安装

将iso镜像和安装脚本上传至任意目录下

[root@localhost iso]# chmod +x dm8_single_install.sh
[root@localhost iso]# ./dm8_single_install.sh
[root@localhost iso]# cat dm8_single_install.sh
#!/bin/bash
set -euo pipefailecho -e "\n\n****** 开始安装 DM8 ******\n\n"# 配置参数
ISO_NAME="dm8_20250506_x86_rh7_64.iso"
DM_BASE="/dm"
SYSDBA_PWD="Ceshi@5235"
PORT_NUM="5236"
DB_NAME="PROD"
INSTANCE_NAME="PROD"
INSTALL_LOG="/tmp/dm_install.log"
sudo mount -t tmpfs -o size=2G none /tmp
# 清理旧日志
> "$INSTALL_LOG"# 步骤1: 准备安装环境
echo -n "[1/9] 创建目录结构... "
mkdir -p ${DM_BASE}/{dbms,data,log,arch,bak,script} /dm8_setup/iso
echo "完成"echo -n "[2/9] 准备安装文件... "
mv -f ./* /dm8_setup/iso/ 2>/dev/null || true
echo "完成"# 步骤2: 挂载安装镜像
echo -n "[3/9] 挂载安装镜像... "
mount "/dm8_setup/iso/${ISO_NAME}" /mnt -o loop &>/dev/null
echo "完成"# 步骤3: 系统配置
echo -n "[4/9] 系统配置... "
public_ip=$(hostname -I | awk '{print $1}')
node_name=$(hostname)
grep -q "${public_ip} ${node_name}" /etc/hosts || echo "${public_ip} ${node_name}" >> /etc/hosts
hostnamectl set-hostname "${node_name}" &>/dev/nullgroupadd -g 50000 dinstall &>/dev/null || true
useradd -u 51000 -g dinstall dmdba &>/dev/null || true
echo "dmdba:${SYSDBA_PWD}" | chpasswd &>/dev/nullchown -R dmdba:dinstall "${DM_BASE}"
chmod -R 775 "${DM_BASE}"grep -q "dmdba soft nproc" /etc/security/limits.conf || cat <<EOF >> /etc/security/limits.conf
dmdba soft nproc 16384
dmdba hard nproc 16384
dmdba soft nofile 16384
dmdba hard nofile 65536
dmdba soft stack 16384
dmdba hard stack 32768
EOFsystemctl stop firewalld &>/dev/null || true
systemctl disable firewalld &>/dev/null || true
setenforce 0 &>/dev/null || true
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
echo "完成"# 步骤4: 生成安装配置
echo -n "[5/9] 生成安装配置... "
cat << EOF > "${DM_BASE}/script/silent_setup.xml"
<?xml version="1.0"?>
<DATABASE>
<LANGUAGE>en</LANGUAGE>
<TIME_ZONE>+08:00</TIME_ZONE>
<KEY></KEY>
<INSTALL_TYPE>0</INSTALL_TYPE>
<INSTALL_PATH>${DM_BASE}/dbms</INSTALL_PATH>
<INIT_DB>y</INIT_DB>
<DB_PARAMS>
<PATH>${DM_BASE}/data</PATH>
<DB_NAME>${DB_NAME}</DB_NAME>
<INSTANCE_NAME>${INSTANCE_NAME}</INSTANCE_NAME>
<PORT_NUM>${PORT_NUM}</PORT_NUM>
<CTL_PATH>${DM_BASE}/data/${DB_NAME}/dm.ctl</CTL_PATH>
<LOG_PATHS><LOG_PATH>${DM_BASE}/log/${DB_NAME}/redo01.log</LOG_PATH><LOG_PATH>${DM_BASE}/log/${DB_NAME}/redo02.log</LOG_PATH>
</LOG_PATHS>
<EXTENT_SIZE>16</EXTENT_SIZE>
<PAGE_SIZE>16</PAGE_SIZE>
<LOG_SIZE>256</LOG_SIZE>
<CASE_SENSITIVE>Y</CASE_SENSITIVE>
<CHARSET>0</CHARSET>
<SYSDBA_PWD>${SYSDBA_PWD}</SYSDBA_PWD>
<SYSAUDITOR_PWD>${SYSDBA_PWD}</SYSAUDITOR_PWD>
<SYSSSO_PWD>${SYSDBA_PWD}</SYSSSO_PWD>
<SYSDBO_PWD>${SYSDBA_PWD}</SYSDBO_PWD>
<TIME_ZONE>+08:00</TIME_ZONE>
</DB_PARAMS>
<CREATE_DB_SERVICE>n</CREATE_DB_SERVICE>
<STARTUP_DB_SERVICE>n</STARTUP_DB_SERVICE>
</DATABASE>
EOFchown dmdba:dinstall "${DM_BASE}/script/silent_setup.xml" &>/dev/null
echo "完成"# 步骤5: 执行数据库安装(添加进度指示)
echo -n "[6/9] 正在安装数据库 "
export DM_INSTALL_TMPDIR=/tmp
export LANG=en_US.UTF-8# 后台安装并显示进度指示器
(sudo -u dmdba /mnt/DMInstall.bin -q "${DM_BASE}/script/silent_setup.xml" &>> "$INSTALL_LOG"
) &
pid=$!# 显示旋转进度指示
spin='-\|/'
i=0
while kill -0 $pid 2>/dev/null; doi=$(( (i+1) %4 ))printf "\b${spin:$i:1}"sleep 0.5
done# 等待后台任务完成
wait $pid# 检查安装结果
if [ -d "${DM_BASE}/dbms/bin" ]; thenecho -e "\b完成"
elseecho -e "\n\n[错误] 数据库安装失败!请检查日志: $INSTALL_LOG"exit 1
fi# 步骤6: 安装后配置
echo -n "[7/9] 安装后配置... "
"${DM_BASE}/dbms/script/root/root_installer.sh" &>> "$INSTALL_LOG"
"${DM_BASE}/dbms/script/root/dm_service_installer.sh" -t dmserver -p "${DB_NAME}" -dm_ini "${DM_BASE}/data/${DB_NAME}/dm.ini" &>> "$INSTALL_LOG"
echo "完成"# 步骤7: 环境配置
echo -n "[8/9] 环境配置... "
cat << EOF >> /home/dmdba/.bashrc
export DM_HOME="${DM_BASE}/dbms"
export PATH="\$PATH:\${DM_HOME}/bin"
export LD_LIBRARY_PATH="\$LD_LIBRARY_PATH:\${DM_HOME}/bin"
EOF
echo "完成"# 步骤8: 启动服务
echo -n "[9/9] 启动数据库服务... "
sudo -u dmdba "${DM_BASE}/dbms/bin/DmService${DB_NAME}" start &>> "$INSTALL_LOG"
sleep 3  # 给服务启动时间# 检查服务状态
if sudo -u dmdba "${DM_BASE}/dbms/bin/DmService${DB_NAME}" status | grep -q "running"; thenecho "完成"
elseecho "失败"echo "[警告] 服务启动失败,请检查日志: $INSTALL_LOG"
fi# 清理工作
umount /mnt &>/dev/null || trueecho -e "\n\n****** DM8 安装成功完成! ******"
echo -e "数据库端口: \033[32m${PORT_NUM}\033[0m"
echo -e "管理员账号: \033[32msysdba\033[0m"
echo -e "管理员密码: \033[32m${SYSDBA_PWD}\033[0m"
echo -e "安装目录: \033[32m${DM_BASE}/dbms\033[0m"
echo -e "数据目录: \033[32m${DM_BASE}/data\033[0m"
echo -e "服务状态: \033[32m$(sudo -u dmdba ${DM_BASE}/dbms/bin/DmService${DB_NAME} status | grep -o "running")\033[0m"
echo -e "安装日志: \033[34m${INSTALL_LOG}\033[0m\n\n"

过程截图

在这里插入图片描述
在这里插入图片描述

日常运维命令

-- 1. 数据库授权信息查询
SELECT LIC_VERSION AS "许可证版本",SERIES_NO AS "序列号",CHECK_CODE AS "校验码",AUTHORIZED_CUSTOMER AS "最终用户",PROJECT_NAME AS "项目名称",PRODUCT_TYPE AS "产品名称",CASE SERVER_TYPE WHEN '1' THEN '正式版' WHEN '2' THEN '测试版' WHEN '3' THEN '试用版' WHEN '4' THEN '其他' END AS "产品类型",TO_CHAR(EXPIRED_DATE) AS "有效日期",OS_TYPE AS "授权系统",TO_CHAR(AUTHORIZED_USER_NUMBER) AS "授权用户数",NVL(TO_CHAR(CONCURRENCY_USER_NUMBER),'') AS "授权并发数",NVL(TO_CHAR(MAX_CPU_NUM),'') AS "授权CPU个数",CLUSTER_TYPE AS "授权集群"
FROM V$LICENSE;
-- 注意事项:
-- 1)需关注数据库授权的有效日期,到期前需及时更换
-- 2)注意授权CPU个数字段值,曾出现因限制CPU使用个数导致DB性能下降的情况-- 2. 查询数据库的实例信息
SELECT '版本号',(SELECT id_code) FROM v$instance
UNION ALL
SELECT '数据库名',name FROM v$database
UNION ALL
SELECT '实例名',instance_name FROM v$instance
UNION ALL
SELECT '系统状态',status$ FROM v$instance
UNION ALL
SELECT '实例模式',mode$ FROM v$instance
UNION ALL
SELECT '是否启用归档',case arch_mode when 'Y' then '是' when 'N' then '否' end FROM v$database
UNION ALL
SELECT '页大小',cast(PAGE()/1024 as varchar)
UNION ALL
SELECT '大小写敏感',cast(case SF_GET_CASE_SENSITIVE_FLAG()when '1' then '是' when '0' then '否' 
end as varchar)
UNION ALL
SELECT '字符集',CASE SF_GET_UNICODE_FLAG() WHEN '0' THEN 'GBK18030' WHEN '1' then 'UTF-8' when '2' then 'EUC-KR' 
end
UNION ALL
SELECT '以字符为单位',cast(case SF_GET_LENGTH_IN_CHAR()when '1' then '是' when '0' then '否' 
end as varchar)
UNION ALL
SELECT '空白字符填充模式',cast(case (select BLANK_PAD_MODE()) when '1' then '是' when '0' then '否' 
end as varchar)
UNION ALL
SELECT '日志文件个数',to_char(count(*)) FROM v$rlogfile
UNION ALL
SELECT '日志文件大小',cast(RLOG_SIZE/1024/1024 as varchar) FROM v$rlogfile where rowid =1
UNION ALL
SELECT '创建时间',to_char(create_time) FROM v$database
UNION ALL
SELECT '启动时间',to_char(last_startup_time) FROM v$database;
-- 注意事项:
-- 1)该SQL查询数据库安装信息参数,实例迁移时需保障两端实例参数一致
-- 2)系统状态字段如为非OPEN状态,需检查数据库是否正常
-- 3)日志文件大小(redo日志)不建议低于2G,且建议大小一致-- 3. 查询数据库中语句统计信息
SELECT NAME, STAT_VAL 
FROM v$sysstat 
WHERE name IN ('select statements','insert statements','delete statements','update statements','ddl statements','transaction total count'
);
-- 注意事项:
-- 1)该值为数据库启动后从0递增的计数,重启后重置
-- 2)可用于监控特定时间段SQL执行情况-- 4. 数据库表空间的状态检查
SELECT NAME AS "NAME",CASE TYPE$ WHEN '1' THEN 'DB类型' WHEN '2' THEN '临时表空间' END AS "TYPE",CASE STATUS$ WHEN '0' THEN '联机' WHEN '1' THEN '脱机' WHEN '2' THEN '脱机' WHEN '3' THEN '损坏'END AS "STATUS",TOTAL_SIZE*PAGE/1024/1024 AS "TOTALSIZE",FILE_NUM AS "FILENUM"
FROM V$TABLESPACE;
-- 注意事项:
-- 1)需重点关注表空间类型非联机的情况,需重点监控-- 5. 查询数据库表空间的使用情况
SELECT F.TABLESPACE_NAME,ROUND((T.TOTAL_SPACE - F.FREE_SPACE) / 1024, 2) "USED",CASE WHEN H.TOTAL_MAX_SPACE == 0 THEN ROUND(F.FREE_SPACE / 1024, 2) ELSE ROUND((H.TOTAL_MAX_SPACE -(T.TOTAL_SPACE - F.FREE_SPACE)) / 1024, 2) END "FREE_MAX",CASE WHEN H.TOTAL_MAX_SPACE == 0 THEN ROUND(T.TOTAL_SPACE / 1024, 2) ELSE ROUND(H.TOTAL_MAX_SPACE / 1024, 2) END "TOTAL_MAX",CASE WHEN H.TOTAL_MAX_SPACE == 0 THEN ROUND((F.FREE_SPACE/1024)/(T.TOTAL_SPACE / 1024), 4)*100||'%' ELSE ROUND(((H.TOTAL_MAX_SPACE-(T.TOTAL_SPACE - F.FREE_SPACE))/1024)/(H.TOTAL_MAX_SPACE / 1024), 4)*100||'%' END PER_FREE_MAX,CASE WHEN H.TOTAL_MAX_SPACE == 0 THEN ROUND((((T.TOTAL_SPACE - F.FREE_SPACE))/1024)/(T.TOTAL_SPACE / 1024), 4)*100||'%' ELSE ROUND((((T.TOTAL_SPACE - F.FREE_SPACE))/1024)/(H.TOTAL_MAX_SPACE / 1024), 4)*100||'%' END PER_USED_MAX,ROUND(F.FREE_SPACE / 1024, 2) "FREE",ROUND(T.TOTAL_SPACE / 1024, 2) "TOTAL",CASE WHEN T.TOTAL_SPACE == 0 THEN '' ELSE (ROUND((F.FREE_SPACE / T.TOTAL_SPACE), 4)* 100) || '% ' END PER_FREE,CASE WHEN T.TOTAL_SPACE == 0 THEN '' ELSE (ROUND((T.TOTAL_SPACE - F.FREE_SPACE) / T.TOTAL_SPACE, 4) * 100)||'%' END PER_USED
FROM ( SELECT TABLESPACE_NAME,ROUND(SUM(BLOCKS * (SELECT PARA_VALUE / 1024 FROM V$DM_INI WHERE PARA_NAME = 'GLOBAL_PAGE_SIZE') / 1024)) FREE_SPACEFROM DBA_FREE_SPACEGROUP BY TABLESPACE_NAME 
) F, 
( SELECT TABLESPACE_NAME,ROUND(SUM(BYTES / 1048576)) TOTAL_SPACEFROM DBA_DATA_FILESGROUP BY TABLESPACE_NAME 
) T, 
( SELECT TABLESPACE_NAME,ROUND(SUM(MAXBYTES / 1048576)) TOTAL_MAX_SPACEFROM DBA_DATA_FILESGROUP BY TABLESPACE_NAME 
) H 
WHERE F.TABLESPACE_NAME = T.TABLESPACE_NAME AND F.TABLESPACE_NAME = H.TABLESPACE_NAME;
-- 注意事项:
-- 1)MAIN|TEMP|ROLL|SYSTEM表空间由系统自动管理,无需关注使用率
-- 2)计算公式复杂原因:一个表空间可包含多个数据文件,若存在自动拓展且无上限的文件,使用率参考意义较低-- 6. 查询表空间的数据文件使用情况
SELECT PATH,TO_CHAR(TOTAL_SIZE*PAGE/1024/1024) AS TOTAL_SIZE,TO_CHAR(FREE_SIZE*PAGE/1024/1024) AS FREE_SIZE,(TO_CHAR(100-FREE_SIZE*100/TOTAL_SIZE)) AS REM_PER,CASE AUTO_EXTEND WHEN '0' THEN '未开启' WHEN '1' THEN '已开启' END AS AUTO_EXTEND,NEXT_SIZE,MAX_SIZE,b.TABLESPACE_NAME
FROM V$DATAFILE a,dba_data_files b 
WHERE b.file_name = a.PATH 
ORDER BY GROUP_ID;
-- 注意事项:
-- 1)MAIN|TEMP|ROLL|SYSTEM表空间由系统自动管理,无需关注-- 7. 查询数据库中的用户信息
SELECT A.USERNAME,CASE B.RN_FLAG WHEN '0' THEN '否' WHEN '1' THEN '是' END AS READ_ONLY,CASE A.ACCOUNT_STATUS WHEN 'LOCKED' THEN '锁定' WHEN 'OPEN' THEN '正常' END AS "状态",TO_CHAR(A.LOCK_DATE,'YYYY-MM-DD HH24:MI:SS') AS "锁定起始时间",TO_CHAR(A.EXPIRY_DATE,'YYYY-MM-DD HH24:MI:SS') AS "密码截止使用时间",TO_CHAR(round(datediff(DAY,TO_CHAR(sysdate,'YYYY-MM-DD HH24:MI:SS'),TO_CHAR(A.EXPIRY_DATE,'YYYY-MM-DD HH24:MI:SS')),2)) AS EXPIRY_DATE_DAY,TO_CHAR(round(datediff(DAY,TO_CHAR(sysdate,'YYYY-MM-DD HH24:MI:SS'),TO_CHAR(A.LOCK_DATE,'YYYY-MM-DD HH24:MI:SS')),2)) AS LOCK_DATE_DAY,A.DEFAULT_TABLESPACE,A.PROFILE,TO_CHAR(A.CREATED,'YYYY-MM-DD HH24:MI:SS') AS CREATE_TIME
FROM DBA_USERS A,SYSUSERS B 
WHERE A.USER_ID=B.ID;
-- 注意事项:
-- 1)需关注密码设置有效期后即将到期的用户
-- 2)需关注非预期情况下的用户账号锁定状态-- 8. 查询数据库中用户权限
SELECT USERNAME AS "用户名", WM_CONCAT(PRIVILEGE) AS "默认权限"
FROM(SELECT A.USERNAME,C.PRIVILEGE FROM DBA_USERS A,SYSUSERS B,(SELECT A.* FROM (SELECT GRANTEE,GRANTED_ROLE PRIVILEGE,'ROLE_PRIVS' PRIVILEGE_TYPE,CASE ADMIN_OPTION WHEN 'Y' THEN 'YES' ELSE 'NO' END ADMIN_OPTION FROM DBA_ROLE_PRIVSUNION SELECT GRANTEE,PRIVILEGE,'SYS_PRIVS' PRIVILEGE_TYPE,ADMIN_OPTION FROM DBA_SYS_PRIVSUNION SELECT GRANTEE,PRIVILEGE||' ON '||OWNER||'.'||TABLE_NAME PRIVILEGE,'TABLE_PRIVS' PRIVILEGE_TYPE,GRANTABLE FROM DBA_TAB_PRIVS) AWHERE GRANTEE IN (SELECT USERNAME FROM ALL_USERS WHERE USERNAME NOT IN ('SYS','SYSDBA','SYSSSO','SYSAUDITOR') ) ) C WHERE A.USER_ID=B.ID AND A.USERNAME = C.GRANTEE
)
GROUP BY USERNAME;
-- 注意事项:
-- 1)需关注是否给应用用户授予DBA权限等过高权限-- 9. 查询数据库中的对象是否无效(函数、存储过程、包等对象)
SELECT OWNER,OBJECT_NAME,OBJECT_TYPE,TO_CHAR(CREATED,'YYYY-MM-DD HH24:MI:SS'),TO_CHAR(LAST_DDL_TIME,'YYYY-MM-DD HH24:MI:SS')
FROM DBA_OBJECTS 
WHERE OWNER NOT IN('SYS','SYSJOB','SYSAUDITOR','CTISYS','SYSSSO'
)AND STATUS = 'INVALID';
-- 注意事项:
-- 1)需关注库中无效的函数、包、存储过程等对象,评估是否需要处理-- 10. 查询数据库中的大表信息
SELECT A.TABLE_NAME,A.TABLESPACE_NAME,B.OWNER,B.BYTES
FROM (SELECT TABLE_NAME,TABLESPACE_NAME FROM ALL_TABLES  GROUP BY TABLE_NAME,TABLESPACE_NAME
) AS A 
LEFT JOIN (SELECT OWNER,SEGMENT_NAME,SUM(BYTES) BYTES FROM DBA_SEGMENTS WHERE SEGMENT_TYPE='TABLE'GROUP BY OWNER,SEGMENT_NAME
) AS B 
ON A.TABLE_NAME=B.SEGMENT_NAME 
WHERE B.OWNER NOT IN ('SYS','SYSDBA','SYSAUDITOR','SYSSSO','CTISYS') 
ORDER BY BYTES DESC 
LIMIT 10;-- 11. 查询数据库中的分区大表信息
SELECT A.OWNER,A.TABLE_NAME,A.PARTITIONING_TYPE,TO_CHAR(ROUND(TABLE_USED_SPACE(A.OWNER, A.TABLE_NAME) * PAGE / 1024.0 / 1024, 2)) SIZEMB,A.PARTITION_COUNT as partition_num,table_rowcount(a.owner, a.table_name) as row_num
FROM DBA_PART_TABLES a;-- 12. 查询数据库中会话的使用情况
SELECT *
FROM (SELECT STATE,CASE WHEN INSTR(CLNT_IP, ':',8) > 0 THEN SUBSTR(CLNT_IP, 1, INSTR(CLNT_IP, ':',8) - 1) ELSE CLNT_IP END AS CLNT_IP,CLNT_TYPE,CURR_SCH,USER_NAME,COUNT(*) COUNTSFROM V$SESSIONSGROUP BY STATE,CASE WHEN INSTR(CLNT_IP, ':',8) > 0 THEN SUBSTR(CLNT_IP, 1, INSTR(CLNT_IP, ':',8) - 1) ELSE CLNT_IP END,CLNT_TYPE,CURR_SCH,USER_NAMEORDER BY STATE
);-- 13. 长时间空闲会话检查
SELECT SESS_ID,SESS_SEQ,USER_NAME,CREATE_TIME,CLNT_TYPE,CLNT_HOST,CLNT_IP,OSNAME,CONN_TYPE,CLNT_VER 
FROM SYS.V$SESSIONS 
WHERE STATE = 'IDLE'AND DATEDIFF(HH, LAST_SEND_TIME, SYSDATE) > 48AND DATEDIFF(HH, CREATE_TIME, SYSDATE) > 48;
-- 注意事项:
-- 1)达梦数据库默认不会自动断开会话连接
-- 2)曾出现因未提交事务导致其他事务等待的情况(如未提交的insert)
-- 3)建议定期清理长时间空闲会话-- 14. 查询数据库的redo日志大小
SELECT FILE_ID,PATH,CLIENT_PATH,RLOG_SIZE FROM V$RLOGFILE;
-- 注意事项:
-- 1)单个redo日志文件不建议低于2G,且建议所有redo日志大小一致-- 15. 查询数据库的定时任务信息
SELECT SYSJOB."NAME",SCHE."NAME" SCHENAME,SCHE."JOBID",SCHE."TYPE",SCHE."FREQ_INTERVAL",SCHE."FREQ_SUB_INTERVAL",SCHE."STARTTIME",STEPS."NAME" STEPSNAME,STEPS."SEQNO" STEPSSEQNO,STEPS."TYPE" STEPSTYPE,STEPS.COMMAND WHAT,STEPS.SUCC_ACTION,STEPS.FAIL_ACTION
FROM SYSJOB.SYSJOBSCHEDULES SCHE
LEFT JOIN SYSJOB.SYSJOBSTEPS STEPSON SCHE.JOBID = STEPS.JOBID
LEFT JOIN SYSJOB.SYSJOBS SYSJOBON SCHE.JOBID = SYSJOB.ID
WHERE SCHE.VALID == 'Y'
ORDER BY STEPS.JOBID, STEPS.SEQNO ASC;
-- 注意事项:
-- 1)检查是否配置定时数据备份任务,保障数据安全-- 16. 查询定时任务是否有错误
SELECT NAME,'' STEPNAME,MAX(START_TIME) START_TIME,ERRINFO 
FROM ( SELECT NAME,MAX(START_TIME) START_TIME,ERRINFO FROM SYSJOB.SYSSTEPHISTORIES2 WHERE ERRCODE !=0 GROUP BY NAME, ERRINFO UNION ALL SELECT NAME,MAX(START_TIME) START_TIME,ERRINFO FROM SYSJOB.SYSJOBHISTORIES2 WHERE ERRCODE !=0 GROUP BY NAME, ERRINFO 
) 
WHERE TO_CHAR(START_TIME,'YYYY-MM-DD HH24:MI:SS') >= TO_CHAR(TRUNC(ADD_DAYS(SYSDATE, -7)),'YYYY-MM-DD HH24:MI:SS')
GROUP BY NAME, ERRINFO
ORDER BY START_TIME DESC 
LIMIT 10;-- 17. 数据字典的淘汰情况
SELECT ROUND(TOTAL_SIZE/1024.0/1024, 2) TOTALSIZE,ROUND(USED_SIZE /1024.0/1024, 2) USEDSIZE,DICT_NUM DICTNUM,ROUND(SIZE_LRU_DISCARD/1024.0/1024, 2) SIZELRUDISCARD,LRU_DISCARD LRUDISCARD,ROUND((USED_SIZE/1024.0/1024)/(TOTAL_SIZE/1024.0/1024)*100, 2) CACHE_HIT
FROM V$DB_CACHE;
-- 注意事项:
-- 1)根据数据字典的使用/淘汰率,判断是否需要调整数据字典缓冲区参数-- 18. 查询数据库中的无效索引
SELECT owner, index_name,table_name,index_type,status 
FROM dba_indexes
WHERE status != 'VALID' AND owner NOT IN ('SYS', 'SYSAUDITOR', 'SYSSSO', 'SYSDBA', 'DEM', 'SYSJOB', 'SYSDBO')
ORDER BY 1,2,3;-- 19. 查询数据库分区表中的无效索引
SELECT * 
FROM (SELECT SCH_NAME, INDEX_NAME, PARTITION_NAME, SUBPARTITION_NAME,STATUS FROM DBA_IND_SUBPARTITIONSUNION SELECT SCH_NAME, INDEX_NAME, PARTITION_NAME, NULL,STATUS FROM DBA_IND_PARTITIONSUNION SELECT OWNER, INDEX_NAME, NULL, NULL,STATUS FROM DBA_INDEXES
) S 
WHERE S.STATUS = 'UNUSABLE'AND S.SCH_NAME NOT IN ('SYS', 'SYSAUDITOR', 'SYSSSO', 'SYSDBA', 'DEM', 'SYSJOB', 'SYSDBO')
ORDER BY 1, 2;-- 20. 查询数据库中的大索引信息
SELECT objname AS "对象名",objtype as "对象类型",TABLESPACE_NAME AS "表空间",to_char(round(TOT_BLOCKS/1024.0/1024.0*page(),2)) AS "大小(MB)"
FROM (SELECT objname,objtype,TABLESPACE_NAME,SUM(page_used) TOT_BLOCKS FROM (select * from (select owner||'.'||index_name objname, 'INDEX/INDEX PART' objtype, TABLESPACE_NAME, INDEX_USED_PAGES(owner,index_name) page_used from dba_indexes where tablespace_name not in ('TEMP','ROLL','SYSTEM')and owner not in ('SYS','SYSAUDITOR','SYSSSO','SCHEDULER')and temporary='N'and INDEX_TYPE != 'CLUSTER'and INDEX_USED_PAGES(owner,index_name)> (select sum(TOTAL_SIZE)* 0 from v$datafile)order by index_used_space(owner,table_name) desc)order by page_used desclimit 10)GROUP BY objname,objtype,TABLESPACE_NAMEorder by TOT_BLOCKS DESC limit 10
);-- 21. 查询监视器信息
SELECT TO_CHAR(DW_CONN_TIME, 'YYYY-MM-DD HH24:MI:SS') CONN_TIME,MON_CONFIRM,MON_IP,MON_ID,MON_TERM 
FROM v$dmmonitor;-- 22. 查询实例运行错误的日志
SELECT * 
FROM V$INSTANCE_LOG_HISTORY 
WHERE LEVEL$ NOT IN ('INFO','WARN');-- 23. 查询数据库中是否存在死锁
SELECT TO_CHAR(HAPPEN_TIME,'YYYY-MM-DD HH24:MI:SS') HAPPEN_TIME,SQL_TEXT 
FROM V$DEADLOCK_HISTORY 
WHERE HAPPEN_TIME > DATEADD(DAY,-30,SYSDATE);-- 24. 查询数据库中已经运行后的慢SQL
SELECT SQL_TEXT,EXEC_TIME,FINISH_TIME 
FROM V$SYSTEM_LONG_EXEC_SQLS 
ORDER BY EXEC_TIME DESC;-- 25. 查询数据库中运行报错的SQL语句
SELECT SQL_TEXT,ECPT_DESC,max(ERR_TIME)ERR_TIME 
FROM V$RUNTIME_ERR_HISTORY  
GROUP BY SQL_TEXT,ECPT_DESC 
LIMIT 10;-- 26. 查询数据库中正在运行的慢SQL
SELECT * 
FROM ( SELECT DATEDIFF(MS,LAST_RECV_TIME,SYSDATE) EXEC_TIME,DBMS_LOB.SUBSTR(SF_GET_SESSION_SQL(SESS_ID)) SLOW_SQL,SESS_ID,CURR_SCH,THRD_ID,LAST_RECV_TIME,SUBSTR(CLNT_IP,8,13) CONN_IPFROM V$SESSIONS WHERE 1=1AND STATE='ACTIVE'ORDER BY 1 DESC
) 
WHERE EXEC_TIME >= ? AND LAST_RECV_TIME > TO_TIMESTAMP('2000-01-01 00:00:00', 'YYYY-MM-DD HH24:MI:SS') 
LIMIT ?;
-- 说明:其中“?”为参数占位符,需根据实际情况替换(如执行时间阈值和返回条数限制)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/91850.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/91850.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/91850.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

cobalt strike(CS)与Metasploit(MSF)联动

CS —> MSF首先cs上创建一个http的外部监听器。此时在CS服务端查看监听的ip&#xff0c;发现并没有开启&#xff0c;需要到成功移交会话后才会启动。netstat -tunlp | grep 7000在MSF中使用handler模块&#xff0c;配置监听。注意&#xff1a;目标机器的地址是rhost&#xf…

C# 类型

原文&#xff1a;C# 类型_w3cschool C#类型 类型定义值的蓝图。有不同的操作与不同类型相关联。 在下面的示例中&#xff0c;我们使用两个类型为int的常量&#xff0c;值为2 和 3。 static void Main() {int x 2 * 3;Console.WriteLine (x); } int 是一个表示整数值的构建…

确保TDesign Vue Next中t-color-picker组件在弹出颜色拾取面板时保证该面板不抖动方法参考

使用TDesign Vue Next中的组件t-color-picker时&#xff0c;在颜色面板弹出后&#xff0c;如果修改里面的颜色&#xff0c;发现这个颜色拾取面板会随着颜色的改变位置不断抖动&#xff0c;该问题由显示颜色的数值文本的长度变化引起&#xff0c;因此要覆盖组件内部颜色值文本的…

bypass

代码解析修改自身bypass&#xff1a;第一句话$s"Declaring file object\n";定义一个s&#xff0c;值为Declaring file object第二句话$d$_SERVER[DOCUMENT_ROOT].$_SERVER[DOCUMENT_URI]; 不知道$_SERVER是什么&#xff0c;那就打印出来看看。输入echo <pre>;…

C语言:构造类型学习

内容提要 构造类型 枚举类型typedef 综合案例&#xff1a;斗地主 构造类型 枚举类型 建议&#xff1a;如果定义不相干的常理&#xff0c;使用宏定义&#xff08;符号常量&#xff09;&#xff1b;如果需要定义一组相关联的常量&#xff0c;如月份0~11&#xff0c;星期0~6&#…

Prometheus-3--Prometheus是怎么抓取Java应用,Redis中间件,服务器环境的指标的?

1、Prometheus抓取Java应用的指标 1、数据来源&#xff1a;Java应用自身暴露的指标 Java应用的指标数据来源于应用代码中定义的指标对象&#xff08;如Counter、Gauge、Histogram等&#xff09;&#xff0c;通过Prometheus客户端库&#xff08;如io.prometheus:client_java&…

42.安卓逆向2-补环境-unidbg安装和简单使用

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a;图灵Python学院 工具下载&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1bb8NhJc9eTuLzQr39lF55Q?pwdzy89 提取码&#xff1…

数据结构与算法:哈希函数的应用及一些工程算法

前言这篇里的东西可以说了解了解就行了。一、哈希函数均匀性展示原本让deepseek转了一下老师的java代码&#xff0c;但发现复刻起来太麻烦了。又因为这个理解就好&#xff0c;竞赛不会有&#xff0c;所以就直接贴老师的java代码了……import java.security.MessageDigest; impo…

交叉编译ARM环境

ARM交叉编译 可以采用交叉编译工具链&#xff1a; sudo apt-get install aarch64-linux-gnu-gcc sudo apt-get install aarch64-linux-gnu-g sudo apt-get install gcc-arm-linux-gnueabi sudo apt-get install g-arm-linux-gnueabi 上面两个是64位&#xff0c;下面两个是…

算法思想 之 拓扑排序问题

欢迎拜访&#xff1a;雾里看山-CSDN博客 本篇主题&#xff1a;算法思想 之 拓扑排序问题 发布时间&#xff1a;2025.8.4 隶属专栏&#xff1a;算法 目录算法介绍核心原理适用场景实现步骤(Kahn 算法)例题课程表题目链接题目描述算法思路代码实现课程表 II题目链接题目描述算法思…

机器学习 入门——决策树分类

决策树是一种直观且强大的机器学习算法&#xff0c;适用于分类和回归任务。本文将全面介绍决策树分类的原理、实现、调优和实际应用。一、什么是决策树分类1.概念决策树分类是一种树形结构的分类模型&#xff0c;它通过递归地将数据集分割成更小的子集来构建决策规则。就像我们…

虚拟机中查看和修改文件权限

在虚拟机中管理文件权限是系统管理的重要部分&#xff0c;无论是在Linux还是Windows虚拟机中。下面我将详细介绍两种主要系统的权限管理方法。Linux虚拟机中的文件权限管理查看文件权限使用ls命令&#xff1a;ls -l 文件名输出示例&#xff1a;-rwxr-xr-- 1 user group 1024 Ju…

图像处理拉普拉斯算子

AI对话记录&#xff0c;还没有来得及仔细验证和推导&#xff0c;目前只是记录 当然可以&#xff01;我们来一步步推导拉普拉斯算子在旋转变换下保持不变的数学过程。这里以二维情况为例&#xff0c;最直观也最常见。&#x1f9ee; 拉普拉斯算子旋转不变性的推导&#xff08;二维…

React ahooks——副作用类hooks之useThrottleEffect

useThrottleEffect 是 ahooks 提供的节流版 useEffect&#xff0c;它在依赖项变化时执行副作用函数&#xff0c;但会限制执行频率。一、基本语法useThrottleEffect(effect: React.EffectCallback,deps?: React.DependencyList,options?: Options )二、参数详解2.1. effect (必…

【建模与仿真】融合画像约束和潜在特征的深度推荐算法

导读&#xff1a; 基于深度学习的推荐算法已成为推荐系统领域的研究趋势。然而&#xff0c;大多数现有工作仅考虑单一的用户与物品交互数据&#xff0c;限制了算法的预测性能。本文提出一种画像约束的编码方式&#xff0c;并融合隐因子模型中的潜在特征&#xff0c;丰富了推荐…

华为网路设备学习-26(BGP协议 二)路径属性

一、属性分类二、属性含义①公认必遵&#xff1a;所有BGP对等体 必须识别 且 在Update报文中携带1.Origin2.AS-Path3.Next hop②公认自决&#xff1a;所有BGP对等体 必须识别但可以不在Update报文中携带 1.Local-Preference2.ATOMIC_Aggregate③可选传递&#xff1a;所有BGP对…

从0搭建YOLO目标检测系统:实战项目+完整流程+界面开发(附源码)

文章目录一、前言二、专栏介绍三、已有系统介绍3.0 基于yolo通用目标检测系统&#xff08;手把手教你修改成为自己的检测系统&#xff09;3.1 基于yolov8柑橘检测系统3.2 基于yolov8舰船检测系统3.3 基于yolo11人脸检测系统3.4 基于yolov8无人机影像光伏板缺陷检测系统一、前言…

【测试】自动化测试工具基础知识及基本应用

下面详细介绍一些常用的自动化测试工具及其基本概念&#xff0c;并提供具体的示例代码&#xff0c;帮助你更好地理解和应用这些工具。1. 自动化测试的基本概念自动化测试是通过软件程序自动执行测试用例的过程。与手动测试相比&#xff0c;自动化测试能够提高测试效率、减少人为…

ArcGIS的字段计算器生成随机数

在ArcGIS的字段计算器中使用Python脚本生成0-100的随机数&#xff0c;可以按照以下步骤操作&#xff1a; 打开属性表&#xff0c;选择要计算的字段打开字段计算器选择"Python"解析器勾选"显示代码块"在"预逻辑脚本代码"中输入以下代码在下方表达…

【前端:Html】--1.1.基础语法

目录 1.HTML--简介 2.HTML--编译器 步骤一:启动记事本 步骤二:用记事本来编辑 HTML 步骤三:保存 HTML 步骤四:在浏览器中运行 HTML 3.HTML--基础 3.1.HTML声明--!DOCTYPE 3.2.HTML 标题--h1 3.3.HTML 段落--p 3.3.1. 水平线--hr 3.3.2.换行符--br 3.3.3.固定格式…