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.