Oracle 初始化参数文件pfile和spfile,pfilespfile
pfile和spfile的区别
pfile :Oracle 9i之前,ORACLE一直采用PFILE方式存储初始化参数,该文件为文本文件,可以在操作系统级别修改。当spfile文件修改出现错误导致oracle无法启动时,可以使用 pfile文件启动数据库
spfile:从Oracle 9i开始,Oracle引入了SPFILE文件,该文件为二进制格式,不能通过手工修改,只能在sql下通过alter system set 修改其中的参数。
如 ALTER SYSTEM SET REMOTE_LOGIN_PASSWORDFILE = EXCLUSIVE SCOPE = SPFILE ;
其中 scope有三个参数,分别为
scope=both 立即并永久生效,(默认模式)
scope=spfile 下次启动才能生效。
scope=memory 立即生效但下次启动时失效
查看spfile的位置
1.SELECT NAME, VALUE, DISPLAY_VALUE FROM V$PARAMETER WHERE NAME ='spfile';
2.show parameter spfile
验证是否是spfile启动
1.执行SELECT ISSPECIFIED,count(*) FROM v$spparameter group by ISSPECIFIED;
如果结果又true值,说明是spfile启动
2.show parameter spfile 如果value值不为空,则为spfile启动
pfile文件的创建和使用pfile文件启动数据库
1.创建pfile文件
create pfile from spfile; 创建的pfile默认位置在 $ORACLE_HOME/dbs/ initorcl.ora ,initorcl.ora是默认的pfile文件名
create pfile='/home/oracle/pfile' from spfile; 指定pfile的路径和文件名
2.使用pfile文件启动数据库
startup force pfile='?/dbs/initorcl.ora'
从pfile创建spfile
create spfile from pfile='/home/oracle/pfile';
因为spfile在数据库没有启动的情况下也能创建,所有通过pfile和spfile的互转,可以在数据库无法启动的情况下修改spfile文件
你可能概念搞混了,TOMCAT的context.xml和server.xml配置以上,是为你部署在TOMCAT里的WEB项目提供JNDI数据源。是由java代码Context context = new InitialContext();
javax.sql.DataSource dataSource = context.lookup("java:comp/env/jdbc/");//注意,函数字符窜参数java:comp/env/jdbc/前面的java:comp/env是调用tomcat特有的,后面的jdbc/对应tomcat server.xml里的name="",需要一致
然后 java.sql.Connection cnn = dataSource .getConnection();接下来就是你要做的JDBC操作。。。
至于server.xml url="" 配置,看你要连接的ORCALE里有没有orgl这个数据库实例 ,还需要你把oracle的驱动放进tomcat的lib里
系统按 spfile%oracle_sid%.ora > spfile.ora > init%oracle_sid%.ora > init.ora 的顺序进行选择,那个有就用那个。