oracle中pfile和spfile这2个文件有什么区别分别是求指导

oracle中pfile和spfile这2个文件有什么区别分别是求指导,第1张

就Oracle的spfile和pfile的区别主要是spfile的修改是可以在线的,而pfile的修改必须关闭数据库,到参数文件所在路径下通过vi或记事本等文本编辑工具修改。(因为参数文件里面的内容太多,编辑起来容易导致错误的编辑到其它的参数,从而导致数据库无法起来,所以在9i以前一般都是要备份pfile后再来做参数的修改,而且修改任何参数都需要停库,非常的不方便;在9i以后的spfile就可以同通过命令修改指定的参数了,而且有很多参数都不用重启数据库,能够在线生效,这个在线生效的参数会随着数据库的版本增高而增加。如果参数修改有问题数据库起不来了可以在nomount状态下创建成pfile再修改回来即可。)

自Oracle

9i以后启动的时候默认使用的初始化文件是spfile

八 导出SPFILE文件 SPFILE文件可以导出为文本文件 使用导出 创建过程你可以向SPFILE中添加参数 SQL> create pfile= e:\initeyglen ora from spfile;文件已创建 SQL> shutdown immediate数据库已经关闭 已经卸载数据库 ORACLE 例程已经关闭 Initeyglen ora文件的内容 aq_tm_processes= background_dump_dest= e:\oracle\admin\eyglen\bdump patible= ntrol_files= e:\oracle\oradata\eyglen\control ctl e:\oracle\oradata\eyglen\control ctl e:\oracle\oradata\eyglen\control ctl re_dump_dest= e:\oracle\admin\eyglen\cdump db_block_size= db_cache_size= db_domain= db_file_multiblock_read_count= db_name= eyglen dispatchers= (PROTOCOL=TCP) (SERVICE=eyglenXDB) fast_start_mttr_target= hash_join_enabled=TRUE instance_name= eyglen java_pool_size= job_queue_processes= large_pool_size= open_cursors= pga_aggregate_target= processes= query_rewrite_enabled= FALSE remote_login_passwordfile= EXCLUSIVE shared_pool_size= sort_area_size= sql_trace=FALSE star_transformation_enabled= FALSE timed_statistics=TRUE undo_management= AUTO undo_retention= undo_tablespace= UNDOTBS user_dump_dest= e:\oracle\admin\eyglen\udump 然后我们可以使用这个pfile 或者手动修改其中的参数以启动数据库 我们修改这个pfile 增加一行 log_archive_start=true使用这个PFILE启动数据库SQL> startup pfile= e:\initeyglen ora ORACLE 例程已经启动 Total System Global Area bytesFixed Size bytesVariable Size bytesDatabase Buffers bytesRedo Buffers bytes数据库装载完毕 数据库已经打开 SQL> show parameter log_archive_startNAME TYPE VALUE log_archive_start booleanTRUESQL>然后我们可以使用新的PFILE创建SPFILESQL> create spfile from pfile= e:\initeyglen ora ;文件已创建 重新启动数据库 新的SPFILE生效 SQL> startupORACLE 例程已经启动 Total System Global Area bytesFixed Size bytesVariable Size bytesDatabase Buffers bytesRedo Buffers bytes数据库装载完毕 数据库已经打开 SQL> show parameter spfileNAME TYPE VALUE spfile string%ORACLE_HOME%\DATABASE\SPFILE%ORACLE_SID% ORASQL> show parameter log_archive_startNAME TYPE VALUE log_archive_start booleanTRUESQL><b>九 关于 的PFILE</b>在$ORACLE_BASE\admin\db_name\spfile下 你很可能可以看到一个类似这样[init ora ]名字的文件 这就是初始化参数文件 只是跟上了时间戳 对于Oracle 缺省的就使用spfile启动 但是这个spfile不是凭空而来 而是根据这个文件创建而来 你可以去掉这个长后缀 就是标准的pfile文件了 如果手动创建数据库 可以看到以下的过程 SQL> create spfile= e:\oracle\ora G\database\spfilesunny ora FROM pfile= E:\oracle\admin\sunny\scripts\init ora ;文件已创建 如果你想要使用pfile启动数据库 那么你可以把spfile改名 NT缺省位于$ORACLE_HOME\database下 这样Oracle就不会使用这个spfile了 你使用create pfile from spfile命令创建的pfile 也应该在这个目录下以下是一个完整的例子 E:\Oracle\Ora iR \database>dir ora驱动器 E 中的卷是 Doc卷的序列号是 C EFFE:\Oracle\Ora iR \database 的目录 : INITeyglen ORA : PWDeyglen ORA : SPFILEEYGLEN ORA 个文件 字节 个目录 可用字节E:\Oracle\Ora iR \database>sqlplus /nologSQLPlus: Release Production on 星期三 月 : : Copyright (c) Oracle Corporation All rights reserved SQL> connect / as sysdba已连接到空闲例程 SQL> startupORACLE 例程已经启动 Total System Global Area bytesFixed Size bytesVariable Size bytesDatabase Buffers bytesRedo Buffers bytes数据库装载完毕 数据库已经打开 SQL> show parameter spfileNAME TYPE VALUE spfile string%ORACLE_HOME%\DATABASE\SPFILE%ORACLE_SID% ORASQL> shutdown immediate数据库已经关闭 已经卸载数据库 ORACLE 例程已经关闭 SQL> host rename SPFILEEYGLEN ORA SPFILEEYGLEN ORA bakSQL> host dir ora驱动器 E 中的卷是 Doc卷的序列号是 C EFFE:\Oracle\Ora iR \database 的目录 : INITeyglen ORA : PWDeyglen ORA 个文件 字节 个目录 可用字节SQL> startupORACLE 例程已经启动 Total System Global Area bytesFixed Size bytesVariable Size bytesDatabase Buffers bytesRedo Buffers bytes数据库装载完毕 数据库已经打开 SQL> show parameter spfileNAME TYPE VALUE spfile stringSQL>SQL> host rename SPFILEEYGLEN ORA bak SPFILEEYGLEN ORASQL> shutdown immediate数据库已经关闭 已经卸载数据库 ORACLE 例程已经关闭 SQL> startupORACLE 例程已经启动 Total System Global Area bytesFixed Size bytesVariable Size bytesDatabase Buffers bytesRedo Buffers bytes数据库装载完毕 数据库已经打开 SQL> show parameter spfileNAME TYPE VALUE spfile string%ORACLE_HOME%\DATABASE\SPFILE%ORACLE_SID% ORASQL> lishixinzhi/Article/program/Oracle/201311/17510

