author:skate
time:2010/05/13
rac参数
当创建数据库的时候,oracle会在指定的共享存储(asm diskgroup,cluster file system,raw)创建spfile文件,所有
的实例在启动的时候,都是用这个spfile文件,这是一个二进制文件,不能直接编辑,但可以用enterprise manage和alter system
来编辑。如果你要用pfile引导数据库,除非你的spfile文件不存在或者在startup命令指定pfile参数。
在基于unix平台搜索参数文件的顺序如下:
1. $ORACLE_HOME/dbs/spfilesid.ora
2. $ORACLE_HOME/dbs/spfile.ora
3. $ORACLE_HOME/dbs/initsid.ora
rac参数的修改
修改所有实例的指定参数
SQL> alter system set open_cursors=360 scope=spfile sid='*';
或
SQL> alter system set open_cursors=360 scope=spfile
修改指定实例的指定参数
SQL> alter system set open_cursors=360 scope=spfile sid='RAC2';
恢复所有实例指定参数到默认值
SQL> alter system reset open_cursors scope=spfile sid='*';
恢复指定实例指定参数到默认值
SQL> alter system reset open_cursors scope=spfile sid='RAC2';
1.在rac环境中,在所有实例中值必须一样的参数如下:
ACTIVE_INSTANCE_COUNT
ARCHIVE_LAG_TARGET
CLUSTER_DATABASE
CLUSTER_DATABASE_INSTANCES
CONTROL_FILES
DB_BLOCK_SIZE
DB_DOMAIN
DB_FILES
DB_NAME
DB_RECOVERY_FILE_DEST
DB_RECOVERY_FILE_DEST_SIZE
DB_UNIQUE_NAME
UNDO_MANAGEMENT
The setting for DML_LOCKS must be identical on every instance only if set to zero.
2. 在所有实例中必须有唯一值的
instance_number用于在数据库启动时,区别不同的实例
thread:oracle用这个参数把日志组和实例一一的对应起来,线程号与节点号/实例号没有直接关联
可以把这两个参数设置为相同的值,以便于日常管理
UNDO_TABLESPACE:每个实例有自己的唯一值,并且在数据库范围内也唯一
ORACLE_SID环境变量隐含的指定了,数据库名和日志组(也可以理解oracle_sid由thread和db_name组成)
3. oracle建议在rac环境应该有相同的值
ARCHIVE_LAG_TARGET
LICENSE_MAX_USERS
LOG_ARCHIVE_FORMAT
SPFILE
TRACE_ENABLED
UNDO_RETENTION
4. rac中参数的概述
cluster_database :当设置true时,oracle以及群模式启动数据库
cluster_database_instances:RAC中实例的个数,设置合适值有助于改善内存的使用,如果以后增加实例,可以适当的
把这个参数设置的大一点
cluster_interconnects:指定及群的内联方式,但你有多个数据库或者为了增加内联的带宽,都需要设置这个参数
service_names:这个参数可以设置多个值,可以理解它为实例的集合,可以通过它来链接数据库。
local_listener:该参数用来手工注册监听。为解决ORA-12514错误,可以设置该参数。默认值为:
(ADDRESS = (PROTOCOL=TCP)(HOST=hostname)(PORT=1521)) where hostname is the network name of the local host.
remote_listener:该参数用来进行服务器端负载均衡配置
processes:os用户进程能同时连接oracle的最大数量,这个值包括所有的相关后台进程,在修改数据库并发数的时候,也主要是
修改这个参数
sessions:系统的最大会话数,因为每个login都需要一个session,所以session可以用来评估系统的最大并发用户数。
但是因为为了完成用户进程的需要,就需要一些额外的后台进程session和大概10%递归调用session。
所以sessions和processes有一个定的关系。
ENQUEUE_RESOURCES
transactions:指数据库并发事务数的最大值,如果此值较大会增加sga的消耗和回滚段数量的分配
dml_locks:dml锁的最大数量(在一个事务里,每个被编辑的表一个dml_lock锁),它的默认值是4 * TRANSACTIONS
dml_lock是一个dml操作的锁。在数据库里"enqueues"是一个顺序访问数据库资源的共享内存结构,如果
dml_locks设置为0的话,enqueues就失效,数据库性能有稍微的提高。但是有如下的限制。
A. 不能用drop table和create index语句了
B. 不能用明锁,例如lock table in exclusive mode
C. enterprise manage 不能运行在任何实例
如果数据库里有很多并行的dml语句,可以适当的增加dml_locks的值。对于在rac中,每个实例都要设置足够的值 或者所有实例都设置为0
参数sessions和transantions的默认值源于processes值
sessions= (1.1 * processes) + 5
transantions=(1.2 × processes) + 8
参数dml_locks的默认值源于transactions值
dml_locks=transactions × 4
参数ENQUEUE_RESOURCES和transactions的默认值源于sessions值,其中ENQUEUE_RESOURCES在10.2中已经不用了
RAC下alter system switch logfile 与alter system archive log current 区别
alter system switch logfile仅对当前发布节点上的对应redo thread进行日志切换并归档。
alter system archive log current对集群内所有节点实例上的redo thread进行切换并归档
(在节点实例可用情况下,分别归档到各节点主机的归档目的地,当节点不可用时候,该线程日志归档到命令发布节点的归档目的地)
ALTER SYSTEM CHECKPOINT LOCAL只影响当前连接的Instance;
ALTER SYSTEM CHECKPOINT 或是ALTER SYSTEM CHECKPOINT GLOBAL影响cluster中的所有Instance
文献参考:
http://download.oracle.com/docs/cd/B19306_01/rac.102/b14197/dbinstmgt.htm#CIHDDAGG
------end-----