Instalando Remmina no Ubuntu | Linux

Para instalar Remina no Ubuntu, acesse o terminal. Em seguida, execute os seguintes comandos:


sudo apt-add-repository ppa:remmina-ppa-team/remmina-next

sudo apt update

sudo apt install remmina remmina-plugin-rdp remmina-plugin-secret

 

 Fonte: https://remmina.org/

Alterando fonte no Ubuntu | Linux

Para alterar a fonte no Ubuntu será necessário ter instalado a ferramenta de ajuste de configurações avançadas do GNOME.

Acesse o terminal (ctrl + alt + T) e digite a instrução abaixo.

$ sudo apt install gnome-tweaks

Após a instalação, localize a ferramenta "Ajustes" em localizar e depois abra a ferramenta.


Em seguida, selecione Fontes e alguma das opções de texto que você deseja alterar a fonte ou o seu tamanho.


Pronto, com a ferramenta Ajustes, além de você conseguir alterar as fontes terá diversas opções para personalizar aparência do seu Ubuntu.

Instalando OBS Studio no Ubuntu | Linux

Para instalar o OBS Studio no Ubuntu versão 15.04 ou superior, antes será necessário instalar o FFmpeg, uma solução multiplataforma completa para gravação, conversão e transmissão de áudio e vídeo.

No terminal de comando digite para instalar o FFmpeg:

sudo apt-get install ffmpeg

Após a instalação finalizar

sudo add-apt-repository ppa:obsproject/obs-studio

sudo apt-get update && sudo apt-get install obs-studio

Referências:

https://obsproject.com/

https://ffmpeg.org/


Varying character e character | Tipo de dados caracteres no PostgreSQL

O SQL define dois tipos primários do tipo caracter: character varying(n) e character(n), sendo "n" um número inteiro positivo. A notação varchar(n) e char(n) são apenas aliases para os tipos de dados primários apresentados.

Observe o exemplo abaixo no psql.

