MigraTI - Soluções em banco de dados

Guob 2017

terça-feira, 20 de dezembro de 2016

Instalação do mssql-tools no linux

Ontem a tarde foi escrito como efetuar a instalação do SQL-Server no Cento 7.
Agora vamos descrever como efetuar a instalação do SQLCMD.

A instalação é muito parecida com a do SQL-Server, porem são outros pacotes e outro repositório. (coisas de microsoft)

A Instalação esta utilizando o mesmo servidor que foi instalado o SQL-Server Ontem. Veja aqui o post sobre isso.


Mãos a Massa:

Instalar o repositório

[root@localhost ~]#  curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/msprod.repo
Ou adicionar o repositório manualmente:

[root@localhost ~]# vi /etc/yum.repos.d/msprod.repo
[packages-microsoft-com-prod]
name=packages-microsoft-com-prod
baseurl=https://packages.microsoft.com/rhel/7/prod/
enabled=1
gpgcheck=1
gpgkey=https://packages.microsoft.com/keys/microsoft.asc

Após configurar o repositório basta instalar o mssql-tools

[root@localhost ~]# yum install -y mssql-tools
Este comando já irá instalar o sqlcmd e o ODBC para o banco.

Após isto, você já esta pronto para conectar no banco de dados pelo sql-cmd:
[root@localhost ~]# sqlcmd -S localhost -U sa -P 'XXXXXXXXXX'
1> use master;
2> go
Changed database context to 'master'.
1> select @@version;
2> go
                                                                                                                                                                                                                                             
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Microsoft SQL Server vNext (CTP1.1) - 14.0.100.187 (X64)
        Dec 10 2016 02:51:11
        Copyright (C) 2016 Microsoft Corporation. All rights reserved.
        on Linux (CentOS Linux 7 (Core))

(1 rows affected)







segunda-feira, 19 de dezembro de 2016

SQL-Server on Linux (Centos/Red Hat/Fedora)

A alguns meses atrás a Microsoft sacudiu o mundo do TI liberando o SQL-Server para Linux, diante dessas perspectivas muito se foi cogitado sobre essa nova forma de utilizar o SQL-Server.

Resolvi efetuar a instalação de um Linux e instalar o SQL-Server nele basicamente para comparar a instalação dele.

A Instalação foi baseada em um "Centos 7",  4Gb de Memória e 1 processador. (O SQL-Server precisa de no minimo 3,2Gb de memória para rodar)
No site da microsoft só existe referencias para o Linux 7, suse e ubunto. Não testei com o Linux 6, mas acredito que não funcionaria...

Então, mão a Obra:

Após instalar o Centos, é necessário configurar os repositórios da Microsoft para termos os pacotes mais atualizados possíveis.


[root@localhost ~]# curl https://packages.microsoft.com/config/rhel/7/mssql-server.repo > /etc/yum.repos.d/mssql-server.repo
Caso você desejar efetuar essa configuração na mão, basta ir na pasta dos pacotes e adicionar as linhas abaixo:

/etc/yum.repos.d/mssql-server.repo
[packages-microsoft-com-mssql-server]
name=packages-microsoft-com-mssql-server
baseurl=https://packages.microsoft.com/rhel/7/mssql-server/
enabled=1
gpgcheck=1
gpgkey=https://packages.microsoft.com/keys/microsoft.asc
Configurado o repositório, basta instalar o pacote:

[root@localhost ~]# yum install -y mssql-server
A opção "-y" é para efetuar a instalação automática, serve apenas para não parar no meio do processo solicitando o "yes" de aceite.

Após a instalação do seu SQL-Server, vamos configura-lo:

[root@localhost ~]# /opt/mssql/bin/sqlservr-setup
O Comando acima irá configurar o seu sql para a primeira conexão.

Observe abaixo:
[root@localhost ~]# /opt/mssql/bin/sqlservr-setup
Microsoft(R) SQL Server(R) Setup

You can abort setup at anytime by pressing Ctrl-C. Start this program
with the --help option for information about running it in unattended
mode.

Please enter a password for the system administrator (SA) account:
Please confirm the password for the system administrator (SA) account:

Setting system administrator (SA) account password...

Do you wish to start the SQL Server service now? [y/n]: y
Do you wish to enable SQL Server to start on boot? [y/n]: y
Created symlink from /etc/systemd/system/multi-user.target.wants/mssql-server.service to /usr/lib/systemd/system/mssql-server.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/mssql-server-telemetry.service to /usr/lib/systemd/system/mssql-server-telemetry.service.

