11gR2 RAC手动添加节点数据库实例

简介:         两台服务器构成的Oracle 11gR2 RAC环境中,其中rac1服务器的私有网卡需要更换,所以在rac2服务器上使用dbca创建数据库的时候只创建了本节点的数据库实例(oracledb1)。

        两台服务器构成的Oracle 11gR2 RAC环境中,其中rac1服务器的私有网卡需要更换,所以在rac2服务器上使用dbca创建数据库的时候只创建了本节点的数据库实例(oracledb1)。当rac1服务器私有网卡更换成功,在rac1服务器执行dbca图形化"add Instance"和执行dbca -silent命令添加实例,都收到下面的报错:

[oracle@rac1 ~]$ dbca -silent -addInstance -gdbName oracledb -nodelist rac1 -instanceName oracledb2 -sysDBAUserName sys -sysDBAPassword oracle_Schic1 
Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/oracledb.log" for further details.

[oracle@rac1 ~]$ cat /u01/app/oracle/cfgtoollogs/dbca/oracledb.log
"Adding instance" operation on the admin managed database oracledb requires instance configured on local node. There is no instance configured on the local node "rac1".

        该操作放在现有的RAC节点rac2上执行应该就可以了。不过下面我们继续讨论手动在rac1上添加oracledb2实例的步骤:

        由于rac2运行着oracledb1实例,所以这里先添加rac1的oracledb2实例,之后再做调整。

1.尝试直接在rac1上启动oracledb2实例。

[root@rac1 bin]# su - oracle
[oracle@rac1 ~]$ export ORACLE_SID=oracledb2
[oracle@rac1 ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.3.0 Production on Fri Nov 9 02:29:36 2012

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

Connected to an idle instance.

SQL> startup
ORA-29760: instance_number parameter not specified

         instance_number的内容参考文章:http://space.itpub.net/23135684/viewspace-748572

2.确保rac1的ASM实例加载了相关磁盘组。

[root@rac2 bin]# ./crsctl stat res -t
--------------------------------------------------------------------------------
NAME           TARGET  STATE        SERVER                   STATE_DETAILS       
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.ARCH.dg
               OFFLINE OFFLINE      rac1                                         
               ONLINE  ONLINE       rac2                                         
ora.DATA.dg
               OFFLINE OFFLINE      rac1                                         
               ONLINE  ONLINE       rac2                                         
......
ora.asm
               ONLINE  ONLINE       rac1                     Started             
               ONLINE  ONLINE       rac2                     Started             
......
ora.oracledb.db
      1        ONLINE  ONLINE       rac2                     Open                
......
[root@rac2 bin]# ./srvctl start diskgroup -g data -n rac1
[root@rac2 bin]# ./srvctl start diskgroup -g arch -n rac1
[root@rac2 bin]# ./crsctl stat res -t
--------------------------------------------------------------------------------
NAME           TARGET  STATE        SERVER                   STATE_DETAILS       
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.ARCH.dg
               ONLINE  ONLINE       rac1                                         
               ONLINE  ONLINE       rac2                                         
ora.DATA.dg
               ONLINE  ONLINE       rac1                                         
               ONLINE  ONLINE       rac2                                         
......                                    

3.调整RAC参数文件。

[root@rac2 bin]# su - oracle
[oracle@rac2 ~]$ export ORACLE_SID=oracledb1
[oracle@rac2 ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.3.0 Production on Fri Nov 9 02:34:18 2012

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


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options

SQL> create pfile='/tmp/opfile.txt' from spfile='+DATA/oracledb/spfileoracledb.ora';

File created.

SQL> !vi /tmp/opfile.txt

oracledb1.__db_cache_size=60263759872
oracledb1.__java_pool_size=134217728
oracledb1.__large_pool_size=134217728
oracledb1.__pga_aggregate_target=39728447488
oracledb1.__sga_target=68719476736
oracledb1.__shared_io_pool_size=0
oracledb1.__shared_pool_size=7784628224
oracledb1.__streams_pool_size=0
*.audit_file_dest='/u01/app/oracle/admin/oracledb/adump'
*.audit_trail='db'
*.cluster_database=true
*.compatible='11.2.0.0.0'
*.control_files='+DATA/oracledb/controlfile/current.260.798857565'
*.db_block_size=8192
*.db_create_file_dest='+DATA'
*.db_domain=''
*.db_name='oracledb'
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=oracledbXDB)'
oracledb1.instance_number=1
oracledb2.instance_number=2
*.log_archive_dest_1='LOCATION=+arch'
*.log_archive_format='%t_%s_%r.dbf'
*.open_cursors=300
*.pga_aggregate_target=39625687040
*.processes=5000
*.remote_listener='wstrac.scan.com:1521'
*.remote_login_passwordfile='exclusive'
*.sessions=5505
*.sga_target=68719476736
oracledb1.thread=1
oracledb2.thread=2
oracledb1.undo_tablespace='UNDOTBS1'
oracledb2.undo_tablespace='UNDOTBS2'
~
"/tmp/opfile.txt" 34L, 1103C written

        上面加红的部分是新增加的内容。

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> create spfile='+DATA/oracledb/spfileoracledb.ora' from pfile='/tmp/opfile.txt';

File created.
SQL> startup
ORACLE instance started.

Total System Global Area 6.8413E+10 bytes
Fixed Size                  2245480 bytes
Variable Size            8053066904 bytes
Database Buffers         6.0264E+10 bytes
Redo Buffers               93609984 bytes
Database mounted.
Database opened.

        增加的参数的含义也参考文章:http://space.itpub.net/23135684/viewspace-748572

4.确保创建了UNDOTBS2表空间。

SQL> select file_id,file_name from dba_data_files;

   FILE_ID
----------
FILE_NAME
--------------------------------------------------------------------------------
         4
+DATA/oracledb/datafile/users.259.798857305

         3
+DATA/oracledb/datafile/undotbs1.258.798857305

         2
+DATA/oracledb/datafile/sysaux.257.798857305


   FILE_ID
----------
FILE_NAME
--------------------------------------------------------------------------------
         1
+DATA/oracledb/datafile/system.256.798857305

         5
+DATA/oracledb/datafile/undotbs2.266.798863859


5.再次尝试启动rac1上的oracledb2实例。

SQL> startup
ORACLE instance started.

Total System Global Area 6.8413E+10 bytes
Fixed Size                  2245480 bytes
Variable Size            6979325080 bytes
Database Buffers         6.1338E+10 bytes
Redo Buffers               93609984 bytes
ORA-01618: redo thread 2 is not enabled - cannot mount
        需要启用 redo thread 2。

6.启用redo thread 2。

        以下的操作一定在现存的RAC节点实例上执行(在添加的节点上无法执行),也就是说在rac2节点的oracledb1实例上执行以下命令:

SQL> ALTER DATABASE  
  2      ADD LOGFILE THREAD 2 GROUP 4  
  3          ('+DATA') SIZE 256M;

Database altered.

SQL> ALTER DATABASE  
  2      ADD LOGFILE THREAD 2 GROUP 5  
  3          ('+DATA') SIZE 256M;

Database altered.

SQL> ALTER DATABASE  
  2      ADD LOGFILE THREAD 2 GROUP 6  
  3          ('+DATA') SIZE 256M;

Database altered.

SQL>  alter database enable thread 2;

Database altered.

        要启动thread 2,必须先为thread 2创建好日志组。

        参考文章:http://space.itpub.net/7199859/viewspace-663572

7.加载rac1 oracledb2实例并打开数据库。

SQL> alter database mount; 

Database altered.

SQL> alter database open;

Database altered.

        经过以上的步骤,成功为rac1节点添加了oracledb2实例。

8.将实例信息添加到OCR中。

[root@rac1 bin]# su - oracle
[oracle@rac1 ~]$ srvctl add instance -d oracledb -i oracledb2 -n rac1
[oracle@rac1 ~]$ srvctl status database -d oracledb
Instance oracledb2 is not running on node rac1
Instance oracledb1 is running on node rac2
[oracle@rac1 ~]$ srvctl start instance -d oracledb -i oracledb2
[oracle@rac1 ~]$ srvctl status database -d oracledb
Instance oracledb2 is running on node rac1
Instance oracledb1 is running on node rac2

9.调整OCR中实例运行节点。

        经过上面的添加后,rac1运行着oracledb2实例,rac2运行着oracledb1实例,执行下面的步骤,使得rac1运行oracledb1实例,rac2运行oracledb2实例。

[oracle@rac1 ~]$ srvctl stop database -d oracledb
[oracle@rac1 ~]$ srvctl remove instance -d oracledb -i oracledb1
Remove instance from the database oracledb? (y/[n]) y
[oracle@rac1 ~]$ srvctl remove instance -d oracledb -i oracledb2
Remove instance from the database oracledb? (y/[n]) y
[oracle@rac1 ~]$ srvctl add instance -d oracledb -i oracledb1 -n rac1
[oracle@rac1 ~]$ srvctl add instance -d oracledb -i oracledb2 -n rac2
[oracle@rac1 ~]$ srvctl start database -d oracledb
[oracle@rac1 ~]$ srvctl status database -d oracledb
Instance oracledb1 is running on node rac1
Instance oracledb2 is running on node rac2
[oracle@rac1 ~]$ srvctl enable database -d oracledb
PRCC-1010 : oracledb was already enabled
PRCR-1002 : Resource ora.oracledb.db is already enabled
[oracle@rac1 ~]$ srvctl enable instance -d oracledb -i oracledb1
[oracle@rac1 ~]$ srvctl enable instance -d oracledb -i oracledb2


--end--

相关文章
|
25天前
|
存储 监控 安全
数据库多实例的部署与配置方法
【10月更文挑战第23天】数据库多实例的部署和配置需要综合考虑多个因素,包括硬件资源、软件设置、性能优化、安全保障等。通过合理的部署和配置,可以充分发挥多实例的优势,提高数据库系统的运行效率和可靠性。在实际操作中,要不断总结经验,根据实际情况进行调整和优化,以适应不断变化的业务需求。
|
25天前
|
负载均衡 网络协议 数据库
选择适合自己的数据库多实例负载均衡技术
【10月更文挑战第23天】选择适合自己的数据库多实例负载均衡技术需要全面考虑多种因素。通过深入的分析和评估,结合自身的实际情况,能够做出明智的决策,为数据库系统的高效运行提供有力保障。
108 61
|
25天前
|
存储 负载均衡 监控
数据库多实例的深入解析
【10月更文挑战第24天】数据库多实例是一种重要的数据库架构方式,它为数据库的高效运行和灵活管理提供了多种优势。在实际应用中,需要根据具体的业务需求和技术环境,合理选择和配置多实例,以充分发挥其优势,提高数据库系统的性能和可靠性。随着技术的不断发展和进步,数据库多实例技术也将不断完善和创新,为数据库管理带来更多的可能性和便利。
93 57
|
25天前
|
缓存 负载均衡 监控
数据库多实例的负载均衡技术深入
【10月更文挑战第23天】数据库多实例负载均衡技术是确保数据库系统高效运行的重要手段。通过合理选择负载均衡策略、实时监控实例状态、不断优化调整,能够实现资源的最优分配和系统性能的提升。在实际应用中,需要根据具体情况灵活运用各种负载均衡技术,并结合其他相关技术,以满足不断变化的业务需求。
|
14天前
|
关系型数据库 MySQL 数据库
【赵渝强老师】启动与关闭MySQL数据库实例
MySQL数据库安装完成后,可以通过命令脚本启动、查看状态、配置开机自启、查看自启列表及关闭数据库。本文提供了详细的操作步骤和示例代码,并附有视频讲解。
|
1月前
|
关系型数据库 MySQL Java
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
这篇文章是关于如何使用Django框架配置MySQL数据库,创建模型实例,并自动或手动创建数据库表,以及对这些表进行操作的详细教程。
66 0
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
|
1月前
|
SQL Shell 数据库
在TDengine容器中创建初始化数据库的Shell命令实例
以上就是在Docker容器环境中部署并初始化TDengine数据库的全过程,希望对你有所帮助。
66 0
|
3月前
|
SQL Java 关系型数据库
应用DriverManager类创建sqlserver数据库连接实例 JSP中使用数据库
该博客文章介绍了在JSP中使用JDBC连接SQL Server数据库的方法,包括加载数据库驱动、建立数据库连接的过程,并提供了一个使用DriverManager类创建数据库连接的Java示例代码。
|
4月前
|
存储 关系型数据库 分布式数据库
PolarDB产品使用问题之如何将数据库从一个PolarDB实例导入到另一个PolarDB实例
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
|
3月前
|
存储 Serverless API
Serverless 架构实现弹幕场景问题之在initializer方法中初始化数据库实例如何解决
Serverless 架构实现弹幕场景问题之在initializer方法中初始化数据库实例如何解决
30 0
下一篇
无影云桌面