DB常用
DB常用
查询ASM磁盘组空间
1 | -- 查看ASM磁盘组总空间和剩余空间 |
查看表空间使用情况
1 | -- 查看表空间使用情况 |
查询表空间中明细的表占用
1 | -- 查看BARDATA表空间中的所有对象 |
增加表空间ASM文件
1 | -- 初始10G 自增步进1G 最大31G(综合数据库配置的参数,单个文件最大31.768G) |
修改ASM自增步进
1 | -- 查询ASM文件 |
查询活动的会话并杀掉
查询
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15-- 查看当前活动的会话和正在执行的SQL
SELECT s.sid, s.serial#, s.username, s.status, s.osuser, s.machine,
s.program, s.module, s.event, s.wait_time, s.seconds_in_wait,
sq.sql_text
FROM v$session s
LEFT JOIN v$sql sq ON s.sql_id = sq.sql_id
WHERE s.type != 'BACKGROUND'
AND s.status = 'ACTIVE'
ORDER BY s.seconds_in_wait DESC;
-- 或者更简单的查询
SELECT sid, serial#, username, status, event, sql_id
FROM v$session
WHERE status = 'ACTIVE'
AND type != 'BACKGROUND';kill
1
2
3
4
5-- 使用ALTER SYSTEM KILL SESSION
ALTER SYSTEM KILL SESSION 'SID,SERIAL#' IMMEDIATE;
-- 例如,如果SID=123,SERIAL#=1234
ALTER SYSTEM KILL SESSION '123,1234' IMMEDIATE;
临时表目录 ASM 转换为 文件系统路径
查看现存临时文件
1
2-- 查看现有临时文件
SELECT file#, name, status FROM v$tempfile;修改数据库参数
1
2
3
4
5
6-- 修改默认临时文件创建路径
ALTER SYSTEM SET db_create_file_dest='/u01/app/oracle/oradata/yxtest/tempfile' SCOPE=SPFILE;
-- 重启使参数生效
SHUTDOWN IMMEDIATE;
STARTUP;迁移现存临时表(如需要的话,一般临时表都是Oracle自动管理的)
一般这个时候,再查询现有临时文件,Oracle已经自动配置好了,如果没有的话,再通过下边步骤手动创建
1
2
3
4
5
6
7
8
9-- 第一步:创建新的临时表空间(文件系统)
CREATE TEMPORARY TABLESPACE TEMP_NEW TEMPFILE '/u01/app/oracle/oradata/yxtest/tempfile/temp_new.dbf' SIZE 2G AUTOEXTEND ON;
-- 第二步:切换默认临时表空间
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TEMP_NEW;
-- 第三步:验证存储配置
SELECT file_name, tablespace_name
FROM dba_temp_files;迁移后确认
1
2
3-- 确认新临时表空间使用情况
SELECT tablespace_name, bytes_used, bytes_free
FROM v$temp_space_header;
查找表上的锁
1 | SELECT |
SHOW CREATE TABLE
1 | SELECT DBMS_METADATA.GET_DDL('TABLE', '<表名>') FROM dual; |
实例缩配置
1. 内存参数检查
关键参数
1 | -- 查看当前内存配置 |
典型问题
- SGA_MAX_SIZE > 可用物理内存
- PROCESSES 参数超过新CPU核心数限制
解决方案
1 | -- 调整示例(16G内存环境) |
2. 进程数限制
检查点
1 | -- 查看当前配置 |
计算规则
- processes = (CPU核心数 * 50) + 50 → 8核应 ≤ 450
- sessions = processes * 1.1 + 5
3. 存储配置验证
ASM检查(如使用)
1 | # 检查ASM磁盘组状态 |
文件系统检查
1 | -- 查看数据文件状态 |
4. 日志文件限制
关键位置
1 | -- 检查redo日志大小 |
典型问题
- Redo日志文件过大(如2G)导致16G内存不足
5. 资源管理器配置
检查项
1 | -- 查看资源计划 |
解决方案
1 | -- 禁用资源管理器 |
6. ASMM自动内存管理
配置建议
1 | -- 16G内存推荐配置 |
7. 操作系统参数
关键内核参数
1 | # 检查当前值 |
8. 集群配置(如RAC)
1 | # 检查集群状态 |
典型问题
- 节点驱逐(Node eviction)导致无法启动
9. 启动日志分析
关键日志位置
1 | # 查看alert日志 |
常见错误模式
- ORA-00845: /dev/shm 不足 →
mount -o remount,size=8G /dev/shm - ORA-27102: 共享内存不足 → 调整shmmax
- ORA-00068: 参数值无效 → 检查processes/sessions
10. 分步启动测试
1 | # 1. 仅启动到nomount |
查询SEQUENCE和修改 NEXTVAL 和 步长
1 | -- 举个例子 LABT_SEQUENCE |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 无尽infinite!

