前言sql
正常生产环境下每每是经过应用服务器来与Oracle数据库相链接,大多数使用Oracle的开发语言以Java为主,针对于Java的中间件有不少,咱们这里具体来看一下Oracle总体产品线的WLS产品数据库
安装Weblogic浏览器
执行上图所示命令,启动WLS安装页面缓存
在欢迎页面中点击下一步继续安全
选择中间件主目录,点击下一步继续服务器
这里根据实际状况便可,点击下一步继续session
选择典型安装,点击下一步继续oracle
肯定WLS Server等安装目录,点击下一步继续app
肯定安装所需空间,点击下一步继续ide
安装完毕后,不勾选快速启动,直接点击完成按钮退出便可
配置WLS域
安装好WLS后,切换到上图所示目录,执行config.sh脚原本进行域的建立
选择建立新的WLS域,点击下一步继续
按照默认便可(下面三项均无需勾选),点击下一步继续
域名能够根据本身实际状况便可,点击下一步继续
配置管理员的用户名与密码(PS:12C会舒适提示须要8位以上具备字母和数据的混合密码),点击下一步继续
选择生产模式(不然没法部署发布项目),点击下一步继续
单实例状况下就不作特殊变动了,点击下一步继续
确认无误后,点击建立便可
建立完毕后,点击完成退出页面
启动Weblogic
建立完域之后,能够按上图所示路径,执行startWebLogic.sh脚原本启动WLS(PS:会提示用户名密码,这个能够写在一个boot启动脚本里,就能够自动加载了)
打开浏览器键入地址(http://ip:7001/console) 键入用户名与密码进行登陆
出现上图所示页面,至此WLS 12C就彻底安装建立完毕
Oracle的管理工具SQLPLUS
一、数据库的启动和关闭
二、数据库的管理工做
静态参数文件
Oracle9i之前,数据库只是提供静态参数文件
静态参数文件的启动顺序
在sql> startup的时候,Oracle默认去哪寻找参数文件?
对于Linux或者Unix系统来讲,默认寻找顺序是$ORACLE_HOME\dbs
一、initSID.ora 二、init.ora
咱们能够手工的指定参数文件的位置
SQL>startup pfile=/u01/app/oracle/11g/dbs/init.ora
静态参数文件只是在数据库启动的时候读取一次,而后释放。
手工修改任何参数,都须要从新启动数据库才能生效。
对于Windows系统来讲,默认目录是%ORACLE_HOME%\database
动态参数文件
一、Oracle9i开始,Oracle引入了动态参数文件spfile
里面的不少参数是能够动态调整的,这区别于pfile
二、RMAN能够自动的备份spfile
三、spfile是一个二进制的文件,可使用写字板打开,可是不能修改,不然会破坏这个参数文件
四、Oracle 9i开始,参数文件的寻找顺序以下
一、spfileSID.ora
二、spfile.ora
三、initSID.ora
四、init.ora
这个实例使用的是动态参数文件。
动态参数文件的创建
经过动态参数文件创建了一个静态参数文件。咱们能够认为是作了一个动态参数文件的文本备份。
上面的pfile在默认的路径下,默认的名字
上面的spfile在默认的路径下,默认的名字
在另一个目录创建了一个动态参数文件。
动态参数文件中参数的修改
只能使用ALTER SYSTEM SET命令进行修改
ALTER SYSTEM SET parameter_name=parameter_value
[comment=‘注释’] scope=[memory|spfile|both] [sid=‘sid’|’*’]
默认是’*’,在RAC环境中有意义
只是修改内存|只是修改spfile|同时修改spfile和内存,默认是both
一个常见错误的解决流程
错误了的修改了spfile里面的参数,数据库启动失败,由于没有办法直接修改spfile,该怎么办?
一、sql>create pfile='/u01/app/oracle/11g/dbs/initbear.ora' from spfile
二、手工的在pfile里面编辑和修改错误的参数
三、sql>create spfile from pfile='/u01/app/oracle/11g/dbs/initbear.ora'
四、sql>startup
使用spfile启动时的位置问题
一、将spfile放在默认位置dbs或者database目录下面
二、在pfile下面指定spfile的位置,而后使用starup pfile进行指定
实例的启动和关闭
nomount阶段
一、寻找参数文件
二、打开参数文件
三、打开告警日志alterSID.log
四、在这个阶段能够重建控制文件
咱们要常常的关注这个文件(告警日志)
mount阶段
根据参数文件中控制文件的路径和名字,打开全部的控制文件
若是有一个控制文件不能打开,那么不能进入mount状态
从控制文件中读取数据文件、日志文件的路径和名字,不校验这些文件的存在
再来看一下日志
open阶段
根据控制文件中对数据文件、日志文件的记录,打开全部的文件
有一个文件不能打开,就不能进入这个状态
最后看一下日志
实例的关闭
shutdown normal | transactional | immediate | abort
有四个选项能够选择,默认是normal
一、abort
模拟忽然掉电
内存被清空、内存中的数据没有写入数据文件
事务被当即中断
没有提交、没有回滚
二、immediate
强制中断当前正在运行的全部事务,回滚这些事务
回滚完毕,强制中断全部的链接
将实例中的全部数据写入数据文件
三、transactional
等待正在运行的事务,一直到他们提交或者回滚
全部事务主动结束之后(提交或者回滚),强行中断链接
将实例里面的数据写入数据文件
清空缓存
若是有事务一直没有提交或者回滚,实例没法关闭
四、normal
等待事务的主动提交或者回滚
等待用户主动断开链接
若是有一个用户没有断开链接,那么数据库没法关闭
关闭时间快慢
abort——immedaite——transactional——normal,速度由快到慢
一、除了abort之外的关闭方式
触发一个checkpoint,内存中数据写入到数据文件中
一致性数据库
二、abort关闭、忽然掉电、数据库崩溃down、等
没有触发一个检查点
脏数据库
数据库须要恢复
SMON负责数据库的恢复
建议:采用shutdown immediate进行数据库的关闭
EM管理工具:database control
一、dbca建立数据库的时候,能够选择安装db control
二、安装完成数据库之后,采用emca建立db control
删除db control
一、emca –deconfig dbcontrol db
二、emca –repos drop
创建db control
一、emca –repos create
建立repository(建立了一些表),属主是sysman
二、emca –config dbcontrol db
管理db control
一、emctl start dbconsole
二、emctl stop dbconsole
三、emctl status dbconcole
SQL*Plus工具
SQL*Plus是一个命令行工具,咱们能够按交互方式或在批处理模式下使用该工具。
可使用SQL*Plus 的命令行界面来编写SQL*Plus、SQL 和PL/SQL 命令,以便:
输入、编辑、运行、存储、检索和保存SQL 命令和PL/SQL 块
格式化、计算、存储和打印查询结果
列出任何表的列定义
向最终用户发送消息或接受来自最终用户的响应
执行数据库管理
初始化参数文件
数据库的引导须要初始化参数文件来控制,咱们如今来具体看一下
数据库启动后,咱们来看一下参数信息
经过上图,咱们能够看到,咱们目前使用的动态初始化参数文件spfileSID.ora
咱们来作一个实验,删除这个动态参数文件,看一下数据库可否启动
数据库正常启动,可是咱们能够看到,目前使用的初始化参数文件已经不是动态的spfile文件,那么如今使用的是哪一个初始化参数文件呢,咱们再来作一个实验
此次,咱们把静态初始化参数文件initSID.ora也删除,再来看一下数据库还可否启动
咱们看到,数据库没法启动,会报错提示initSID.ora文件未找到,由这个简单的实验,咱们能够得出结论,数据库首先搜索的是动态初始化参数文件spfleSID.ora,若是没有该文件,则搜索spfile.ora,若是也没有默认的动态初始化参数文件,则搜索静态初始化参数文件initSID.ora,若是也找不到,则返回错误。
从新更改回静态初始化参数文件后,数据库已经能够启动
静态初始化参数文件(pfile)
静态初始化参数文件,是咱们在使用手工建库时候必须创建的,来引导数据库启动的一个重要的参数文件,一般的命名模式为initSID.ora,存放路径为ORACLE_HOME/dbs目录下
咱们能够看到,使用静态参数文件,不可以修改任何参数(不管动态与静态),可是咱们能够经过修改该文件自己,来实现咱们的目的
从新编译initvfast.ora文件,在其中增长一行processes=200,从新启动数据库
咱们能够看到,虽然仍是静态初始化参数模式,可是进程数已经变为了200
动态初始化参数文件(spfile)
从Oracle 9i开始,推出了动态初始化参数文件spfile,使得DBA能够更方便的在线更改所需的参数,而无需从新启动数据库,咱们来看一下动态参数文件的建立方法。
咱们能够看到,如今的数据库已经由动态初始化参数文件启动,如今来作一个小实验看一下静态初始化参数文件与动态初始化参数文件的区别。
从新启动后,能够看到进程已经变为150。
进程参数属于静态参数,只可以用scope=spfile写入到初始化参数文件中,当下次启动后则更改完成,咱们再来看一下如何直接修改动态参数。
能够看到,open_cursors参数属于动态参数,可使用scope=both选项立刻更改过来,而session_cached_cursors参数属于静态参数,不能使用scope=both选项,只能使用scope=spfile选项写入到spfile文件中,在下次启动数据库时会自动改成新的数值。
课后练习
了解初始化参数文件(pfile与spfile)
如何使用sqlplus修改spfile中的参数,若是区分参数是静态的仍是动态的?
以实际的例子演示说明
描述常见的每一个参数的含义及其做用
数据字典
什么叫数据字典?
数据字典指的是描述数据的数据。
举个例子:
咱们在数据库里面建立了一个表
这个表位于哪一个数据文件
这个表有哪些列
这个表的每个列的数据类型
这个表的约束
。
。
。
这些信息都是描述这个表的,这些信息也存放在一些表中,这些表就是数据字典,数据字典中的数据描述的是整个数据库的各类各样的信息。
数据库要可以访问,数据字典必须可以被访问。
数据字典
一、数据字典由两部分组成
数据字典基本表、数据字典视图
二、数据字典基本表
和普通的表没有什么区别,只不过里面存放的是数据字典数据
create database的时候,调用了一个脚本sql.bsp,数据字典基本表的建立就是经过这个脚本实现的
这些数据字典基本表的全部者是sys
这些数据字典基本表存放在system表空间中
数据字典基本表中的信息很是难懂,并且很是的重要、一致性很是的复杂,所以千万不要使用DML语句直接去操做数据字典基本表
经过这个脚本,咱们发现大多数的数据字典基本表是以$结尾的
数据字典视图
一、列名含义清楚
二、视图隐藏了基本表之间的复杂关系
三、数据字典视图的全部者是sys
四、Oracle还为全部的数据字典视图创建了公共的同义词,这样用户就能够经过别名来访问数据字典视图
五、数据字典视图和同义词经过catalog.sql来创建
六、数据库内建的存储过程经过catproc.sql来创建
总结一句话,咱们最主要的工做就是经过数据字典视图和同义词来访问数据字典
数据字典视图分类
一、DBA_:包含整个数据库范围内的对象的信息,例如DBA_TABLES包括了数据库范围内全部表的信息,用户具备必定的权限才能查看这个视图
二、ALL_:当前登陆用户有权限查看的对象的信息,例如ALL_TABLES包括了当前用户有权限查看的全部表的信息
三、USER_:当前登陆用户所拥有的对象的信息,例如USER_TABLES包括了当前用户拥有的全部表的信息
数据字典视图的查找
数据字典视图很是的多,该怎么样去查找呢?
有一个视图,经过这个视图能够查找全部的数据字典视图,这个视图就是dictionary,这个视图的同义词是dict
动态性能视图
有一些数据,例如内存中的数据、控制文件中的数据,Oracle提供了一些访问这些数据的方式:以表的方式展示这些数据。
这些数据并无存在实际的表中,只是以表的形式展示出来,所以是一些虚拟的表。
数据库在运行、控制文件和内存中的数据在不断地变化,那么动态性能视图中的数据也在不停的变化,数据库从新启动之后,动态性能视图中的数据所有丢失。
全部的动态性能视图的名称都存放在v$fixed_table里面。
动态性能视图的名字都是以v_$开始的,属主是sys。
Oracle为每个动态性能视图提供了一个同义词,都以v$开头,例如v$session
SCN浅析
咱们重点讨论几个SCN
控制文件中的SCN
一、系统检查点SCN
当一个检查点动做完成之后,Oracle就把系统检查点的SCN存储到控制文件中
二、数据文件检查点SCN
当一个检查点动做完成之后,Oracle就把每个数据文件的SCN单独存放在控制文件中
一、为了显示,首先看一下DESC,肯定每个列的大小
二、设置linesize,保证一行中可以容纳全部的列
固然也要考虑实际的大小
同时还能够设置pagesize的大小
三、终止SCN
联机读写模式下面的全部的数据文件的终止SCN为空或者无限大
数据文件中的SCN
启动SCN
数据文件的检查点信息写入到每个数据文件的头部
一、数据库正常运行期间,控制文件中的系统检查点SCN、控制文件中数据文件检查点信息、每一个数据文件头部的数据文件检查点SCN,都是相同的
二、控制文件中每一个数据文件的终止SCN都为NULL
数据库正常关闭,系统执行一个CHECKPOINT,将全部的数据文件的终止SCN(位于控制文件中)设置成数据文件头部的启动SCN
数据库安全关闭之后,四个SCN应该是相同的
数据库启动
一、数据文件头部的启动SCN与控制文件中数据文件检查点SCN比较
若是相同,继续
二、数据文件头部的启动SCN与控制文件中数据文件终止SCN比较
若是相同,那么表示正常关机,不须要恢复
三、数据库打开,控制文件中数据文件终止SCN被设置为NULL
数据库被打开,而且正常使用