• 浅谈oracle10G spfile与pfile(转)


    转自:http://blog.csdn.net/onebigday/article/details/6108348http://www.linuxidc.com/Linux/2012-11/73715.htm

    大家都知道,spfile是oracle 9i之后引入的,目的是提高系统安全性。在Oracle8i下初始化参数文件为文本文件,可以使用文本编辑器进行编辑,当需要修改初始化参数时,需要在init.ora文件中修改,再重新启动数据库实例。

    在Oracle10g,引入了服务器参数文件(SPFILE),可以简化初始参数的管理。spfile文件是一个二进制文件,不能使用文件编辑器编辑(虽然通过文本编辑器打开后,能够看到参数内容),否则可能造成Oracle无法识别SPFILE文件。

    我下面以我自己系统安装的ORACLE与大家讨论这两者的用法,E盘是oracle10G的主安装目录,那么分别在

    1) E:/oracle/product/10.2.0/admin/orcl/pfile/init.ora.2192009203642   // pfile文件

    2) E:/oracle/product/10.2.0/db_1/database/initorcl.ora         // 储存spfile文件路径

    3) E:/oracle/product/10.2.0/db_1/dbs/SPFILEORCL.ORA     // spfile文件

     

     

    1.如果spfile被损坏了,那么重启数据库就会报找不到spfile的错误,这时需要通过pfile创建spfile:

    create spfile from pfile=' E:/oracle/product/10.2.0/admin/orcl/pfile/init.ora.2192009203642';

    并且重启数据库时用:

    startup pfile=' E:/oracle/product/10.2.0/admin/orcl/pfile/init.ora.2192009203642'。

    2. 如果2被修改了路径,那么3的位置要做相应的调整,不然数据库重启会报同样的错误。3. 如果1被损坏或删除了,没有关系,数据库可以照常启动,但为了保险,我们还是重新

    创建一个pfile:

    create pfile=' E:/oracle/product/10.2.0/admin/orcl/pfile/init.ora.2192009203642' from spfile;

    问题:

    1)创建spfile后,该文件方到哪了?

    答:使用create spfile from pfile=’..’ , 生成的spfile文件(文件名还是SPFILEORCL.ORA),但存放目录发生变化,存放在2的那个目录下,可是initorcl.ora内容却没有发生变化???

    为了使spfile恢复的原来的目录下,指定目录,使用如下命令:

    Create spfile=’ E:/oracle/product/10.2.0/db_1/dbs/SPFILEORCL.ORA’

    From pfile=' E:/oracle/product/10.2.0/admin/orcl/pfile/init.ora.2192009203642'

       show parameter spfile; // 查看spfile位置

    2)如何查看oracle是以spfile还是pfile启动?

    答:Select isspecified,count(*) from v$spparameter group by isspecified;

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

    3spfilepfile启动oracle 有何区别?

     

    附:

    从spfile获取pfile
    Create pfile='d:pfileSID.ora' from spfile;
    Create pfile='d:pfileSID.ora' from spfile='spfile_location';

    从pfile获取spfile
    Create spfile from pfile='Your_pfile_location'
    Create spfile='spfile_location' from pfile='Your_pfile_location'

    动态修改参数
    alter system set parameter=Value scope=spfile|both|memory

    SCOPE参数有三个可选值:

    MEMORY:只改变当前实例运行;

    SPFILE:只改变SPFILE的设置(如果修改的是静态参数,则必须指定SCOPE=SPFILE,否则将会报ORA-02095错。);

    BOTH:改变实例及SPFILE(使用BOTH选项实际上等同于不带参数的ALTER SYSTEM语句)。

     

     


    Startup nomount的时候需要读去spfile或pfile,两者共存,spfile优先

    用startup(默认)启动的顺序

    1、直接在默认路径下查找spfileSID.ora --(spfile)

    如果没有再查找2

    2、直接在默认路径下查找spfile.ora      

    如果没有再查找3

    3、直接在默认路径下查找initSID.ora --(pfile) 

    如果还没有 就会报错……

     


    强制用pfile启动
    SQL>startup pfile='Your_Pfile.ora'
    startup spfile='/data/oracle/product/10.2.0/db_1/dbs/dbs/spfile_mqq.ora' force

    通过pfile连接到spfile启动
    修改pfile文件

     

     

     

     

    数据库的初始化参数文件分析

    内容                                                         说明

    MTS                                               多线程服务器配置标识,Oracle 9i 里称为共享服务器配置

    dispatchers="(PROTOCOL=TCP) (SERVICE=testXDB)"      多线程服务器配置

    Optimizer                                           最优化

    hash_join_enabled=TRUE                                    优化程序选择散列连接

    query_rewrite_enabled=FALSE                           启动或禁用对实体化视图的查询重写

    star_transformation_enabled=FALSE                  确定基于成本的查询转换是否应用到星型查询中

    # Job Queues                                          作业列队
    job_queue_processes=10                                 作业列队进程数

    # Instance Identification                                  实例标识

    instance_name=test                                                                   实例名

    # Miscellaneous                                         其他
    aq_tm_processes=1

    compatible=9.2.0.0.0                                     兼容性

    # Security and Auditing                                   安全审核

    remote_login_passwordfile=EXCLUSIVE                指定操作系统或口令文件是否有检查用户口令的权限。
    # Sort, Hash Joins, Bitmap Indexes                          排序, 散列联接, 位图索引

    pga_aggregate_target=25165824                  指定PGA的最大内存量              

    sort_area_size=524288                                    指定排序区使用的最大内存量

    # Database Identification                                   数据库标识SID

    db_domain=domin

    db_name=test

    # File Configuration                                       文件配置

    control_files=("C:oracleoradatatestCONTROL01.CTL", "C:oracleoradatatestCONTROL02.CTL",

    "C:oracleoradatatestCONTROL03.CTL")  # Pools                                                 池

    java_pool_size=33554432                                  java池用于存储 Java 的方法、类定义和 Java 对象。

    large_pool_size=8388608                                  大型池用于共享服务器的会话内存、并行执行的消息缓冲区以及RMAN 备份和恢复的磁盘 I/O 缓冲区。

    shared_pool_size=50331648                                共享池用于存储共享游标、存储的过程、控制结构和并行执行消息缓冲区等对象。
    # Cursors and Library Cache                                游标和库高速缓存

    open_cursors=300                                         指定一次会话可打开的游标量

    # System Managed Undo and Rollback Segments                系统管理的撤消和回退段

    undo_management=AUTO                                  指定系统使用的撤消空间管理方式为SUM(外部分配)
    undo_retention=10800

    undo_tablespace=UNDOTBS1                               指定回滚表空间

    # Diagnostics and Statistics                                  诊断和统计

    background_dump_dest=C:oracleadmintestbdump             后台进程跟踪文件

    core_dump_dest=C:oracleadmintestcdump                   核心转储跟踪文件
    timed_statistics=TRUE                                     收集操作系统的计时信息(优化)

    user_dump_dest=C:oracleadmintestudump                   用户进程跟踪文件

    # Processes and Sessions                                   进程和会话

    processes=150                                           同时连接到数据库的用户进程数量

    # Redo Log and Recovery                                  重做日志和恢复

    fast_start_mttr_target=300                                 指定从单个            fast_start_mttr_target=300            指定从单个数据库例程数据库例程崩溃中恢复所需的时间
    # Cache and I/O                                          高速缓存和I/O
    db_block_size=8192                                       指定数据块大小(数值不能改变)

    db_cache_size=25165824                                   指定数据缓冲区的大小

    db_file_multiblock_read_count=16   涉及一个完全连续扫描的一次I/O操作中读取块的最大数量

  • 相关阅读:
    B-树和B+树的应用:数据搜索和数据库索引【转】
    与网络编程相关的信号:
    Reactor构架模式
    EINTR错误
    通讯链路的检测方法
    背景减法——自组织算法
    数据结构7_链二叉树
    背景减法——Vibe
    操作系统2_进程控制
    操作系统1_进程控制块PCB
  • 原文地址:https://www.cnblogs.com/holygis/p/3672541.html
Copyright © 2020-2023  润新知