CentOS 7

Comandos Úteis Oracle 18c

Login como “SYSDBA”

# sqlplus "sys as sysdba"

Habilitando o acesso externo ao Enterprise Manager:

SQL> exec dbms_xdb_config.SetListenerLocalAccess(false);

Alterar o container da sessão:

SQL> ALTER SESSION SET CONTAINER=XEPDB1;

Alterando o container da sessão root:

SQL> ALTER SESSION SET CONTAINER=CDB$ROOT;

Alterando o SCHEMA da sessão:

SQL> ALTER SESSION SET CURRENT_SCHEMA = test;

Criar um tablespace com 100MB expandindo automaticamente 100MB:

SQL> CREATE TABLESPACE teste DATAFILE '/opt/oracle/oradata/XE/XEPDB1/teste.dbf' SIZE 100M AUTOEXTEND ON NEXT 100M;

Excluindo um tablespace e os arquivos de dados:

SQL> DROP TABLESPACE teste INCLUDING CONTENTS AND DATAFILES;

Criando um usuário no container atual com quota ilimitada no tablespace especificado:

SQL> CREATE USER teste IDENTIFIED BY 123 DEFAULT TABLESPACE teste QUOTA UNLIMITED ON teste CONTAINER=CURRENT;

Definindo uma quota ilimitada para um usuário em um tablespace:

SQL> ALTER USER teste QUOTA UNLIMITED ON teste;

Concedendo permissões padrões a um usuário:

SQL> GRANT CREATE SESSION,CREATE TABLE,CREATE SEQUENCE,CREATE ANY DIRECTORY TO teste;

Concendo permissão para executar as funções do pacote CTX_DDL:

SQL> GRANT EXECUTE ON CTX_DDL TO teste;

Excluindo um usuário:

SQL> DROP USER teste;

Habilitando o suporte a índices FULLTEXT:

BEGIN
    CTX_DDL.CREATE_PREFERENCE('MIXED_CASE_LEXER_PREF','BASIC_LEXER');
    CTX_DDL.SET_ATTRIBUTE('MIXED_CASE_LEXER_PREF', 'MIXED_CASE', 'FALSE');
    CTX_DDL.SET_ATTRIBUTE('MIXED_CASE_LEXER_PREF', 'BASE_LETTER','TRUE'); 
END;

Criando um índice FULLTEXT:

CREATE INDEX INDICETABELACAMPO ON TABELA(CAMPO) INDEXTYPE IS CTXSYS.CONTEXT PARAMETERS ('LEXER MIXED_CASE_LEXER_PREF SYNC(ON COMMIT)');

Excluindo um índice

DROP INDEX INDICEDOCUMENTOASSUNTO;

Alterando os parâmetros “NLS_SORT” and “NLS_SORT” para ajustar a busca e ordenação como case insensitive a nível de CDB:

SQL> ALTER SYSTEM SET NLS_SORT='BINARY_AI' SCOPE=SPFILE;
SQL> ALTER SYSTEM SET NLS_COMP='LINGUISTIC' SCOPE=SPFILE;
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP;

Alterando os parâmetros “NLS_SORT” and “NLS_COMP” para ajustar a busca e ordenação como case insensitive a nível de PDB:

SQL> ALTER SESSION SET CONTAINER = XEPDB1;
SQL> ALTER SYSTEM SET NLS_SORT='BINARY_AI' SCOPE=SPFILE;
SQL> ALTER SYSTEM SET NLS_COMP='LINGUISTIC' SCOPE=SPFILE;
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP;

Retornando os valores padrões de propriedades a nível de CDB ou PDB:

SQL> ALTER SYSTEM RESET NLS_SORT SCOPE=SPFILE;
SQL> ALTER SYSTEM RESET NLS_COMP SCOPE=SPFILE;

SQL> ALTER SESSION SET CONTAINER = XEPDB1;

SQL> ALTER SYSTEM RESET NLS_SORT SCOPE=SPFILE;
SQL> ALTER SYSTEM RESET NLS_COMP SCOPE=SPFILE;

SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP;

Criando um Trigger de Logon para ajustar a busca e ordenação case insensitive a nível de sessão:

