1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 手动创建数据库实例全攻略4:参数文件

手动创建数据库实例全攻略4:参数文件

时间:2019-03-05 21:36:32

相关推荐

手动创建数据库实例全攻略4:参数文件

手动创建数据库实例全攻略4:参数文件

一、参数文件说明

1、参数文件作用。

在前期的数据库知识探索实验中,我们经常使用这个参数。

/alexy/p/createdb1.html

/alexy/p/createdb2.html

/alexy/p/createdb3.html

在启动过程中,我们看到告警日志中的各种配置参数,截取如下:

SQL> show parameter background_dumpNAME TYPE VALUE------------------------------------ ----------- ------------------------------background_dump_deststring/opt/oracle/admin/ocm/bdumpSQL>

启动日志中记录的参数读取和写入过程如下:

[oracle@ocmserver bdump]$ more alert_ocm.log Mon Jul 1 22:23:18 Starting ORACLE instance (normal) -----可以看出来是正常启动,normal一般是没有带参数。LICENSE_MAX_SESSION = 0 ----如下开始读参数文件,控制文件内的相关信息LICENSE_SESSIONS_WARNING = 0Picked latch-free SCN scheme 2Using LOG_ARCHIVE_DEST_10 parameter default value as USE_DB_RECOVERY_FILE_DESTAutotune of undo retention is turned on. IMODE=BRILAT =18LICENSE_MAX_USERS = 0SYS auditing is disabledksdpec: called for event 13740 prior to event group initializationStarting up ORACLE RDBMS Version: 10.2.0.1.0.System parameters with non-default values:processes = 150__shared_pool_size = 62914560__large_pool_size = 4194304__java_pool_size = 4194304__streams_pool_size = 0sga_target = 218103808control_files = /opt/oracle/oradata/ocm/control01.ctl, /opt/oracle/oradata/ocm/control02.ctl, /opt/oracle/oradata/ocm/control03.ctldb_block_size = 8192__db_cache_size = 142606336compatible = 10.2.0.1.0db_file_multiblock_read_count= 16db_recovery_file_dest = /opt/oracle/flash_recovery_areadb_recovery_file_dest_size= 2147483648undo_management = AUTOundo_tablespace = UNDOTBS1remote_login_passwordfile= EXCLUSIVEdb_domain = dispatchers = (PROTOCOL=TCP) (SERVICE=ocmXDB)job_queue_processes = 10background_dump_dest = /opt/oracle/admin/ocm/bdumpuser_dump_dest = /opt/oracle/admin/ocm/udumpcore_dump_dest = /opt/oracle/admin/ocm/cdumpaudit_file_dest = /opt/oracle/admin/ocm/adumpdb_name = ocmopen_cursors = 300pga_aggregate_target = 71303168PMON started with pid=2, OS id=5838 -----开始启动后台进程。PSP0 started with pid=3, OS id=5840MMAN started with pid=4, OS id=5842DBW0 started with pid=5, OS id=5844LGWR started with pid=6, OS id=5846CKPT started with pid=7, OS id=5848SMON started with pid=8, OS id=5850RECO started with pid=9, OS id=5852CJQ0 started with pid=10, OS id=5854MMON started with pid=11, OS id=5856Mon Jul 1 22:23:19 starting up 1 dispatcher(s) for network address '(ADDRESS=(PARTIAL=YES)(PROTOCOL=TCP))'...MMNL started with pid=12, OS id=5858Mon Jul 1 22:23:19 starting up 1 shared server(s) ...Mon Jul 1 22:23:19 ALTER DATABASE MOUNT -----启动到mount状态;Mon Jul 1 22:23:23 Setting recovery target incarnation to 2Mon Jul 1 22:23:23 Successful mount of redo thread 1, with mount id 287127 ----挂载redo成功;Mon Jul 1 22:23:23 Database mounted in Exclusive Mode -----数据库挂载为排他模式;Completed: ALTER DATABASE MOUNTMon Jul 1 22:23:24 ALTER DATABASE OPEN -----打开数据库Mon Jul 1 22:23:24 Thread 1 opened at log sequence 2Current log# 1 seq# 2 mem# 0: /opt/oracle/oradata/ocm/redo01.logSuccessful open of redo thread 1Mon Jul 1 22:23:24 MTTR advisory is disabled because FAST_START_MTTR_TARGET is not setMon Jul 1 22:23:24 SMON: enabling cache recoveryMon Jul 1 22:23:24 Successfully onlined Undo Tablespace 1. -----undo表空间online成功;Mon Jul 1 22:23:24 SMON: enabling tx recoveryMon Jul 1 22:23:24 Database Characterset is AL32UTF8replication_dependency_tracking turned off (no async multimaster replication found)Starting background process QMNCQMNC started with pid=16, OS id=5866Mon Jul 1 22:23:25 db_recovery_file_dest_size of 2048 MB is 0.00% used. This is auser-specified limit on the amount of space that will be used by thisdatabase for recovery-related files, and does not reflect the amount ofspace available in the underlying filesystem or ASM diskgroup.Mon Jul 1 22:23:27 Completed: ALTER DATABASE OPEN -----启动完成;[oracle@ocmserver bdump]$

