DBA 知识点归纳(一)

来源:互联网 发布:数据彻底销毁 编辑:程序博客网 时间:2024/04/28 22:10
 1.DBA的职责:
  基本职责:(1)安装新软件(2)和系统管理员一起配置硬件和软件(3)安全管理(4)备份和恢复(5)日常预定的维护(6)发现并解决问题(7)故障恢复
  额外职责:(1)数据分析(2)数据库设计(3)数据建模和优化(4)帮助开发人员进行SQL和存储过程开发(5)参与制定企业标准和命名规则(6)环境文档(7)容量规划

2.安全验证和口令管理:
    建立数据库的时候,将自动建立sys(权限最大)和system(权限仅次于sys)两个DBA用户
   (1)sys:数据库数据字典的所有基表和视图都保持在此模式中,并且只能由Oracle维护,任何用户不可修改它们,大多数数据库用户不能使用sys账户连接数据库。  
   (2)system:不建议在此模式中建立个别用户表
   两种身份验证方式:
   (1)操作系统验证:NTS  不需要输入用户名和口令例:conn  / as sysdba
   (2)数据库验证(口令文件):NONE 必须输入用户名和口令例 conn  system/oracle as sysdba;
   口令文件:  //前提在身份验证为NONE的情况下,注意与下面提到的NONE的区别
   (1)创建口令文件:orapwd file=zmb.ora password=zmb entries=20;
   (2)设置初始化参数:REMOTE_LOGIN_PASSWORDFILE=(NONE或者EXCLUSIVE或者SHARED)
       --|NONE:该设置使口令文件好像不存在一样
       --|EXCLUSIVE:该设置使口令文件只能被一个数据库使用
       --|SHARED:该设置使口令文件能被多个数据库使用
   (3)在口令文件中添加用户:只要授权用户为SYSDBA角色即可:grant sysdba to zmb;
   (4)删除口令文件中的用户:revoke sysdba from zmb;
   (5)查询口令文件的用户:select * from v$pwfile_users
   (6)删除口令文件:设置参数REMOTE_LOGIN_PASSWORDFILE=NONE,并删掉口令文件
   (7)如何保证口令文件生效:设置身份验证方式为:NONE
   (8)在数据库启动后修改的该参数文件是无效的,需要重启数据库才可

3.数据库的启动的过程了解
   具体的数据库启动与关闭在另外文件详细介绍,这里做些更主要的笔记:
   (1)nomount:此状态只启动实例(SGA+后台进程),只需要init.ora文件。用途=》用于数据库控制文件全部损坏,需新建数据库控制文件或创建一个新的数据库。
   (2)mount:此状态挂载了数据库,但并未打开。用途=》用于修改数据库的运行方式或进行数据库的修复,常在数据库维护中使用,可执行数据库日志归档,数据库恢复,重命名数据文件等;
   (3)restrict:数据库以受限的方式打开,只有具有restrict session权限用户可以打开,常用来对数据库进行维护,如数据的导入/导出时,不希望用户连接
4.数据库的关闭类型
   (1)shutdown normal:保护所有的用户
   (2)shutdown immediate:最常用..事物活动的被停止,未提交的被回滚,断开所有连接用户
   (3)shutdown transactional:保证事物完成后在关闭数据库
   (4)shutdown about:前面几种关闭不行后、需要立即关闭、启动实例遇到问题时,则采取此方法,

5.初始化参数文件
   (1)静态参数:可以被记事本打开,修改后需要关闭和重启数据库才能生效
   (2)动态参数:即二进制文件,不可手工修改,通过命令后,直接生效
   (3)动态参数的修改
       --|Alter session set parameter_name=value 修改当前会话制定的参数,生命周期(会话结束后,就无效了)
       --|Alter system set parameter_name=value 在下一次参数修改之前都有效
       --|Alter system set parameter_name=value deferred 将来连接到数据库的会话再修改该值,在下一次参数修改之前都有效
   (4)修改的示例:
       --|Alter session set nls_language=‘simplefiled chiniese’ //实现中英文字符转换
       --|Alter system set sga_max_size=1000M scope=spfile  //调整SGA_MAX_SIZE的大小
       --|Alter system set db_cache_advice=off //将内存缓冲区顾问工具关闭
       --|Alter system set mts_servers=5   // 设置服务器进程数为5
       --|Alter system kill session '3,5'  // 终止SID为3,序号为5的会话
   (5)查看初始化参数
       --|show parameters
       --|show parameters parameter_name

6.oracle的SGA结构
   (1)共享池:当一条SQL语句提交时,服务器首先查找库缓存,查看相同语句是否提交过,涉及到硬解析和软解析内容
       --|库缓存区: 共享SQL区 和 PL/SQL区
       --|数据字典缓存区:一组表和视图,保存数据的逻辑结构和物理结构(如用户信息、表完整性、列名和数据类型等,为了分析SQL语句,经常要访问数据字典)
   (2)数据库高速缓存区:保存频繁读取的数据,由若干个缓存器组成,每个缓存器大小与数据库块大小相匹配,db_block_buffers设定有关。有两张列表:
       --|脏列表(Dirty List):存放已修改但为被写入磁盘的数据,当达到一定的标准后会自动写入磁盘。
       --|最近最少使用列表(LRU):当oracle服务器需要更多空间来读入一个数据块时,它会去访问LRU列表,确定可以清出哪些块
   (3)重做日志缓存区:用于保存对数据库所做的全部修改信息。大小由LOG_BUFFER决定,大值减少日志文件的I/O
  
7.oralce的12个后台进程
   (1)数据库书写进程(DBWn):`把修改的数据块从内存中写到数据文件中,满足一定的标准后从脏列表中成批写入。
   (2)日志书写进程(LGWR):将重做日志记录写入联机日志文件中。
   (3)系统监视进程(SMON):崩溃恢复、临时段的清除、合并自由空间
   (4)进程监视进程(PMON):在用户进程出现故障时执行恢复
   (5)检查点进程(CKPT):减少LGWR的工作量
   (6)归档进程(ARCH):将已写满的联机日志文件复制到归档日志文件中
   (7)恢复进程(RECO):用于分布式数据库配置的后台进程,它用于自动解决分布式事务中的故障
   (8)锁进程(LCKn):
   (9)作业队列进程(SNPn):
   (10)队列监控进程(QMNn):
   (11)调度程序进程(Dnnn):
   (12)共享服务器进程(Snnn):
8.实例与数据库的关系
   (1)实例:用来访问数据库文件集的存储结构(SGA)及后台进程的集合。
   (2)数据库:数据文件的集合,这些文件用来存储和管理相关数据。一个数据库可被多个实例访问(涉及并行服务器)
9.一条SQ(1)语法分析
    (2)权限与对象检查
    (3)在共享池中检查是否有完全相同的之前完全解析好的—如果存在,直接跳过4和5,运行Sql(此时算soft parse)
    (4)选择执行计划
    (5)产生执行计L语的执行过程
原创粉丝点击