一、安装与配置技巧
选择合适的安装模式
根据业务需求选择典型安装、自定义安装或静默安装
生产环境推荐使用最小化安装,减少不必要的组件
内存配置优化
sql
-- 查看当前内存配置
SELECT * FROM V$DM_INI WHERE PARA_NAME LIKE '%MEMORY%';
-- 调整共享内存大小(需重启生效)
ALTER SYSTEM SET 'MEMORY_TARGET'='8G' SCOPE=SPFILE;
字符集设置
安装时务必选择与应用程序匹配的字符集(推荐UTF-8)
后期修改字符集代价较大,需谨慎
二、SQL优化技巧
执行计划分析
sql
-- 查看SQL执行计划
EXPLAIN SELECT * FROM large_table WHERE id=100;
-- 收集统计信息
ANALYZE TABLE large_table COMPUTE STATISTICS;
索引使用技巧
避免在索引列上使用函数
复合索引遵循最左前缀原则
定期重建碎片率高的索引
sql
-- 重建索引
ALTER INDEX idx_name REBUILD;
分页查询优化
sql
-- 低效写法(偏移量大时性能差)
SELECT * FROM table ORDER BY id LIMIT 10000, 20;
-- 高效写法
SELECT * FROM table WHERE id > 10000 ORDER BY id LIMIT 20;
三、备份与恢复技巧
物理备份
./dmrman BACKUP DATABASE '/opt/dmdbms/data/DAMENG/dm.ini' FULL;
./dmrman BACKUP DATABASE '/opt/dmdbms/data/DAMENG/dm.ini' INCREMENTAL;
逻辑备份
bash
./dexp SYSDBA/SYSDBA@localhost:5236 FILE=full.dmp LOG=exp.log FULL=Y
./dexp SYSDBA/SYSDBA@localhost:5236 FILE=tables.dmp LOG=exp.log TABLES=(table1,table2)
定时备份策略
全量备份: 每周一次
增量备份: 每天一次
归档日志备份: 每小时一次
四、性能监控技巧
系统视图查询
sql
-- 查看当前会话
SELECT * FROM V$SESSIONS;
-- 查看锁等待
SELECT * FROM V$LOCK WHERE BLOCKED=1;
-- 查看SQL执行历史
SELECT * FROM V$SQL_HISTORY ORDER BY EXEC_TIME DESC;
DM性能监控工具
使用DM性能监控工具(DMonitor)实时监控数据库状态
配置告警阈值,及时发现性能问题
五、高可用与集群技巧
数据守护(DW)配置
主备库配置建议使用异步模式减少主库压力
定期测试备库切换,确保高可用性
DSC共享存储集群
确保共享存储的高性能和高可靠性
配置VIP实现透明故障转移
六、开发实用技巧
存储过程调试
sql
-- 开启调试
SET DEBUG ON;
-- 执行存储过程
CALL proc_name(params);
批量数据处理
sql
-- 使用批量绑定提高性能
BEGIN
FORALL i IN 1..1000
INSERT INTO target_table VALUES(:array1(i), :array2(i));
END;
JSON支持(新版本特性)
sql
-- 查询JSON字段
SELECT data->'$.name' FROM json_table;
-- 创建JSON索引
CREATE INDEX idx_json ON json_table(JSON_EXTRACT(data, '$.id'));
七、常见问题解决
连接数不足
sql
-- 查看当前连接数
SELECT COUNT(*) FROM V$SESSIONS;
-- 修改最大连接数(需重启)
ALTER SYSTEM SET 'MAX_SESSIONS'=500 SCOPE=SPFILE;
表空间不足
sql
-- 查看表空间使用情况
SELECT * FROM DBA_DATA_FILES;
-- 扩展表空间
ALTER TABLESPACE TS1 ADD DATAFILE '/path/to/file.dbf' SIZE 2G;
死锁处理
sql
-- 查看死锁
SELECT * FROM V$DEADLOCK_HISTORY;
-- 终止会话
ALTER SYSTEM KILL SESSION 'sid,serial#';
https://eco.dameng.com/document/dm/zh-cn/ops/check-instance.html
您可以参考一下这个资料.