您的位置:首页 > 数据库 > Oracle

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

2014-01-17 15:53 821 查看
每天两道oracle笔试题系列 第二天

不积跬步无以至千里

问题:

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

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

解答:

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

答:

使用命令:SQL>create spfile from pfile。

解析:

(1)、概述:

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

(2)简述pfile和spfile

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

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)、互相创建

spfile和pfile是可以相互创建的,命令如下:

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 sysdba,oracle会进行操作系统验证,发现你当前登录的用户就属于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;

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