CONTROLFILE.9701
ONLINELOG2006
ARCHIVELOG000
BACKUPPIECE000
IMAGECOPY000
FLASHBACKLOG000
(9)启动和停止应用程序资源。
遵循以下步骤启动和停止单独的应用程序资源。启动程序资源srvctl start nodeapps -n //在节点1启动nodeappssrvctl start nodeapps -n //在节点2启动nodeappssrvctl start asm -n //在节点1启动asmsrvctl start asm -n //在节点2启动asmsrvctl start database -d //启动databasesrvctl start service -d -s //启动数据库的服务crs_stat –t//确认程序资源的状态srvctl stop service -d -s //停止数据库的服务srvctl stop database -d //停止数据库srvctl stop asm -n //停止asmsrvctl stop asm -nsrvctl stop nodeapps -n //停止nodeappssrvctl stop nodeapps -ncrs_stat -t //确认程序资源的状态
11透明故障切换(TAF)
Oracle TAF中的故障切换机制使任何失败的数据库连接能够重新连接到集群中的其他节点。故障切换对用户是透明的。
创建一个新的数据库服务。
首先,创建一个名为CRM的新服务。可以使用DBCA或srvctl实用程序来创建数据库服务。
在节点1上,以oracle用户身份执行
$dbca
欢迎页面:选择Oracle Real Application Clusters database。
操作:选择Services Management。
集群数据库列表:单击Next。
数据库服务:单击Add。
添加服务:输入“CRM”。
选择节点1的gemni作为首选实例。
选择节点2的gemni作为可用实例。
TAF策略:选择Basic。
单击Finish。
数据库配置助手将在tnsnames.ora中创建以下CRM服务名项:
CRM =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = ds1-vip)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = ds2-vip)(PORT = 1521))
(LOAD_BALANCE = yes)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = CRM)
(FAILOVER_MODE =
(TYPE = SELECT)
(METHOD = BASIC)
(RETRIES = 180)
(DELAY = 5)
)
)
)
SQL> connect system/oracle@gemni
Connected.
SQL> show parameter service
NAMETYPEVALUE
------------------------------ ----------- ------------------------
service_namesstringgemni, CRM
没有CRM服务
SQL> connect system/oracle@gemni
Connected.
SQL> show parameter service
NAMETYPEVALUE
------------------------------ ----------- ------------------------
service_namesstringgemni
使用CRM服务连接第一个会话。
如果failover_type和failover_mode返回的输出为“NONE”,则验证是否在tnsnames.ora中正确配置了CRM服务。
SQL> connect system/oracle@crm
Connected.
SQL> select
2instance_number instance#,
3instance_name,
4host_name,
5status
6from v$instance;
INSTANCE# INSTANCE_NAMEHOST_NAMESTATUS
---------- ---------------- --------------------- ------------
1 gemnids1.mycorpdomain.com OPEN
SQL> select
2failover_type,
3failover_method,
4failed_over
5from v$session
6where username='SYSTEM';
FAILOVER_TYPE FAILOVER_METHOD FAILED_OVER
------------- --------------- ----------------
SELECTBASICNO
从其他会话中关闭该实例。
在CRM实例上以sys用户身份连接,并关闭该实例。
$export ORACLE_SID=gemni
$sqlplus / as sysdba
SQL> select
2instance_number instance#,
3instance_name,
4host_name,
5status
6from v$instance;
INSTANCE# INSTANCE_NAMEHOST_NAMESTATUS
---------- ---------------- --------------------- ------------
1 gemnids1.mycorpdomain.com OPEN
SQL> shutdown abort;//注意测试切换,需要用abort
ORACLE instance shut down.
验证会话已经完成故障切换。
从您先前打开的同一CRM会话执行以下查询,以验证该会话已经故障切换到其他实例。
SQL> select
2instance_number instance#,
3instance_name,
4host_name,
5 status
6from v$instance;
INSTANCE# INSTANCE_NAMEHOST_NAMESTATUS
---------- ---------------- --------------------- ------------
2 gemnids2.mycorpdomain.comOPEN
SQL> select
2failover_type,
3failover_method,
4failed_over
5from v$session
6where username='SYSTEM';
FAILOVER_TYPE FAILOVER_METHOD FAILED_OVER
------------- --------------- ----------------
SELECTBASICYES
将CRM服务重新定位到首选实例。
恢复节点1之后,CRM服务不会自动重新定位到首选实例。您必须手动将服务重新定位到节点1。
$export ORACLE_SID=gemni
$sqlplus / as sysdba
SQL> startup
ORACLE instance started.
Total System Global Area209715200 bytes
Fixed Size1218556 bytes
Variable Size104859652 bytes
Database Buffers100663296 bytes
Redo Buffers2973696 bytes
Database mounted.
Database opened.
SQL> show parameter service
NAMETYPEVALUE
------------------------------ ----------- ------------------------
service_namesstringgemni
$export ORACLE_SID=gemni
$sqlplus / as sysdba
SQL> show parameter service
NAMETYPEVALUE
------------------------------ ----------- ------------------------
service_namesstringgemni, CRM
$srvctl relocate service -d gemni -s crm -i ds2 -t ds1
SQL> connect system/oracle@gemni
Connected.
SQL> show parameter service
NAMETYPEVALUE
------------------------------ ----------- ------------------------
service_namesstringgemni, CRM
SQL> connect system/oracle@gemni
Connected.
SQL> show parameter service
NAMETYPEVALUE
------------------------------ ----------- ------------------------
service_namesstringgemni