AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / user-218804

jrdba123's questions

Martin Hope
jrdba123
Asked: 2022-04-09 15:48:10 +0800 CST

Oracle 11gR2 - Banco de dados completo Expdp com exclusão de alguns dados da tabela

  • 0

Vamos migrar nosso banco de dados usando datapump.

Será uma exportação completa do banco de dados com a exclusão de alguns dados da tabela.

Mas queremos fazer uma operação diferente para 2 tabelas diferentes. Queremos exportar os dados do último 1 ano para essas 2 tabelas (que sejam denominadas table3 e table4). Como posso escrever uma consulta para isso? O parfile que preparei é o seguinte, quais comandos devo adicionar para essas 2 tabelas?

DUMPFILE=dbname_datefull.dmp
LOGFILE=dbname_datefulllog.log
FULL=Y
DIRECTORY=EXPORT_DATE
EXCLUDE=STATISTICS
EXCLUDE=TABLE_DATA:"= 'table1'"
EXCLUDE=TABLE_DATA:"= 'table2'"
--queryfortable3
--queryfortable4
FLASHBACK_TIME=SYSTIMESTAMP

Ao mesmo tempo, essa consulta retarda o processo e é recomendada?

Obrigada. Cumprimentos.

oracle oracle-11g-r2
  • 1 respostas
  • 625 Views
Martin Hope
jrdba123
Asked: 2022-02-14 10:14:38 +0800 CST

Oracle - Arquivamento de grandes tabelas

  • 0

Versão: Oracle 12cR2 EE

A tabela contém os seguintes tipos de coluna: NUMBER, CLOB, NVARCHAR2, TIMESTAMP, VARCHAR2

Tamanho da mesa: 95 GB

Contagem de linhas da tabela: 20 milhões

Tabela particionada? Não

Índices na tabela: existe apenas uma chave primária como índice na tabela.

Dependências: existe apenas um gatilho "antes de cada linha (inserir)" como dependência na tabela.

Restrições: existem 3 restrições (1 delas é chave primária e outras são checadas).

Queremos arquivar esta tabela. No entanto, não consegui decidir como o arquivamento deveria ser feito para uma tabela tão grande. Seria um pesadelo mover registros antes de uma determinada data para uma nova tabela com CTAS e, em seguida, excluir esses registros importados na tabela existente.

Acho que a melhor maneira seria fazer o intervalo da tabela particionado por mês (estou aberto a quaisquer ideias se você tiver soluções melhores).

Algumas perguntas pré-operação e sequência:

  1. Existe uma maneira de saber de antemão quanto arquivo irá gerar durante o particionamento de uma tabela desse tamanho?
  2. Temos a possibilidade de calcular antecipadamente a duração do processo?
  3. Seria uma boa opção interromper outros trabalhos de banco de dados que serão carregados durante o processo?
  4. É necessário fazer uma alteração no índice de chave primária para a operação ou outras dependências ou gatilhos?

Para após o processo:

  1. Causa carga pesada no banco de dados quando partições grandes são descartadas?

  2. Por exemplo, é possível configurar um pedido assim; podemos manter apenas os dados dos últimos 3 ou 6 meses na tabela principal e mover as partições mais antigas para a tabela de arquivo todos os meses? É correto usar apenas o método de importação de exportação ao migrar?

  3. A partição migrada será eliminada do processo de migração. Haverá um problema com base no arquivo gerado ao fazer isso?

Obrigada.

Cumprimentos.

oracle partitioning
  • 1 respostas
  • 71 Views
Martin Hope
jrdba123
Asked: 2021-12-04 04:17:44 +0800 CST

O usuário do Oracle 12cR2 pode selecionar a tabela sem privilégios

  • 0

Notei uma coisa interessante hoje. Considere um sistema em que os bancos de dados de produção e teste estejam equipados com os mesmos privilégios. No banco de dados de produção, um usuário pode selecionar a tabela em outro usuário sem a capacidade de selecionar. No entanto, esse processo não acontece no banco de dados de teste. Qual poderia ser o motivo dessa situação no banco de dados de produção?

Privilégios do banco de dados de produção:

ALTER ANY PROCEDURE
CREATE ANY CREDENTIAL
CREATE ANY JOB
CREATE ANY PROCEDURE
CREATE ANY RULE
CREATE ANY SEQUENCE
CREATE ANY TABLE
CREATE ANY TRIGGER
CREATE ANY TYPE
CREATE ANY VIEW
CREATE PROCEDURE
CREATE TABLE
CREATE TRIGGER
CREATE VIEW
DEBUG ANY PROCEDURE
EXECUTE ANY PROCEDURE
GRANT ANY PRIVILEGE
GRANT ANY ROLE



AQ_ADMINISTRATOR_ROLE
AUTHENTICATEDUSER
CONNECT
EXP_FULL_DATABASE
JAVA_ADMIN
JAVADEBUGPRIV
JAVA_DEPLOY
JAVAIDPRIV
JAVASYSPRIV
JAVAUSERPRIV


