Olá pessoal, depois de termos instalado o Grid Infrastructure 12c para nosso Standalone Server e o Oracle Database 12c, criamos o banco de dados, agora precisamos saber como administrar este ambiente.
Vamos ver alguns comandos para realizar tarefas administrativas no nosso Standalone Server.
Para administrar o Oracle High Availability Services num Standalone Server você deve estar conectado como root. O HAS é um grupo de serviços responsável por identificar falhas, iniciar, parar e reportar erros do ambiente. Iniciando ou parando o HAS todos os demais serviços dependentes dele são consequentemente afetados. Se você efetuar um shutdown do servidor Linux todo o processo de parada do HAS irá ocorrer automaticamente e iniciará da mesma forma no boot.
[root@loredata-srv ~]# . oraenv
ORACLE_SID = [root] ? +ASM
The Oracle base has been set to /u01/app/oracle
CRSCTL
[root@loredata-srv ~]# crsctl check has
CRS-4638: Oracle High Availability Services is online
[root@loredata-srv ~]# crsctl stop has
CRS-2791: Starting shutdown of Oracle High Availability Services-managed resources on 'loredata-srv'
CRS-2673: Attempting to stop 'ora.CRS.dg' on 'loredata-srv'
CRS-2673: Attempting to stop 'ora.loredb.db' on 'loredata-srv'
CRS-2673: Attempting to stop 'ora.LISTENER.lsnr' on 'loredata-srv'
CRS-2673: Attempting to stop 'ora.DBLISTENER.lsnr' on 'loredata-srv'
CRS-2677: Stop of 'ora.CRS.dg' on 'loredata-srv' succeeded
CRS-2677: Stop of 'ora.loredb.db' on 'loredata-srv' succeeded
CRS-2673: Attempting to stop 'ora.DATA.dg' on 'loredata-srv'
CRS-2677: Stop of 'ora.DATA.dg' on 'loredata-srv' succeeded
CRS-2673: Attempting to stop 'ora.asm' on 'loredata-srv'
CRS-2677: Stop of 'ora.DBLISTENER.lsnr' on 'loredata-srv' succeeded
CRS-2677: Stop of 'ora.LISTENER.lsnr' on 'loredata-srv' succeeded
CRS-2677: Stop of 'ora.asm' on 'loredata-srv' succeeded
CRS-2673: Attempting to stop 'ora.evmd' on 'loredata-srv'
CRS-2677: Stop of 'ora.evmd' on 'loredata-srv' succeeded
CRS-2673: Attempting to stop 'ora.cssd' on 'loredata-srv'
CRS-2677: Stop of 'ora.cssd' on 'loredata-srv' succeeded
CRS-2793: Shutdown of Oracle High Availability Services-managed resources on 'loredata-srv' has completed
CRS-4133: Oracle High Availability Services has been stopped.
[root@loredata-srv ~]# crsctl start has
CRS-4123: Oracle High Availability Services has been started.
Caso queira desabilitar o HAS para não iniciar automaticamente no boot do Standalone Server:
[root@loredata-srv ~]# crsctl disable has
CRS-4621: Oracle High Availability Services autostart is disabled.
Para habilitar novamente:
[root@loredata-srv ~]# crsctl enable has
CRS-4622: Oracle High Availability Services autostart is enabled.
Desabilitar não para os serviços, da mesma forma que habilitar também não inicia.
Para verificar os recursos que estão rodando no servidor e também saber o status deles:
[root@loredata-srv ~]# crsctl status resource -t
--------------------------------------------------------------------------------
Name Target State Server State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.CRS.dg
ONLINE ONLINE loredata-srv STABLE
ora.DATA.dg
ONLINE ONLINE loredata-srv STABLE
ora.DBLISTENER.lsnr
ONLINE OFFLINE loredata-srv STABLE
ora.LISTENER.lsnr
ONLINE OFFLINE loredata-srv STABLE
ora.asm
ONLINE ONLINE loredata-srv Started,STABLE
ora.ons
OFFLINE OFFLINE loredata-srv STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.cssd
1 ONLINE ONLINE loredata-srv STABLE
ora.diskmon
1 OFFLINE OFFLINE STABLE
ora.evmd
1 ONLINE ONLINE loredata-srv STABLE
ora.loredb.db
1 ONLINE ONLINE loredata-srv Open,STABLE
--------------------------------------------------------------------------------
Para verificar um recurso específico:
[root@loredata-srv ~]# crsctl status resource ora.loredb.db
NAME=ora.loredb.db
TYPE=ora.database.type
TARGET=ONLINE
STATE=ONLINE on loredata-srv
A opção -t mostra a saída em formato tabelado:
[root@loredata-srv ~]# crsctl status resource ora.loredb.db -t
--------------------------------------------------------------------------------
Name Target State Server State details
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.loredb.db
1 ONLINE ONLINE loredata-srv Open,STABLE
--------------------------------------------------------------------------------
Não é possível parar os recursos com o comando crsctl:
[root@loredata-srv ~]# crsctl stop resource ora.loredb.db
CRS-4995: The command 'Stop resource' is invalid in crsctl. Use srvctl for this command.
[root@loredata-srv ~]# crsctl stop resource ora.DBLISTENER.lsnr
CRS-4995: The command 'Stop resource' is invalid in crsctl. Use srvctl for this command.
[root@loredata-srv ~]# crsctl stop resource ora.asm
CRS-4995: The command 'Stop resource' is invalid in crsctl. Use srvctl for this comando.
SRVCTL
O tipo e o nome do recurso devem ser passados para que o comando funcione:
[root@loredata-srv ~]# srvctl stop database -db ora.loredb.db
PRCD-1120 : The resource for database ora.loredb.db could not be found.
PRCR-1001 : Resource ora.ora.loredb.db.db does not exist
Somente o nome do banco de dados e não do recurso:
[root@loredata-srv ~]# srvctl stop database -db loredb
[root@loredata-srv ~]#
O comando acima faz um “shutdown immediate” conforme é possível comprovar no alert_loredb.log:
Wed Jan 27 20:28:50 2016
Shutting down instance (immediate)
Stopping background process SMCO
Shutting down instance: further logons disabled
Da mesma forma que o “start” faz um “startup”, passando por todos as etapas de inicialização do banco de dados, até sua suposta abertura:
[root@loredata-srv ~]# srvctl start database -db loredb
Novamente constatamos o que foi feito olhando no alert_loredb.log:
Wed Jan 27 20:30:33 2016
Starting ORACLE instance (normal) (OS id: 4938)
Para verificar se o banco de dados está rodando:
[root@loredata-srv ~]# srvctl status database -db loredb
Database is running.
Todos os comandos srvctl podem ser executados com o usuário oracle, pois configuramos nosso Standalone Server, sem um usuário exclusivo para o Grid Infrastructure. Vamos testar agora operações na instância do ASM.
[root@loredata-srv ~]# su - oracle
[oracle@loredata-srv ~]$ ps -ef|grep pmon
oracle 3912 1 0 20:07 ? 00:00:00 asm_pmon_+ASM
oracle 5385 1 0 20:33 ? 00:00:00 ora_pmon_loredb
oracle 5832 5801 0 20:35 pts/1 00:00:00 grep pmon
[oracle@loredata-srv ~]$ . oraenv
ORACLE_SID = [loredb] ? +ASM
The Oracle base remains unchanged with value /u01/app/oracle
[oracle@loredata-srv ~]$ srvctl status asm
ASM is running on loredata-srv
Não é possível parar o ASM sem antes parar os diskgroups a não ser com a opção “force”:
[oracle@loredata-srv ~]$ srvctl stop asm
PRCR-1065 : Failed to stop resource ora.asm
CRS-2529: Unable to act on 'ora.asm' because that would require stopping or relocating 'ora.CRS.dg', but the force option was not specified
A opção “force” (-f) faz com que as instâncias de banco de dados sejam desligadas imediatamente (como um “abort”) e os diskgroups sejam desmontados:
[oracle@loredata-srv ~]$ srvctl stop asm -f
No alert_+ASM.log é possível ver que o ASM desmonta os diskgroups.
NOTE: halting all I/Os to diskgroup 2 (DATA)
Wed Jan 27 20:38:18 2016
NOTE: LGWR doing non-clean dismount of group 2 (DATA) thread 1
NOTE: LGWR sync ABA=5.603 last written ABA 5.603
Wed Jan 27 20:38:18 2016
NOTE: cache dismounted group 2/0x2D692230 (DATA)
Wed Jan 27 20:38:18 2016
GMON dismounting group 2 at 9 for pid 20, osid 3965
Wed Jan 27 20:38:18 2016
NOTE: Disk DATA in mode 0x7f marked for de-assignment
Wed Jan 27 20:38:18 2016
SUCCESS: diskgroup DATA was dismounted
NOTE: cache deleting context for group DATA 2/0x2d692230
Wed Jan 27 20:38:18 2016
SUCCESS: ALTER DISKGROUP DATA DISMOUNT FORCE /* asm agent *//* {0:0:938} */
Shutting down instance (abort)
License high water mark = 8
USER (ospid: 3965): terminating the instance
Wed Jan 27 20:38:19 2016
Instance terminated by USER, pid = 3965
Wed Jan 27 20:38:19 2016
Instance shutdown complete
Para iniciar somente a instância do ASM:
[oracle@loredata-srv ~]$ srvctl start asm
O comando abaixo iniciará o ASM se a instância dele estiver desligada e em seguida iniciará o banco de dados:
[oracle@loredata-srv ~]$ srvctl start database -d loredb
Para verificar se os Listeners estão executando:
[oracle@loredata-srv ~]$ srvctl status listener
Listener DBLISTENER is enabled
Listener DBLISTENER is running on node(s): loredata-srv
Listener LISTENER is enabled
Listener LISTENER is running on node(s): loredata-srv
Para parar todos os Listeners:
[oracle@loredata-srv ~]$ srvctl stop listener
[oracle@loredata-srv ~]$ srvctl status listener
Listener DBLISTENER is enabled
Listener DBLISTENER is not running
Listener LISTENER is enabled
Listener LISTENER is not running
Para iniciar um Listener específico:
[oracle@loredata-srv ~]$ srvctl start listener -listener dblistener
[oracle@loredata-srv ~]$ srvctl status listener
Listener DBLISTENER is enabled
Listener DBLISTENER is running on node(s): loredata-srv
Listener LISTENER is enabled
Listener LISTENER is not running
Quando um serviço está enabled significa que ele irá iniciar e parar automaticamente no boot e shutdown, respectivamente. Quando está disabled significa que ele não realizará essas operações automaticamente. Depois que o Standalone Server for reiniciado você terá que habilitá-los primeiro para depois iniciá-los.
Todos esses comandos tem muitas variações no Standalone Server, mas por enquanto já vimos o suficiente para iniciar e parar o ambiente.
Espero que gostem e se tiverem dúvidas por favor deixem um comentário.