当前位置:   article > 正文

oracle事务操作例子,管理Oracle实例

oracle 实例

前言

正常生产环境下往往是通过应用服务器来与Oracle数据库相连接,大多数使用Oracle的开发语言以Java为主,针对于Java的中间件有很多,我们这里具体来看一下Oracle整体产品线的WLS产品

安装Weblogic

903c9dbfce7420ea465742546970f0d7.png

执行上图所示命令,启动WLS安装页面

94217250a53d5d1af928f76b8460c235.png

在欢迎页面中点击下一步继续

ad43a51ae484d60084d15a0493dedf12.png

选择中间件主目录,点击下一步继续

70aa7f5d69aeea637a01a8f264a554cf.png

这里根据实际情况即可,点击下一步继续

212164b9e00f47a03aaa27c393494e4c.png

选择典型安装,点击下一步继续

c33dca7be0a08ed00135dc1cb9df8acd.png

确定WLS Server等安装目录,点击下一步继续

3a5037b9c928d5b74f84e1c93bab30e3.png

确定安装所需空间,点击下一步继续

d4b722b9e581b2a33cd4eaad03f8f0b9.png

安装完毕后,不勾选快速启动,直接点击完成按钮退出即可

配置WLS域

220d211aec9d8ae7339c510237ea1fda.png

安装好WLS后,切换到上图所示目录,执行config.sh脚本来进行域的创建

f7a4d3bac4b6aaa460d7644da8073035.png

选择创建新的WLS域,点击下一步继续

377065e85cfa793baaf7e8f1fbc85735.png

按照默认即可(下面三项均无需勾选),点击下一步继续

7b7673682c1e6c007be33a7483183b80.png

域名可以根据自己实际情况即可,点击下一步继续

49109d9abfc2c45fef475fe41f7f4481.png

配置管理员的用户名与密码(PS:12C会温馨提示需要8位以上具有字母和数据的混合密码),点击下一步继续

50403a08468e4e080f9a6426aaed7a00.png

选择生产模式(否则无法部署发布项目),点击下一步继续

f4353f766cbbcf6c62526059005c3fde.png

单实例情况下就不做特殊变更了,点击下一步继续

9a0949f97dcfe857025db777484e229d.png

确认无误后,点击创建即可

4dbc4dbce416332a1a8cf8ee7a7d0666.png

创建完毕后,点击完成退出页面

启动Weblogic

8142133f3d566efaa826ee9d60b9cede.png

创建完域以后,可以按上图所示路径,执行startWebLogic.sh脚本来启动WLS(PS:会提示用户名密码,这个可以写在一个boot启动脚本里,就可以自动加载了)

d91cb31dc19cf3c78e160e9ba61136bc.png

0766559ea6d693fda64e7edd74b3f818.png

出现上图所示页面,至此WLS 12C就完全安装创建完毕

Oracle的管理工具SQLPLUS

1、数据库的启动和关闭

2、数据库的管理工作

c4013af6ad8374032553761f28a7a19d.png

静态参数文件

Oracle9i以前,数据库只是提供静态参数文件

静态参数文件的启动顺序

在sql> startup的时候,Oracle默认去哪寻找参数文件?

8f2340b2c186f6fda18b02772c9341f6.png

对于Linux或者Unix系统来说,默认寻找顺序是$ORACLE_HOME\dbs

1、initSID.ora        2、init.ora

我们可以手工的指定参数文件的位置

SQL>startup pfile=/u01/app/oracle/11g/dbs/init.ora

静态参数文件只是在数据库启动的时候读取一次,然后释放。

手工修改任何参数,都需要重新启动数据库才能生效。

对于Windows系统来说,默认目录是%ORACLE_HOME%\database

动态参数文件

1、Oracle9i开始,Oracle引入了动态参数文件spfile

里面的很多参数是可以动态调整的,这区别于pfile

2、RMAN可以自动的备份spfile

3、spfile是一个二进制的文件,可以使用写字板打开,但是不能修改,否则会破坏这个参数文件

4、Oracle 9i开始,参数文件的寻找顺序如下

1、spfileSID.ora

2、spfile.ora

3、initSID.ora

4、init.ora

daae9f8a8a518ed7dff9b8b791774439.png

这个实例使用的是动态参数文件。

动态参数文件的建立

9ad54974930307cb097f231915334c3b.png