CREATE OR REPLACE TRIGGER CASE_INSENSITIVE_ONLOGON AFTER LOGON ON SCHEMA BEGIN
    EXECUTE IMMEDIATE 'ALTER SESSION SET NLS_COMP=LINGUISTIC';
    EXECUTE IMMEDIATE 'ALTER SESSION SET NLS_SORT=BINARY_AI';
END;

Exibindo informações de um parâmetro:

SQL> SHOW PARAMETER NLS_COMP;
SQL> SHOW PARAMETER NLS_SORT;

Exibindo informações de um parâmetro a nível de sessão:

SQL> SELECT * FROM nls_session_parameters WHERE parameter IN ('NLS_COMP', 'NLS_SORT');

Exibindo informações de um parâmetro a nível de CDB:

SQL> SELECT * FROM nls_database_parameters WHERE parameter IN ('NLS_COMP', 'NLS_SORT');

Exibindo informações de um parâmetro a nível de instância:

SQL> SELECT * FROM nls_instance_parameters WHERE parameter IN ('NLS_COMP', 'NLS_SORT');

Gerando Backup:

#> expdp USER/PASSWORD@localhost/XEPDB1 DIRECTORY=DATA_PUMP_DIR DUMPFILE=BACKUP.DMP EXCLUDE=STATISTICS SCHEMAS=SCHEMA_NAME

Gerando Backup e redirecionando o output no Linux:

# expdp USER/PASSWORD@localhost/XEPDB1 DIRECTORY=DATA_PUMP_DIR DUMPFILE=BACKUP.DMP EXCLUDE=STATISTICS SCHEMAS=SCHEMA_NAME 1>export.log 2>&1

Importando o backup:

#> impdp USER/PASSWORD@localhost/XEPDB1 directory=DATA_PUMP_DIR dumpfile=BACKUP.dmp SCHEMAS=SCHEMA_NAME

Importando o backup e remapeando o schema:

#> impdp USER/PASSWORD@localhost/XEPDB1 directory=DATA_PUMP_DIR dumpfile=BACKUP.dmp REMAP_SCHEMA=SCHEMA_NAME:NEW_SCHEMA_NAME SCHEMAS=SCHEMA_NAME

Referências

https://oracle-base.com/articles/12c/column-level-collation-and-case-insensitive-database-12cr2
https://www.unix.com/shell-programming-and-scripting/209029-expdp-error-logging.html

Instalando o Oracle XE 18c no Centos 7 1810

Baixando e instalando os pacotes de pré-instalação:

# curl -o oracle-database-preinstall-18c-1.0-1.el7.x86_64.rpm https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracle-database-preinstall-18c-1.0-1.el7.x86_64.rpm
# yum -y localinstall oracle-database-preinstall-18c-1.0-1.el7.x86_64.rpm

Acesse a página abaixo e baixe o pacote “oracle-database-xe-18c-1.0-1.x86_64.rpm” (é necessário possuir cadastro), copiando-o para o diretório “/root” da máquina:

https://www.oracle.com/technetwork/database/database-technologies/express-edition/downloads/index.html

Instalando o Oracle 18c:

# yum -y localinstall oracle-database-xe-18c-1.0-1.x86_64.rpm

Para criar uma instância do Oracle XE, basta executar o comando abaixo e digitar a senha (o comando abaixo cria uma instância de nome “XE” com suporte a CDB e um PDB de nome “XEPDB1”):

# /etc/init.d/oracle-xe-18c configure

Crie um arquivo para definir as variáveis de ambiente no login (estará disponível no próximo login):

# tee /etc/profile.d/set_oraenv.sh <<-'EOF'
export ORACLE_SID=XE
export ORACLE_HOME=/opt/oracle/product/18c/dbhomeXE
export ORACLE_BASE=/opt/oracle
export PATH=$PATH:/opt/oracle/product/18c/dbhomeXE/bin
EOF

Iniciando o serviço e colocando para inicialização automática:

# systemctl daemon-reload
# systemctl start oracle-xe-18c
# systemctl enable oracle-xe-18c

Referências

