通过srvctl add命令添加database信息到srvctl管理器-转
这是我在实际中遇到的一个问题,rac+dg架构将备库切为主库,srvctl管理器中没有database信息。
对于dbca创建的数据库,srvctl中包含了数据库和实例的信息。但是对于备份恢复的RAC数据库来说,srvctl中不包含数据库和实例信息。
srvctl管理器中没有database信息,很多地方都无法使用srvctl命令管理。所以,需要手动将database信息添加到srvctl管理器中。
1.创建实验环境,实现srvctl管理器中没有database信息的目的。
--原有环境是database信息
[grid@rac1 ~]$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora.DATA.dg ora....up.type ONLINE ONLINE rac1
ora.FRA.dg ora....up.type ONLINE ONLINE rac1
ora....ER.lsnr ora....er.type ONLINE ONLINE rac1
ora....N1.lsnr ora....er.type ONLINE ONLINE rac2
ora....DISK.dg ora....up.type ONLINE ONLINE rac1
ora.asm ora.asm.type ONLINE ONLINE rac1
ora.cvu ora.cvu.type ONLINE ONLINE rac2
ora.gsd ora.gsd.type OFFLINE OFFLINE
ora....network ora....rk.type ONLINE ONLINE rac1
ora.oc4j ora.oc4j.type ONLINE ONLINE rac1
ora.ons ora.ons.type ONLINE ONLINE rac1
ora.rac.db ora....se.type ONLINE ONLINE rac1 <-----------------
ora....SM1.asm application ONLINE ONLINE rac1
ora....C1.lsnr application ONLINE ONLINE rac1
ora.rac1.gsd application OFFLINE OFFLINE
ora.rac1.ons application ONLINE ONLINE rac1
ora.rac1.vip ora....t1.type ONLINE ONLINE rac1
ora....SM2.asm application ONLINE ONLINE rac2
ora....C2.lsnr application ONLINE ONLINE rac2
ora.rac2.gsd application OFFLINE OFFLINE
ora.rac2.ons application ONLINE ONLINE rac2
ora.rac2.vip ora....t1.type ONLINE ONLINE rac2
ora.scan1.vip ora....ip.type ONLINE ONLINE rac2
<1>.停止数据库
su - oracle
[oracle@rac1 ~]$ srvctl stop database -d rac
--db 已经停掉
[grid@rac1 ~]$ crs_stat -t|grep db
ora.rac.db ora....se.type OFFLINE OFFLINE
<2>.删除database信息
[oracle@rac1 ~]$ srvctl remove database -d rac
是否删除数据库 rac? (y/[n]) y
[grid@rac1 ~]$ crs_stat -t|grep db
--返回空,没有了database信息
<3>.通过startup方式启动数据库
[oracle@rac1 ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.3.0 Production on Wed Sep 18 12:59:51 2013
Copyright (c) 1982, 2011, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup
ORACLE instance started.
Total System Global Area 488534016 bytes
Fixed Size 2229624 bytes
Variable Size 276826760 bytes
Database Buffers 205520896 bytes
Redo Buffers 3956736 bytes
Database mounted.
<4>.实现缺少database信息的目的
--srvctl命令无法使用,原因:缺少database信息
$ srvctl status database -d rac
PRCD-1120 : 找不到数据库 rac 的资源。
PRCR-1001 : 资源 ora.rac.db 不存在
2.通过srvctl add命令添加database信息和实例信息
su - oracle
$ srvctl add database -d rac -o /u01/app/oracle/11.2.0/db -p +DATA/rac/spfilerac.ora http://www.luyouqiwang.com/ # -d db_unique_name; -o oracle_home; -p spfile_path
$ srvctl add instance -d rac -i rac1 -n rac1 #-i instance_name;-n node_name
--虽然添加了database信息,但是database的状态是错误的
--crs_stat显示db没有online,实际db是启动的
$ crs_stat -t|grep db
ora.rac.db ora....se.type OFFLINE OFFLINE
[oracle@rac1 ~]$ srvctl status database -d rac
实例 rac1 没有在 rac1 节点上运行
3.启动db,修正数据库信息(感觉更像是注册database信息,因为db实际已经启动)
[oracle@rac1 ~]$ srvctl start database -d rac
--database信息变为正常
[grid@rac1 ~]$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora.DATA.dg ora....up.type ONLINE ONLINE rac1
ora.FRA.dg ora....up.type ONLINE ONLINE rac1
ora....ER.lsnr ora....er.type ONLINE ONLINE rac1
ora....N1.lsnr ora....er.type ONLINE ONLINE rac2
ora....DISK.dg ora....up.type ONLINE ONLINE rac1
ora.asm ora.asm.type ONLINE ONLINE rac1
ora.cvu ora.cvu.type ONLINE ONLINE rac2
ora.gsd ora.gsd.type OFFLINE OFFLINE
ora....network ora....rk.type ONLINE ONLINE rac1
ora.oc4j ora.oc4j.type ONLINE ONLINE rac1
ora.ons ora.ons.type ONLINE ONLINE rac1
ora.rac.db ora....se.type ONLINE ONLINE rac1 <---------------
ora....SM1.asm application ONLINE ONLINE rac1
ora....C1.lsnr application ONLINE ONLINE rac1
ora.rac1.gsd application OFFLINE OFFLINE
ora.rac1.ons application ONLINE ONLINE rac1
ora.rac1.vip ora....t1.type ONLINE ONLINE rac1
ora....SM2.asm application ONLINE ONLINE rac2
ora....C2.lsnr application ONLINE ONLINE rac2
ora.rac2.gsd application OFFLINE OFFLINE
ora.rac2.ons application ONLINE ONLINE rac2
ora.rac2.vip ora....t1.type ONLINE ONLINE rac2
ora.scan1.vip ora....ip.type ONLINE ONLINE rac2
[oracle@rac1 ~]$ srvctl status database -d rac
实例 rac1 正在节点 rac1 上运行
这样数据库就可以利用srvctl命令维护了。
用srvctl查看数据库配置信息
[oracle@rac1 ~]$ srvctl config database -d rac -a
数据库唯一名称: rac
数据库名:
Oracle 主目录: /u01/app/oracle/11.2.0/db
Oracle 用户: oracle
Spfile: +DATA/rac/spfilerac.ora
域:
启动选项: open
停止选项: immediate
数据库角色: PRIMARY
管理策略: AUTOMATIC
服务器池: rac
数据库实例: rac1
磁盘组:
装载点路径:
服务:
类型: RAC
数据库已启用
数据库是管理员管理的
======
补充
======
由于实验关键rac只剩了一个节点,虽然步骤和命令都是正确的,但是不是很准确。
下面是添加database信息和实例信息的准确命令。
$ srvctl add database -d db_unique_name -o oracle_home e -m DB_DOMAIN -p spfile_path
$ srvctl add instance -d db_unique_name -i instance_node1 -n node_name1
$ srvctl add instance -d db_unique_name -i instance_node2 -n node_name1
如果使用DBCA建库,在创建好RAC数据库后,DBCA自动将数据库信息添加到SRVCTL管理器中。
但是如果手工创建数据库,或者通过备份恢复的数据库,就需要手工添加数据库信息了。
当前服务器上安装了两套RAC数据库,分别是rac11g和ractest,其中ractest是通过dbca创建的,而rac11g是通过备份恢复的。
$ srvctl status database -d rac11g
PRKR-1001 : cluster database rac11g does not exist
PRKO-2005 : Application error: Failure in getting Cluster Database Configuration for: rac11g
$ srvctl status database -d ractest
Instance ractest1 is running on node ser1
Instance ractest2 is running on node ser2
对于dbca创建的数据库,srvctl中包含了数据库和实例的信息,而对于备份恢复的数据库rac11g来说,srvctl中不包含数据库和实例信息。
下面通过srvctl add命令来添加数据库和实例信息:
$ srvctl add database -d rac11g -o /data/oracle/product/11.1/database -m us.oracle.com -p +DATA/RAC11G/spfilerac11g.ora
$ srvctl add instance -d rac11g -i rac11g1 -n ser1
$ srvctl add instance -d rac11g -i rac11g2 -n ser2
检查数据库状态:
$ srvctl status database -d rac11g
Instance rac11g1 is not running on node ser1
Instance rac11g2 is not running on node ser2
数据库目前没有启动,利用srvctl start命令启动数据库:
$ srvctl start db -d rac11g
$ srvctl status db -d rac11g
Instance rac11g1 is running on node ser1
Instance rac11g2 is running on node ser2
现在RAC数据库RAC11G已经可以通过SRVCTL命令来维护了。
利用srvctl config命令可以看到现有数据库的配置信息:
bash-3.00$ srvctl config database -d rac11g -a
ser1 rac11g1 /data/oracle/product/11.1/database
ser2 rac11g2 /data/oracle/product/11.1/database
DB_UNIQUE_NAME: rac11g
DB_NAME: null
ORACLE_HOME: /data/oracle/product/11.1/database
SPFILE: +DATA/RAC11G/spfilerac11g.ora
DOMAIN: us.oracle.com
DB_ROLE: null
START_OPTIONS: null
POLICY: AUTOMATIC
ENABLE FLAG: DB ENABLED
http://blog.itpub.net/4227/viewspace-469962/
通过srvctl add命令添加database信息到srvctl管理器-转的更多相关文章
- 通过srvctl add命令添加database信息到srvctl管理器
================================================通过srvctl add命令添加database信息到srvctl管理器================ ...
- 注册表的作用、bat文件中REG ADD命令添加注册表项以及bat
注册表的用途与设置 注册表是windows的核心,里面储存着大量的系统信息,说白了就是一个庞大的数据库.如果你不懂什么是数据库,那没关系,不影响你了解注册表,不过最好对数据库有所了解.注册表里面所有的 ...
- 无法将从VSS中的解决方案添加到TFS的源代码管理器中
VSS是一种非常有用的项目文件管理工具,百度百科的解释是:VSS 的全称为 Visual Source Safe .作为 Microsoft Visual Studio 的一名成员,它主要任务就是负责 ...
- git add 命令添加所有改动内容
git add xx命令可以将xx文件添加到暂存区,如果有很多改动可以通过 git add -A .来一次添加所有改变的文件. 注意 -A 选项后面还有一个句点. git add -A表示添加所有内容 ...
- linux常用命令---网络端口信息与进程管理
进程管理 进程管理
- git add -A (用该命令添加文件时报错)
前言 最近在学着不使用github客户端,而直接用git命令上传代码至github,当使用命令 git add -A 添加所有项目文件时报错 老实说我是蒙蔽的,因为从来没有遇到过这个错,确认输入 ...
- 使用pyinstaller 2.1将python打包并添加版本信息和图标
最近用 wxpython写了一个小的脚本,因为想要发布给没有装python和wxpython的人使用,遂决定使用pyinstaller 2.1进行打包. 其中遇到几个问题: 1,给打包的文件添加图标 ...
- Memcached add 命令
Memcached add 命令用于将 value(数据值) 存储在指定的 key(键) 中. 如果 add 的 key 已经存在,则不会更新数据,之前的值将仍然保持相同,并且您将获得响应 NOT_S ...
- git add 命令
git add xx命令可以将xx文件添加到暂存区,如果有很多改动可以通过 git add -A .来一次添加所有改变的文件. 注意 -A 选项后面还有一个句点. git add -A表示添加所有内容 ...
随机推荐
- 在web.config里面添加配置信息
在web.config里面添加配置信息规范文字 代码如下 在<appSettings>中间添加 <add key="Director" value="处 ...
- Matlab 计算大数的阶乘
http://hi.baidu.com/dreamflyman/item/11e920165596280fd0d66d9f >> syms k;>> kfac=sym('k!' ...
- python使用random函数生成随机数
python使用random函数来生成随机数,常用的方法有: import random #生成0-1之间的数(不包括0和1) random.random() #生成1-5之间的随机整数(包括1和5) ...
- contesthunter暑假NOIP模拟赛第一场题解
contesthunter暑假NOIP模拟赛#1题解: 第一题:杯具大派送 水题.枚举A,B的公约数即可. #include <algorithm> #include <cmath& ...
- [工具开发] Perl 爬虫脚本--从美国国家漏洞数据库抓取实时信息
一.简介 美国国家漏洞数据库收集了操作系统,应用软件的大量漏洞信息,当有新的漏洞出现时,它也会及时发布出来. 由于信息量巨大,用户每次都需要到它的网站进行搜索,比较麻烦.如果能有个工具,每天自动分析它 ...
- 黄聪:如何删除wordpress登录之后wp_footer、wp_head自行加载的Open Sans字体、fonts.googleapis.com连接导致卡死的问题
有时候在浏览自己的WordPress网站时,发现网页长时间无响应, 卡在正在连接到fonts.googleapis.com ,如下图所示: 查看网页源码时,发现Head里面有如下一段代码: <l ...
- ADF_Starting系列2_使用ADF开发富Web应用程序之建立Business Services
2013-05-01 Created By BaoXinjian
- BestCoder Round #85 hdu5777 domino
domino 题意: 问题描述 小白在玩一个游戏.桌子上有n张多米诺骨牌排成一列.它有k次机会,每次可以选一个还没有倒的骨牌,向左或者向右推倒.每个骨 牌倒下的时候,若碰到了未倒下的骨牌,可以把它推倒 ...
- Java System.out的输出缓冲
今天学习了java的正则表达式api,在写例子的时候遇到了让人摸不着头脑的问题:从控制台输入了字符串,却没有输出;直到输入的字符串不能匹配的时,一起与Unabled to match输出.相关代码如下 ...
- SteamVR Unity工具包(VRTK)之概览和控制器事件
快速上手 · 克隆仓库 git clone https://github.com/thestonefox/SteamVR_Unity_Toolkit.git · 用Unity3d打开SteamVR_ ...