ORACLE_HOME(ORACLE 安装根目录):e:/oracle

ORACLE_HOME下有子目录:

e:/oracle/admin(各实例管理独立目录)

e:/oracle/ora92(共有管理目录等)

e:/oracle/oradata(数据等文件目录)

xie 的 spfile 的原始文件(实例安装创建时SPFILE文件,是个备份文件): e:/oracle/admin/xie/pfile/initora83200715416 (后面的数字串是随机的)

xie 的 启动/运行 等状态时实际用到的spfile: e:/ora92/database/SPFILEXIEORA (此文件是不能直接编辑的,里面内容编译过,但内容还是可以基本读懂的)

那么在 启动 时(比如输入 startup mount 指令)提醒有些参数配置错误时(实际就是 e:/ora92/database/SPFILEXIEORA 有参数错误配置,但又不能直接修改)

如何恢复到 实例安装创建时的 参数呢

答案是:删除(或者重命名)e:/ora92/database/SPFILEXIEORA 文件;然后根据 e:/oracle/admin/xie/pfile/initora83200715416 做一份spfile(此文件不能直接手工拷贝,要用如下命令)

SQL> CREATE SPFILE FROM PFILE='e:/oracle/admin/xie/pfile/initora83200715416';

然后重新启动数据库即可。

如果要修改ORALCE 实例参数配置,也可参考如上说明,方便反复实践

1 关闭实列

2 先修改 e:/oracle/admin/xie/pfile/initora83200715416 文件(做好其备份后再修改)

3 删除 e:/ora92/database/SPFILEXIEORA

4 创建SPFILE SQL> CREATE SPFILE FROM PFILE='e:/oracle/admin/xie/pfile/initora83200715416';

5 重新启动实列

对spfile文件修改的动作可以在e:/oracle/admin/xie/bdump/alert_xielog文件中查到

直接文本编辑SPFILE参数是否有日志记录,我没有试过。

以下是对Oracle中的数据库基本常用命令进行了总结介绍 需要的朋友可以过来参考下  

得到数据库名和创建日期 SELECT name created log_mode open_mode FROM v$database;

ORACLE数据库的计算机的主机名 ORACLE数据库的实例名及ORACLE数据库管理系统的版本信息 SELECT host_name instance_name version FROM v$instance;

为了知道oracle数据库版本的一些特殊信息 select from v$version;

