ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Oracle 11g Release 2 RAC集群系统——安装后置任务

Oracle 11g Release 2 RAC集群系统——安装后置任务

原创 Linux操作系统 作者:shilei1 时间:2013-09-26 02:35:48 0 删除 编辑

十一、安装的后置任务

RAC集群数据库建立完毕后,还有一些后置任务应该完成(但不是必须),我把自己做的操作介绍一下。下面的一些主题比如关于负载均衡和故障切换的内容、GNS服务、RMAN在集群环境中的使用等等,都可以作为单独的主题来钻研,这里的演示和介绍只是蜻蜓点水,浅尝即止。

1.官方建议的两个安装后置任务

(1) 备份 root.sh 脚本

官方建议在完成安装后要备份root.sh脚本文件。如果在Oracle Home目录中又安装其它的产品,安装时OUI会升级已存在的root.sh文件。如果需要root.sh内的原始信息,就可以在备份中找到。

-bash-3.00$ cd $ORACLE_HOEM

-bash-3.00$ cp root.sh root.sh.bak

(2) 重新编译全部 PL/SQL modules

官方建议在建立或升级数据库后执行utlrp.sql脚本。这个脚本重新编译全部为不可用状态的PL/SQL module,包括包(packages)、存储过程(procedures)、类型(types)。这是一个可选操作,但Oracle官方建议在安装后立即执行该脚本。

oracle用户执行以下命令

-bash-3.00sqlplus "/ AS SYSDBA"

SQL> @$ORACLE_HOME/rdbms/admin/utlrp.sql (SQL>@?/rdbms/admin/utlrp.sql,“?”就代表$ORACLE_HOMEs)

2.在两个RAC节点都备份spfile初始化参数文件

我认为安装完数据库,第一个应做的操作是先备份spfile文件的内容,我们把保存在共享阵列上的spfile二进制文件备份为RAC节点的本地的pfile文本文件(spfile创建pfile)。当RAC数据库系统因为参数出现问题,导致数据库不能启动,如在本地有个pfile的备份,问题就很容易解决。在11g Release 2中如果在建立完数据库后再配置GNS服务,remote_listener参数就经常出问题,导致数据库不能mount,在本地有pfile就很好解决。

如在节点1上创建pfile,先建个目录保存pfile (oracle用户)

-bash-3.00$ mkdir -p /export/home/OraFile/spfile_backup

-bash-3.00$ sqlplus / as sysdba

SQL> create pfile=’/export/home/OraFile/spfile_backup/initracdb1.ora’ from spfile=’+RACDB_DATA/racdb/spfileracdb.ora’;

提示文件创建,现在可以看一下其中的内容

-bash-3.00$ vi /export/home/OraFile/spfile_backup/initracdb1.ora

3.添加GNS服务

如果在安装Grid组件时,没有选择配置GNS服务,可以在建库后添加该服务,这里介绍一下。

(1) 要先安装DNSDHCP服务器;在RAC节点上启用DNS客户端功能,把/etc/hosts中的SCAN VIP和节点的VIP去掉 (前面已经介绍)

(2) 如果RAC数据库已经建立好了,在添加GNS服务前,要在两个RAC节点修改一下初始化参数remote_listener,把其设置为racnode-cluster-scan.racnode.com:1521否则启动数据库时可能出错。

在节点1执行以下操作(oracle用户),在操作前最好先备份spfileRAC节点本地。

-bash-3.00$ sqlplus / as sysdba

SQL> show parameter listen

SQL> alter system set remote_listener=’racnode-cluster-scan.racnode.com:1521’ sid=’racdb1’ scope=spfile;

节点2也做相同修改

-bash-3.00$ sqlplus / as sysdba

SQL> alter system set remote_listener=’racnode-cluster-scan.racnode.com:1521’ sid=’racdb2’ scope=spfile;

(3) 添加GNS服务,必须以root用户操作

-bash-3.00# cd /u01/app/11.2.0/grid/bin/

-bash-3.00# ./srvctl add gns -i 192.168.1.199 -d racnode1.racnode.com

解释一下-d后面的参数含义,该名称为“RAC节点名.GNS Sub Domain”GNS的域名是racnode.com,所以写racnode1.racnode.com;也可以写为racnode2.racnode.com;在前面的DNS服务器设置中,已经添加racnode1racnode2两个A记录。

当两个RAC节点中的一个fail时,该名称会自动切换,也可以用命令手工切换:

