基于LINUX的Oracle 10G RAC管理维护学习手记 crpp0902 | 19 五月, 2009 16:25 RDBMS管理维护
spfile以及相关参数说明 最普遍情况,节点共用同一个spfile文件,放置在共享存储上,而每个节点上,相应目录下有一个pfile文件,而这个pfile文件指向共享存储上的spfile。 当我们需要修改某一节点上的paremeter的时候,需要显示的指定sid,例如: SQL>alter system set sga_target=1024M scope=spfile sid=’rac1’; System Altered. 这样,节点rac1上的sga_target参数被修改,不会影响其余节点上的参数设置。如果不加sid,默认为sid=’*’,也就是对所有节点生效。 RAC下,有一些不同与单实例的参数,列举如下: ① cluster_database 一般情况下,该参数在rac各实例下应该设置为true。在一些特别情况下,比如upgrade等,需要将该参数设置成false。
② db_name/db_unique_name/instance_name 各节点db_name需要一致,db_unique_name也需要一致(这与standby是不同的)。而instance_name配置成各个节点的实例名称。
③ instance_number 该参数表示节点上实例的实例号。
④ thread 该参数用来标示实例使用的redo线程。线程号与节点号/实例号没有直接关联。
⑤ local_listener 该参数用来手工注册监听。为解决ORA-12514错误,可以设置该参数。
⑥ remote_listener 该参数用来进行服务器端负载均衡配置。
⑦ cluster_interconnects 该参数用来指定集群中IPC通信的网络。如果集群中有多种网络用于高速互联,需要配置该参数。对于多个IP地址,用冒号将其隔开。对于集群中当前使用的互联地址,可以查询视图gv$cluster_interconnects或着oradebug ipc来查看。
⑧ max_commit_propagation_delay 该参数用于配置SCN的产生机制。
在rac下,SCN的同步有2种模式:
(1) Lamport Scheme.该模式下,由GES管理SCN的传播同步,max_commit_propagation_delay表示SCN同步所允许的最大时间。在该模式下,全局SCN并非完全同步,这在高并发的OLTP系统中,可能会对应用造成一定的影响。 (2) Broadcast on Commit scheme. 该模式下,一旦任何一个实例上事务发布commit,都立即同步SCN到全局。在10g
R1下,该参数默认数值为700,即采用Lamport Scheme模式。而在10g R2下,该参数默认数值为0,采用Broadcast on Commit scheme模式 (设置小于700的某一值,都将采用该模式) 。采用何种方式,可以从alert.log中获知。该参数值需要每个节点保持一致。 (2). Redo/Undo管理:
RAC下的Redo管理同单实例的系统一样,每个节点实例都需要至少2组logfile。各节点实例有自己独立的重做日志线程(由初始化参数thread定义),例如: SQL> select
b.THREAD#,a.GROUP#,a.STATUS,a.MEMBER,b.BYTES,b.ARCHIVED,b.STATUS from v$logfile a,v$log b where a.GROUP#=b.GROUP#; THREAD# GROUP# STATUS MEMBER BYTES ARCHIVED STATUS ------------------- ------- -------------------------------------------------- 1 1 STALE +DATA/demo/onlinelog/group_1.257.660614753 52428800 YES INACTIVE 1 2
+DATA/demo/onlinelog/group_2.258.660614755 52428800 NO CURRENT 2 3
+DATA/demo/onlinelog/group_3.265.660615545 52428800 NO CURRENT 2 4 STALE
+DATA/demo/onlinelog/group_4.266.660615543 52428800 YES INACTIVE 重做日志需要部署到共享存储中,必须保证可被所有的集群内的节点实例访问。当某个节点实例进行实例/介质恢复的时候,该节点上的实例将可以应用集群下所有节点实例上的重做日志文件(如果需要),从而保证恢复可以在任意可用节点进行。
RAC下alter system switch logfile 与alter system archive log current 区别 alter system switch logfile仅对当前发布节点上的对应redo thread进行日志切换并归档。
alter system archive log current对集群内所有节点实例上的redo thread进行切换并归档(在节点实例可用情况下,分别归档到各节点主机的归档目的地,当节点不可用时候,该线程日志归档到命令发布节点的归档目的地) ?RAC下的Undo管理 RAC下的每个节点实例,也需要有自己单独的撤销表空间。由初始化参数 *.Undo_tablespace 指定。同REDO一样,UNDO表空间也需要部署到共享存储,虽然每个节点上UNDO的使用是独立的,但需要保证集群内其他节点实例对其访问,以完成构造读一致性等要求。 SQL>alter system set undo_tablespace=undo1 sid=’demo1’; SQL>alter system set undo_tablespace=undo2 sid=’demo2’;
(3).Archivelog/flashback配置管理 在RAC下,Archivelog可以放置到本地磁盘,也可以放置到共享存储。需要对Archivelog的放置有合理的部署,如果放置到本地磁盘,会增加备份恢复的复杂程度。
闪回区必须部署到共享存储上,开启前,需要配置db_recovery_file_dest、db_recovery_file_dest_size、db_flashback_retention_target等参数。下面在一个非归档非闪回的database上,开始归档与闪回。 更改相关参数 SQL>alter system set
log_archive_dest_1='location=/archive/demo1' sid='demo1'; System altered SQL> alter system set
log_archive_dest_1='location=/archive/demo2' sid='demo2'; System altered
SQL> alter system set db_recovery_file_dest_size=512M; System altered
SQL> alter system set db_recovery_file_dest='+DG1'; System altered