某天发现数据库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
要用超级用户执行这个命令,不然提示权限不够。
然后,问题解决了。