获取控制文件名字 select from v$controlfile;

得到Oracle数据库的重做日志配置信息 SELECT group# members bytes status archived FROM v$log; select GROUP# MEMBER from v$logfile;

获取oracle的每个重做日志(成员)文件所存放的具 置 select from v$logfile;

知道ORACLE数据库的备份和恢复策略和归档文件的具 置 archive log list

知道ORACLE数据库中到底有多少表空间以及每个表空间的状态 select tablespace_name block_size status contents logging from dba_tablespaces; select tablespace_name status from dba_tablespaces;

知道每个表空间存在哪个磁盘上以及文件的名字等信息 SELECT file_id file_name tablespace_name status bytes from dba_data_files; select file_name tablespace_name from dba_data_files;

知道Oracle数据库系统上到底有多少用户和都是什么时候创建的 select username created from dba_users; select username DEFAULT_TABLESPACE from dba_users;

从控制文件中取出信息涉及到以下一些相关的命令

复制代码 代码如下: select from v$archived select from v$archived_log select from v$backup select from v$database select from v$datafile select from v$log select from v$logfile select from v$loghist select from v$tablespace select from v$tempfile

控制文件由两大部份组成 可重用的部份和不可重用的部分 可重用的部分的大小可用 CONTROL_FILE_RECORD_KEEP_TIME 参数来控制 该参数的默认值为 天 即可重用的部份的内容保留 天 一周之后这部份的内容可能被覆盖 可重用的部份是供恢复管理器来使用的 这部份的内容 可以自动扩展 Oracle数据库管理员可以使用CREAT DATABASE或 CREAT CONTROLFILE语句中的下列关键字(参数)来间接影响不可重用的部份的大小

复制代码 代码如下: MAXDATAFILES MAXINSTANCES MAXLOGFILES MAXLOGHISTORY MAXLOGMEMBERS

查看控制文件的配置 SELECT type record_size records_total records_used  FROM v$controlfile_record_section;

如果您的显示被分成了两部分 您需要使用类似于set pagesize 的SQLPlus命令先格式化输出 有关的格式化输出命令有以下这些 record_size   为每个记录的字节数 records_total 为该段所分配的记录个数 records_used 为该段所使用的记录个数

知道控制文件中的所有数据文件(DATAFILE) 表空间(TABLESPACE) 和重做日志(REDO LOG)所使用的记录情况 SELECT type record_size records_total records_used FROM  v$controlfile_record_section WHERE type IN ( ‘DATAFILE ‘TABLESPACE ‘REDO LOG );

获取控制文件名字 select value from v$parameter where name = control_files ; 或者 select from v$controlfile

如何在一个已经安装的Oracle数据库中添加或移动控制文件呢 以下是在一个已经安装的Oracle数据库中添加或移动控制文件的具体步骤

a 利用数据字典v$controlfile来获取现有控制文件名字

b 正常关闭Oracle数据库

c 将新的控制文件名添加到参数文件的CONTROL_FILES参数中

d 使用 *** 作系统的复制命令将现有控制文件复制到指定位置

e 重新启动Oracle数据库

f 利用数据字典v$controlfile来验证新的控制文件名字是否正确

g 如果有误重做上述 *** 作 如果无误删除无用的旧控制文件

注 如果您使用了服务器初始化参数文件(SPFILE) 您不能关闭Oracle数据库而且应该在第 步使用alter system set control_files的Oracle命令来改变控制文件的位置

复制代码 代码如下: SQL> alter system set control_files = ‘D:\Disk \CONTROL CTL ‘D:\Disk \CONTROL CTL ‘D:\Disk \CONTROL CTL SCOPE=SPFILE;

由于控制文件是一个极其种要的文件 除了以上所说的将控制文件的多个副本存在不同的硬盘上的保护措施外 在数据库的结构变化之后 您应立即对控制文件进行备份 可以用Oracle命令来对控制文件进行备份 alter database backup controlfile to ‘D:\backup\control bak ;

您也可将备份到一个追踪文件中 该追踪文件包含有重建控制文件所需的SQL语句 可使用以下SQL语句来产生这一追踪文件 alter database backup controlfile to trace;

lishixinzhi/Article/program/Oracle/201311/19116

以上就是关于oracle中pfile和spfile这2个文件有什么区别分别是求指导全部的内容,包括:oracle中pfile和spfile这2个文件有什么区别分别是求指导、SPFILE的备份与恢复二、SPFILE 被修改或损坏,如何快速恢复服务等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/10121148.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存