删除mysql多个实例_多实例数据库删除实例

需要说明一下,这篇文章不是介绍如何完整的删除包括CLUSTER在内的RAC环境,而只是在数据库层介绍如何删除一个实例。

和添加实例一样,这个步骤也包括手工方式和工具方式两种。

不过利用工具删除实例是非常简单的,通过dbca启动图形界面,然后选择CLUSTER选项,并选择管理实例,然后选择删除实例。输入SYS用户和密码,选择要删除实例的数据库,连接后选择要删除的实例,就可以了。工具会完成剩下所有的操作,包括实例的删除,删除这个实例对应的表空间以及重做日志,修改初始化参数,以及从srvctl命令中删除实例信息等等。

唯一需要注意的是,在选择数据库并提供SYS登陆方式时,需要确保数据库可以通过NET服务以SYSDBA权限连接到数据库上。对于RAC环境,一般监听注册的是VIP地址,这里需要手工将PUBLIC IP地址添加的监听地址中,并重启监听。

因此通过工具来删除实例是很容易的,这里主要讨论手工方式删除实例,其实这个步骤也不是很复杂,基本上是添加实例的一个逆操作而已:

bash-3.00$ export ORACLE_SID=test1

bash-3.00$ sqlplus "/ as sysdba"

SQL*Plus: Release 11.1.0.6.0 - Production on星期一4月20 18:45:42 2009

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

连接到:

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

With the Partitioning, Real Application Clusters, OLAP, Data Mining

and Real Application Testing options

SQL> show parameter spfile

NAME                                 TYPE        VALUE

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

spfile                               string      +DATA/test/spfiletest.ora

SQL> show parameter cluster_database

NAME                                 TYPE        VALUE

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

cluster_database                     boolean     TRUE

cluster_database_instances           integer     2

SQL> select instance_name from gv$instance;

INSTANCE_NAME

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

test1

test2

首先关闭节点2上的实例:

SQL> select instance_name from gv$instance;

INSTANCE_NAME

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

test1

test2

SQL> host

$ srvctl stop inst -d test -i test2

$ exit

SQL> select instance_name from gv$instance;

INSTANCE_NAME

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

test1

取消所有实例2设置的初始化参数:

SQL> ALTER SYSTEM SET CLUSTER_DATABASE_INSTANCES = 1 SCOPE = SPFILE;

系统已更改。

SQL> ALTER SYSTEM RESET INSTANCE_NUMBER SCOPE = SPFILE SID = 'test2';

系统已更改。

SQL> ALTER SYSTEM RESET THREAD SCOPE = SPFILE SID = 'test2';

系统已更改。

SQL> ALTER SYSTEM RESET UNDO_TABLESPACE SCOPE = SPFILE SID = 'test2';

系统已更改。

去掉实例2所使用的重做日志和撤销表空间:

SQL> ALTER DATABASE DISABLE THREAD 2;

数据库已更改。

SQL> ALTER DATABASE DROP LOGFILE GROUP 4;

数据库已更改。

SQL> ALTER DATABASE DROP LOGFILE GROUP 5;

数据库已更改。

SQL> ALTER DATABASE DROP LOGFILE GROUP 6;

数据库已更改。

SQL> DROP TABLESPACE UNDOTBS2 INCLUDING CONTENTS AND DATAFILES;

表空间已删除。

至此数据库部分的实例清除已经完成。对于2节点RAC而言,删除一个实例后,可以将CLUSTER_DATABASE初始化参数设置为FALSE,不过这需要实例重启后才能生效:

SQL> EXIT从Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production

With the Partitioning, Real Application Clusters, OLAP, Data Mining

and Real Application Testing options断开bash-3.00$ srvctl remove instance -d test -i test2

Remove instance test2 from the database test? (y/[n]) y

清除srvctl中test2实例信息。

最后可以根据需要重新设置监听和TNSNAMES.ORA中的配置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值