通过动态参数文件建立了一个静态参数文件。我们可以认为是做了一个动态参数文件的文本备份。

上面的pfile在默认的路径下,默认的名字

上面的spfile在默认的路径下,默认的名字

636f1b459ae320fb5753da3b6031ae15.png

在另外一个目录建立了一个动态参数文件。

动态参数文件中参数的修改

只能使用ALTER SYSTEM SET命令进行修改

897d35034dbe396465bdd349d08ea580.png

ALTER SYSTEM SET parameter_name=parameter_value

[comment=‘注释’] scope=[memory|spfile|both] [sid=‘sid’|’*’]

4d83b88c9568b757708e6a2606a2b33d.png

默认是’*’,在RAC环境中有意义

只是修改内存|只是修改spfile|同时修改spfile和内存,默认是both

c03caeaab2936234d4dbc9018cfa1628.png

一个常见错误的解决流程

错误了的修改了spfile里面的参数,数据库启动失败,因为没有办法直接修改spfile,该怎么办?

1、sql>create pfile='/u01/app/oracle/11g/dbs/initbear.ora' from spfile

2、手工的在pfile里面编辑和修改错误的参数

3、sql>create spfile from pfile='/u01/app/oracle/11g/dbs/initbear.ora'

4、sql>startup

使用spfile启动时的位置问题

1、将spfile放在默认位置dbs或者database目录下面

2、在pfile下面指定spfile的位置,然后使用starup pfile进行指定

40cac802b88ab0708656d6a85ae54d2f.png

实例的启动和关闭

nomount阶段

1、寻找参数文件

2、打开参数文件

3、打开告警日志alterSID.log

4、在这个阶段可以重建控制文件

ecf88b14f7d838e23718ab5909a66045.png

我们要经常的关注这个文件(告警日志)

f4c502290092ac1a0a7fc438a1972855.png

mount阶段

根据参数文件中控制文件的路径和名字,打开所有的控制文件

如果有一个控制文件不能打开,那么不能进入mount状态

从控制文件中读取数据文件、日志文件的路径和名字,不校验这些文件的存在

1301cabf85022f7214c96774fa6f8f5f.png

再来看一下日志

8c7a5faeabfb332c652164c672d807f0.png

open阶段

根据控制文件中对数据文件、日志文件的记录,打开所有的文件

有一个文件不能打开,就不能进入这个状态

6cbcb4fbd7969c507bc0008038feaf5e.png

最后看一下日志

1a581e9ecf9ce5695aceb2f16c86febe.png

实例的关闭

shutdown normal | transactional | immediate | abort

有四个选项可以选择,默认是normal

1、abort

模拟突然掉电

内存被清空、内存中的数据没有写入数据文件

事务被立即中断

没有提交、没有回滚

2、immediate

强制中断当前正在运行的所有事务,回滚这些事务

回滚完毕,强制中断所有的连接

将实例中的所有数据写入数据文件

3、transactional

等待正在运行的事务,一直到他们提交或者回滚

所有事务主动结束以后(提交或者回滚),强行中断连接

将实例里面的数据写入数据文件

清空缓存

如果有事务一直没有提交或者回滚,实例无法关闭

4、normal

等待事务的主动提交或者回滚

等待用户主动断开连接

如果有一个用户没有断开连接,那么数据库无法关闭

关闭时间快慢

abort——immedaite——transactional——normal,速度由快到慢

1、除了abort以外的关闭方式

触发一个checkpoint,内存中数据写入到数据文件中

一致性数据库

2、abort关闭、突然掉电、数据库崩溃down、等

没有触发一个检查点

脏数据库

数据库需要恢复

SMON负责数据库的恢复

建议:采用shutdown immediate进行数据库的关闭

EM管理工具:database control

1、dbca创建数据库的时候,可以选择安装db control

2、安装完成数据库以后,采用emca创建db control

删除db control

1、emca –deconfig dbcontrol db

2、emca –repos drop

建立db control

1、emca –repos create

创建repository(创建了一些表),属主是sysman

2、emca –config dbcontrol db

管理db control

1、emctl start dbconsole

2、emctl stop dbconsole

3、emctl status dbconcole

SQL*Plus工具

SQL*Plus是一个命令行工具,我们可以按交互方式或在批处理模式下使用该工具。

25700310c0b2b3021af86409f9878e01.png

