Conteúdo do cotidiano e gratuito de tecnologia em Banco de dados, Servidores Windows, Linux, BSD e Desenvolvimento em PL/SQL.
terça-feira, 27 de agosto de 2013
Excluindo usuário no MySQL
Podemos utilizar o comando DROP USER e o comando DELETE.
Com o comando DROP USER devemos informar o nome do usuário e qual o host de conexão ele pertence:
DROP USER 'emerson'@'%';
Também podemos realizar a deleção do usuário com o comando delete:
DELETE FROM mysql.user WHERE user = 'emerson';
Explicando o comando, estamos deletando (delete from) da tabela user onde a database é mysql (mysql.user) o usuário cujo o nome seja 'emerson'.
Fonte:
http://wiki.mandic.com.br/cloud-computing/cloud-linux/tutoriais/134-excluindo-usuario-mysql
Atribuindo permissões para usuário MySQL
O MySQL trabalha com as seguintes permissões:
Manipulação de Dados
|
|
SELECT
|
Somente Leitura
|
INSERT
|
Inserção de Dados
|
UPDATE
|
Atualização de Dados
|
DELETE
|
Remoção de Dados
|
Manipulação de Tabelas
|
|
CREATE
|
Criação de novas Tabelas/Bases
|
ALTER
|
Modificação de Tabelas/Colunas
|
DROP
|
Remocação de Tabelas/Bases
|
Para definirmos as devidas permissões a um usuário utilizamos o comando GRANT, ex.:
GRANT
<permissao> ON <base>.<tabela> TO
'<user>'@'localhost' IDENTIFIED BY '<senha>' WITH GRANT
OPTION;
Para adicionar permissão de leitura, inserção e modificação:
GRANT select, insert, update ON gaudencio.* TO 'emerson'@'%' WITH GRANT OPTION;
E para visualizar as permissões que acabamos de aplica usamos o comando:
SHOW GRANTS FOR 'emerson'@'%';
Obs.: O * representa tudo, no exemplo acima definimos as permissões de SELECT, INSERT e UPDATE na base de dados gaudencio em todas as suas tabelas.
Obs[2].: Para definir as mesmas permissões para conexões externas, devemos repetir o comando e substituir o localhost por % .
Para definirmos todas as permissões para um usuário e o tornar DBA(Administrador) de sua base de dados podemos utilizar o parametro ALL PRIVILEGES em permissões, ex.:
GRANT ALL PRIVILEGES ON gaudencio.* TO 'emerson'@'%' WITH GRANT OPTION;
REVOKE DROP, DELETE ON gaudencio.* FROM 'emerson'@'%';
No exemplo acima estamos revogando/removendo as seguintes permissões: DROP e DELETE do usuário emerson sobre a base de dados gaudencio.
Obs.: Podemos ver que o SHOW GRANTS
muda a visualização das permissões quando revogamos uma permissão do
usuário, com isso ele lista quais as permissões que este usuário possui.
Também podemos revogar/remover todas as permissões do usuário utilizando o parâmetro ALL PRIVILEGES, ex.:
REVOKE ALL PRIVILEGES ON gaudencio.* FROM 'emerson'@'%';
Obs.: A permissão USAGE significa Sem Privilégios.
Bom pessoal, espero que essa dica para atribuição de permissão de usuários no MySQL possa ajudar aqueles que estejam procurando por este conteúdo. Que a Graça e Paz estejam com todos.
Fonte:
Criando Usuário no MySQL
A criação de usuários é realizada através do comando CREATE USER
CREATE USER '<novo_user>'@'localhost' IDENTIFIED BY '<senha>';
Neste comando informamos que o nome do usuário a ser criado é emerson, o mesmo possuíra permissão de conexão localhost e será identificado/autenticado pela senha Teste,.123.
Obs.: Caso o usuário criado precise ter permissões de conexão externa, no lugar de localhost poderá ser informado o IP de Origem da conexão ou o simbolo % que representa TUDO.
Para identificar se seu usuário foi criado com sucesso faça a seguinte consulta:
select user, host from mysql.user;
Bom espero que essa dica possa ajudar a profissionais que estejam a procura deste conteúdo. Que a Graça e Paz estejam com todos.
Fonte:
http://wiki.mandic.com.br/cloud-computing/cloud-linux/tutoriais/133-criando-usuario-mysql
domingo, 25 de agosto de 2013
Comandos mais utilizados LINUX
# uname -a = mostra a versão ou nome do servidor.
# free -m = Mostra informações de memória e Swap.
# df -h = mostra os discos que o servidor está usando.
# top = Mostra o consumo do servidor.
# loadkeys us = muda a versão do Teclado.
# uptime = Mostra quanto tempo o servidor está no ar e quantos usuários estão logados no momento.
# cat /proc/cpuinfo = Mostra as informações de processadores.
# cat /proc/meminfo = Mostra as informações de memória.
# ifconfig = mostra as interfaces ativas no servidor.
# ifconfig <ethXX> up = ativa a interface de rede.
# ifconfig <ethXX> down = desativa a interface de rede.
# shutdown -r now = desliga e liga corretamente o servidor.
# ps -aux = verifica serviços rodando.
# /etc/init.d/networking restart = reinicia a interface de rede do ubuntu e Debian .
# service network restart = reinicia a interface de rede do CentOS e Suse.
# zypper install <Pacote do programa> = instala um pacote ou programa no suse.
# zypper remove <Pacote do programa> = desinstala um pacote ou programa no suse.
# yum install <Pacote do programa> = instala um pacote ou programa no CentOS.
# yum remove <Pacote do programa> = desinstala um pacote ou programa no CentOS.
# apt-get install <Pacote do programa> = instala um pacote ou programa no Ubuntu ou Debian.
# apt-get remove <Pacote do programa> = desinstala um pacote ou programa no Ubuntu ou Debian.
# history -c = apaga os últimos comandos que o usuário fez no console.
# passwd = altera a senha do usuário atual.
# ping <ip ou domínio> = pinga o ip ou domínio, porém para parar use contrl+c.
# traceroute -I <ip ou domínio> = faz o tracert para o ip ou domínio usando o protocolo icmp.
quinta-feira, 15 de agosto de 2013
[MySQL] - Comandos Utéis
Bom pessoal, segue abaixo uma lista de comandos uteis para manutenção de nosso banco de dados MySQL.
Iniciar MySQL na Mão:
mysqld --console
Desativar instância do MySQL:
mysqladmin -u root --password=teste shutdown
Instalar o serviço do MySQL no Windows:
No caso normal que você instala o servidor com --install mas nenhum nome de serviço,
o servidor é instalado com um nome de serviço de MySQL.
Como um exemplo mais complexo, considere o seguinte comando:
shell> C:\mysql\bin\mysqld --install mysql --defaults-file=C:\my-opts.cnf
Para desintalar o serviço do mysql:
shell> mysqld --remove
Verifica sessões no MySQL pela linha de comando:
mysqladmin -u root --password=teste version status proc
Utilitario mysqlshow:
mysqlshow -u root --password=teste mysql // tem o mesmo efeito que show tables quando logado num database especifico.
Submeter comando no mysql sem entrar no console:
mysql -u root --password=teste -e "select host,user from mysql.user" mysql
Executar um script externo dentro do prompt do mysql:
mysql> source c:\temp\teste.sql
Matar sessão conectado no mysql:
mysqladmin -u root -p kill 5
Inicia BD em modo sem autenticação:
mysqld --skip-grant-tables
Desliga modo sem autenticação:
mysqladmin -u root shutdown
Data e hora atual do banco de dados:
select sysdate();
Verificar com qual usuário você está conectado:
select user();
Verificar em qual banco você está conectado:
select database();
Gerar hash para senhas:
select password('teste');
Espero que possa ter ajudado. Que a Graça e Paz estejam com todos.
[MySQL] - Habilitando Conexão Segura com MySQL e OpenSSL
Nesse artigo , será mostrado a geração de uma Autoridade
Certificado e Certificados Digitais para Servidor e Clientes do MySQL,
garantindo uma conexão segura entre ambos.
Segue em anexo, download do arquivo do word com o artigo completo.
Espero que a dica possa ajudar a outros profissionais que precisem implementar esta solução para suas aplicações. Que a Graça e Paz estejam com todos.
sábado, 3 de agosto de 2013
[Oracle] - Criação de Usuário/Schemas e Tablespace no Oracle
Bom Pessoal, segue dica para criação de Schemas/Usuários e Tablespaces no Oracle 11g para implementação do armazenamento de sistemas tanto desktop ou web.
-- Criando Tablespace para o Usuário TESTE
CREATE TABLESPACE TESTE_DADOS
DATAFILE 'C:\app\user\product\11.2.0\dbhome_1\database\TESTEDADOS01.DBF' SIZE 120M AUTOEXTEND ON NEXT 10M
DEFAULT STORAGE ( INITIAL 8K
NEXT 256K
MINEXTENTS 1
MAXEXTENTS 121
PCTINCREASE 50);
CREATE TABLESPACE TESTE_INDICES
DATAFILE 'C:\app\user\product\11.2.0\dbhome_1\database\TESTEIND01.DBF' SIZE 30M AUTOEXTEND ON NEXT 10M
DEFAULT STORAGE ( INITIAL 8K
NEXT 84K
MINEXTENTS 1
MAXEXTENTS 121
PCTINCREASE 50);
CREATE TEMPORARY TABLESPACE TESTE_TMP
TEMPFILE 'C:\app\user\product\11.2.0\dbhome_1\database\TESTETMP01.DBF' SIZE 10M AUTOEXTEND ON NEXT 5M
EXTENT MANAGEMENT LOCAL;
-- Criando o Usuário TESTE
create user teste
identified by teste
default tablespace TESTE_DADOS
temporary tablespace TESTE_TMP;
-- Privilégio do usuário TESTE
grant connect to teste;
grant resource to teste;
grant dba to teste;
grant imp_full_database to teste;
grant exp_full_database to teste;
Espero que a dica possa ajudar aqueles que estejam procurando um modelo de exemplo para implementar o armazenamento de aplicações no Oracle Database.Que a Graça e Paz estejam com todos.
[Oracle] - Comandos Uteis para Oracle
Bom pessoal, segue abaixo uma lista de comandos para manutenção e consultas referentes ao Oracle.
-- VERIFICA INSTANCIA (IDENTIFICAR NOME DA INSTANCIA E INFORMAÇÕES DA MESMA)
SELECT * FROM GLOBAL_NAME;
SELECT * FROM V$INSTANCE;
--VERSAO DO ORACLE (VERIFICAR QUAL É A VERSAO DO ORACLE)
SELECT VERSION FROM V$INSTANCE
-- VERIFICAR QUAIS SÃO OS USUÁRIOS DO SISTEMA (VERIFICAR TODOS OS USUÁRIOS EXISTENTES)
SELECT * FROM DBA_USERS
-- CONTA OBJETOS DO SCHEMA (CONTA E LISTA TODOS OS TIPOS DE OBJETOS COM UM OWNER ESPECÍFICO)
SELECT COUNT(OBJECT_TYPE), OBJECT_TYPE
FROM DBA_OBJECTS
WHERE OWNER LIKE 'RM%'
GROUP BY OBJECT_TYPE;
-- VERIFICA ATRIBUTOS DO USUÁRIO (ATRIBUTOS GERAIS DE USUÁRIOS)
SELECT * FROM DBA_USERS
WHERE USERNAME LIKE 'RM%';
SELECT * FROM DBA_TAB_PRIVS
WHERE GRANTOR LIKE 'RM%';
-- VERIFICA PREVILEGIOS DO USUÁRIO
SELECT * FROM DBA_SYS_PRIVS
WHERE GRANTEE LIKE 'RM%';
SELECT * FROM DBA_ROLE_PRIVS
WHERE GRANTEE LIKE 'RM%';
-- DESATIVA USUÁRIO / ATIVA
ALTER USER USER RM ACCOUNT LOCK;
ALTER USER USER RM ACCOUNT UNLOCK;
ALTER USER USER RM PASSWORD EXPIRE;
-- VERIFICA STATUS DA CONTA
SELECT USERNAME, ACCOUNT_STATUS FROM DBA_USERS;
-- VERIFICAR SE TEM ALGUM USUÁRIO USANDO O SISTEMA (BOM CASO DESEJE PARAR O SERVICO DO ORACLE SERVER)
SELECT SADDR, SID, USERNAME, LOGON_TIME, STATUS,
OSUSER, MACHINE, PROGRAM
FROM V$SESSION;
-- VERIFICA PREVILEGIOS DE ROLE
SELECT * FROM DBA_ROLE_PRIVS;
-- CONTA OBJETOS DO SCHEMA
SELECT COUNT(OBJECT_TYPE), OBJECT_TYPE
FROM DBA_OBJECTS
GROUP BY OBJECT_TYPE;
-- CONTA OBJETOS DE UM SCHEMA ESPECÍFICO
SELECT COUNT(OBJECT_TYPE), OBJECT_TYPE
FROM DBA_OBJECTS
WHERE OWNER LIKE 'RM%'
GROUP BY OBJECT_TYPE;
-- CONTA OBJETOS INVALIDOS
SELECT COUNT (*)
FROM DBA_OBJECTS
WHERE STATUS='INVALID'
AND OWNER LIKE 'RM%';
-- VERIFICA OBJETOS INVALIDOS
SELECT OBJECT_TYPE, OBJECT_NAME, STATUS
FROM DBA_OBJECTS
WHERE STATUS='INVALID'
AND OWNER LIKE 'RM%';
-- GERA SCRIPTS DOS OBJETOS INVALIDOS
SELECT 'ALTER'||' '|| OBJECT_TYPE ||' '||OWNER ||'.'|| OBJECT_NAME || ' COMPILE;'
FROM DBA_OBJECTS
WHERE STATUS='INVALID'
AND OWNER LIKE 'RM%';
-- VERIFICA AS ROLES RM
SELECT * FROM DBA_ROLES WHERE ROLE LIKE '%RM%';
SELECT * FROM DBA_SYS_PRIVS WHERE LIKE '%RM%';
--ALTERAR SENHA DE USUARIO
ALTER USER USER RM IDENTIFIED BY 'NOVA_SENHA';
--PROPRIEDADES DO SERVER (lANGUAGE, CHARACTER SET E ETC..)
SELECT * FROM NLS_DATABASE_PARAMETERS;
--PROPRIEDADES DA SESSAO (lANGUAGE, CHARACTER SET E ETC..)
SELECT * FROM NLS_SESSION_PARAMETERS;
--MOSTRA INFORMÇÕES GERAIS DA PARAMETRIZAÇÃO (NÃO FUNCIONA NO SQL TOOLS)
SHOW PARAMETERS
--VERIFICAR TRIGGERS NA BASE
SELECT * FROM DBA_TRIGGERS WHERE TABLE_OWNER='RM';
Espero que compartilhando estes comandos possa estar ajudando outros profissionais de TI que trabalham com banco de dados Oracle. Que a Graça e Paz estejam com todos.
-- VERIFICA INSTANCIA (IDENTIFICAR NOME DA INSTANCIA E INFORMAÇÕES DA MESMA)
SELECT * FROM GLOBAL_NAME;
SELECT * FROM V$INSTANCE;
--VERSAO DO ORACLE (VERIFICAR QUAL É A VERSAO DO ORACLE)
SELECT VERSION FROM V$INSTANCE
-- VERIFICAR QUAIS SÃO OS USUÁRIOS DO SISTEMA (VERIFICAR TODOS OS USUÁRIOS EXISTENTES)
SELECT * FROM DBA_USERS
-- CONTA OBJETOS DO SCHEMA (CONTA E LISTA TODOS OS TIPOS DE OBJETOS COM UM OWNER ESPECÍFICO)
SELECT COUNT(OBJECT_TYPE), OBJECT_TYPE
FROM DBA_OBJECTS
WHERE OWNER LIKE 'RM%'
GROUP BY OBJECT_TYPE;
-- VERIFICA ATRIBUTOS DO USUÁRIO (ATRIBUTOS GERAIS DE USUÁRIOS)
SELECT * FROM DBA_USERS
WHERE USERNAME LIKE 'RM%';
SELECT * FROM DBA_TAB_PRIVS
WHERE GRANTOR LIKE 'RM%';
-- VERIFICA PREVILEGIOS DO USUÁRIO
SELECT * FROM DBA_SYS_PRIVS
WHERE GRANTEE LIKE 'RM%';
SELECT * FROM DBA_ROLE_PRIVS
WHERE GRANTEE LIKE 'RM%';
-- DESATIVA USUÁRIO / ATIVA
ALTER USER USER RM ACCOUNT LOCK;
ALTER USER USER RM ACCOUNT UNLOCK;
ALTER USER USER RM PASSWORD EXPIRE;
-- VERIFICA STATUS DA CONTA
SELECT USERNAME, ACCOUNT_STATUS FROM DBA_USERS;
-- VERIFICAR SE TEM ALGUM USUÁRIO USANDO O SISTEMA (BOM CASO DESEJE PARAR O SERVICO DO ORACLE SERVER)
SELECT SADDR, SID, USERNAME, LOGON_TIME, STATUS,
OSUSER, MACHINE, PROGRAM
FROM V$SESSION;
-- VERIFICA PREVILEGIOS DE ROLE
SELECT * FROM DBA_ROLE_PRIVS;
-- CONTA OBJETOS DO SCHEMA
SELECT COUNT(OBJECT_TYPE), OBJECT_TYPE
FROM DBA_OBJECTS
GROUP BY OBJECT_TYPE;
-- CONTA OBJETOS DE UM SCHEMA ESPECÍFICO
SELECT COUNT(OBJECT_TYPE), OBJECT_TYPE
FROM DBA_OBJECTS
WHERE OWNER LIKE 'RM%'
GROUP BY OBJECT_TYPE;
-- CONTA OBJETOS INVALIDOS
SELECT COUNT (*)
FROM DBA_OBJECTS
WHERE STATUS='INVALID'
AND OWNER LIKE 'RM%';
-- VERIFICA OBJETOS INVALIDOS
SELECT OBJECT_TYPE, OBJECT_NAME, STATUS
FROM DBA_OBJECTS
WHERE STATUS='INVALID'
AND OWNER LIKE 'RM%';
-- GERA SCRIPTS DOS OBJETOS INVALIDOS
SELECT 'ALTER'||' '|| OBJECT_TYPE ||' '||OWNER ||'.'|| OBJECT_NAME || ' COMPILE;'
FROM DBA_OBJECTS
WHERE STATUS='INVALID'
AND OWNER LIKE 'RM%';
-- VERIFICA AS ROLES RM
SELECT * FROM DBA_ROLES WHERE ROLE LIKE '%RM%';
SELECT * FROM DBA_SYS_PRIVS WHERE LIKE '%RM%';
--ALTERAR SENHA DE USUARIO
ALTER USER USER RM IDENTIFIED BY 'NOVA_SENHA';
--PROPRIEDADES DO SERVER (lANGUAGE, CHARACTER SET E ETC..)
SELECT * FROM NLS_DATABASE_PARAMETERS;
--PROPRIEDADES DA SESSAO (lANGUAGE, CHARACTER SET E ETC..)
SELECT * FROM NLS_SESSION_PARAMETERS;
--MOSTRA INFORMÇÕES GERAIS DA PARAMETRIZAÇÃO (NÃO FUNCIONA NO SQL TOOLS)
SHOW PARAMETERS
--VERIFICAR TRIGGERS NA BASE
SELECT * FROM DBA_TRIGGERS WHERE TABLE_OWNER='RM';
Espero que compartilhando estes comandos possa estar ajudando outros profissionais de TI que trabalham com banco de dados Oracle. Que a Graça e Paz estejam com todos.
[Oracle] - Utilizando vários Banco de dados Oracle num único Listener
Bom pessoal, segue abaixo passo-a-passo para utilizar mais de um banco de dados utilizando somente um listener no Oracle.
LISTENER =
LISTENER =
SID_LIST_LISTENER =
lsnrctrl stop
Bom pessoal, lembrando que o procedimento de utilização de dois banco de dados oracle num único listener é possível em outras plataformas como windows e unix. Que a Graça e Paz estejam com todos.
1º Abra o arquivo listerner.ora
Ele estará em $ORACLE_HOME$/network/admin
Povavelmente ele terá uma cara parecida com isso:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
)
)
2º Adicione as informações de todas as databases da máquina:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = DATABASE1)
(ORACLE_HOME = /usr/oracle_app/oracle/ product/11.2.0/dbhome_1)
(SID_NAME = DATABASE1)
)
(SID_DESC =
(GLOBAL_DBNAME = DATABASE2)
(ORACLE_HOME = /usr/oracle_app/oracle/ product/11.2.0/dbhome_1)
(SID_NAME = DATABASE2)
)
)
3º Vá no bash no linux e reinicie o listener:
lsnrctrl stop
lsnrctrl start
Agora é só conectar ao segunda database.
[Oracle] - Obtendo informações de uma sessão usando o SYS_CONTEXT
Bom pessoal, segue dica para consultar as variáveis de contexto do Oracle.
O select abaixo mostra muitas informações da sessão sem que seja necessário ler a visão v$session.
SELECT
SYS_CONTEXT('USERENV',' TERMINAL') terminal,
SYS_CONTEXT('USERENV',' LANGUAGE') language,
SYS_CONTEXT('USERENV',' SESSIONID') sessionid,
SYS_CONTEXT('USERENV',' INSTANCE') instance,
SYS_CONTEXT('USERENV',' ENTRYID') entryid,
SYS_CONTEXT('USERENV','ISDBA') isdba,
SYS_CONTEXT('USERENV','NLS_ TERRITORY') nls_territory,
SYS_CONTEXT('USERENV','NLS_ CURRENCY') nls_currency,
SYS_CONTEXT('USERENV','NLS_ CALENDAR') nls_calendar,
SYS_CONTEXT('USERENV','NLS_ DATE_FORMAT') nls_date_format,
SYS_CONTEXT('USERENV','NLS_ DATE_LANGUAGE') nls_date_language,
SYS_CONTEXT('USERENV','NLS_ SORT') nls_sort,
SYS_CONTEXT('USERENV',' CURRENT_USER') current_user,
SYS_CONTEXT('USERENV',' CURRENT_USERID') current_userid,
SYS_CONTEXT('USERENV',' SESSION_USER') session_user,
SYS_CONTEXT('USERENV',' SESSION_USERID') session_userid,
SYS_CONTEXT('USERENV','PROXY_ USER') proxy_user,
SYS_CONTEXT('USERENV','PROXY_ USERID') proxy_userid,
SYS_CONTEXT('USERENV','DB_ DOMAIN') db_domain,
SYS_CONTEXT('USERENV','DB_ NAME') db_name,
SYS_CONTEXT('USERENV','HOST') host,
SYS_CONTEXT('USERENV','OS_ USER') os_user,
SYS_CONTEXT('USERENV',' EXTERNAL_NAME') external_name,
SYS_CONTEXT('USERENV','IP_ ADDRESS') ip_address,
SYS_CONTEXT('USERENV',' NETWORK_PROTOCOL') network_protocol,
SYS_CONTEXT('USERENV','BG_JOB_ ID') bg_job_id,
SYS_CONTEXT('USERENV','FG_JOB_ ID') fg_job_id,
SYS_CONTEXT('USERENV',' AUTHENTICATION_TYPE') authentication_type,
SYS_CONTEXT('USERENV',' AUTHENTICATION_DATA') vauthentication_data,
SYS_CONTEXT('USERENV',' CURRENT_SQL') current_sql,
SYS_CONTEXT('USERENV','CLIENT_ IDENTIFIER') client_identifier,
SYS_CONTEXT('USERENV','GLOBAL_ CONTEXT_MEMORY') global_context_memory
FROM dual;
Fonte:
http://maxoracle. blogspot.com/2008/11/obtendo- informaes-de-uma-sesso-usando- o.html#ixzz2XuZD9JvU
O select abaixo mostra muitas informações da sessão sem que seja necessário ler a visão v$session.
SELECT
SYS_CONTEXT('USERENV','
SYS_CONTEXT('USERENV','
SYS_CONTEXT('USERENV','
SYS_CONTEXT('USERENV','
SYS_CONTEXT('USERENV','
SYS_CONTEXT('USERENV','ISDBA') isdba,
SYS_CONTEXT('USERENV','NLS_
SYS_CONTEXT('USERENV','NLS_
SYS_CONTEXT('USERENV','NLS_
SYS_CONTEXT('USERENV','NLS_
SYS_CONTEXT('USERENV','NLS_
SYS_CONTEXT('USERENV','NLS_
SYS_CONTEXT('USERENV','
SYS_CONTEXT('USERENV','
SYS_CONTEXT('USERENV','
SYS_CONTEXT('USERENV','
SYS_CONTEXT('USERENV','PROXY_
SYS_CONTEXT('USERENV','PROXY_
SYS_CONTEXT('USERENV','DB_
SYS_CONTEXT('USERENV','DB_
SYS_CONTEXT('USERENV','HOST') host,
SYS_CONTEXT('USERENV','OS_
SYS_CONTEXT('USERENV','
SYS_CONTEXT('USERENV','IP_
SYS_CONTEXT('USERENV','
SYS_CONTEXT('USERENV','BG_JOB_
SYS_CONTEXT('USERENV','FG_JOB_
SYS_CONTEXT('USERENV','
SYS_CONTEXT('USERENV','
SYS_CONTEXT('USERENV','
SYS_CONTEXT('USERENV','CLIENT_
SYS_CONTEXT('USERENV','GLOBAL_
FROM dual;
Fonte:
http://maxoracle.
[Oracle] - Verificando Queries mais demoradas
Bom pessoal, segue dica para verificar as queries mais demoras no seu Banco de dados.
Através da consulta abaixo podemos ter as consultas que estão mais demoradas:
select sql_text, elapsed_time/1000000 elapsed_sec, executions, disk_reads, buffer_gets
from v$sqlarea
order by elapsed_time desc;
Espero que essa dica possa ajudar. Que a Graça e Paz estejam com todos.
[Oracle] - Verificando os Cursores abertos no Banco de dados
Bom pessoal, segue uma dica para verificar os cursores abertos no banco de dados e na sessão do usuário Oracle.
Verificando cursores abertos no Banco de dados:
Verificando cursores abertos na Sessão do Banco de dados:
Verificando cursores abertos no Banco de dados:
select max(a.value) as highest_open_cur, p.value as max_open_cur
from gv$sesstat a, gv$statname b, gv$parameter p
where a.statistic# = b.statistic#
and b.name = 'opened cursors current'
and p.name = 'open_cursors'
group by p.value;
select a.value, s.username, s.sid, s.serial#
from v$sesstat a, v$statname b, v$session s
where a.statistic# = b.statistic#
and s.sid = a.sid
and b.name = 'opened cursors current'
and s.username is not null;
Após verificarmos os cursores abertos no nosso banco de dados e avaliarmos se é necessário aumentar este parâmetro. Segue abaixo como alterar o parâmetro de cursores no Oracle:
ALTER SYSTEM SET OPEN_CURSORS=300 SID='*';
Bom pessoal, espero que essa dica possa ajudar aqueles que precisem saber quantos cursores estão abertos no Banco de dados. Que a Graça e Paz estejam com todos.
[Oracle] - Identificar Locks em Sessões
Bom pessoal, segue dica rápida para identificar locks entre sessões no Oracle.
select h.session_id Sessao_Travadora, ub.username Usuario_Travador ,
w.session_id Sessao_Esperando, uw.username Usuario_Esperando,
w.lock_type,
h.mode_held,
w.mode_requested,
w.lock_id1,
w.lock_id2
from dba_locks w, dba_locks h, v$session ub, v$session uw
where h.blocking_others = 'Blocking'
and h.mode_held != 'None'
and h.mode_held != 'Null'
and h.session_id = ub.sid
and w.mode_requested != 'None'
and w.lock_type = h.lock_type
and w.lock_id1 = h.lock_id1
and w.lock_id2 = h.lock_id2
and w.session_id = uw.sid;
Espero que essa dica possa ajudar a outros profissionais de Banco de dados que estejam precisando identificar problemas com locks entre sessões. Que a Graças e Paz estejam com todos.
Segue abaixo, alguns selects para auxiliar na identificação de sessões em lock:
select vs.audsid audsid,
to_char(locks.sid) sid,
to_char(vs.serial#) serial,
vs.username oracle_user,
vs.osuser os_user,
vs.program program,
vs.module module,
vs.action action,
vs.terminal,
vs.process process,
decode(locks.lmode,
1, NULL,
2, 'Row Share',
3, 'Row Exclusive',
4, 'Share',
5, 'Share Row Exclusive',
6, 'Exclusive', 'None') lock_mode_held,
decode(locks.request,
1, NULL,
2, 'Row Share',
3, 'Row Exclusive',
4, 'Share',
5, 'Share Row Exclusive',
6, 'Exclusive', 'None') lock_mode_requested,
decode(locks.type,
'MR', 'Media Recovery',
'RT', 'Redo Thread',
'UN', 'User Name',
'TX', 'Transaction',
'TM', 'DML',
'UL', 'PL/SQL User Lock',
'DX', 'Distributed Xaction',
'CF', 'Control File',
'IS', 'Instance State',
'FS', 'File Set',
'IR', 'Instance Recovery',
'ST', 'Disk Space Transaction',
'TS', 'Temp Segment',
'IV', 'Library Cache Invalidation',
'LS', 'Log Start or Log Switch',
'RW', 'Row Wait',
'SQ', 'Sequence Number',
'TE', 'Extend Table',
'TT', 'Temp Table',
locks.type) lock_type,
objs.owner object_owner,
objs.object_name object_name,
objs.object_type object_type,
round( locks.ctime/60, 2 ) lock_time_in_minutes
from v$session vs,
v$lock locks,
all_objects objs,
all_tables tbls
where locks.id1 = objs.object_id
and vs.sid = locks.sid
and objs.owner = tbls.owner
and objs.object_name = tbls.table_name
and objs.owner != 'SYS'
and locks.type = 'TM'
order by lock_time_in_minutes;
--------------------------------------------------------------------------------
Abaixo, select para verificar o select que está ocasionando o lock na sessão:
select /*+ ORDERED USE_NL(st) */ sql_text
from v$session ses,
v$sqltext st
where st.address = ses.sql_address
and st.hash_value=ses.sql_hash_value
and ses.sid= &sid
order by piece;
Fonte:
http://dicasoracledba.blogspot.com.br/2009/04/identificar-locks-entre-sessoes.html[Oracle] - Fazendo backup dos Privilégios de Usuários
-- Consulta de Privilégios de Usuário no Oracle para Gerar Grant de Tabelas, Propriedados do Sistema e Roles.
select * from (
SELECT 'grant '|| privilege||' on '||OWNER||'.'||table_name||' to '||grantee||';' s
FROM dba_tab_privs WHERE grantee=UPPER('&USER') UNION ALL
SELECT 'grant '|| privilege||' to '||grantee||';' s
FROM dba_sys_privs WHERE grantee=UPPER('&USER') UNION ALL
SELECT 'grant '||granted_role||' to '||grantee||';' s
FROM dba_role_privs WHERE grantee=UPPER('&USER'));
Espero que essa dica possa ajudar a outros profissionais de banco de dados Oracle, Que a graça e paz estejam com todos.
SELECT 'grant '|| privilege||' on '||OWNER||'.'||table_name||' to '||grantee||';' s
FROM dba_tab_privs WHERE grantee=UPPER('&USER') UNION ALL
SELECT 'grant '|| privilege||' to '||grantee||';' s
FROM dba_sys_privs WHERE grantee=UPPER('&USER') UNION ALL
SELECT 'grant '||granted_role||' to '||grantee||';' s
FROM dba_role_privs WHERE grantee=UPPER('&USER'));
[PL/SQL] - Habilitando Debug de Conexões no Oracle
Bom pessoal, vou deixar uma dica rápida para aqueles que desenvolvem em PL/SQL Oracle para utilizar a opção de Debug pelas ferramentas de desenvolvimento SQL Developer da Oracle e PL/SQL Developer da Arround Software:
grant debug connect session to teste;
grant debug any procedure to teste;
A dica é simples, mais pode ajudar a desenvolvedores e DBAs iniciantes que precisem utilizar o Debug de Conexões Oracle para desenvolver aplicações em PL/SQL. Que a Graça e Paz estejam com todos.
Assinar:
Postagens (Atom)