ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Oracle RAC基本管理

Oracle RAC基本管理

原创 Linux操作系统 作者:旧梦依稀 时间:2013-08-02 14:17:05 0 删除 编辑
1、启动和关闭实例
单实例Oracle可以在系统启动时自动启动。
在RAC环境中,需要确保在实例启动前启动了集群软件。从Oracle Database 10g R1开始,DBCA将数据库实例配置为在系统启动时由“集群就绪服务”(CRS)自动启动。
2、使用srvctl启动/停止实例
启动/关闭数据库名为prod的实例:
srvctl start database -d prod
srvctl stop database -d prod
以上命令只会关闭实例和服务,侦听器不会被关闭。可以使用-o来指定启动/关闭选项
srvctl stop database -d prod -o immediate
srvctl start database -d prod -o force
关闭实例prod3:
srvctl stop database -d prod -i instance prod3
3、可以使用SQLPLUS单独关闭一个节点上的实例,操作和单实例环境一样
4、使用srvctl在OCR中注册单实例数据库
单实例数据库现在可以用Oracle集群件进行注册和管理,但单实例数据库的较旧版本应当使用srvctl实用工具,手动注册到Oracle集群注册表中。Oracle会自动为单实例数据库启动所有相关资源。
$ srvctl add database -d prod11g -o /u01/oracle/product/11g/db -x node-a -p +ASMDATA1/spfilePROD11g.ora -r primary -s open -t immediate -y automatic -a ASMDATA1,ASMFRA1
5、管理撤销
Oracle将一个镜像之前调用的数据原始值存储在撤销段中。撤销段(undo segment)中存储的数据用于提供读一致性,并用于回滚事务。从Oracle 10g开始,闪回功能也利用了撤销数据。
6、自动撤销管理
自动撤销管理在Oracle 9iR1中引入,强烈推荐使用这种方式。Oracle实例使用一个undo类型的表空间来存储撤销/回滚数据,实例在这个专用表空间中创建所需数量的回滚段,并将它们分配给事务,用于存储撤销数据,这些操作对DBA和终端用户是完全透明的。
从Oracle 9i开始,自动撤销管理是数据库的默认设置,与其相关的参数有:
undo_managment = "auto"
undo_tablespace = undo_tbs1
undo_retention_time = 900 #默认是900秒,如果出现ora-01555错误,则可能需要为此参数设置更大的值。
Oracle RAC环境中,所有实例的UNDO管理方式必须相同,要么全是自动撤销管理,要么全是手动撤销管理,但是撤销表空间不能在所有实例间共享,所以每个实例的undo_tablespace参数值都应该是唯一的。
创建新的撤销表空间
create undo tablespace undotbs_big datafile='/ocfs2/prod/undotbsbig.dbf' size 2000MB;
切换到新撤销表空间
alter system set undo_tablespace=undotbs_big scope=both;
7、管理临时表空间
从Oracle 10g开始,可以定义一个临时表空间组,在任何使用临时表空间的地方都可以使用这个组。建议在Oracle RAC环境中使用临时表空间组,因为当多个用户使用相同的用户名连接数据库时,会将不同的临时表空间指定给这些会话,这样就允许不同会话使用不同的表空间进行排序操作。在OracleRAC环境中,无论使用哪个实例,一个用户总是使用同一个指定的临时表空间。
创建新的临时表空间:
create temporary tablespace temp2 tempfile '/ocfs2/prod/temp2.dbf' size 2000MB autoentend on next 1M maxsize unlimited extent managment local uniform. size 1M;
指定新的临时表空间:
alter database set default temporary tablespace temp2;
临时表空间相关视图:
gv$sort_segment
gv$tempseg_usage
v$tempfile
注意:如果V$SORT_SEGMENT的FREED_EXTENTS和FREE_REQUESTS列定期增长,就应当考虑增大临时表空间的大小。
8、管理联机重做日志(online redolog)
由一个实例循环使用的一组重做日志成为“线程”(thread)。Oracle RAC环境中,每个实例有自己独自的联机重做日志,只有本实例可以写入数据,但是同时要允许其它实例读取,以便在实例异常中止时由其它实例执行实例恢复,所以online redolog必须放在共享存储上,而不能放在本地磁盘上。
相关视图:V$LOG , v$LOGFILE
将Oracle RAC集群中的实例由非归档模式改为归档模式:
SQL> alter system set cluster_database=false scope=spfile sid='prod1';
关闭RAC集群中所有实例:
srvctl stop database -d prod
SQL>startup mount
SQL>alter database archivelog
SQL>alter system set cluster_database=true scope=spfile sid='prod1';
SQL>shutdown immediate;
启动RAC集群中的所有实例:
srvctl start database -d prod
9、启动闪回区域(闪回恢复区--falshback recovery area)
Oracle Database 10gR1引入了闪回恢复区,用于将数据库回滚到最近的某一时间点。
使用闪回可以完成以下需求:
闪回查询
闪回版本查询
闪回事务查询
闪回表
闪回事务
在Oracle RAC环境中启用闪回功能:
确认数据库当前是否处于归档模式(闪回需要归档模式)
SQL>archive log list
SQL>alter system set cluster_database=false scope=spfile sid='prod1';
SQL>alter system set DB_RECOVERY_FILE_DEST='/ocfs2/flashback' scpoe=spfile;
SQL>alter system set DB_RECOVERY_FILE_DEST_SIZE=200M scope=spfile;
srvctl stop database -d prod
SQL>startup mount
SQL>alter database flashback on;
SQL>alter system set cluster_database=true scope=spfile sid='prod1';
SQL>shutdown immediate;
srvctl start database -d prod
以上是为整个实例开启闪回,也可以为单个表空间开启闪回:
SQL>alter tablespace user_data flashback on;
SQL>alter tablespace user_data flashback off;
10、SRVCTL管理数据库配置
Oracle RAC环境中,使用“仓库”存储数据库配置信息,在Oracle 9i中,这个仓库位于一个存储为srvConfig.loc的文件中,这个文件应当位于一个共享存储中,所有节点都可以访问。
在Oracle 10g中,仓库信息存储在Oracle集群注册表(OCR)中,它是在安装CRS时创建的,也必须位于共享存储中。
在Oracle 11gR2中,存在另外一个仓库,用来存储OCR数据的一个本地副本,这个仓库称为“Oracle本地仓库(OLR)”。
SRVCTL常用命令:
查看在这个仓库中注册的数据库
srvctl config database
查看数据库prod的详细配置信息
srvctl config database -d prod
将数据库prod的策略由自动改为手动
srvctl modify database -d prod -y MANUAL
将数据库prod的启动选项改为mount
srvctl modify database -d prod -s mount
显示数据库prod的状态
srvctl status database -d prod
显示在数据库prod中运行的服务的状态
srvctl status service -d prod
将数据库prod的prod_batch服务由实例PROD1重新定位到PROD2
srvctl relocate service -d PROD -s prod_batch -i PROD1 -t PROD2
检查一个节点上运行的nodeapps
srvctl status nodeapps
11、Oracle RAC环境中管理表空间
在Oracle RAC环境中所有表空间都应该使用“自动段空间管理(ASSM)”,ASSM是在9i中引入的。
查看所有表空间是否都在使用ASSM:
select tablespace_name,SEGMENT_SPACE_MANAGEMENT from dba_tablespaces;
默认情况下使用create tablespace命令会利用ASSM创建一个表空间。ASSM特征不能在对象级别指定,只能在表空间级别指定。
12、管理序列(Sequence)
由于Oracle RAC环境中会有多个实例多个并发会话,那么对于需要使用同一个序列(Sequence)的地方产生争用的可能性就更大,为了避免多个实例多个并发会话对同一个序列(Sequence)的争用,可以通过提高缓存值的方法加以缓解,序列缓存值默认是20,根据使用频率,即使增加到2000也是可以接受的。序列缓存值设置非常高的一个缺点是当一个实例崩溃或者一个共享池刷新时,未使用的序列数会丢失。
13、管理表
Oracle RAC环境不需要对表进行特殊对待,在单实例环境中遵循的一些最佳业务实践,例如对非常大的表进行分区和将活动表放在不同物理磁盘上以避免I/O热区,这些对Oracle RAC也足够了。
14、管理索引
在设计高度可伸缩性系统时,避免B-Tree索引块的争用是一个很大的挑战。使用分区索引和反向键索引是用来避免B-Tree索引块争用的两种最常用方法。
15、SQL命令的有效范围
在Oracle RAC环境中一些命令影响所连接的实例,而其它一些命令影响整个数据库。
16、数据库连接
在Oracle 11g中引入了“单一客户端访问名称(SCAN)”,通过SCAN,同一集群中的所有数据库都可以在连接字符串中使用SCAN名称连接到OracleRAC数据库,而不再需要列出所有运行中的集群数据库实例的节点虚拟IP。但是在当前的集群环境部署中,SCAN使用的还不多,出于习惯和现实环境限制(例如数据库版本过低),还是使用传统的列出各节点虚拟IP的方式比较普遍。

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

下一篇: Oracle集群件组件
请登录后发表评论 登录
全部评论

注册时间:2013-06-24

  • 博文量
    46
  • 访问量
    169851