select * from dba_tab_privs where grantee='USER1' and owner='USER2' and table_name='TABLE_NAME_OWNED_BY_USER2' order by table_name, privilege;


no rows selected

Mas USER1 pode selecionar esta tabela.

Cumprimentos,

oracle permissions
  • 1 respostas
  • 30 Views
Martin Hope
jrdba123
Asked: 2021-11-07 15:01:01 +0800 CST

Oracle 12c - Acionador de logon de acordo com as informações da máquina

  • 0

Eu quero criar um gatilho de logon. O gatilho fará o seguinte:

Ele bloqueará o acesso ao banco de dados com base em determinados usuários e determinadas informações da máquina. Em seguida, ele dará uma mensagem informativa ao usuário e inserirá essas informações de sessão em uma tabela.

Por exemplo;

Usuários: mike, john, eric, daisy, albert

Máquina: NEWMACH%

Mensagem para o usuário: Você não tem permissão para fazer logon da máquina '||MACHINE|| ' usando '|| NOME DE USUÁRIO

As informações que ele irá inserir na tabela: username, osuser, machine, port, terminal, program, module, instance_id, sid, serial#

Nome da tabela: DBADMINISTRATOR.LOGON_TBL

Eu tenho uma ideia de gatilho da seguinte forma;

CREATE OR REPLACE TRIGGER DBADMINISTRATOR.LOGON_FILTER
AFTER LOGON
ON DATABASE
DECLARE
USERNAME varchar2 (200);
MACHINE varchar2 (200);
begin
...
...
if
...
then
raise_application_error(-20001,'You are not allowed to logon from machine '||MACHINE|| ' using '|| USERNAME);
end if;
end;
/

Você pode ajudar a criar scripts e isso causará problemas de desempenho?

Cumprimentos,

oracle trigger
  • 1 respostas
  • 143 Views
Martin Hope
jrdba123
Asked: 2021-09-21 04:13:08 +0800 CST

Oracle 11gR2 (11.2.0.4.0) - Descarte e remova arquivos de dados

  • 0

Temos um banco de dados de 2000 usuários.

Iremos descartar todos os esquemas restantes, deixando apenas 2 usuários finais, excluindo usuários internos (mantidos pelo Oracle).

Após esta operação, haverá uma redução muito grande no tamanho do banco de dados. E queremos excluir todos os arquivos de dados não utilizados primeiro do banco de dados e depois fisicamente do servidor.

É possível processá-lo? Como podemos planejar esta operação? Você pode ajudar com comandos exatos?

Atenciosamente,

oracle oracle-11g-r2
  • 1 respostas
  • 71 Views
Martin Hope
jrdba123
Asked: 2021-06-04 07:50:55 +0800 CST

Oracle Linux 6.10 - Alterando o ID e o GID do usuário Oracle

  • 1

SO: Oracle Linux 6.10

Versões do banco de dados: 12cR1

Farei backup e restauração do disco compartilhado NFS para um servidor de pré-produção. No entanto, o ID e o GID do usuário oracle no servidor de produção (disco compartilhado em produção) são diferentes do servidor de pré-produção. Por esse motivo, preciso alterar as informações de ID e GID, caso contrário, não consigo ver os arquivos de backup no servidor pré-prod. No entanto, quando eu fizer isso, haverá um problema no arquivo de dados, oracle home e outras propriedades existentes no servidor preprod. Como posso realizar esta operação com o mínimo de problemas? Tudo bem, desde que o tempo de inatividade não esteja demorando muito no servidor de pré-produção.

oracle backup
  • 1 respostas
  • 110 Views
Martin Hope
jrdba123
Asked: 2021-04-07 05:15:20 +0800 CST

Oracle 12cR1 - Banco de dados duplicado sem logs de redefinição

  • 0
Database version: Oracle 12cR1
Operating system: Oracle Linux 7.x
ASM: yes

Roteiro duplicado:

cat duplicatodisaster.sh

ORACLE_UNQNAME=xxx
ORACLE_SID=xxx
ORACLE_HOME=xxx


