每天两道oracle笔试题+第二天:1、如何根据初始化文件pfile转换成spfile文件?2、数据库正常启动所经历的状态有哪几种?

来源:互联网 发布:债权交易网网络贷款 编辑:程序博客网 时间:2024/06/10 05:16

每天两道oracle笔试题系列 第二天

不积跬步无以至千里

问题:

1、如何根据初始化文件pfile转换成spfile文件?

2、数据库正常启动所经历的状态有哪几种?

解答:

1、如何根据初始化文件pfile转换成spfile文件?

答:

使用命令:SQL>create spfile from pfile

解析:

1)、概述:

Oracle9i开始,参数初始化文件新增为两种,即文本参数文件和服务器参数文件。它们在数据库实例启动时候加载,决定了数据库的物理结构、内存、数据库的限制及系统大量的默认值、数据库的各种物理属性、指定数据库控制文件名和路径等信息,是进行数据库设计和性能调优的重要文件。

2)简述pfilespfile

它们都是必须的参数文件。

pfile:初始化参数文件,为ASCII文本文件,可以直接编辑,对这类文件的修改是需要手工进行的,并且修改后,重启Oracle实例才会生效。

spfile:服务器参数文件,二进制文件,不可以直接编辑。

3)、查看系统是以pfile还是spfile启动

命令:SQL>select isspecified,count(*) from v$spparameter group by isspecified;

如果isspecified里有true,表明用spfile进行了指定配置,如果全为false,则表明用pfile启动。

4)、使用spfile的好处

 spfile改正了pfile管理混乱的问题,在多结点的环境里,pfile会有多个image启动时需要跟踪最新的image,这是个烦琐的过程。用spfile以后,所有参数改变都写到spfile里面参数配置有个权威的来源。

5)、查看spfile location

命令SQL> show parameter spfile

6)、互相创建

spfilepfile是可以相互创建的,命令如下:

SQL>create spfile from pfile;

SQL>create pfile from spfile.

当数据库第一次被创建的时候,系统会收集到创建者设置的各个参数,生成pfile。之后,在第一次启动数据库时,会依靠这个pfile创建spfile,此时将不再需要pfile文件。而当下次启动时会使用pfile文件。如果数据库不出现故障,pfile文件将一直使用。然而若spfile被损坏或需重新创建spfile文件,这时候就可以使用pfile文件来建立新的spfile文件。

2、数据库正常启动所经历的状态有哪几种?

答:

数据库实例启动:NOMOUNT状态;

数据库装载:MOUNTED状态;

数据库打开:OPEN状态。

解析:

1)、举例简述:

对于数据库的启动介绍前先举一个简单例子,如果我们打算开一家公司,一般会先有初始化的规划,把初始化的规划思路整理成书面材料文件,然后招聘有经验的相关部门的管理人员组成一个团队,其次是招聘每个部门里的基层员工,这样一个简单的公司体系就形成了。

启动oracle数据库如同上面的例子一样,数据库启动时,先要找到初始化文件(spfile/pfile),这时数据库处在nomount状态,这相当于创办公司的初始阶段;其次根据初始文件找到控制文件,这时数据库处于mount状态,这相当于创业时最初组建的管理团队。在之后会根据控制文件找到数据文件、重做日志文件,从而处在open状态,这时用户可以访问数据库了。如同一个公司的体系初步建设起来了。

2)、实验验证:

输入第1行命令:sqlplus/nolog

说明:

启动SQLPLUS但不进行登录,只是进入sqlplus软件,相当于打开一个登录窗口,用户名、密码是接下来才输入的,这样输入能够让下面的输入不显示密码起到安全的作用。

输入第2行命令:conn / as sysdba;

说明:

        oracle在登录时,有三种身份认证方式:操作系统身份认证、密码文件认证、数据库认证。而conn /as sysdba是属于操作系统认证。你当前电脑开机时登录的用户,也就是进入操作系统的用户,例如Win xp系统下是Administrator,它在你电脑的ORA_DBA组中。可以在我的电脑单击右键,找到管理,选择本地用户和组,发现有一个组叫ORA_DBA,双击它,看到成员列表中有“Administrator”。也就是在conn /as sysdbaoracle会进行操作系统验证,发现你当前登录的用户就属于Administrator组,因此才可以登录成功。你可以把ORA_DBA组中的“Administrator”用户删除,再conn /as sysdba,就发现进不去了。

输入第3行命令:SQL> shutdown; ------------shutdown

输入第4行命令:SQL> select status from v$instance;

说明:

查询当前实例的状态,v$instance是个视图。这个状态指明的是数据库在用startup启动以后的所处的状态。

输入第5行命令:SQL> startup nomount; ------------started

输入第6行命令:SQL> select status from v$instance;

输入第7行命令:SQL> alter database mount; ------------mounted

输入第8行命令:SQL> select status from v$instance;

输入第9行命令:SQL> alter database open; ------------open

输入第10行命令:SQL> select status from v$instance;

输入第11行命令:SQL> shutdown;

 

0 0
原创粉丝点击