2、参数文件分类

个人觉得参数文件分为3类(ORACLE官方文档是分了2类)

默认pfile ----系统默认的文本文件,文件名格式为init.ora。pfile ----可编辑的文本文件,文件名格式为init<sid>.oraspfile ----不可手动编辑的二进制文件,文件名格式为spfile<sid>.ora,支持RMAN备份。

这三者之间可以相互转化,特别是当参数文件异常中断,需要从alert_sid.log里面拼凑出默认的pfile,再修改为init<sid>.ora,最后使用命令转化为spfile<sid>.ora。这样的情况极少出现,只是一种思路和方法。转化命令和过程大体如下:

1)spfile转化为pfile

create pfile from spfile

create pfile form spfile='/opt/oracle/product/dbs/spfileocm.ora';

create pfile='/opt/oracle/product/dbs/initocm.ora' from spfile='/opt/oracle/product/dbs/spfileocm.ora';

2)pfile转化为spfile

create spfile from pfile;

create spfile from pfile='/opt/oracle/product/dbs/initocm.ora';

create spfile='/opt/oracle/product/dbs/spfileocm.ora' from pfile='/opt/oracle/product/dbs/initocm.ora';

3)spfile特性

create spfile from memory;

3、参数文件读取顺序

通常读取顺序为spfile<sid>.ora --->spfile.ora --->init<sid>.ora(没有办法情况下把init.ora修改为适当的init<sid>.ora)

这三个文件一般存放在$ORACLE_HOME/product/dbs下。

startup的时候可以指定pfile

startup pfile='/opt/oracle/product/dbs/initocm.ora';

但是spfile不可以

startup spfile='/opt/oracle/product/dbs/spfileocm.ora';

4、参数文件修改

4.1 pfile修改

pfile为文本文件,可以直接vi修改,但需要重启instance;

4.2 spfile修改

spfile修改提供如下指令:

Alter system set parameter=value

<scope = memory|spfile|both>

<deferred>

<comment = 'text'>

<sid = 'sid|*'>

解释如下:

<scope = memory|spfile|both>:

Memory:修改只对内存有效,即只对当前实例有效,且立即生效,但不会保存到SPFILE, 数据库重启后此配置丢失;

Spfile:修改只对SPFILE有效,不影响当前实例,需要重启数据库才能生效r;

both: 包含以上两种,立即生效,且永久生效(缺省)。

<deferred>:

语句执行后暂时先不做修改,等该用户再次登录DB时,此参数修改生效。

<comment = 'text'>:

为修改的参数添加注释。

<sid = 'sid|*'>:

常用于多实例对应一个DB的情况,不同的SID分别指定不同的实例。若是sid = SID,那么此参数只适用于SID对应的实例;若是sid = *,则此参数适用于所有实例。

4.3 spfile和pfile的差异

如下图,可以看出spfile与pfile的差异来

5、参数文件常用视图和表

v$parameter ----和show parameter abc 效果同。

v$instance

x$ksppi

x$ksppcv

6、常用参数及说明

