Standalone Server com GI12c, passos iniciais

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.

Standalone Server

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.