zoukankan      html  css  js  c++  java
  • 业余Oracle DBA的边干边学小结

    我们的系统是一个OLTP系统,用的是Oracle RAC,没有名义上的DBA,但最近一年左右的时间,不知不觉干了DBA事。之前的数据库基础仅限于学生水平,在此做个阶段性小结,记录下学习轨迹,按学习顺序排序,其实就是工作中遇到的顺序。

    一、从备份恢复开始

      因为会写shell,就被拉去做Oracle的备份恢复。拿了隔壁项目的现成资料,移植到了我们的系统。这里的知识点在于Oracle的redo log原理,了解存储的大致结构。我们用的是RMAN的备份,稍微看点RMAN的资料。资料网上一大堆,就不推荐了。顺带通过这一阶段工作,熟悉了sqlplus工具,不过后面用的更多的是pl sql developer

    二、Oracle安装、配置与存储规划

      又是拿了隔壁项目组的现成资料,但存储做了完全不同的设计。要懂磁盘阵列、Lunix LVM,还有懂得oracle的表空间和数据文件。如果是项目初期,oracle的各参数还是自动的比较好。

    三、数据库表设计

      这里已经涉及到了业务逻辑,也需要有一些数据库的理论知识了。可以拿大学里的数据库教材,好好再学习一遍,各种范式还是要知道的。另外,就要对字段类型、索引、约束有比较清楚认识,还要懂得表分区。对于oracle,不得不推荐Tom大神的《oracle9i&10g编程艺术》

    四、数据库性能调优

      性能调优牵扯到了上面所有,oracle怎么调优,网上的资料也是一大堆,但都是治标不治本,关键还是要对oracle的内部原理清楚。要知道下面一些东西

    • 数据库理论、SQL、oracle各种原理、存储理论,这是基础,不然做优化是抓不到重点的
    • 各种报告和工具,比如AWR报表、autotrace、tkprof,至于各种性能视图,实在太麻烦,针对实际问题边用边学。AWR报表没有理论知识是看不懂的!
    • Oracle体系结构,SGA、PGA什么的要搞清楚,各种文件是做什么的,懂了这些,参数才能配置好,也才知道哪些能删哪些不能删
    • oracle的事务,以及redo和undo,知道这些上层应用并发执行才不会有差错
    • 索引、分区,这是性能优化的重点,索引要懂原理,B树生成、查询、节点插入和删除,这些要很明白。分区还与表空间、数据文件、段等概念关系紧密
    • RAC还有cache fusion,就是集群间的内存同步,这家伙相当麻烦,实在搞不定、项目进度又有压力,那就做应用隔离吧

    五、后续

      尝试横向扩展,还有ETL、OLAP、读写分离(复制、stream)、data guard。。。。。。

      后来听说oracle配置很简单、功能太强大,生产环境基本不用管,这到底是好事还是坏事呢?

  • 相关阅读:
    java之md5加密算法
    springboot之快速创建项目
    java之idea打jar包
    java只http改成https访问
    springboot之读取配置文件
    springboot之项目打包
    Git之fatal: remote origin already exists
    WebStorm ES6 语法支持设置和ES6语法的JS文件编译为ES5语法文件
    转 JavaScript里的数组转化新方法Array.From
    网页特殊符号HTML代码大全
  • 原文地址:https://www.cnblogs.com/todsong/p/2712085.html
Copyright © 2011-2022 走看看