https://docs.oracle.com/en/database/oracle/oracle-database/18/xeinl/procedure-installing-oracle-database-xe.html
https://mikesmithers.wordpress.com/2019/01/03/installing-and-configuring-oracle-18cxe-on-centos/

Instalando o Mono 6.0 no CentOS 7 1810

Adicionando os repositórios do Mono:

# rpmkeys --import "http://pool.sks-keyservers.net/pks/lookup?op=get&search=0x3fa7e0328081bff6a14da29aa6a19b38d3d831ef"
# su -c 'curl https://download.mono-project.com/repo/centos7-stable.repo | tee /etc/yum.repos.d/mono-centos7-stable.repo'

Para compilar código é necessário instalar o pacote “mono-devel”:

# yum -y install mono-devel

Para instalar tudo, basta instalar o “mono-complete” (isso ajuda a evitar muitos casos de “Assembly not found”:

# yum -y install mono-complete

O pacote “referenceassemblies-pcl” deve ser instalado para compilação com suporte a PCL (isso resolve muitos casos de “Framework not installed: .NETPortable” durante a compilação).

# yum -y install referenceassemblies-pcl

O pacote “xsp” deve ser instalado para rodar aplicações ASP.NET sem um servidor WEB como o Apache ou Nginx:

# yum -y install xsp

É interessante também instalar o “nuget” para baixar os pacotes necessários antes de executar “msbuild” em uma solução “.sln”:

# yum -y install nuget

Referências

https://www.mono-project.com/download/stable/#download-lin-centos

Compilando a pxlib 0.6.8 e o pxview 0.2.5 no CentOS 7 1708

Montando um ambiente para compilação de pacotes no CentOS 7 1708

Instalando bibliotecas necessárias

# yum -y install epel-release
# yum -y install sqlite2-devel

Baixando os pacotes

# curl -O https://ufpr.dl.sourceforge.net/project/pxlib/pxlib/0.6.8/pxlib-0.6.8.tar.gz
# curl -O https://ufpr.dl.sourceforge.net/project/pxlib/pxview/0.2.5/pxview_0.2.5.orig.tar.gz

Compilando a pxlib 0.6.8

# tar zxvf pxlib-0.6.8.tar.gz
# cd pxlib-0.6.8
# ./configure
# make && make install
# cd ..
# ldconfig

Compilando o pxview 0.2.5

# tar zxvf pxview_0.2.5.orig.tar.gz
# cd pxview-0.2.5
# LIBS=-lm ./configure --with-sqlite
# make && make install

Testando

# pxview -v

RPM Specs

https://raw.githubusercontent.com/arabasso/pxlib/master/pxlib.spec
https://raw.githubusercontent.com/arabasso/pxlib/master/pxview.spec

Pacotes Pré-Compilados

https://raw.githubusercontent.com/arabasso/pxlib/master/pxlib-0.6.8-0.x86_64.rpm
https://raw.githubusercontent.com/arabasso/pxlib/master/pxlib-devel-0.6.8-0.x86_64.rpm
https://raw.githubusercontent.com/arabasso/pxlib/master/pxview-0.2.5-0.x86_64.rpm

Baixando e instalando

# curl -O https://raw.githubusercontent.com/arabasso/pxlib/master/pxlib-0.6.8-0.x86_64.rpm
# curl -O https://raw.githubusercontent.com/arabasso/pxlib/master/pxview-0.2.5-0.x86_64.rpm
# yum -y install epel-release
# yum -y localinstall sqlite2 pxlib-0.6.8-0.x86_64.rpm pxview-0.2.5-0.x86_64.rpm

Referências

https://sourceforge.net/p/pxlib/bugs/12/

Instalando o Ghostscript 9.07 no CentOS 7 1708

Instalando

# yum -y install ghostscript
# gs -v

Testando

Compactando

# gs -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -dPDFSETTINGS=/ebook -sOutputFile=compactado.pdf documento.pdf

Juntando

# gs -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile=juntado.pdf um.pdf dois.pdf

Cortando

# gs -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sPageList=1 -sOutputFile=cortado.pdf documento.pdf
# gs -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dFirstPage=1 -dLastPage=1 -sOutputFile=cortado.pdf documento.pdf