Oracle 9i RAC数据库日常操作及维护手册 内部公开
Oracle 9i RAC数据库日常操作及维护手册
说明:
本文适用于各种平台的RAC数据库管理。
为了方便数据库维护,涉及到操作系统的维护方法列举了需要使用的UNIX操作系统命令和参数。
本文中列举的两台数据库服务器名称分别为rac1,rac2,数据库实例(instance_name)名称分别为rac1,rac2,数据库(db_name)名称为rac,划分的卷组名称为datavg。维护时请根据实际需要修改本文中的语句范例。
1 RAC数据库配置
1.1 SPFILE参数文件配置
在8i及以前的版本,Oracle使用PFILE(即初始化参数文件initsid.ora)存储初始化参数设置。从Oracle 9i开始,oracle引入了二进制文件SPFILE来替代原有的PFILE文件。一个单独的SPFILE可以集中管理RAC环境中所有的数据库实例的初始化参数,而不需要为每个数据库实例单独管理各自的PFILE。
1.1.1 SPFILE文件的创建
在RAC环境下,SPFILE必须和控制文件,数据文件一样建立在裸设备上,以便所有的数据库都可以访问。当使用不带子句startup命令直接启动数据库时,Oracle 将从默认目录下的服务器参数文件(SPFILE) 中读取初始化参数。
对于UNIX 平台为服务器参数文件或文本初始化参数文件指定的默认位置目录是: $ORACLE_HOME/dbs/spfile$ORACLE_SID.ora SPFILE文件的创建需要以下几个步骤:
1. 创建SPFILE的逻辑卷,这个步骤在双机环境下较为复杂。具体方法请参考如何在RAC环境下增加新的数据或者日志文件,此处不赘述。
2004-05-17
华为机密,未经许可不得扩散
第5页, 共47页
Oracle 9i RAC数据库日常操作及维护手册 内部公开
2. 创建SPFILE的文本文件init.ora,具体请见本章的SPFILE文件的文本格式范例 3. 从init.ora文本文件创建SPFILE
语句格式:CREATE SPFILE[=’SPFILE-NAME’] FROM PFILE[=’PFILE-NAME’]; Example:
SQL> create spfile='/dev/vx/rdsk/ha-dg/SALES_spfile’ from pfile='/mnt/app/oracle/admin/SALES/pfile/initSALES.ora'; File created. 注意:
我们也可以根据SPFILE文件创建PFILE文件:
SQL>CREATE PFILE[=’PFILE-NAME’] FROM SPFILE[=’SPFILE-NAME’]; 这时创建的pfile文件将是一个可阅读可编辑的文本文件。 可以通过以下命令查看参数: SQL>show parameter [para_name]
1.1.2 SPFILE文件的使用
随着SPFILE的引入,我们可以在不用停机的情况下动态调整数据库SGA区及其它很多参数,大大提高了系统的可用性。同时使用命令行在线修改参数值,也减少了手工编辑初始化参数文件init.ora犯错误的可能。
在8i中,只有动态初始化参数可以使用ALTER SYSTEM或者ALTER SESSION来修改,在9i中ALTER SYSTEM引入一个新选项SCOPE,用来选择参数更改的范围,所有的初始化参数都可以使用ALTER SYSTEM或者ALTER SESSION来修改。
SCOPE参数有三个可选值: ? MEMORY:只改变当前实例运行;
? SPFILE:只改变SPFILE的设置(如果修改的是静态参数,则必须指定SCOPE=SPFILE,
否则将会报ORA-02095错。); ? BOTH:改变实例及SPFILE,缺省方式。
RAC环境下,ALTER SYSTEM还可以加上SID参数,指定初始化参数影响的实例。在本例中,SID可取值为RAC1/RAC2/*。SID的缺省值为*,表示对所有实例都有效。
2004-05-17
华为机密,未经许可不得扩散 第6页, 共47页
Oracle 9i RAC数据库日常操作及维护手册 内部公开
例如,我们动态修改实例RAC1的shared pool的大小:
SQL> alter system set shared_pool_size=120M scope=memory sid='rac1'; 查询视图确认修改结果:
SQL> select component,current_size from v$sga_dynamic_components;
COMPONENT CURRENT_SIZE ---------------------------------------------------------------- ------------ shared pool 134217728 large pool 16777216 buffer cache 33554432 在Oracle 9i中,我们还可以通过查询V$SPPARAMETER,实时的得到所有当前使用的spfile的参数值,包括使用SCOPE=SPFILE参数的ALTER SYSTEM命令改变的参数。
SQL> select sid,name,value from v$spparameter where name='shared_pool_size'; SID
---------------------------------------------------------------- NAME
---------------------------------------------------------------- VALUE
---------------------------------------------------------------- *
shared_pool_size 104857600
2 RAC数据库实例管理
oracle 9i在启动方式上同9i以前的版本有了较明显的变化,从9i开始,oracle取消了svrmgrl程序和internal用户,对数据库的所有操作,都要通过sqlplus来完成。
2004-05-17
华为机密,未经许可不得扩散 第7页, 共47页
Oracle 9i RAC数据库日常操作及维护手册 内部公开
2.1 查看集群数据库状态
以oracle用户登录主备机,检查数据库。输入下面的命令: (a) 检查数据库状态。 输入下面的命令:
oracle% sqlplus \
SQL> select status, instance_role from v$instance;
STATUS INSTANCE_ROLE ------------ ------------------ OPEN PRIMARY_INSTANCE
(b) 检查表空间状态。
SQL> select tablespace_name, status from dba_tablespaces; TABLESPACE_NAME STATUS SYSTEM ONLINE UNDOTBS1 ONLINE TEMP ONLINE INDX ONLINE TOOLS ONLINE USERS ONLINE SCPDATATBS ONLINE
(c) 检查数据库开放模式。
SQL> select open_mode from v$database; OPEN_MODE READ WRITE
2.2 启动集群数据库
集群数据库的启动、关闭管理是相对独立的。启动或关闭集群数据库的一个实例,并不会影响到环境中其他数据库实例的正常运行。
2.2.1 数据库的正常启动
正常启动数据库的选项是normal,这也是数据启动的缺省选项。以这种方式启动将启动一个实例(即instance,实例是指oracle的后台进程和SGA区),并把数据库装入(mount),然后打开数据库供用户使用。具体操作如下:
2004-05-17
华为机密,未经许可不得扩散
第8页, 共47页
相关推荐: