1 MGMTDB 说明
在Oracle 12.1.0.1 的Grid Infrastructure 的安装中,可以选择是否安装Grid Infrastructure Management Repository (GIMR) 数据库:MGMTDB. 如下图:
在Grid Infrastructure 12.1.0.2 中,已经没有改选项,MIMR 数据库已经变成了强制选项。
在Oracle 12c 中Management Database 用来Cluster Health Monitor(CHM/OS,ora.crf) ,Oracle Database QoS Management,Rapid Home Provisioning和其他的数据。
Management Repository 是受12c Clusterware 管理的一个单实例,在Cluster 启动的时会启动MGMTDG并在其中一个节点上运行,并受GI 管理,如果运行MGMTDG的节点宕机了,GI 会自动把MGMTDB 转移到其他的节点上。
默认情况,MGMTDB 数据库的数据文件存放在共享的设备,如OCR/Voting 的磁盘组中,但后期可以移动位置。
在12.1.0.1 中,GIMR 是可选的,如果在安装GI的时候,没有选择Management Database 数据库,那么所有依赖的特性,如Cluster Health Monitor (CHM/OS) 就会被禁用。
当然,在12.1.0.2 中,可以忽略这个问题,因为是强制安装GIMR了。
另外,对于MGMT 数据库,在目前的版本中,也不需要手工对其进行备份。
2 MGMTDB 基本操作
2.1 查看Management DB 相关的资源:
[root@rac1 ~]# crsctl stat res -t -------------------------------------------------------------------------------- Name Target State Server State details -------------------------------------------------------------------------------- Local Resources -------------------------------------------------------------------------------- …… ora.MGMTLSNR 1 ONLINE ONLINE rac2 169.254.142.79 192.1 68.57.6,STABLE ora.mgmtdb 1 ONLINE ONLINE rac2 Open,STABLE …… [root@rac1 ~]#
使用crsctl 命令可以看到ora.mgmtdb 和ora.MGMTLSNR。
在操作系统层面,也可以查看到有2个对应的进程:
[root@rac2 ~]# ps -ef| grep pmon_-MGMTDB grid 7452 1 0 14:59 ? 00:00:00 mdb_pmon_-MGMTDB root 7756 7727 0 15:02 pts/4 00:00:00 grep pmon_-MGMTDB [root@rac2 ~]# ps -ef| grep MGMTLSNR grid 7411 1 0 14:58 ? 00:00:00 /u01/gridsoft/12.1.0/bin/tnslsnr MGMTLSNR -no_crs_notify -inherit root 7758 7727 0 15:02 pts/4 00:00:00 grep MGMTLSNR [root@rac2 ~]#
2.2 启动和关闭MGMT
正常情况下,MGMTDB 会在GI 启动的时候,会自动启动,但也可以手工管理,直接使用srvctl 操作即可:
Usage: srvctl start mgmtdb [-startoption
Usage: srvctl start mgmtlsnr [-node
2.3 查看Management Database 的log 和trace 文件
一般情况下,是不需要查看MGMT DB的trace的,如果要查看,用如下命令:
[grid@rac2 _mgmtdb]$ pwd /u01/gridbase/diag/rdbms/_mgmtdb [grid@rac2 _mgmtdb]$ ls i_1.mif -MGMTDB [grid@rac2 _mgmtdb]$
进入$ORACLE_BASE下的trace目录。 但是进入-MGMTDB时,要注意,不能直接cd:
[grid@rac2 _mgmtdb]$ cd -MGMTDB -bash: cd: -M: invalid option cd: usage: cd [-L|-P] [dir] [grid@rac2 _mgmtdb]$
必须使用./-MGMTDB,如:
[grid@rac2 _mgmtdb]$ cd ./-MGMTDB [grid@rac2 -MGMTDB]$ ls alert hm incpkg lck metadata metadata_pv sweep cdump incident ir log metadata_dgif stage trace [grid@rac2 -MGMTDB]$ [grid@rac2 trace]$ pwd /u01/gridbase/diag/rdbms/_mgmtdb/-MGMTDB/trace [grid@rac2 trace]$ ls alert_-MGMTDB.log -MGMTDB_ckpt_4772.trm -MGMTDB_lgwr_7475.trc -MGMTDB_m001_10288.trm -MGMTDB_ora_10486.trc -MGMTDB_p001_5645.trm cdmp_20140807064254 -MGMTDB_ckpt_7477.trc -MGMTDB_lgwr_7475.trm -MGMTDB_m001_10330.trc -MGMTDB_ora_10486.trm -MGMTDB_p001_7523.trc cdmp_20141208110548 -MGMTDB_ckpt_7477.trm -MGMTDB_m000_10101.trc -MGMTDB_m001_10330.trm -MGMTDB_ora_10830.trc -MGMTDB_p001_7523.trm cdmp_20141208110550 -MGMTDB_dbrm_4764.trc -MGMTDB_m000_10101.trm -MGMTDB_m001_8055.trc -MGMTDB_ora_10830.trm -MGMTDB_rbal_10460.trc cdmp_20141208110553 -MGMTDB_dbrm_4764.trm -MGMTDB_m000_10202.trc -MGMTDB_m001_8055.trm -MGMTDB_ora_3770.trc -MGMTDB_rbal_10460.trm cdmp_20141208110555 -MGMTDB_dbrm_7469.trc -MGMTDB_m000_10202.trm -MGMTDB_mark_10484.trc -MGMTDB_ora_3770.trm -MGMTDB_rbal_4782.trc
MGMT DB 的日志和trace 都在这个里。
3 MGMTDB是带一个PDB的CDB实例
前面说了,MGMTDB 是一个实例,实际上,MGMTDB是带一个PDB的CDB库,我们可以使用GI的命令直接去操作MGMTDB 对应的PDB。
--启动MGMTDB: [root@rac1 ~]# srvctl status mgmtdb Database is enabled Database is not running. [root@rac1 ~]# srvctl start mgmtdb [root@rac1 ~]# [root@rac1 ~]# srvctl status mgmtdb Database is enabled Instance -MGMTDB is running on node rac1 [root@rac1 ~]# --查看MGMTDB当前节点: [grid@rac2 /]$ oclumon manage -get master Master = rac1 --查看状态: [grid@rac2 /]$ srvctl status mgmtdb Database is enabled Instance -MGMTDB is running on node rac2 --查看配置信息: [grid@rac2 /]$ srvctl config mgmtdb Database unique name: _mgmtdb Database name: Oracle home: /u01/gridsoft/12.1.0 Oracle user: grid Spfile: +OCR_VOTING/_mgmtdb/spfile-MGMTDB.ora Password file: Domain: Start options: open Stop options: immediate Database role: PRIMARY Management policy: AUTOMATIC Database instance: -MGMTDB Type: Management --连接MGMTDB实例 [grid@rac2 /]$ export ORACLE_SID=-MGMTDB [grid@rac2 /]$ sqlplus / as sysdba SQL*Plus: Release 12.1.0.1.0 Production on Mon Dec 8 15:24:37 2014 Copyright (c) 1982, 2013, Oracle. All rights reserved. Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production With the Partitioning, Automatic Storage Management and Advanced Analytics options SQL> select file_name from dba_data_files union select member file_name from V$logfile; FILE_NAME -------------------------------------------------------------------------------- +OCR_VOTING/_MGMTDB/DATAFILE/sysaux.258.854939615 +OCR_VOTING/_MGMTDB/DATAFILE/sysgridhomedata.261.854939891 +OCR_VOTING/_MGMTDB/DATAFILE/sysmgmtdata.260.854939737 +OCR_VOTING/_MGMTDB/DATAFILE/system.259.854939661 +OCR_VOTING/_MGMTDB/DATAFILE/undotbs1.257.854939605 +OCR_VOTING/_MGMTDB/ONLINELOG/group_1.263.854940051 +OCR_VOTING/_MGMTDB/ONLINELOG/group_2.264.854940053 +OCR_VOTING/_MGMTDB/ONLINELOG/group_3.265.854940057 8 rows selected. 这里查询的是MGMTDB的路径,也可以直接用如下命令查询: [grid@rac2 /]$ oclumon manage -get reppath CHM Repository Path = +OCR_VOTING/_MGMTDB/DATAFILE/sysmgmtdata.260.854939737 [grid@rac2 /]$ --查询MGMTDB用户: SQL> select username,account_status from dba_users where username like 'CH%'; USERNAME ACCOUNT_STATUS ------------- ---------------- CHM OPEN CHA OPEN
4 移动MGMTDB 数据文件位置
默认情况下,MGMTDB 的数据文件是存放在OCR voting disk的磁盘组里的,为了节省OCR 磁盘组空间,我们也可以把MGMTDB 转移走。
当然,这里的移动位置,也是从一个共享位置移动到另一个共享位置。
具体操作如下。
在12.1.0.1 版本中有有问题,升级到12.1.0.2 解决。
4.1 停止并禁用ora.crf 资源
这里的ora.crf就是CHM。
在所有节点使用root用户执行如下命令:
[root@rac1 ~]# crsctl stop res ora.crf -init CRS-2673: Attempting to stop 'ora.crf' on 'rac1' CRS-2677: Stop of 'ora.crf' on 'rac1' succeeded [root@rac1 ~]# crsctl modify res ora.crf -attr ENABLED=0 -init [root@rac1 ~]# [root@rac2 ~]# crsctl stop res ora.crf -init CRS-2673: Attempting to stop 'ora.crf' on 'rac2' CRS-2677: Stop of 'ora.crf' on 'rac2' succeeded [root@rac2 ~]# crsctl modify res ora.crf -attr ENABLED=0 -init [root@rac2 ~]# 注意:ora.mgmtlsnr 和 ora.mgmtdb 资源不能停,否则DBCA 时会报错。
4.2 执行DBCA 删除management database
--查看MGMTDB的运行节点:
[root@rac1 ~]# srvctl status mgmtdb Database is enabled Instance -MGMTDB is running on node rac2
这里显示在节点2上运行,那么在节点2上,用grid用户,执行dbca 命令,删除MGMTDB。
[grid@rac2 ~]$ dbca -silent -deleteDatabase -sourceDB -MGMTDB Connecting to database 4% complete 9% complete 14% complete 19% complete 23% complete 28% complete 47% complete Updating network configuration files 48% complete 52% complete Deleting instance and datafiles 76% complete 100% complete Look at the log file "/u01/gridbase/cfgtoollogs/dbca/_mgmtdb.log" for further details. [grid@rac2 ~]$
注意:
如果是使用DBCA 手工创建的MGMTDB,则可能出现不能删除的情况,具体处理过程可以参考MOS: 1631336.1。
4.3 重建MGMTDB的CDB
4.3.1 12.1.0.1 执行如下命令
用grid用户,在任意节点,执行如下命令,重建CDB。
$
注意:
这里新的磁盘组,建议compatible.asm 和 compatible.rdbms 属性都设置为12.1。
上面的命令使用的是磁盘组,如果是使用共享的NFS/CFS, 则使用如下命令:
我们这里数据库版本是12.1.0.1,并且使用的是磁盘组,所以执行第一个命令:
[grid@rac1 /]$ dbca -silent -createDatabase -templateName MGMTSeed_Database.dbc -sid -MGMTDB -gdbName _mgmtdb -storageType ASM -diskGroupName OCR -datafileJarLocation /u01/gridsoft/12.1.0/assistants/dbca/templates -characterset AL32UTF8 -autoGeneratePasswords -oui_internal Copying database files 1% complete 3% complete 10% complete 17% complete 24% complete 31% complete 35% complete Creating and starting Oracle instance 37% complete 42% complete 47% complete 52% complete 53% complete 56% complete 58% complete Registering database with Oracle Grid Infrastructure 64% complete Completing Database Creation 68% complete 78% complete 89% complete 100% complete Look at the log file "/u01/gridbase/cfgtoollogs/dbca/_mgmtdb/_mgmtdb0.log" for further details. [grid@rac1 /]$
4.3.2 12.1.0.2 执行如下命令
在任意节点,用grid用户执行如下命令:
--ASM 磁盘组: $/bin/dbca -silent -createDatabase -sid -MGMTDB -createAsContainerDatabase true -templateName MGMTSeed_Database.dbc -gdbName _mgmtdb -storageType ASM -diskGroupName <+NEW_DG> -datafileJarLocation $GRID_HOME/assistants/dbca/templates -characterset AL32UTF8 -autoGeneratePasswords -skipUserTemplateCheck --共享的NFS/CFS : $ /bin/dbca -silent -createDatabase -templateName MGMTSeed_Database.dbc -sid -MGMTDB -gdbName _mgmtdb -storageType FS -datafileDestination -datafileJarLocation /assistants/dbca/templates -characterset AL32UTF8 -autoGeneratePasswords -oui_internal --示例: [grid@rac1 templates]$ dbca -silent -createDatabase -sid -MGMTDB -createAsContainerDatabase true -templateName MGMTSeed_Database.dbc -gdbName _mgmtdb -storageType ASM -diskGroupName +OCR -datafileJarLocation /u01/gridsoft/12.1.0.2/assistants/dbca/templates -characterset AL32UTF8 -autoGeneratePasswords -skipUserTemplateCheck Registering database with Oracle Grid Infrastructure 5% complete Copying database files 7% complete 9% complete 16% complete 23% complete 30% complete 41% complete Creating and starting Oracle instance 43% complete 48% complete 49% complete 50% complete 55% complete 60% complete 61% complete 64% complete Completing Database Creation 68% complete 79% complete 89% complete 100% complete Look at the log file "/u01/gridbase/cfgtoollogs/dbca/_mgmtdb/_mgmtdb0.log" for further details. [grid@rac1 templates]$
4.4 使用DBCA 创建PDB
[grid@rac1 templates]$ srvctl status mgmtdb Database is enabled Instance -MGMTDB is running on node rac1 [grid@rac1 templates]$
在任意节点,用grid用户执行dbca 创建PDB,命令如下:
$
--查询集群的名称:
[grid@rac1 /]$ cemutlo -n
rac-scan
[grid@rac1 /]$
注意:默认情况CLUSTER_NAME 都是-,这里比如换成_
我们这里就要换成rac_scan
[grid@rac1 templates]$ dbca -silent -createPluggableDatabase -sourceDB -MGMTDB -pdbName rac_scan -createPDBFrom RMANBACKUP -PDBBackUpfile /u01/gridsoft/12.1.0.2/assistants/dbca/templates/mgmtseed_pdb.dfb -PDBMetadataFile /u01/gridsoft/12.1.0.2/assistants/dbca/templates/mgmtseed_pdb.xml -createAsClone true -internalSkipGIHomeCheck Creating Pluggable Database 4% complete 12% complete 21% complete 38% complete 55% complete 85% complete Completing Pluggable Database Creation 100% complete Look at the log file "/u01/gridbase/cfgtoollogs/dbca/_mgmtdb/rac_scan/_mgmtdb0.log" for further details. [grid@rac1 templates]$
4.5 验证MGMTDB
用grid用户执行如下命令,验证MGMTDB 运行情况:
[grid@rac1 ~]$ srvctl status MGMTDB
Database is enabled
Instance -MGMTDB is running on node rac1
这里显示的是节点1,那么在节点1上在执行:
[grid@rac1 ~]$ mgmtca [grid@rac1 ~]$ crsctl stat res -t …… ora.MGMTLSNR 1 ONLINE ONLINE rac1 169.254.193.105 192. 168.57.5,STABLE ora.mgmtdb 1 ONLINE ONLINE rac1 Open,STABLE …… [grid@rac1 ~]$ [grid@rac1 templates]$ srvctl config mgmtdb Database unique name: _mgmtdb Database name: Oracle home:Oracle user: grid Spfile: +OCR/_MGMTDB/PARAMETERFILE/spfile.268.865977817 Password file: Domain: Start options: open Stop options: immediate Database role: PRIMARY Management policy: AUTOMATIC Type: Management PDB name: rac_scan PDB service: rac_scan Cluster name: rac-scan Database instance: -MGMTDB [grid@rac1 templates]$ [grid@rac1 templates]$ export ORACLE_SID=-MGMTDB [grid@rac1 templates]$ sqlplus / as sysdba SQL*Plus: Release 12.1.0.2.0 Production on Wed Dec 10 21:39:13 2014 Copyright (c) 1982, 2014, Oracle. All rights reserved. Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production With the Partitioning, Automatic Storage Management and Advanced Analytics options SQL> select file_name from dba_data_files union select member file_name from V$logfile; FILE_NAME -------------------------------------------------------------------------------- +OCR/_MGMTDB/DATAFILE/sysaux.257.865977463 +OCR/_MGMTDB/DATAFILE/system.258.865977473 +OCR/_MGMTDB/DATAFILE/undotbs1.259.865977489 +OCR/_MGMTDB/ONLINELOG/group_1.261.865977635 +OCR/_MGMTDB/ONLINELOG/group_2.262.865977635 +OCR/_MGMTDB/ONLINELOG/group_3.263.865977635 6 rows selected. SQL>
数据文件已经转移到OCR 磁盘组了。
4.6 启用并启动ora.crf 资源
在所有节点,用root用户执行:
[root@rac1 u01]# crsctl modify res ora.crf -attr ENABLED=1 -init [root@rac1 u01]# crsctl start res ora.crf -init CRS-2672: Attempting to start 'ora.crf' on 'rac1' CRS-2676: Start of 'ora.crf' on 'rac1' succeeded [root@rac1 u01]# oclumon manage -get master Master = rac1 [root@rac1 u01]#
版权声明:本文为博主原创文章,未经博主允许不得转载。