大型数据库第2次理论课.ppt
《大型数据库第2次理论课.ppt》由会员分享,可在线阅读,更多相关《大型数据库第2次理论课.ppt(10页珍藏版)》请在装配图网上搜索。
1 ORACLE的启动过程,1 ORACLE的启动过程,启动三个阶段的SQL语句为: (1) SQL startup nomount (2) SQLalter database mount (3)SQLalter database open 可否用startup mount或startup open? 关闭过程刚好相反。 一般闭用shutdown immedaite,当然也可以用shutdown (它要等事务提交完了之后才关闭),1.1 实例启动的详细过程,创建新的实例。 (1) Unix下,只需要改变环境变量$ORACLE_SID的内容,即执行export ORACLE_SID=你要想创建的实例的名称。例如:ORACLE_SID=abc (2)在windwos下,用oradim来创建,例如:oradim new sid abc 加载过程。 (1) sqlplus / “as sysdba” (2) startup nomount 通过上面两个步骤,就可以加载一个实例,注意startup是一个sqlplus集成环境中的一个命令,它有很多选项,后面会介绍。 另外需要注意的是:这个过程一执行,就会有一些oracle的动态视图被创建,最重要的一个视频是v$process,该视图被认为是操作系统到数据库的入口。可以执行select addr,pid,spid,username from v$process。spid为操作系统的进程号。 注意: (1) startup nomount只是将oracle的实例启动,并没有加载数据库,也就是说,与数据库相关的所有进程已经创建。可以用“ps aef |grep oracle”查看与oracle相关的进程。注意观察所有与oracle相关的进程名称最后面都是与 $ORACLE_SID相同。 (2)可以用select instance_name from v$instance或 show parameter instance_name来查看启动的实例名。 (3)启动的过程会写入日志。写入的日志名为:alert.log,该文件在什么地方?大家可以自己做实验验证,同时查看该文件的内容。,1.2 实例的启动过程中的参数加载,从oracle 9i开始,spfile被引入。 oracle首先spfile.ora,如果该文件不存在,则选择spfile.ora,如果两者都不在,oracle会选择init.ora,如果这三个文件都不存在,则oracle将报错。这些参数文件在unix下放在$ORACLE_HOME/dbs目录中,在Windows下,是放在$ORACLE_HOMEdatabase下。 实验1:自己定义一个实例名,然后启动这个实验。验证oracle参数的加载顺序。观察操作系统启动了什么样的进程。观察启动日志文件的内容。,1.4 什么是实例参数,实例参数文件是指spfile或init.ora文件,其构成是“键=值” 。例如:db_name=ora10g 要得到一个实例参数的当前值,可以查询 V$PARAMETER视图 。另外, 还可以在 SQL*Plus 中使用 SHOW PARAMETER 命令来查看某个参数对应的值 ,例如show parameter db_block_size或show parameter db_name(注:这两个参数名和它的值来自参数文件)。,1.5 转换spfile,将init.ora文件可以转换为spfile文件。 create spfile from pfile 也可以自己创建spfile的名称和路径:create spfile=/abc/spfile from pfile 也可以将spfile转换成init.ora create pfile from spfile 注意:(1)spfile是一个二进制文件。 (2)如何提取spfile的字符串?(用strings命令) (3)为什么要采用spfile这种形式,见p69。,1.3实例名与数据库名,数据库名(在oracle参数文件(如:spfile或spfile.ora等)中,其定义为db_name)比实例名重要得多。它代表了实例即将挂接的数据库名称,关系到具体的特理文件。其标准定义:DB_NAME用来定义数据库名称,必须是一个不超过8个字符的字符串,在数据库创建中,DB_NAME被记录在数据文件,日志文件和控控制文件中,如果数据库实例启动过程中参数文件中的DB_NAME和控制文件中的数据库名称不一致,则数据库不能启动。通常缺省的情况下实例名(INSTANCE_NAME)和数据库名(DB_NAME)是一致的,但实际上实例名可以和数据库名不一样。,1.2 实例名与数据库名不一致的情况下加载过程,(1)先启动两个不同的实例:dbtest和abc,其中abc的参数文件initabc.ora同为initdbtest.ora一样 (2)让ORACLE_SID为abc,然后在sqlplus里面执行startup。注意:如果initabc.ora里面的db_name不等于dbtest,则启动不成功。如果先已经启动了dbtest,这时也启动不成功。 注意:nomount阶段只是将参数文件(如:spfile或init.ora)中的各个参数加载到内存中,可以用下面的语句来查看加载的参数:select name,type,value from v$parameter where name like %control%; 实验:请按上面步骤实现实例名与数据库名不一致的情况下加载。,1.3 启动到数据库的mount状态,启动到nomount状态后,Oracle可以从参数文件中获得控制文件的位置信息,并找到控制文件,并根据控制文件的数据文件位置进行数据文件的存在性判断(注:与数据库相关的文件有:控制文件,日志文件和数据库文件,与实例相关的文件是参数文件,如:spfile等)。 Oracle10G之前,缺省情况下有3个控制文件,这3个控制文件的内容完全一样,是Oracle为了安全采取的一个镜像,可将这三个文件放到不同的磁盘上,避免因磁盘的损坏使3个文件都损坏。 如果是Oracle 10G,如果不指定控制文件的存储位置,Oracle会将控制文件放到闪回恢复区(Flashback Recovery Area),由于通常闪回恢复区与数据库文件放在不同的磁盘上,所以这样也可以保护控制文件的安全。 show parameter control_file或select * from v$control_file可以查看控制文件的位置。 实验:将数据库的三个控制文件更名,然后启动数据库,看是否可以加载,如果不能加载,用什么方法可以加载?,1.3启动到数据库的mount状态,startup nomount select * from v$controlfile show parameter control -此时会显示控制文件的位置 alter database mount select * from v$controlfile show parameter control_file 控制文件相当重要,如果全部丢失,可以重建控制文件来打开数据库。 如何重建控制文件?,- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大型 数据库 理论
装配图网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文