可以使用SQL*Plus 的命令行界面来编写SQL*Plus、SQL 和PL/SQL 命令,以便:

输入、编辑、运行、存储、检索和保存SQL 命令和PL/SQL 块

格式化、计算、存储和打印查询结果

列出任何表的列定义

向最终用户发送消息或接受来自最终用户的响应

执行数据库管理

初始化参数文件

数据库的引导需要初始化参数文件来控制,我们现在来具体看一下

0ad2b9df06d77ee47ee1e06e7dd4b3df.png

数据库启动后,我们来看一下参数信息

40b34bb51726f7f3c569ffabc9bd2e08.png

通过上图,我们可以看到,我们目前使用的动态初始化参数文件spfileSID.ora

7da20888671725fbc9dd37c67773f33a.png

我们来做一个实验,删除这个动态参数文件,看一下数据库能否启动

f3fd5d31ba8466c5667cf95846a8c08e.png

数据库正常启动,但是我们可以看到,目前使用的初始化参数文件已经不是动态的spfile文件,那么现在使用的是哪个初始化参数文件呢,我们再来做一个实验

c706cfd2fdb1240ff51448b4376f0c24.png

这次,我们把静态初始化参数文件initSID.ora也删除,再来看一下数据库还能否启动

9c4af5130f479d1ba9638abb50cd2abd.png

我们看到,数据库无法启动,会报错提示initSID.ora文件未找到,由这个简单的实验,我们可以得出结论,数据库首先搜索的是动态初始化参数文件spfleSID.ora,如果没有该文件,则搜索spfile.ora,如果也没有默认的动态初始化参数文件,则搜索静态初始化参数文件initSID.ora,如果也找不到,则返回错误。

重新更改回静态初始化参数文件后,数据库已经可以启动

7634887c56adaa86e8e243fb230f5042.png

静态初始化参数文件(pfile)

静态初始化参数文件,是我们在使用手工建库时候必须建立的,来引导数据库启动的一个重要的参数文件,通常的命名模式为initSID.ora,存放路径为ORACLE_HOME/dbs目录下

b4e7e0d40db41767ad25486106c7d5d2.png

我们可以看到,使用静态参数文件,不能够修改任何参数(无论动态与静态),但是我们可以通过修改该文件本身,来实现我们的目的

重新编译initvfast.ora文件,在其中增加一行processes=200,重新启动数据库

c87da80c19d969702414d7ba71225526.png

我们可以看到,虽然还是静态初始化参数模式,但是进程数已经变为了200

动态初始化参数文件(spfile)

从Oracle 9i开始,推出了动态初始化参数文件spfile,使得DBA可以更方便的在线更改所需的参数,而无需重新启动数据库,我们来看一下动态参数文件的创建方法。

2ed68689d00b7c706d0058635974a3a4.png

我们可以看到,现在的数据库已经由动态初始化参数文件启动,现在来做一个小实验看一下静态初始化参数文件与动态初始化参数文件的区别。

68a9076693b543c79a7c61b592ce5f82.png

重新启动后,可以看到进程已经变为150。

进程参数属于静态参数,只能够用scope=spfile写入到初始化参数文件中,当下次启动后则更改完成,我们再来看一下如何直接修改动态参数。

46f2c807cd9a5ee148c03bcd5cb4a064.png

可以看到,open_cursors参数属于动态参数,可以使用scope=both选项马上更改过来,而session_cached_cursors参数属于静态参数,不能使用scope=both选项,只能使用scope=spfile选项写入到spfile文件中,在下次启动数据库时会自动改为新的数值。

课后练习

了解初始化参数文件(pfile与spfile)

如何使用sqlplus修改spfile中的参数,如果区分参数是静态的还是动态的?

以实际的例子演示说明

描述常见的每个参数的含义及其作用

数据字典

什么叫数据字典?

数据字典指的是描述数据的数据。

举个例子:

我们在数据库里面创建了一个表

这个表位于哪个数据文件

这个表有哪些列

这个表的每一个列的数据类型

这个表的约束

这些信息都是描述这个表的,这些信息也存放在一些表中,这些表就是数据字典,数据字典中的数据描述的是整个数据库的各种各样的信息。

数据库要能够访问,数据字典必须能够被访问。

数据字典

1、数据字典由两部分组成

数据字典基本表、数据字典视图

2、数据字典基本表

和普通的表没有什么区别,只不过里面存放的是数据字典数据