test=# CREATE TABLE pessoa (
test(# nome character varying(50) not null primary key,
test(# sexo character(1));
CREATE TABLE


Independente dos campos serem criados usando "character varying" ou o seu alias "varchar" os detalhes da tabela no PostgreSQL irá mostra "character varying" e "character", como apresentado abaixo.

test=# \d pessoa



Ambos são tipos que podem armazenar até o número de carecteres correspondente ao valor de "n". Uma tentativa de armazenar um string mais longo que o valor de "n" resultará em um erro, a menos que os caracteres excedentes sejam todos espaços em branco, caso em que serão truncados pelo limite máximo, comportamento requerido pelo Padrão SQL. Caso o string no tipo de dados character (char) seja menor que o limite máximo, restante será completado com espaços em branco. Já o caracter varying (varchar) irá armazenar apenas o tamanho do texto.

POSTGRESQL.ORG

Backup completo e diferencial no SQL Server | SQL Server

BACKUP

O backup completo ou full backup, como o próprio nome diz, é a cópia do banco de dados na sua integralidade, incluindo todos os seus objetos, tabelas de sistema, dados bem como as transações que ocorreram durante o processo de backup, permitindo restaurar o banco de dados por completo.
Já o backup diferencial ou differential backup é uma cópia que contém apenas os dados que foram modificados desde a última cópia completa (full backup). Esse tipo de backup é utilizado em conjunto como o último backup completo (full backup).

Outro termo utilizado quando se aborda a cópia de segurança é o backup incremental, no entando não é apropriado utilizá-lo já que o SQL Server não possui esse tipo de backup. O que há de mais próximo ao backup incremental no SQL Server é o backup de log de transações (transaction log backup), que cópia todos as alterações que ocorrerão depois último backup do log de transações e trunca o log de transações (trasaction log).
Nesse tipo de backup, as transações são truncadas, removendo do log aquelas que foram confirmadas (committed) ou canceladas.

A instrução BACKUP cria um backup do banco da dados no SQL Server, que poderá ser completo, diferencial, log de transações ou até mesmo parciais caso seja definido nomes ou grupos de arquivos.

Qual a diferença entre DATEFIRST e @@DATEFIRST? | SQL Server

DATEFIRST

Define o primeiro dia da semana como um número de 1 a 7.

Sintaxe

SET DATEFIRST { number | @number_var }

Exemplo

SET DATEFIRST 1; -- Define o primeiro dia da semana como Segunda-Feira

1 - Segunda
2 - Terça-feira
3 - Quarta-feira
4 - Quinta-feira
5- Sexta
6 - Sábado
7 - Domingo


@@DATEFIRST

Essa função retorna o valor atual de SET DATEFIRST para uma sessão específica. Ou seja, você utiliza @@DATEFIRST para retorna o valor que foi configurado por SET DATEFIST.


SET DATEFIRST 5; -- Definido como Sexta-feira
SELECT @@DATEFIRST;

Portanto, SET DATEFIRST define o dia da semana e @@DATEFIRST é utilizada para recuperar o valor que foi definido com SET DATEFIRST.

CREATE INDEX | PostgreSQL

CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] [ name ]
ON table [ USING method ] ( { column | ( expression ) }
[ COLLATE collation ]
[ opclass ]
[ ASC | DESC ]
[ NULLS { FIRST | LAST } ]
[, ...] )
[ WITH ( storage_parameter = value [, ... ] ) ]
[ TABLESPACE tablespace ]
[ WHERE predicate ]

Parameters



UNIQUE

Faz com que o sistema cheque valores duplicados na tabela quando o índice é criado e cada vez que são adicionado novos dados. Tentativa de inserir e atualizar dados com entradas duplicadas irá gerar erro.

CONCURRENTLY

Quando esta opção é usada, PostgreSQL irá criar o índice sem colocar nenhum bloqueio que evite inserções, atualizações e exclusões na tabela; diferentemente de um índice padrão, que bloqueia escritas, mas não as leituras na tabela até o final da contrução do índice.

name

O nome do índice a ser criado. Não poderá ser especificado o nome do esquema, que será sempre o mesmo da tabela pai. Caso do índice seja omitido, o PostgreSQL escolherá o nome mais apropriado, baseado no nome da tabela pai e os nomes das colunas.

table

O nome da tabela a ser indexada.

method

O nome do méthodo a ser utilizado. Escolha são BTREE, HASH, GIST e GIN. O padrão é BTREE.

column

O nome das colunas da tabela a serem indexadas.

Instalação PostgreSQL | Glossário

pgAdmin é uma ferramenta de gerenciamento de código aberto para Postgres1, o banco de dados de código aberto mais avançado do mundo. O pgAdmin foi desenhado para satisfazer as necessidades de ambos os usuários de Postgres, novatos e experientes, disponibilizando uma poderosa ferramenta com interface gráfica para simplificar a criação, manutenção e manipulação de objetos do banco de dados.

1Foi utilizada a mesma denominação existente no conteúdo original, Postgres ao invés de PostgreSQL.




pgAgent é um agendador de tarefas do PostgreSQL, com capacidade para rodar em várias etapas batch/shell e tarefas SQL em agendamentos complexos. Desde o pgAdmim 1.9 em diante, o pgAgent é distribuído independentemente do pgAdmin.

Stack Builder é um ferramenta que disponibiliza uma interface gráfica que simplifica o processo downloading e instalação de módulos complementares para o PostgreSQL. Ao instalar o módulo com o Stack Builder, as dependências são resolvidas automaticamente pelo utilitário. No final da instalação do PostgreSQL o Stack Builder é executado automaticamente, além disso poderá ser invoca a qualquer momento após a instalação do banco de dados.



Ferramentas de Linha de Comando (Command Line Tools)

Essa opção instala ferramentas de linha de comando e bibliotecas de cliente como libpg, ecpg, pg_basebackup, pg_dump, pg_restore, pgbench. As ferramentas ferramentas de linha de comando são requeridas quando intalado o Servidor de Banco de Dados PostgreSQL ou o pgAdmin 4.

libpg é uma interface do programador de aplicativos em C para o PostgreSQL com um conjunto biblioteca de funções que permite programas clientes enviem instruções para o servidor PostgreSQL que retornar o resultado dessas consultas.

pg_dump é um aplicação cliente regular do PostgreSQL, que gera um arquivo com instruções SQL que, quando retornado para o servidor, irá recriar uma base de dados no mesmo estado em que estava no momento que o dump foi realizado.

ecpg é um preprocessador SQL para programas em C, que converte esses programas com instruções SQL embutida para código C normal, substituindo o chamadas em SQL com chamadas especiais de função. Os arquivos de saída então podem ser processados com qualquer compilador em C toolchain1.
1Uma toolchain é um conjunto de ferramentas que são usados em cadeia (chain) com o propósito de compilar e rodar códigos escritos em uma liguagem específica.

pgbench é um programa que executa um teste de benchmark no PostgreSQL, sempre com a mesma sequência de comandos repetidamente nas sessões concorrentes, calculando a taxa média de transações (transações por segundo). Por padrão, pgbench testa um cenário baseado vagamente em TPC-B (Transaction Processing Performance Council (TPC) benchmarks).

A execução do dbbench mostrará um resultado similar a este:

transaction type:
scaling factor: 10
query mode: simple
number of clients: 10
number of threads: 1
number of transactions per client: 1000
number of transactions actually processed: 10000/10000
tps = 85.184871 (including connections establishing)
tps = 85.296346 (excluding connections establishing)


pg_restore é um utilitário usado para restaurar base de dados PostgreSQL criadas pelo pg_dump em um dos formatos nom-plain-text (formatos que não são de textos simples), executando comandos necessários para reconstrução da base de dados ao estado dela no momento da realização do backup com o pg_dump. O pg_restore também permite uma restauração seletiva ou mesmo reordenação dos items anteriores para iniciação da restauração. Os arquivos são desenhados para serem portáveis entre plataformas de arquiteturas diferentes.

pg_basebackup é utilizado para realizar backup base de um banco cluster no PostgreSQL. Poderá ser usado em dois modos: de recuperação em um ponto no tempo (point-in-time recovery) ou de ponto de início para um log shipping ou um trasmissão de replicação (streaming replication) para um servidor em modo de espera (stand by). Log shipping é utilizado para criar um cluster de alta disponibilidade (high availability - HA - cluster) com um ou mais servidores em modo de espera (standby) que estarão prontos para assumirem o controle caso o servidor primário falhe, conhecidos como warm standby ou log shipping

Bibliografia

PostgreSQL.org
TPC.org

Como listar arquivos no Linux

No Linux, o comando ls (list) é utilizado para listar o conteúdo de diretórios, ou seja, lista o que estiver dentro do diretório de acordo com as opções digitadas (arquivos, outros diretórios, links para arquivos, arquivos ocultos etc).

A sintaxe básica do comando ls é:

ls [OPTION]... [FILE]...
Para os exemplos a seguir, utilizaremos o terminal Linux do site https://bellard.org.

Veja que apenas o comando ls sem as opções não é muito útil, como mostrado abaixo.

[root@localhost ~]# ls
dos      hello.c

Observe que o comando ls apenas listou o nome de um diretório (dos) e de um arquivo (hello.c).

Assim, para que possamos ter mais informações, vamos acrescentar a opção (option) -l para listar o conteúdo do diretório atual no formato de lista longa.

[root@localhost ~]# ls -l
total 8
drwxr-xr-x    3 root     root           163 Aug 20  2011 dos
-rw-r--r--    1 root     root           242 Jul 15  2017 hello.c

Antes de seguirmos adiante, precisamos saber o que significa cada uma dessas colunas no formato de lista longa.

Tipo e Permissões Número de Links Proprietário (Owner) Grupo Tamanho em Bytes Data de Modificação Nome do Arquivo
-rw-r--r-- 1 root root 242 Jul 15 2017 hello.c

Tipos e Permissões

A primeira coluna (Tipos e Permissões) possui 10 caracteres, como podemos ver na tabela abaixo.

1 234 567 8910
Tipo de Arquivo Usuário Grupo Outras
-, d, l, s, c, b rwx rwx rwx

O primeiro caractere refere-se ao tipo de arquivo, e o hífen (-), neste caso, significa um tipo de arquivo regular, como é mostrado na tabela a baixo.

Tipo de ArquivoSignificado
-Arquivo regular (Regular file)
dDiretório (Directory)
lLink simbólico (Symbolic link)
sSocket
cArquivo de dispositivo (Character device file)
bDispositivos de bloco (Block device file)

Já os demais 9 caracteres, do 2º ao 10º, são as permissões de Usuário, Grupo e Outras permissões.

Caracter Significado
- sem privilégios
r read (ler)
w write (escrever)
x excecute (executar)

Compreendendo o formato de lista longa do comando ls fica tudo mais fácil. Por fim, caso você deseje saber mais detalhes sobre o comando ls, basta digitar man [command], como mostrado abaixo:

$ man ls

Até a próxima!

Restringindo acessos a tabelas e visões do esquema SYS com O7_DICTIONARY_ACCESSIBILITY no Oracle


Raramente, um usuário solicita acesso a todas as tabelas e visões de um banco de dados. No entanto, sabemos que tal demanda pode vir a ocorrer. São os casos de usuários criados para gerenciamento de sistemas, extração e mineração de dados.

Agora, suponha que o setor de desenvolvimento solicitou acesso a todas as tabelas e as visões de todos os esquemas de um banco de dados, exceto do esquema SYS.

Caso o DBA execute SELECT ANY TABLE para dar as permissões solicitadas, ele estará liberando acesso inclusive as tabelas e as visões do dicinário de dados do esquema SYS.

Para evitar isso, você poderá limitar acesso as tabelas de sistema configurando o parâmetro O7_DICTIONARY_ACCESSIBILITY para falso (false).

Vamos a um exemplo para melhor entendimento.

1. Conecte a um banco de dados de teste com um usuário que tenha permissão para dar privilêgios. Neste exemplo, vamos conectar com o usuário SYSDBA pelo SQL PLUS, o comando deverá ser executado na linha de prompt de commando do Linux ou Windows.

sqlplus / sysdba

2. Crie um usuário TESTE e libere a permissão SELECT ANY TABLE, de acordo com o script abaixo:

SQL>CREATE USER TESTE IDENTIFIED BY passwordteste;
SQL>GRANT CREATE SESSION TO TESTE;
SQL>GRANT SELECT ANY TABLE TO TESTE;

O parâmetro O7_DICTIONARY_ACCESSIBILITY é configurado como verdadeiro (true), por padrão.

3. Agora execute o script abaixo e caso o parâmetro esteja como verdadeiro (true), você visualizará a estrutura da visão DBA_TABLES, que tem a descrição de todas as tabelas relacionais do banco de dados.

SQL>CONNECT TESTE;
SQL>DESC DBA_TABLES;

Name                                              Null?    Type
 ----------------------------------------- -------- ----------------------------
 OWNER                                        NOT NULL VARCHAR2(30)
 TABLE_NAME                               NOT NULL VARCHAR2(30)
 TABLESPACE_NAME                                      VARCHAR2(30)
 CLUSTER_NAME                                            VARCHAR2(30)

4. Nesse ponto, você configurará o parâmetro O7_DICTIONARY_ACCESSIBILITY para FALSE e reiniciará a instância de banco de dados.

SQL>ALTER SYSTEM SET O7_DICTIONARY_ACCESSIBILITY=TRUE SCOPE=SPFILE;

SQL>STARTUP FORCE
Total System Global Area  393375744 bytes
Fixed Size                               1374836 bytes
Variable Size                      306185612 bytes
Database Buffers                  79691776 bytes
Redo Buffers                           6123520 bytes
Database mounted.
Database opened.

5. Conecte via SQL*Plus a instância de banco de dados e com o usuário SYSDBA para se certificar que ele foi alterado;

SQL>SHOW PARAMETERS O7_DICTIONARY_ACCESSIBILITY

NAME                                              TYPE          VALUE
------------------------------------         -----------    ------------------------------
O7_DICTIONARY_ACCESSIBILITY  boolean    FALSE

Atenção: "O7_" antes do número 7 é a letra O em letras maiúsculas e não um zero.

6. Agora, conecte com o usuário TESTE e tente executar a instrução DESC DBA_TABLES, você receberá a mensagem do Oracle com a mensagem "raise ORA-04043: object does not exist", objeto não existe.

SQL>CONNECT TEST;
SQL>DESC DBA_TABLES;

ERROR:
ORA-04043: object does not exist

Essa mensagem é mostrada, neste caso, por que o usuário TESTE não possui mais permissões para visualizar tabelas e visões do dicionário de dados esquema SYS na instância de banco de dados Oracle.


References:

Oracle documentation
Meu post originalmente escrito em inglês: Restricting privileges setting O7_DICTIONARY_ACCESSIBILITY on Oracle.

Comando find Linux | como localizar o arquivo alert log | Oracle 11g

Neste primeiro post, irei mostrar a você o comando "find" do Linux, ele é utilizado para localizar arquivos e muito útil aos DBAs para encontrar arquivos do Oracle.

Após loga no Linux você irá executar esse comando:

[root@ol32 ~]# find / -iname "ALERT*.LOG"

O resultado deverá ser algo similar ao listado abaixo.

/u01/app/oracle/diag/rdbms/orcl/orcl/trace/alert_orcl.log

Veja que propositalmente digitei "ALERT*.LOG" todo em letras maíusculas e mesmo o Linux sendo case sensitive irá localizar iniciados por "alert" independente de está em letras maíusculas ou minúsculas.

Vamos entender o comando:

find  - localiza arquivos nos diretórios.

"/"   - a barra foi utilizada para identificar o direitório que é iniciada a busca, neste caso o direitório root.

iname - analisa se existem arquivos que coincidem com o termo digitado, veja que "i" em "iname" é referente a insensitive, então você não terá dificuldade em localizar os arquivos independente do formato que os nomes eles tiverem. 


Lembre-se de que foi utilizado asterisco ("*") como corringa entre os caracteres, para que qualquer arquivo iniciado pela palavra "alert" seja encontrado.

Caso tenha gostado deixe o seu comentário e até o próximo post.

Instalando Remmina no Ubuntu | Linux

Para instalar Remina no Ubuntu, acesse o terminal. Em seguida, execute os seguintes comandos: sudo apt-add-repository ppa:remmina-ppa-team/r...