读《Oracle 9i&10g编程艺术》记录--- spfile

本文介绍了Oracle数据库中SPFILE的使用方法及注意事项,包括如何通过ALTER SYSTEM命令修改参数、不同作用域的意义及其应用场景,并演示了如何将SPFILE转换为PFILE及反之。

使用startup命令来启动oracle,oracle搜索参数配置文件的顺序是:    
    a. spfile${ORACLE_SID}.ora 
    b. spfile.ora
    c. init${ORACLESID}.ora
    d. init.ora

SPFILE是二进制文件,它们可不能用文本编辑器来编辑。使用ALTER SYSTEM命令可进行参数修改,语法如下(< > 中的部分是可选的,其中的管道符号(|)表示“取候选列表中的一个选项”):
Alter system set parameter=value  
默认情况下,ALTER SYSTEM SET命令会更新当前运行的实例,并且会修改SPFILE,这就大大简化了管理;原先使用init.ora参数文件时,通过ALTER SYSTEM命令设置参数后,如果忘记更新init.ora参数文件,或者把init.ora参数文件丢失了,就会产生问题,使用SPFILE则会消除这些问题。
记住这一点,下面来详细分析这个命令中的各个元素:
? parameter=value这个赋值提供了参数名以及参数的新值。例如,pga_aggregate_target = 1024m会把PGA_AGGREGATE_TARGET参数值设置为1,024 MB(1 GB)。
? comment='text'是一个与此参数设置相关的可选注释。这个注释会出现在V$PARAMETER视图的UPDATE_COMMENT字段中。如果使用了相应选项允许同时保存对SPFILE的修改,注释会写入SPFILE,而且即便服务器重启也依然保留,所以将来重启数据库时会看到这个注释。
? deferred指定系统修改是否只对以后的会话生效(对当前建立的会话无效,包括执行此修改的会话)。默认情况下,ALTER SYSTEM命令会立即生效,但是有些参数不能“立即”修改,只能为新建立的会话修改这些参数。可以使用以下查询来看看哪些参数要求必须使用deferred:
ops$tkyte@ORA10G> select name
2 from v$parameter
3 where ISSYS_MODIFIABLE = 'DEFERRED';
NAME
------------------------------
backup_tape_io_slaves
audit_file_dest
object_cache_optimal_size
object_cache_max_size_percent
sort_area_size
sort_area_retained_size
olap_page_pool_size
7 rows selected.
上面的代码表明,SORT_AREA_SIZE可以在系统级修改,但是必须以延迟方式修改。以下代码显示了有deferred选项和没有deferred选项时修改这个参数的值会有什么结果:
ops$tkyte@ORA10G> alter system set sort_area_size = 65536;
alter system set sort_area_size = 65536
                              *
ERROR at line 1:
ORA-02096: specified initialization parameter is not modifiable with this option
ops$tkyte@ORA10G> alter system set sort_area_size = 65536 deferred;
System altered.
? SCOPE=MEMORY|SPFILE|BOTH指示了这个参数设置的“作用域”。设置参数值时作用域有以下选择:
? SCOPE=MEMORY只在实例中修改;数据库重启后将不再保存。下一次重启数据库时,设置还是修改前的样子。
? SCOPE=SPFILE只修改SPFILE中的值。数据库重启并再次处理SPFILE之前,这个修改不会生效。有些参数只能使用这个选项来修改,例如,processes参数就必须使用SCOPE=SPFILE,因为我们无法修改活动实例的processes值。
? SCOPE=BOTH是指,内存和SPFILE中都会完成参数修改。这个修改将反映在当前实例中,下一次重启时,这个修改也会生效。这是使用SPFILE时默认的作用域值。如果使用init.ora参数文件,默认值则为SCOPE=MEMORY,这也是此时惟一合法的值。
? sid='sid|*'主要用于集群环境;默认值为sid='*'。这样可以为集群中任何给定的实例惟一地指定参数设置。除非你使用Oracle RAC,否则一般不需要指定sid=设置。
这个命令的典型用法很简单:
ops$tkyte@ORA10G> alter system set pga_aggregate_target=1024m;
System altered.
或者,更好的做法是,还可以指定COMMENT=赋值来说明何时以及为什么执行某个修改。

如果需要删除修改的参数值,也通过ALTER SYSTEM命令来完成,但是要使用RESET子句:
Alter system reset parameter sid='sid|*'
在这里,SCOPE/SID 设置的含义与前面一样,但是SID=部分不再是可选的。要从SPFILE“删除”参数设置,也就是仍然采用参数原来的默认值,就要使用这个命令。所以,举例来说,如果我们想删除SORT_AREA_SIZE,以允许使用此前指定的默认值,可以这样做:
sys@ORA10G> alter system reset sort_area_size scope=spfile sid='*';
System altered.
这样会从SPFILE中删除SORT_AREA_SIZE。

spfile转换为pfile文件使用命令:
create pfile from spfile;
pfile转换为spfile文件使用:
create spfile from pfile;

SPFILE中的二进制数据量很小。
如果在UNIX平台上,只需一个简单的strings命令就能提取出所有设置:
strings spfile$ORACLE_SID.ora
在Windows上,则要用write.exe(WordPad,即写字板)打开这个文件。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/110321/viewspace-609910/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/110321/viewspace-609910/

本项目采用C++编程语言结合ROS框架构建了完整的双机械臂控制系统,实现了Gazebo仿真环境下的协同运动模拟,并完成了两台实体UR10工业机器人的联动控制。该毕业设计在答辩环节获得98分的优异成绩,所有程序代码均通过系统性调试验证,保证可直接部署运行。 系统架构包含三个核心模块:基于ROS通信架构的双臂协调控制器、Gazebo物理引擎下的动力学仿真环境、以及真实UR10机器人的硬件接口层。在仿真验证阶段,开发了双臂碰撞检测算法和轨迹规划模块,通过ROS控制包实现了末端执行器的同步轨迹跟踪。硬件集成方面,建立了基于TCP/IP协议的实时通信链路,解决了双机数据同步和运动指令分发等关键技术问题。 本资源适用于自动化、机械电子、人工智能等专业方向的课程实践,可作为高年级课程设计、毕业课题的重要参考案例。系统采用模块化设计理念,控制核心与硬件接口分离架构便于功能扩展,具备工程实践能力的学习者可在现有框架基础上进行二次开发,例如集成视觉感知模块或优化运动规划算法。 项目文档详细记录了环境配置流程、参数调试方法和实验验证数据,特别说明了双机协同作业时的时序同步解决方案。所有功能模块均提供完整的API接口说明,便于使用者快速理解系统架构并进行定制化修改。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值