create database的时候,调用了一个脚本sql.bsp,数据字典基本表的创建就是通过这个脚本实现的

这些数据字典基本表的所有者是sys

这些数据字典基本表存放在system表空间中

数据字典基本表中的信息非常难懂,而且非常的重要、一致性非常的复杂,因此千万不要使用DML语句直接去操作数据字典基本表

8dbe52b20c858e63ff1036d9f2d0bb0d.png

通过这个脚本,我们发现大多数的数据字典基本表是以$结尾的

数据字典视图

1、列名含义清楚

2、视图隐藏了基本表之间的复杂关系

3、数据字典视图的所有者是sys

4、Oracle还为所有的数据字典视图建立了公共的同义词,这样用户就可以通过别名来访问数据字典视图

5、数据字典视图和同义词通过catalog.sql来建立

6、数据库内建的存储过程通过catproc.sql来建立

b1e06e14382a27563d2be16de582874e.png

总结一句话,我们最主要的工作就是通过数据字典视图和同义词来访问数据字典

数据字典视图分类

1、DBA_:包含整个数据库范围内的对象的信息,例如DBA_TABLES包括了数据库范围内所有表的信息,用户具有一定的权限才能查看这个视图

2、ALL_:当前登录用户有权限查看的对象的信息,例如ALL_TABLES包括了当前用户有权限查看的所有表的信息

3、USER_:当前登录用户所拥有的对象的信息,例如USER_TABLES包括了当前用户拥有的所有表的信息

0ddfd9dac068a5c12ec48dffd87537c3.png

数据字典视图的查找

数据字典视图非常的多,该怎么样去查找呢?

有一个视图,通过这个视图可以查找所有的数据字典视图,这个视图就是dictionary,这个视图的同义词是dict

2782a0fdca390b30ee9a371b534ba709.png

动态性能视图

有一些数据,例如内存中的数据、控制文件中的数据,Oracle提供了一些访问这些数据的方式:以表的方式展现这些数据。

这些数据并没有存在实际的表中,只是以表的形式展现出来,因此是一些虚拟的表。

数据库在运行、控制文件和内存中的数据在不断地变化,那么动态性能视图中的数据也在不停的变化,数据库重新启动以后,动态性能视图中的数据全部丢失。

所有的动态性能视图的名称都存放在v$fixed_table里面。

动态性能视图的名字都是以v_$开始的,属主是sys。

Oracle为每一个动态性能视图提供了一个同义词,都以v$开头,例如v$session

SCN浅析

我们重点讨论几个SCN

控制文件中的SCN

1、系统检查点SCN

当一个检查点动作完成以后,Oracle就把系统检查点的SCN存储到控制文件中

8483fad1c00aca16f908264ffa231a30.png

2、数据文件检查点SCN

当一个检查点动作完成以后,Oracle就把每一个数据文件的SCN单独存放在控制文件中

20ab85b13e4eaf44895f3333d6d116da.png

1、为了显示,首先看一下DESC,确定每一个列的大小

2、设置linesize,保证一行中能够容纳所有的列

当然也要考虑实际的大小

同时还可以设置pagesize的大小

3、终止SCN

联机读写模式下面的所有的数据文件的终止SCN为空或者无限大

e7ba867736f54e9b5a88c5b3a0a4b52d.png

数据文件中的SCN

启动SCN

38fadd6c8289c1a9e4b4064a5e2281ee.png

数据文件的检查点信息写入到每一个数据文件的头部

1、数据库正常运行期间,控制文件中的系统检查点SCN、控制文件中数据文件检查点信息、每个数据文件头部的数据文件检查点SCN,都是相同的

2、控制文件中每个数据文件的终止SCN都为NULL

数据库正常关闭,系统执行一个CHECKPOINT,将所有的数据文件的终止SCN(位于控制文件中)设置成数据文件头部的启动SCN

数据库安全关闭以后,四个SCN应该是相同的

数据库启动

1、数据文件头部的启动SCN与控制文件中数据文件检查点SCN比较

如果相同,继续

2、数据文件头部的启动SCN与控制文件中数据文件终止SCN比较

如果相同,那么表示正常关机,不需要恢复

3、数据库打开,控制文件中数据文件终止SCN被设置为NULL

数据库被打开,并且正常使用

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/509258
推荐阅读
相关标签
  

闽ICP备14008679号