-bash-3.00# cd /u01/app/11.2.0/grid/bin/

-bash-3.00# ./srvctl relocate gns -n racnode2

修改SCAN信息

-bash-3.00# ./srvctl config scan (查看当前配置)

-bash-3.00# ./srvctl modify scan -n racnode-cluster-scan.racnode.com

-bash-3.00# ./srvctl config scan

再查看SCAN的配置就改变了

此时数据库还不能启动,还要改scan_listener

-bash-3.00# ./srvctl modify scan_listener -u (参数-u的含义是升级SCAN LISTENER以对应SCAN VIP)

验证SCAN的配置,grid用户

-bash-3.00# su - grid

-bash-3.00$ cluvfy comp scan -verbose

显示验证成功。

如果在启动数据库时报ORA-00119ORA-00132错误,主要原因因该是remote_listener参数没有修改,可以使用本地备份的pfile文件先启动数据库,把参数修改后再由pfile创建spfile到网路共享存储。

4.把数据库修改为归档模式 (archive mode)

(1) oracle用户在节点1登陆sqlplus

-bash-3.00$ sqlplus / as sysdba

SQL> alter system set cluster_database=false scope=spfile sid='racdb1';

System altered.

(2) 在所有RAC节点上关闭数据库

SQL> shutdown immediate;

(节点2上也执行shutdown immediate)

(3) 在节点1把数据库mount (启动到mount状态),修改为归档模式

SQL> startup mount;

SQL> alter database archivelog;

SQL> alter system set cluster_database=true scope=spfile sid='racdb1';

SQL> shutdown immediate;

(4) 在两个节点重新启动数据库到open状态,查看归档模式

SQL> startup;

(节点2上也执行startup;)

SQL> archive log list;

能显示以下两行代表正确

Database log mode Archive Mode

Automatic archival Enabled

5.修改数据库的系统表空间的大小,并建立一个用户和表空间

(1) 修改系统表空间

执行以下sql语句,检索出表空间的名称

-bash-3.00$ sqlplus / as sysdba

SQL> col tablespace_name format a12;

SQL> col file_name format a60;

SQL> select tablespace_name, file_name from dba_data_files

union

select tablespace_name, file_name from dba_temp_files;

TABLESPACE_N FILE_NAME

------------ ------------------------------------------------------------

EXAMPLE +RACDB_DATA/racdb/datafile/example.264.711918155

SYSAUX +RACDB_DATA/racdb/datafile/sysaux.257.711917583

SYSTEM +RACDB_DATA/racdb/datafile/system.256.711917577

TEMP +RACDB_DATA/racdb/tempfile/temp.263.711918123

UNDOTBS1 +RACDB_DATA/racdb/datafile/undotbs1.258.711917585

UNDOTBS2 +RACDB_DATA/racdb/datafile/undotbs2.265.711919153

USERS +RACDB_DATA/racdb/datafile/users.259.711917585

7 rows selected.

system, sysaux, temp3个表空间的大小修改为1G,把undotbs1, undotbs22个表空间大小修改为500M

SQL> Alter database datafile '+RACDB_DATA/racdb/datafile/system.256.711917577' resize 1G;

Database altered.

SQL> Alter database datafile '+RACDB_DATA/racdb/datafile/sysaux.257.711917583' resize 1G;

Database altered.

SQL> Alter database datafile '+RACDB_DATA/racdb/datafile/undotbs1.258.711917585' resize 500M;

Database altered.

SQL> Alter database datafile '+RACDB_DATA/racdb/datafile/undotbs2.265.711919153' resize 500M;

Database altered.

SQL> Alter database tempfile '+RACDB_DATA/racdb/tempfile/temp.263.711918123' resize 1G;

Database altered.

(2) scott用户解锁

-bash-3.00$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Fri Feb 26 02:22:09 2010

Copyright (c) 1982, 2009, Oracle. All rights reserved.

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production

With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,

Data Mining and Real Application Testing options

SQL> Alter user scott account unlock;

User altered.

SQL> Alter user scott identified by tiger;

User altered.

(3) 建立一个用户和表空间

-bash-3.00$ sqlplus / as sysdba

SQL> Create tablespace ts_front datafile ‘+RACDB_DATA’ size 300M autoextend on next 50M maxsize unlimited;

SQL> Create user front identified by front default tablespace ts_front;

SQL> Grant resource, connect, dba to front;

建立一个测试表

SQL> conn front/front;

SQL> create table t_test1 as select * from dba_objects;