Setup completed successfully.
O configurador solicitou senha e a confirmação dela, se eu desejo iniciar imediatamente o SQL-Server e se desejo configura-lo para iniciar automaticamente.

Após isso é só acessa-lo conforme abaixo:

Simples não?

sábado, 8 de outubro de 2016

Grant para usuário visualizar apenas databases especificas. (SQL-Server)

Bom dia, sempre me preocupei muito em escrever posts sobre Oracle, porem como o meu foco hoje em dia não é apenas Oracle e sim, Banco de dados em Geral, começarei a postar dicas de outros bancos de dados também, dito isso vamos dar uma dica bem bacana de SQL-Server.

Sabe quando você possui um usuário e não quer que ele consiga nem mesmo visualizar os databases que a instancia possui? Então, no SQL-Server é meio "chato" de fazer essa configuração na mão, então la vai os comandos que efetuam esse Grant.

Conecte com algum usuário que possua permissão sysadmin e efetue o processo abaixo:

USE <database_destino>

ALTER AUTHORIZATION ON DATABASE::<database_destino>to <usuário_destino>;


USE MASTER

DENY VIEW ANY DATABASE TO <database_destino>;

Caso o primeiro comando dê erro, verifique se o mesmo já não possui acesso ao database, é importante que ele ainda não possua acesso ao database.

Para você ver como ficaria o usuário seria assim...
Na aba "Mapeamento de Usuário":



Na aba "Protegíveis", vá para "Efetivas":




Boa diversão.

segunda-feira, 15 de agosto de 2016

ORA-27037: unable to obtain file status (standby)

Quando você possuir um standby e durante as replicações do mesmo, você receber este erro abaixo:

ORA-00313: open failed for members of log group 3 of thread 1
ORA-00312: online log 3 thread 1: '/home/oracle/app/oracle/oradata/dbprod/redo03.log'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory

Não se desespere, tudo há solução.

Abra o banco em modo read only, e cancele qualquer tipo de recuperação do mesmo.

Alter database recover cancel;

Após você manter seu standby aberto em modo leitura, execute o comando abaixo:

alter database recover managed standby database using current logfile disconnect;

Após isso efetue o shutdown do seu database e refaça os processos de recuperação.

Qualquer duvida procure uma consultoria especializada, clicando aqui.

segunda-feira, 19 de maio de 2014

GPG key retrieval failed: [Errno 14] Could not open/read file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle

Caso você tenha lido o nosso post sobre como simplificar a instalação do Oracle, e após isto tentou utilizar o mesmo processo para instalar o banco de dados em algum SO diferente o oracle linux, você irá se deparar com o seguinte erro...

Leia Mais...

Diferenças entre Truncate table, Drop table ou Delete from

Muitas vezes nos deparamos com a situação de limpar os registros em alguma determinada tabela.
Porem, qual comando usar? Qual comando é mais rápido para o Banco de dados? Ou qual comando atenderá a sua necessidade?
Veremos a seguir qual é o melhor caminho para a sua necessidade.

terça-feira, 19 de março de 2013

Funções Analíticas do Oracle (Rank)


Hoje precisei efetuar um select  e listar os top 10 de uma tabela.
Me lembrei que já tinha utilizado isso em uma procedure bem antiga. Só não lembrava com havia feito, então devido a isso eu decidi estudar novamente sobre esta função chamada RANK.
Bom o que eu desejava era coletar os top 10 sql’s da v$sql. então vamos em busca do que queremos.
O melhor exemplo que encontrei na internet foi este
select … analytic-function (…) over (partition by …) ..
select … analytic-function (…) over (order by …) ..
select … analytic-function (…) over (partition by … order by …) ..

terça-feira, 23 de outubro de 2012

Erro No Java ao chamar DBCA ou NETCA (libnnz11.so+)


Ao instalar o oracle em VM vocês podes se deparar com o erro (libnnz11.so+), conforme abaixo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[oracle@linux1 response]$ dbca -silent -responseFile /orainstall/database/response/dbca.rsp
#
# An unexpected error has been detected by HotSpot Virtual Machine:
#
# SIGSEGV (0xb) at pc=0x9f47245c, pid=23131, tid=3078883008
#
# Java VM: Java HotSpot(TM) Client VM (1.5.0_17-b02 mixed mode)
# Problematic frame:
# C [libnnz11.so+0x3c45c]
#
# An error report file with more information is saved as hs_err_pid23131.log
#
# If you would like to submit a bug report, please visit:
#
Aborted