CIRCUITS参数类型:整型默认值:如果是共享服务器架构,其值为会话数;如果非共享服务器架构,则值为0参数类别:静态CIRCUITS用于指定在MTS服务器架构下的虚电路的总数。CONTROL_FILES参数类型:字符串语法:CONTROL_FILES = 文件名[,文件名[,...]]参数类别:静态取值范围:1至8个文件名实时应用集群:多个实例必须有相同的设置。CONTROL_FILES用来指定数据库的参数文件。参数值里指定的多个文件是镜像关系。CURSOR_SHARING参数类型:字符串语法:CURSOR_SHARING = {SIMILAR|EXACT|FORCE}默认值:EXACT参数类别:动态:ALTER SESSION,ALTER SYSTEMCURSOR_SHARING用来指定SQL语句如何共享游标。值如下:FORCE:如果SQL表述只是字面上的不一样,而效果是一样的,则共享游标;SIMILAR:如果SQL表述只是字面上的不一样,效果和查询计划的维度都一样,则共享游标。这比FORCE我了一个限制:查询计划的维度;EXACT:仅当SQL表述在字面上完全相同时才共享游标。DB_ nK_CACHE_SIZEDB_BLOCK_BUFFERSDB_BLOCK_SIZEDB_CACHE_SIZEJAVA_POOL_SIZELOG_BUGGERshared_pool_sizesort_area_sizelarge_pool_sizestatistics_levelSGA_TARGET以上几个参数是关于内存数据块的设置。DB_DOMAINDB_NAMEORACLE_SIDINSTANCE_NAMEDB_FILES参数类型:整型默认值:200参数类别:静态实时应用集群:必须为每一个实例设置这个值,且值必须相等。DB_FILES用来设置数据库文件个数的最大值。DB_WRITER_PROCESSES参数类型:整型默认值:1参数类别:静态取值范围:1至20DB_WRITER_PROCESSES用来设置数据库写进程的个数。DISPATCHERS参数类型:字符串语法:DISPATCHERS = 'dispatch_clause'dispatch_cluse::=(PROTOCOL = protocol)|(ADDRESS = address)|(DESCRIPTION = description)[option_clause]options_clause::=(DISPATCHERS = integer|SESSIONS= integer|CONNECTIONS = integer|TICKS = second|POOL = {1|ON|YES|TRUE|BOTH|({IN|OUT}=ticks)|0|OFF|NO|FALSE|ticks}|MULTIPLEX = {1|ON|YES|TRUE|0|OFF|NO|FALSE|BOTH|IN|OUT}|LISTENER=tnsname|SERVICE=service|INDEX=integer)参数类别:动态:ALTER SYSTEMDISPATCHERS用来配置在共享服务器架构下的dispatcher进程。FIXED_DATE参数类型:字符串语法:FIXED_DATE=yyyy-mm-dd-hh24-mi-ss(或者是一个oracle默认格式的日期时间值)参数类别:动态:ALTER SYSTEMFIXED_DATE 用来设置SYSDATE的值,使固化或动态变化,如:alter system set fixed_date='-01-01',则第次查询select sysdate from dual的结果都是-01-01,若要将其设回当前时间:alter system set fixed_date=none。IFILE参数类型:参数文件语法:IFILE=参数文件名参数类别:静态实时应用集群:不同的实例可以有不同的设定值IFILE用来指出一个另一个链接的参数文件,这个链接的参数文件也是参数文件。我觉得使用这个参数的好处是可以将参数以不同的分类放在多个参数文件中,如:IFILE=COMMON.ORAIFILE=DBPARAMS.ORAIFILE=MEMPARAMS.ORALICENSE_MAX_SESSIONS参数类型:整型默认值:0参数类别:动态:ALTER SYSTEM实时应用集群:不同的实例可以有不同的设置值,但总数须小于等于数据库的total number of sessions licensed。LICENSE_MAX_SESSIONS用于设置实例的最大许可用户会话数,如果会话数达到这个值,则只允许有RESTRICTEDSESSION权限的用户才能连接到数据库。LICENSE_MAX_USERS参数类型:整型默认值:0Real Application Clusters:Multiple instances should have the same values. If different instances specify different values for this parameter, then the value of the first instance to mount the database takes precedence.LICENSE_MAX_USERS设置数据库的最大用户数,当实际用户数达到这个限额,将不能再创建用户。LOCK_SGA参数类型:布尔默认值:false参数类别:静态取值范围:false|trueLOCK_SGA用来设定是否SGA只使用物理内存。若值为true,则只使用物理内存,若值为false,则可以允许使用操作系统的虚拟内存(虚拟内存是操作系统利用磁盘空间来当成内存使用的一种技术)。LOG_ARCHIVE_DESTLOG_ARCHIVE_DEST_ nLOG_ARCHIVE_DEST_STATE_ nLOG_ARCHIVE_DUPLEX_DESTLOG_ARCHIVE_FORMATLOG_ARCHIVE_MAX_PROCESSESLOG_ARCHIVE_MIN_SUCCEED_DESTLOG_ARCHIVE_STARTLOG_ARCHIVE_TRACE以上这几个参数是关于归档日志的相关设置,这些参数很重要。LOG_CHECKPOINT_INTERVALLOG_CHECKPOINT_TIMEOUT以上两个参数是关于检查点的。LOG_CHECKPOINTS_TO_ALERT参数类型:布尔默认值:falseLOG_CHECKPOINTS_TO_ALERT用于设定是否将检查点日志写入警报文件(alert file)中。MAX_DISPATCHERS参数类型:整型默认值:5参数类别:静态MAX_DISPATCHERS用于在共享服务器架构中,设定DISPATCHER(分配器)的最大数。MAX_DUMP_FILE_SIZE参数类型:字符串语法:MAX_DUMP_FILE_SIZE={integer [K|M]}默认值:UNLIMITED参数类别:动态:ALTER SYSTEM,ALTER SESSION取值范围:0至UNLIMITEDMAX_DUMP_FILE_SIZE用来设置轨迹文件的最大文件大小。MAX_ENABLED_ROLES参数类型:整型默认值:20参数类别:静态MAX_ENABLED_ROLES用于设定一个用户可以同时可最多拥有多少个生效的角色。而实际上一个用户所拥有的有效色是2+MAX_ENABLED_ROLES,因为每个用户都默认拥有两个生效的角色,一个是public,一个是用户特有的角色。MAX_ROLLBACK_SEGMENTS参数类型:整型默认值:MAX(30, TRANSACTIONS/TRANSACTIONS_PER_ROLLBACK_SEGMENT)参数类别:静态取值范围:2至65535MAX_ROLLBACK_SEGMENTS用来设定SGA中最大回滚段的最大值。MAX_SHARED_SERVERS参数类型:整型参数类别:静态MAX_SHARED_SERVERS用于设定在共享服务器架构中的最大共享服务器数量。OPEN_CURSORS参数类型:整型默认值:50参数类别:动态:ALTER SYSTEM取值范围:1至4294967295OPEN_CURSORS用于设定一个会话最多可以同时打开多少个游标。PROCESSES参数类型:整型参数类别:静态PROCESSES用于设置总的实例的进程数限额,包括服务器进程,以及后台进程、任务进程等。REMOTE_LOGIN_PASSWORDFILE参数类型:字符串语法:REMOTE_LOGIN_PASSWORDFILE={NONE|SHARED|EXCLUSIVE}参数类别:静态此参数用于设置密码文件的验证方式。SESSIONS参数类型:整型默认值:(1.1 * PROCESSES) + 5参数类别:静态SESSIONS用于设定系统可创建的最大会话数。SGA_MAX_SIZE参数类型:大整型语法:SGA_MAX_SIZE = integer [K | M | G]参数类别:静态SGA_MAX_SIZE用于设置实例的SGA的大小。

