Oracle 11g R2 DBA操作指南是我学习的第一本讲述oracle数据库知识的书籍,在此记录下自己的学习笔记,对于书中的知识点本人通过实际操作进行验证。
1.Oracle数据库基础
1.1.关系数据库
1.1.1.关系数据库模型
1.关系数据库模型三个核心概念:关系、属性、域
2.关系:由行列组成的表
属性:关系中的列
域:列取值的集合
3、每一行称为一个元组
4、关系数据模型的规则:
⑴一个表中列的顺序是任意的
⑵每个元组的属性值不能形同,每一个元组对应的属性将包含一个值
5、键:通过一个键可以确定一个元组,键可以由一个或多个属性组成
1.1.2.关系数据模型创始人
1、科德
1.3.数据库RDBMS
1、RDBMS:关系数据库管理系统
2、功能:数据定义、数据库创建、数据库维护、数据操纵、数据库运行管理
1.4.SQL语言
1、SQL:结构化查询语言
2、SQL语言的分类:
⑴数据操作语句:查询或操作已有方案对象内的数据,例:select, insert,update,delete等
⑵数据定义语句:定义或修改方案对象,例:create,rename,等
⑶事务控制语句:管理DML语句对数据的修改,以及将逻辑上相关的DML语句组织为事务
⑷会话控制语句:管理用户会话的属性
⑸系统控制语句:修改实例的属性,alter system是唯一的系统控制语句
⑹嵌入SQL语句
2.数据库的安装
2.1.windows环境
1.监听器在通过网络访问数据库服务器时使用,客户端通过连接工具或者程序连接数据库,监听器负责将用户请求交给数据库服务器进程
2、查看监听器的状态:lsnrctl status
3、windows下的sqlplus工具位置
4、使用alter user scott identified by 密码 account unlock;解锁scott用户并设置密码,scott用户的默认密码是tiger
5、如果误删scott用户或数据,可以使用$ORACLE_HOME\RDBMS\ADMIN\scott.sql脚本来恢复
2.2.Linux环境
1、
2、所需软件目录
⑴Oracle Base:Oracle软件的顶层目录,推荐为/mount_point/app/software_owner
⑵Oracle Inventory:
3.数据库的启动与关闭
3.1.启动数据库
3.1.1.数据库启动过程
1、数据库启动的三个状态
nomount状态:只打开数据库实例,读取参数文件
mount状态:ORACLE根据参数文件中记录的控制文件的位置,找到并打开控制文件,读取控制文件中的各种参数信息,如数据文件和日志文件的位置
open状态:打开数据文件并进行一系列检查工作,这些检查工作用于数据恢复
3.1.2.启动到nomount状态
1、数据库启动到nomount状态时,会打开数据库实例,读取参数文件,启动5个必须的后台进程:DBWR(数据库写进程)、LGWR(日志写进程)、SMON(系统监控进程)、PMON(进程监控进程)、CKPT(检验点进程)
2、
3、数据库的启动过程记录在告警追踪文件中,查询目录的方法
文件名为alert_orcl.log
4、
这是因为在nomount状态下,v$controlfile这个动态视图,如果控制文件没有打开,则无法查询到控制文件的位置,而nomount状态是不打开控制文件的;我们可以通过v$parameter这个动态视图获得控制文件的位置
3.1.3.数据库启动到mount状态
1、数据库启动到mount状态的两种方式
⑴直接startup mount
⑵先启动到nomount状态,再使用alter database mount
2、这是我们便可以查看v$controlfile动态视图来获得控制文件的信息,因为在mount状态下,控制文件被打开了。
3.1.4.数据库启动到open状态
1、数据库启动到open状态的两种方式
⑴使用startup open或startup直接启动
⑵先启动到mount状态,再使用alter database open启动
3.2.关闭数据库
3.2.1.数据库关闭过程
1、close→dismount→shutdown
关闭数据文件、日志文件(到mount状态):alter database close
关闭控制文件(到nomount状态):alter database dismount
关闭实例(完全关闭实例):shutdown
2、直接使用shutdown可以完全关闭数据库,但一般会结合参数使用
⑴ shutdown normal:默认方式,在关闭数据库时,不允许新的数据库连接,只有当前所有的连接都退出时才会关闭数据库,这是最安全的关闭数据库的方式,但会因为连接数而耗费大量时间
⑵shutdown immediate:较快且安全的关闭数据库,此时会中断当前事务,回滚未提交的事务,强制断开所有用户连接,执行检查点把脏数据写到数据文件中,但也会因为事务和用户连接的数量而影响关闭的速度
⑶shutdown transactional:关闭数据库时,当前的连接继续执行,但不允许新的连接,一旦当前所有事务执行完毕,则关闭数据库
⑷shutdown abort:不安全的关闭方式,此时会断开当前的所有用户连接,拒绝新的连接,断开当前的所有执行事务,立即关闭数据库;当数据库重启时需要进行数据库恢复,因为它不会对未完成的事务回滚,也不会执行检查点操作