至周五维护工作上周周一至周五Oracle系统维护之旅(oracle上一周周一)

上周一至周五,我和我的同事们进行了一次Oracle系统维护之旅。在这个过程中,我们检查了数据库运行情况,处理了各种错误,优化了性能,并做出了一些重大决策,以确保系统的稳定性和可靠性。

我们进行了一次全面的数据库健康检查。我们使用了Oracle提供的各种监控工具,如Enterprise Manager、AWR、ADDM等,以评估数据库的整体性能和健康状况。我们发现一些潜在的问题,如空间不足、性能瓶颈和慢查询等,并采取一系列措施予以解决。

我们处理了一些错误和故障。我们的日志文件中记录了一些错误,如ORA-00600和ORA-07445等,需要进行详细的分析和诊断。我们使用了Oracle提供的工具和技术,如bdump和trcsess,来捕获和分析诊断信息,以确定问题的根本原因,并采取措施进行修复和预防。

然后,我们优化了数据库的性能。我们识别了一些瓶颈,如高CPU使用率、慢IO和大量等待事件等,并采取了优化策略。通过使用AWR报告、SQL追踪和索引优化等工具和技术,我们显着提高了数据库的性能和响应能力,缩短了查询时间和响应时间。

我们做出了一些重大决策,以确保数据库的稳定性和可靠性。我们决定采用Oracle 12c,并升级了我们的数据库版本。这个决定需要考虑到许多因素,如功能增强、性能改进、安全增加等,以满足业务需求和未来发展需求。

在通过一周的维护工作,我们成功地检查了数据库运行情况,处理了各种错误,优化了性能,并做出了重大决策,以确保系统的稳定性和可靠性。我们相信,在我们不断学习和改进的过程中,我们将继续提高我们的数据库管理和维护技能,为我们的业务提供更好、更快、更可靠的服务。以下是我们在维护过程中使用的一些代码示例:

检查数据库空间:

SELECT tablespace_name, file_id, bytes / 1024 / 1024 total_mb,

(bytes – nvl(free_space, 0)) / 1024 / 1024 used_mb,

nvl(free_space, 0) / 1024 / 1024 free_mb,

round((bytes – nvl(free_space, 0)) * 100 / bytes) used_pct

FROM (SELECT f.tablespace_name, f.file_id,

SUM(f.bytes) bytes,

SUM(s.bytes) free_space

FROM dba_data_files f, dba_free_space s

WHERE f.file_id = s.file_id(+)

GROUP BY f.tablespace_name, f.file_id, s.bytes)

ORDER BY tablespace_name, file_id;

查找慢查询:

SELECT sql_id, child_number, executions,

round(elapsed_time / 1000000, 2) elapsed_secs,

round(cpu_time / 1000000, 2) cpu_secs,

round(buffer_gets / decode(executions, 0, 1, executions), 2) buffer_gets_per_exec,

round(buffer_gets / decode(elapsed_time, 0, 1, elapsed_time) * 1000000, 2) buffer_gets_per_sec,

round(disk_reads / decode(elapsed_time, 0, 1, elapsed_time) * 1000000, 2) disk_reads_per_sec,

round(rows_processed / decode(executions, 0, 1, executions)) rows_per_exec,

sql_text

FROM v$sql

WHERE elapsed_time > 1000000

ORDER BY elapsed_time DESC;

索引优化:

SELECT t.tablespace_name, t.table_name, t.index_name,

t.num_rows, t.clustering_factor,

round((t.num_rows / t.clustering_factor) * 100) pct_clustering_factor,

(SELECT count(*)

FROM dba_segments

WHERE segment_name = t.index_name

AND segment_type = ‘INDEX’) num_instances

FROM dba_tables t

WHERE t.owner = ‘SCOTT’

AND t.table_name NOT LIKE ‘BIN$%’

AND EXISTS (SELECT 1

FROM dba_indexes i

WHERE i.owner = t.owner

AND i.table_name = t.table_name

AND i.uniqueness = ‘NONUNIQUE’)

ORDER BY pct_clustering_factor DESC;


数据运维技术 » 至周五维护工作上周周一至周五Oracle系统维护之旅(oracle上一周周一)