SQL> select count(*) from t_test1;

应显示出记录数量

6.使用SCAN名称连接RAC集群数据库

SCAN11g第二版中的新功能,全称Single Client Access Name(唯一客户端访问名称),这使客户端程序访问RAC集群系统变得简单。下面先说一下SCAN连库的语法,这个我参考了官网上的文档,再分别看几个例子包括在Windows中用sqlplus远程连接RAC数据库时使用SCAN名称、在SQL Developer中用SCAN名称连接集群、在Spring框架的配置文件中用SCAN连接RAC数据库等。

我们先看一下服务器端上本地命名文件中的配置,其中就使用了SCAN名称,在11g R2之前的版本中要写入全部RAC节点的VIP

-bash-3.00$ cd $ORACLE_HOME/network/admin

-bash-3.00$ vi tnsnames.ora

显示以下内容:

RACDB =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = racnode-cluster-scan.racnode.com)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = racdb.racnode.com)

)

)

可以看到主机名使用了SCAN名称,服务名使用了全局名称(racdb.racnode.com)

在使用SCAN连接数据库之前,可以先测试一下SCAN能否连通,在Windows客户端执行C:>ping racnode-cluster-scan.racnode.com;如果不能ping通请检查该客户端的IP设置中DNS服务器是否指向了192.168.1.130,还有DNS服务是否正确。

(1) 查看SCAN名称的方法

我们在安装Grid组件是选择了配置GNS功能,并设置了SCAN的名称为racnode-cluster-scan.racnode.com,如果要查看一个RAC集群系统的SCAN名称有两方法,一个是在数据库的spfile中查询:

-bash-3.00# su - oracle

-bash-3.00$ sqlplus / as sysdba

SQL> show parameter remote_listener

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

remote_listener string racnode-cluster-scan.racnode.com:1521

如果在安装集群数据库之前就配置好了GNS服务,SCAN名称会保存在remote_listener参数中。第二个方法是:

-bash-3.00# su - grid

-bash-3.00$ srvctl config scan

SCAN name: racnode-cluster-scan.racnode.com, Network: 1/192.168.1.0/255.255.255.0/e1000g0

SCAN VIP name: scan1, IP: /racnode-cluster-scan.racnode.com/192.168.1.202

SCAN VIP name: scan2, IP: /racnode-cluster-scan.racnode.com/192.168.1.203

SCAN VIP name: scan3, IP: /192.168.1.204/192.168.1.204

或者执行对SCAN的校验

-bash-3.00# su - grid

-bash-3.00$ cluvfy comp scan -verbose

如果配置正确,也会显示出SCAN的名称。

(2) SCAN连接字符串的语法

使用jdbcthin驱动:jdbc:oracle:thin@SCAN_NAME:端口号/集群数据库的全局名称(或单建立的服务名称)

   

与普通的单实例系统的连接串:jdbc:oracle:thin@IP-Address:端口号:实例服务名,比较有标注的3点不同。

注意:要写全局名称,本次安装数据库时的全局名称是racdb.racnode.com(格式:SID.域名),写单独建立的服务名称也要加后缀域名(如:MYRAC.racnode.com)

具体的使用SCAN名称的连接串为:jdbc:oracle:thin@racnode-cluster-scan.racnode.com:1521/RACDB.racnode.com

(3) 一些使用SCAN连接数据库的例子

◆在Windows系统中,使用sqlplus远程连接数据库时,使用SCAN名称,命令为

C:> sqlplus 用户名/密码@SCAN_Name:端口号/集群数据库的全局名称,具体使用,如下面截图所示:

可以先在Net Manager中添加一个Net服务名,主机名写SCAN名称,但这不是必须的操作,使用上面的命令连接数据库时可以不配置网络服务名,这与11g R2以前的版本不同。

Windows命令行中使用sqlplus system/password@racnode-cluster-scan.racnode.com/racdb.racnode.com来连接远程集群数据库。

◆在SQL Developer中,使用SCAN名称连接远端的集群数据库,如下截图所示

◆在spring框架的配置文件中,使用SCAN名称

<bean id="DataSource_oraRAC" class="org.apache.commons.dbcp.BasicDataSource"destroy-method="close" >

<property name="driverClassName">

<value>oracle.jdbc.xa.client.OracleXADataSourcevalue>

property>

<property name=

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

请登录后发表评论 登录
全部评论

注册时间:2018-10-10

  • 博文量
    548
  • 访问量
    30659