rman target sys/***@PROD auxiliary sys/***@DRC <<EOF
run {
allocate channel prmy1 type disk;
allocate channel prmy2 type disk;
allocate channel prmy3 type disk;
allocate channel prmy4 type disk;
allocate auxiliary channel stby1 type disk;
allocate auxiliary channel stby2 type disk;
allocate auxiliary channel stby3 type disk;
allocate auxiliary channel stby4 type disk;
duplicate target database to 'db_name' noopen from active database;
}
exit;
EOF

Estamos tentando criar um banco de dados de desastres com o método de envio de logs. Lógica básica; O banco de dados de produção será duplicado e um banco de dados de desastre será criado e continuará no modo de montagem. Em seguida, os archives transferidos do banco de dados de produção serão recuperados pelo banco de dados de desastres e sua continuidade será garantida.

Como você pode ver no script rman que compartilhei; Tentei evitar que o banco de dados fizesse resetlogs adicionando o parâmetro noopen, mas mesmo assim, após a restauração e recuperação concluídas com sucesso, o controlfile criou e reseta o banco de dados. Por causa disso, todas as encarnações no banco de dados, parâmetro DBID e tudo para mantê-lo em sincronia com o banco de dados de produção estão quebrados. Com base nisso, os archives transferidos não podem ser recuperados e a continuidade não pode ser mantida. Como posso prevenir esta situação?

Abaixo, compartilho onde o resetlogs faz exatamente a partir do log de alertas:

Completed: CREATE CONTROLFILE REUSE SET DATABASE "DB_NAME" RESETLOGS ARCHIVELOG
  MAXLOGFILES    192
  MAXLOGMEMBERS      3
  MAXDATAFILES     1024
  MAXINSTANCES    32
  MAXLOGHISTORY     4382
 LOGFILE
  GROUP  11  SIZE 1536 M ,
  GROUP  12  SIZE 1536 M ,
  GROUP  13  SIZE 1536 M
 DATAFILE
  '+DATA/.../.../system...'
 CHARACTER SET WE8ISO8859P9

Outro problema; existem cerca de 250 arquivos de dados, por que isso aconteceu para um único arquivo de dados ...

Atenciosamente,

oracle restore
  • 1 respostas
  • 121 Views
Martin Hope
jrdba123
Asked: 2021-02-07 17:27:17 +0800 CST

Oracle 11gR2 - Registro Dinâmico

  • 0

Versão do banco de dados: Oracle 11gR2

Queremos usar o parâmetro DYNAMIC_REGISTRATION_LISTENER com a opção off.

Nosso arquivo listener.ora assim:

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )



SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
      (SID_NAME = oracle)
    )
  )


ADR_BASE_LISTENER = /u01/app/oracle

DYNAMIC_REGISTRATION_LISTENER = OFF

Mas quando usamos esse parâmetro, nossa solicitação de serviço web não pode se conectar ao banco de dados.

SQL> SELECT dbms_xdb.gethttpport FROM dual;

GETHTTPPORT
-----------
       3010

Sem este parâmetro:

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost.localdomain)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.4.0 - Production
Start Date                07-FEB-2021 03:21:59
Uptime                    0 days 0 hr. 2 min. 51 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
Listener Log File         /u01/app/oracle/diag/tnslsnr/localhost/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=3010))(Presentation=HTTP)(Session=RAW))

Com este parâmetro:

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost.localdomain)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.4.0 - Production
Start Date                07-FEB-2021 03:21:59
Uptime                    0 days 0 hr. 2 min. 51 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
Listener Log File         /u01/app/oracle/diag/tnslsnr/localhost/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))

Precisamos usar este parâmetro. Os serviços da Web também precisam estar conectados. Como isso é possível?

Não consegui encontrar nenhuma solução clara.

Atenciosamente,

oracle oracle-11g-r2
  • 1 respostas
  • 190 Views
Martin Hope
jrdba123
Asked: 2020-11-18 01:54:34 +0800 CST

Oracle 12cR2 - Cenário de Backup de Cópia de Imagem

  • 0

Tipo de backup: cópia de imagem.

Cenário: Eu quero 1 db completo + 6 backups incrementais e manter os últimos 7 dias de backup no armazenamento.

Aqui está o meu roteiro:

RUN {

allocate channel c1 device type disk format '/path/%U';

allocate channel c2 device type disk format '/path/%U';

allocate channel c3 device type disk format '/path/%U';

allocate channel c4 device type disk format '/path/%U';

allocate channel c5 device type disk format '/path/%U';

allocate channel c6 device type disk format '/path/%U';

allocate channel c7 device type disk format '/path/%U';

allocate channel c8 device type disk format '/path/%U';

CROSSCHECK ARCHIVELOG ALL;

CROSSCHECK BACKUP;

CROSSCHECK BACKUPSET;

CROSSCHECK COPY;

DELETE NOPROMPT EXPIRED ARCHIVELOG ALL;

DELETE NOPROMPT EXPIRED BACKUP;

DELETE NOPROMPT EXPIRED BACKUPSET;

DELETE NOPROMPT EXPIRED COPY;

BACKUP INCREMENTAL LEVEL 1 FOR RECOVER OF COPY WITH TAG 'my_tag_01' DATABASE;

RECOVER COPY OF DATABASE WITH TAG 'my_tag_01';

DELETE NOPROMPT ARCHIVELOG UNTIL TIME 'SYSDATE-3';

BACKUP SPFILE FORMAT '/path/spfile_%T_%U';

BACKUP CURRENT CONTROLFILE FORMAT '/path/cfile_%T_%U';

}

exit

Como posso projetar meu script de acordo com meu cenário?

Muito obrigado.

Atenciosamente,

backup oracle-12c
  • 1 respostas
  • 57 Views

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve