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 / dba / Perguntas / 31366
Accepted
Chris Aldrich
Chris Aldrich
Asked: 2013-01-04 07:36:12 +0800 CST2013-01-04 07:36:12 +0800 CST 2013-01-04 07:36:12 +0800 CST

Perl vs Ksh para administração de banco de dados Unix

  • 772

Sei que esta é uma questão um pouco mais subjetiva, mas estou procurando orientação da comunidade.

Nossa empresa é relativamente nova em ter DBAs. Costumávamos usar o DB2 para i nos servidores iSeries da IBM, então realmente não havia necessidade de um DBA (pelo menos operacionalmente), pois o sistema operacional praticamente gerenciava tudo para nós. Nos últimos anos, começamos a mudar para DB2 LUW no AIX. Assim nasceu a necessidade de DBAs. Três de nós estávamos interessados ​​em fazer a mudança de carreira de desenvolvedores para DBAs (dos quais eu sou um deles).

Como estamos no AIX, adotamos como padrão o uso de ksh como nossa linguagem de script para funções de gerenciamento de banco de dados (criação, implantação, operações, etc.). Eu descobri que o ksh é bastante poderoso, mas algumas das funções que preciso executar são bastante complexas. Um exemplo disso é minha pergunta sobre Unix e Linux StackExchange .

Com base nessa pergunta, assim como na leitura de blogs de outros administradores do DB2, vejo uma sugestão geral de que o Perl é mais adequado para scripts de administração do que o ksh.

Eu percebo que o fórum Unix/Linux teria seus próprios pensamentos sobre tal coisa, mas desejo abordar isso do ponto de vista da administração do banco de dados.

Independentemente do DBMS, qual linguagem de script parece mais adequada para administração na plataforma Unix/Linux? Perl? Ksh? (ou talvez outro?). Quais pontos fortes e fracos em seu uso de linguagens de script você encontrou como DBA e por que escolheu a linguagem que escolheu?

O que eu não quero é uma guerra altamente subjetiva sobre "Minha linguagem é melhor que a sua!" tipo de coisa, como eu costumava ver na comunidade de desenvolvimento sobre, digamos, Java vs Ruby, etc. Estou procurando informações honestas, tão objetivas quanto possível, sobre o que melhor atende às necessidades dos administradores de banco de dados.

scripting unix
  • 2 2 respostas
  • 1409 Views

2 respostas

  • Voted
  1. Best Answer
    jcolebrand
    2013-01-04T08:34:58+08:002013-01-04T08:34:58+08:00

    O final do seu post é realmente a parte importante:

    informações sobre o que melhor atende às necessidades dos administradores de banco de dados.

    Então vamos começar por aí.

    Quais são suas necessidades como DBA? Você geralmente tem dois domínios de operação: manutenção no nível do sistema e manutenção no nível do banco de dados (em que todas as ações são meramente manutenção do sistema para melhor desempenho ... olha, não seja pedante, vá comigo aqui). Então você tem dois domínios a considerar.

    ksh - O Korn Shell é um dos shells operacionais mais antigos do Unix, usado para controlar o servidor. O objetivo do ksh é gerenciar um servidor e permitir fazer todas as coisas que o shell Bourne tradicional (não o Bourne Again SHell com o qual a maioria das pessoas está familiarizada, este é um vintage mais antigo) permitia, com algumas diferenças (esse shell tinha melhor suporte para coisas como aritmética e arrays, facilitando a programação em alguns aspectos). É o shell padrão no AIX.

    perl - Perl é uma linguagem de programação de propósito geral de alto nível. Ele foi projetado para ser executado em cima de um shell e foi projetado principalmente com relatórios em mente. Ele combinou recursos de shell script e C, bem como tecnologias regex para tentar torná-lo melhor do que todos os anteriores. Muitos administradores em todo o planeta gostam do perl porque facilita o gerenciamento do sistema, devido à combinação de recursos do shell e aceleração da geração de relatórios (sendo uma linguagem de programação). Os scripts Perl podem ser executados tão simplesmente quanto os scripts shell, e existe até uma convenção no mundo Unix de ter a primeira linha indicando o que executará o script (a familiar linha hashbang). Portanto, executar scripts perl é tão fácil quanto executar um script de shell.

    A diferença, então, é que você precisa de uma linguagem de programação completa ou precisa de um shell script básico? A resposta então é usar aquele que dá o que você precisa, pois ambos são muito úteis para você . Se você quer estatísticas, isso é impossível, cada um de nós tem seu próprio estilo. Basta concordar com algo internamente e chamá-lo assim (se você for definir um padrão, torne-o perl, pois tem mais recursos e você nunca quer ser pego porque definiu um padrão irrealista. Perl também é mais extensível no futuro). Melhor restringir-se a dois ou três idiomas neste caso.


    No início, mencionei que você tem duas opções: nível do sistema e nível do banco de dados.

    Se o seu objetivo for principalmente o nível do sistema, respondemos a todas as perguntas aqui (use a que melhor se adapta às suas necessidades). Se você também precisa programar no banco de dados, então você realmente precisa apenas padronizar em perl ou se acostumar com as sintaxes de linha de comando, porque o Perl tem módulos para todos os bancos de dados concebíveis no planeta em algum lugar e, se não existir, pode ser escrito (exemplo: DBI -> DBD:DB2 -> cliente DB2).


    Como um aparte, eu uso Microsoft SQL Server e C#, então vivo no mundo do Windows e uso o PowerShell em arquivos DOS Batch. O PowerShell é em muitos aspectos semelhante ao perl e me dá muito mais flexibilidade do que a programação em lote do DOS (mas há muitos administradores no mundo que ainda usam scripts antigos do DOS para gerenciar seus sistemas). Embora o sistema DOS Batch permita arrays, loops, variáveis ​​e todo o resto, é muito mais fácil programar em uma linguagem de programação em vez de um script de shell, então posso ser muito mais produtivo.

    No final das contas, a verdadeira questão é quais recursos você precisa em seu ambiente de script e não podemos ajudá-lo com isso. Mas sempre optarei por mais clareza, facilidade de manutenção e extensibilidade, em vez de "isso é o que vem na caixa".

    • 6
  2. ConcernedOfTunbridgeWells
    2013-01-04T09:46:57+08:002013-01-04T09:46:57+08:00

    ksh ou bash permitem criar scripts de itens por meio do SQL*Plus, e você pode fazer coisas bastante complexas com isso. No entanto, scripts de shell tendem a ser um pouco 'somente para gravação' e sh e seus derivados não são muito bons para desenvolver lógica de programa complexa. Para executar tarefas automatizadas, eles estão OK. Para manipulação complexa de dados do lado do cliente, não é tão bom (apesar do sed/awk).

    Perl tem várias bibliotecas Oracle, como DBD:Oracle, disponíveis através do CPAN, e é um pouco melhor para trabalhos que envolvem processamento complexo do lado do cliente, pois seu sistema de tipo é um pouco mais sofisticado do que 'linha de texto'. Outra opção muito boa para isso é python e cx_Oracle.

    • 5

relate perguntas

  • Maneira fácil de verificar a conectividade com o SQL Server do cliente

  • Como, se possível, um arquivo .sql pode ser executado em um banco de dados oracle a partir de um script bash

  • Exportando registros de tabela para um script INSERT

  • Geração automatizada de diagrama de classe UML2 a partir do SQL?

  • Como gerenciar meus próprios scripts

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • 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

    Conceder acesso a todas as tabelas para um usuário

    • 5 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
    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
    pedrosanta Listar os privilégios do banco de dados usando o psql 2011-08-04 11:01:21 +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