二、参数文件实验说明

To be continue……

三、小结

1、参数文件在前面所有实验都非常重要,一般不会出问题,如果出现问题可以去参考alert_ocm.log里面去找讯息重建(发现所有问题重建都可以好,controlfile最终办法也是重建控制文件能解决很多问题?)

2、参数文件修改参数会越来越少.ORACLE11g中,oracle有了自己的调优策略。在oracle 12c中恐怕会更加优化和方便,基本不需要人工干预和调整了,但理解知识无关乎他是否使用,对后续调优及其他方面有很大的方便。

3、参数文件内容不多,应该重点理解。

四、参考文档

1、官方文档

2、minbear的blog:/minbear/archive//10/12/526853.html

怕丢失,保存在空间如下:

前言近来公司技术,研发都在问我关于内存参数如何设置可以优化oracle的性能,所以抽时间整理了这篇文档,以做参考.目的希望通过整理此文档,使大家对oracle内存结构有一个全面的了解,并在实际的工作中灵活应用,使oracle的内存性能达到最优配置,提升应用程序反应速度,并进行合理的内存使用.内容实例结构oracle实例=内存结构+进程结构oracle实例启动的过程,其实就是oracle内存参数设置的值加载到内存中,并启动相应的后台进程进行相关的服务过程。进程结构oracle进程=服务器进程+用户进程几个重要的后台进程:DBWR:数据写入进程.LGWR:日志写入进程.ARCH:归档进程.CKPT:检查点进程(日志切换;上一个检查点之后,又超过了指定的时间;预定义的日志块写入磁盘;例程关闭,DBA强制产生,表空间offline)LCKn(0-9):封锁进程.Dnnn:调度进程.内存结构(我们重点讲解的)内存结构=SGA(系统全局区)+PGA(程序全局区)SGA:是用于存储数据库信息的内存区,该信息为数据库进程所共享。它包含Oracle 服务器的数据和控制信息,它是在Oracle服务器所驻留的计算机的实际内存中得以分配,如果实际内存不够再往虚拟内存中写我们重点就是设置SGA,理论上SGA可占OS系统物理内存的1/2——1/3原则:SGA+PGA+OS使用内存<总物理RAMSGA=((db_block_buffers*blocksize)+(shared_pool_size+large_pool_size+java_pool_size+log_buffers)+1MB1、SGA系统全局区.(包括以下五个区)A、数据缓冲区:(db_block_buffers)存储由磁盘数据文件读入的数据。大小: db_block_buffers*db_block_sizeOracle9i设置数据缓冲区为:Db_cache_size原则:SGA中主要设置对象,一般为可用内存40%。B、共享池:(shared_pool_size):数据字典,sql缓冲,pl/sql语法分析.加大可提速度。原则:SGA中主要设置对象,一般为可用内存10%C、日志缓冲区:(log_buffer)存储数据库的修改信息.原则:128K ---- 1M 之间,不应该太大D 、JAVA池(Java_pool_size)主要用于JAVA语言的开发.原则:若不使用java,原则上不能小于20M,给30M通常就够了E、 大池(Large_pool_size) 如果不设置MTS,主要用于数据库备份恢复管理器RMAN。原则:若不使用MTS,5---- 10M 之间,不应该太大SGA=. db_block_buffers*db_block_size+ shared_pool_size+ log_buffer+Java_pool+size+large_pool_size原则: 达到可用内存的55-58%就可以了.2、PGA程序全局区PGA:包含单个服务器进程或单个后台进程的数据和控制信息,与几个进程共享的SGA 正相反PGA 是只被一个进程使用的区域,PGA 在创建进程时分配在终止进程时回收.A、Sort_area_size 用于排序所占内存B、Hash_area_size 用于散列联接,位图索引这两个参数在非MTS下都是属于PGA ,不属于SGA,是为每个session单独分配的,在我们的服务器上除了OS + SGA,一定要考虑这两部分原则:OS 使用内存+SGA+并发执行进程数*(sort_area_size+hash_ara_size+2M) < 0.7*总内存实例配置一:物理内存多大二:操作系统估计需要使用多少内存三:数据库是使用文件系统还是裸设备四:有多少并发连接五:应用是OLTP 类型还是OLAP 类型基本掌握的原则是, db_block_buffer 通常可以尽可能的大,shared_pool_size 要适度,log_buffer 通常大到几百K到1M就差不多了A、如果512M RAM 单个CPU db_block_size 是8192 bytesSGA=0.55*512M=280M左右建议 shared_pool_size = 50M, db_block_buffer* db_block_size = 200M具体: shared_pool_size =52428800 #50Mdb_block_buffer=25600#200Mlog_buffer = 131072 # 128k (128K*CPU个数)large_pool_size=7864320#7.5Mjava_pool_size = 20971520 # 20 Msort_area_size = 524288# 512k (65k--2M)sort_area_retained_size = 524288 # MTS 时 sort_area_retained_size = sort_area_sizeB、如果1G RAM单个CPU db_block_size 是8192 bytesSGA=0.55*1024M=563M左右建议 shared_pool_size = 100M , db_block_buffer* db_block_size = 400M具体: shared_pool_size=104857600 #100Mdb_block_buffer=51200 #400Mlog_buffer = 131072 # 128k (128K*CPU个数)large_pool_size=15728640 #15Mjava_pool_size = 20971520 # 20 Msort_area_size = 524288# 512k (65k--2M)sort_area_retained_size = 524288 # MTS 时 sort_area_retained_size = sort_area_sizeC、如果2G单个CPU db_block_size 是8192 bytesSGA=0.55*2048M=1126.4M左右建议 shared_pool_size = 200M , db_block_buffer *db_block_size = 800M具体: shared_pool_size=209715200 #200Mdb_block_buffer=103192 #800Mlog_buffer = 131072 # 128k (128K*CPU个数)large_pool_size= 31457280#30Mjava_pool_size = 20971520# 20 Msort_area_size = 524288 # 512k (65k--2M)sort_area_retained_size = 524288 # MTS 时 sort_area_retained_size = sort_area_size假定64 bit ORACLE内存4Gshared_pool_size = 200M , data buffer = 2.5G内存8Gshared_pool_size = 300M , data buffer = 5G内存 12Gshared_pool_size = 300M-----800M , data buffer = 8G参数更改方式oracle8i:主要都是通过修改oracle启动参数文件进行相关的配置参数文件位置:d:\oracle\admin\DB_Name\pfile\init.ora按以上修改以上参数值即可。Oracle9i:两种方式:第一种是修改oracle启动参数文件后,通过此参数文件再创建服务器参数文件第二种是直接运行oracle修改命令进行修改。SQL>alter system set db_cache_size=200M scope=spfile;SQL>alter system set shared_pool_size=50M scope=spfile;

3、Robinson_0612的blog:/robinson_0612/article/details/5559174

posted on -07-02 23:07 Alexy Young 阅读( ...) 评论( ...) 编辑 收藏

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。