大型数据库第2次理论课.ppt

上传人:tian****1990 文档编号:2827919 上传时间:2019-12-01 格式:PPT 页数:10 大小:314KB
返回 下载 相关 举报
大型数据库第2次理论课.ppt_第1页
第1页 / 共10页
大型数据库第2次理论课.ppt_第2页
第2页 / 共10页
大型数据库第2次理论课.ppt_第3页
第3页 / 共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 控制文件相当重要,如果全部丢失,可以重建控制文件来打开数据库。 如何重建控制文件?,
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!