📢📢📢📣📣📣
哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验
一位上进心十足的【大数据领域博主】!😜😜😜
中国DBA联盟(ACDU)成员,目前服务于工业互联网
擅长主流Oracle、MySQL、PG、高斯及Greenplum运维开发,备份恢复,安装迁移,性能优化、故障应急处理等。
✨ 如果有对【数据库】感兴趣的【小可爱】,欢迎关注【IT邦德】💞💞💞
❤️❤️❤️感谢各位大可爱小可爱!❤️❤️❤️
RAC One Node能提供高可用性优势中的Failover保护,为操作系统和Clusterware提供在线滚动升级。
📣 1.RAC One Node介绍
Oracle Real Application Clusters One Node(Oracle RAC One Node)是从
Oracle Database 11g release 2(11.2)起提供的Oracle Database Enterprise Edition
的一个选项。
Oracle RAC One Node是启用了Oracle RAC的数据库的单个实例,仅在正常操作下在群集中的一个节点上运行。
使用Oracle RAC One Node,服务器的可扩展性没有限制,如果应用程序需要的资源超过单个节点所能提供的资源,则您可以将应用程序联机升级到Oracle RAC。
如果运行Oracle RAC One Node的节点过载,则可以将实例重新定位到群集中的另一个节点。使用Oracle RAC One Node,您可以使用在线数据库重新定位功能来重新定位数据库实例,而不会让应用程序用户停机。或者,您可以使用Resource Manager实例缓存来限制集群中每个服务器的单个数据库实例的CPU消耗,并在必要时根据需求场景动态更改此限制。
使用单一客户端访问名称(SCAN)连接到数据库,客户端可以独立于运行服务的节点来定位服务。因此,重新定位Oracle RAC One Node实例对客户端来说基本上是透明的,具体取决于客户端连接.
📣 2.创建RAC One Node
可以使用DBCA创建Oracle RAC One Node数据库或者手动创建的脚本也是可以的
Oracle RAC单节点数据库也可能是从单个实例Oracle数据库或Oracle RAC数据库
转换而来的结果。通常,Oracle提供的工具会向Oracle Clusterware注册Oracle RAC单节点数据库
如果您的Oracle RAC One Node数据库没有自动向Oracle Clusterware注册,请使用srvctl add database命令将Oracle RAC One Node数据库添加到集群中。
$ srvctl add database -dbtype
RACONENODE [-server server_list]
[-instance instance_name] [-timeout timeout]
📣 3.RAC切换到RAC One Node
在将Oracle RAC数据库转换为Oracle RAC单节点数据库之前,必须首先确保Oracle RAC数据库只有一个实例。如果您的Oracle RAC数据库由管理员管理,并且有多个实例,则必须使用srvctl remove instance命令删除除一个实例以外的所有实例。如果您的Oracle RAC数据库是策略管理的,并且有多个实例,则必须使用srvctl stop instance命令停止除一个实例以外的所有实例。
Related Topics
1.srvctl remove instance
2.srvctl stop instance
3.srvctl convert database
✨ 3.1 查看资源状态
[root@rac01 ~]$ crsctl status res -t
从这里看到,数据库的名字叫racdb
✨ 3.2.查看实例
[oracle@rac01 ~]$ srvctl status database -d racdb
Instance racdb1 is running on node rac01
Instance racdb2 is running on node rac02
✨ 3.3 查看数据库详细信息
[oracle@rac01 ~]$ srvctl config database -d racdb
Database unique name: racdb
Database name: racdb
Oracle home: /u01/app/oracle/product/19.0.0/dbhome_1
Oracle user: oracle
Spfile: +DATA/RACDB/PARAMETERFILE/spfile.268.1159380643
Password file: +DATA/RACDB/PASSWORD/pwdziprodb.256.1159380269
Domain:
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools:
Disk Groups: ARCH,DATA
Mount point paths:
Services:
Type: RAC
Start concurrency:
Stop concurrency:
OSDBA group: dba
OSOPER group: oper
Database instances: racdb1,racdb2
Configured nodes: rac01,rac02
CSS critical: no
CPU count: 0
Memory target: 0
Maximum memory: 0
Default network number for database services:
Database is administrator managed
从上图中,可以看到数据库名,
oracle_home,实例名,以及重要的TYPE为RAC
✨ 3.4.删除实例
只留下一个,RACOneNode只有一个实例是活动状态
[oracle@rac01 ~]$ srvctl remove instance -d racdb -i rac02 -f
说明:加上-f参数可以强制关闭实例并将实例删除
✨ 3.5 新增service
如果不新增service,无法进行转换
[oracle@rac01 ~]$ srvctl add service -h
–查看新增service的帮助
[oracle@rac1 ~]$ srvctl add service -d prodb -s rac -r rac01 -P BASIC
-e SELECT -m BASIC -y AUTOMATIC
[oracle@rac01 ~]$ srvctl start service -d racdb -s rac
说明:service名字为rac,TFA类型为BASIC
✨ 3.6 转换为RAC One Node
[oracle@rac01 ~]$ srvctl convert database -d racdb -c RACONENODE -i rac01
✨ 3.7 再次查看状态
[oracle@rac01 ~]$ srvctl config database -d racdb
这里可以看到TYPE是RACOneNode。
Instance name prefix是实例的前缀,
后续会生成racdb1_1和racdb1_2实例
✨ 3.8 测试一下HA
[oracle@rac01 ~]$ srvctl relocate database -d racdb -n rac02
[oracle@rac01 ~]$ srvctl relocate database -d racdb -n rac01
📣 4.RAC One Node切换到RAC
通过以Oracle RAC One Node数据库所有者的身份登录
并输入以下SRVCTL命令,
srvctl convert database -db db_unique_name -dbtype RAC
您可以将Oracle RAC One Node数据库转换为Oracle RAC数据库
✨ 4.1 进行转换
[oracle@rac01 ~]$ srvctl convert database -d racdb -c rac
✨ 4.2 查看数据库信息
[oracle@rac01 ~]$ srvctl config database -d racdb
从这里可以看到TYPE是RAC
✨ 4.3.新增实例
[oracle@rac01 ~]$ srvctl add instance -d racdb -i racdb1_2 -n rac02
✨ 4.4 启动实例
[oracle@rac01 ~]$ srvctl start instance -d racdb -i racdb1_2
✨ 4.5 再次查看数据库的状态
[oracle@rac01 ~]$ srvctl config database -d racdb
📣 5.其他事项
✨ 5.1 RAC的SPFILE
在实际工作中,发现有一些RAC实例的SPFILE是在各自的ORACLE_HOME/dbs下,现在想将其修改到共享目录(asm磁盘)中
1.将spfile建入共享目录中
create pfile-‘/tmp/pfile.txt’ from spfile;
create spfile=‘+DATA/racdb/spfileracdb.ora’
from pfile=‘/tmp/pfile.txt’;
2.将spfile的路径写入
ORACLE_HOME/dbs/initracdb1.ora
ORACLE_HOME/dbs/initracdb2.ora
[oracle@rac01 ~]$ vi initracdb1.ora
SPFILE='+DATA/racdb/spfileracdb.ora'
[oracle@rac02 ~]$ vi initracdb2.ora
----------------------------------
SPFILE='+DATA/racdb/spfileracdb.ora'
----------------------------------
3.同步到RAC集群的配置文件
srvctl modify database -d racdb -p ‘+DATA/racdb/spfileracdb.ora’
4.重启实例
srvctl stop instance -d racdb -i racdb2
srvctl start instance -d racdb -i racdb2
srvctl stop instance -d racdb -i racdb1
srvctl start instance -d racdb -i racdb1
✨ 5.2 转换后启动报错
在启动racdb2的时候,可能会报如下错误
ORA-01102: cannot mount database in EXCLUSIVE mode
这是需要修改参数cluster_database=true即可
alter system set cluster_database=true sid=‘*’ scope=spfile;
–查看数据库状态
srvctl config database -d racdb
📣 6.总结
RAC One Node它能提供高可用性优势中的Failover保护,为操作系统和Clusterware提供在线滚动升级。它搭建在标准的RAC框架之上。RAC和RAC One Node之间也可以非常方便的相互转换.文章来源:https://www.toymoban.com/news/detail-852968.html
由于在执行RAC One Node联机迁移的时候需要用到TAF的功能,所以需要创建一个Service。在选择节点上,应至少选择两个节点,以便在发生故障时实现实例联机的Failover。Failover的时候,当Service被迁移到新节点之后,原来的实例被以 shutdown transactional的模式关闭。文章来源地址https://www.toymoban.com/news/detail-852968.html
到了这里,关于Oracle RAC One Node,双胞胎变独生子?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!