某天发现数据库down了,启动,结果提示没有服务器
grid@rac1:/home/grid> srvctl start database -d rac
PRCR-1079 : Failed to start resource ora.rac.db
CRS-2643: The server pool(s) where resource 'ora.rac.db' could run have no servers
查看一下服务器都跑到哪儿去了:
grid@rac1:/home/grid> crsctl status serverpool -p
NAME=Free
IMPORTANCE=0
MIN_SIZE=0
MAX_SIZE=-1
SERVER_NAMES=
PARENT_POOLS=
EXCLUSIVE_POOLS=
ACL=owner:grid:rwx,pgrp:oinstall:rwx,other::r-x
NAME=Generic
IMPORTANCE=0
MIN_SIZE=0
MAX_SIZE=-1
SERVER_NAMES=rac1 rac2
PARENT_POOLS=
EXCLUSIVE_POOLS=
ACL=owner:grid:r-x,pgrp:oinstall:r-x,other::r-x
NAME=ora.scutech
IMPORTANCE=0
MIN_SIZE=0
MAX_SIZE=2
SERVER_NAMES=
PARENT_POOLS=
EXCLUSIVE_POOLS=
ACL=owner:oracle:rwx,pgrp:oinstall:rwx,other::r--
NAME=ora.student
IMPORTANCE=1
MIN_SIZE=0
MAX_SIZE=-1
SERVER_NAMES=rac1 rac2
PARENT_POOLS=Generic
EXCLUSIVE_POOLS=
ACL=owner:oracle:rwx,pgrp:oinstall:rwx,other::r--
原来我的scutech池中的服务器都跑到student池中了,这个池是Generic下面的一个子池。-明白了,有人建了一个新数据库,采用的是admin-managed。查看一下,果然:
grid@rac1:/home/grid> srvctl config database -d student
Database unique name: student
Database name: student
Oracle home: /u01/app/oracle/product/11.2.0/db_1
Oracle user: oracle
Spfile: +DATA/student/spfilestudent.ora
Domain:
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools: student
Database instances: student2,student1
Disk Groups: DATA,DBACKUP3_20190920_174349,DBACKUP3_20190921_173611
Mount point paths:
Services:
Type: RAC
Database is administrator managed
修改一下,把这个数据库改成policy-managed,并且和我前面的库用一个pool:
/u01/app/11.2.0/grid/bin/srvctl modify database -d student -g scutech
要用超级用户执行这个命令,不然提示权限不够。
然后,问题解决了。