Quais recursos do Oracle a tornam uma opção atraente para pequenos projetos?

13

Dado o manuseio de licenciamento da Oracle [a] (e, em menor grau, o custo), sempre me perguntei quais seriam os fatores decisivos para escolher a Oracle em vez do PostgreSQL ou MySQL.

Minha empresa quase sempre escolhe o Oracle (XE sempre que possível), mesmo para pequenos projetos em que há apenas uma única caixa de servidor Windows executando o banco de dados sem nenhuma administração de banco de dados dedicada. (Note-se que pequena faz não significa que os dados irá sempre se encaixam os bastante pequenas restrições de tamanho da Oracle XE.)

Eu sempre questionei essa opção, mas tem o benefício de pelo menos estarmos expostos a apenas um produto de banco de dados.

Ainda assim, dado um novo projeto, no qual você precisa de um RDBMS, mas o projeto e o escopo do banco de dados são bem pequenos, com base nos recursos exclusivos do Oracle em execução nas caixas simples do servidor Windows (sem muita administração dedicada), você escolheria o Oracle em vez de outro RDBMS?

Contexto Adicional : Muitas implantações de banco de dados são executadas nos sites dos clientes no modo, vamos chamá-lo de "baixa administração". Ou seja, o banco de dados é configurado uma vez. Há alguns testes iniciais sobre seu comportamento e desempenho corretos no local. Depois disso, o banco de dados é executado. Nenhuma administração regular feita. Somente se algo der errado, um técnico (não um DBA dedicado) verificará o banco de dados, tentando descobrir o que está acontecendo. O backup é feito principalmente como backup offline. Em alguns projetos, os clientes nem se importam com a existência de um RDBMS. Eles veem o aplicativo como uma caixa preta que funciona (ou não).

[a]: Onde trabalho, vários gerentes de projeto levaram meses para obter o licenciamento adequado para pequenos projetos, pois os representantes locais da Oracle simplesmente não estão muito interessados ​​em vender seu produto se a receita for pequena.

Martin
fonte
Como eles estão escolhendo o XE para dados que "nem sempre se ajustam às restrições de tamanho bastante pequenas do XE"?
Jack diz que tente topanswers.xyz 5/05
@Jack: se ele se encaixa usamos XE, se isso não acontecer ... bem nós não :-)
Martin
O 11.2 Express Edition está na versão beta e o limite de dados do usuário foi expandido de 4 GB para 11 GB. Consulte oracle.com/technetwork/database/express-edition/…
Leigh Riffel
A Oracle possui PIVOT, MySQL e Postgres não. Essa é uma grande vantagem em algumas situações.
Phil Lello 5/05
1
@ Phil Lello: PostgreSQL tem PIVOT, verifique o contrib: postgresql.org/docs/current/static/tablefunc.html
Frank Heikens

Respostas:

12

Só posso tentar responder pelo Oracle e pelo postgres. Depois de usar o Oracle exclusivamente por anos, e o postgres apenas nos últimos dois anos, eu adoro o postgres. Existem tantas maneiras pequenas de usar o Oracle como mais conveniente, e ele compartilha muitos dos benefícios cruciais (como o MVCC). É mais fácil de administrar, confiável, possui excelente documentação e, é claro, é gratuito.

No entanto, o postgres não é páreo para o Oracle em algumas áreas, como:

  • RAC - até onde eu sei, não existe melhor tecnologia de clustering para nenhum banco de dados
  • RMAN - muito superior aos recursos básicos de backup e recuperação do postgres, especialmente com rastreamento de alterações de bloco e backups incrementais (que você pode aplicar a outros backups para manter um backup completo atualizado)
  • Suporte Oracle - existe. suporte ao postgres? Não muito
  • muitos outros recursos, como IOTs, 'Arquivos seguros' e tecnologia de compactação que não têm analógico no mundo do postgres

Curiosamente, quase todos esses recursos estão ausentes ou danificados no XE. Eu acho que escolheria o postgres em vez do XE, sendo o resto igual, mas ...

... nada disso aborda os dois maiores motivos para a escolha do Oracle:

  1. Você já está usando o Oracle e tem um grande investimento nele (independência do banco de dados é um mito bobo)
  2. Seus desenvolvedores e DBAs conhecem o Oracle e usam seus recursos ao máximo (por que eles, como independência do banco de dados, não é um mito bobo?)

EDITAR:

A única situação em que eu escolheria o postgres em vez do XE sempre é se a segurança é uma preocupação. Se seu banco de dados ou qualquer um de seus aplicativos estiver exposto à Internet pública, não tenho certeza se o XE é uma boa ideia.

Jack diz que tenta topanswers.xyz
fonte
rgd. RMAN - Então você diria que os recursos de backup do Oracle são "melhores" que os do Postgre? Isso permaneceria em um ambiente de baixa administração (veja minha edição Q)?
Martin
@Martin - O RMAN é poderoso e muito maduro, confio nele, pois me viu em várias situações de recuperação diferentes. Uma coisa que não é é "simples". Parece que você está se saindo bem com DBAs caros. Você está usando o RMAN para seus backups offline no momento? Como você está enviando seus backups em Gb (diários?) Dos sites dos clientes?
Jack diz que tente topanswers.xyz 5/05
O servidor SQL possui cluster de alta disponibilidade, o que equivaleria ao RAC da Oracle.
precisa
@stan the dba Pelo que li das opções de clustering para o SQL Server, elas não são realmente comparáveis ​​ao RAC, a maioria delas sendo soluções de failover, e não soluções de dimensionamento verdadeiras como rac.
Matthew Watson
Seu segundo motivo para escolher o Oracle é praticamente o mesmo que o primeiro, IMO. Basicamente, você está comprometido. - Quanto ao suporte, isso certamente existe também para o Postgres. Se você não estiver satisfeito com as excelentes listas de discussão, confira esta lista de empresas que oferecem suporte pago em sua região.
eevar
9

Oracle Apex . Um ambiente de aplicativo da Web prático e fácil de usar, incorporado diretamente no banco de dados. Simplesmente, torna muito simples implantar aplicativos de 'caixa única' com a interface do usuário da Web / lógica / banco de dados de aplicativos em um único pacote integrado.

PS. O 11g XE (atualmente em beta) expande o armazenamento para mais de 10 GB.

Gary
fonte
+1 para o APEX. Embora tenha seus problemas e gremlins, adoro isso para tirar os aplicativos do chão de forma rápida e fácil. Como RAD for Oracle, como eu posso conseguir, eu acho.
quer
5

Embora as outras opções de flashback da Oracle não estejam disponíveis no Express Edition, o Flashback Query está. De acordo com a pergunta , nenhum outro banco de dados possui esse recurso que permite que uma instrução select consulte dados a partir de um ponto no tempo no passado. Os dados do flashback podem ser unidos aos dados atuais e inseridos nas tabelas atuais, tornando-o útil para operações de desfazer tipo, alterações temporárias e comparar alterações feitas por um método em um único local.

Algumas outras coisas que outros bancos de dados não possuem que o Oracle Express Edition possui.

Leigh Riffel
fonte
5
O postgres assinala o 'Usuário atual do AuthID versus o definidor', 'Verificar restrições', 'Adiamento de restrições', 'Adição e subtração de data', 'Consultas hierárquicas', gatilhos que não são de esquema, a maioria das 'Funções analíticas', algumas 'Funções de coleção' , 'XML functions', clob up to 1Gb, 'Create or Replace' e 'Multi-Platform' também (pelo menos)
Jack diz que tente topanswers.xyz
@JackPDouglas É difícil criar uma lista de profissionais quando a competição é "tudo o resto". Obrigado pela informação.
Leigh Riffel
@ Leigh - concordou, acho que sua lista é uma referência útil para Martin. Você não menciona o RMAN, pelo menos no XE atual (v10), ele está incluído, embora não seja usado por padrão. Apenas um nit-escolher: se XE é limitado a 4 ou 11 GB, em seguida, CLOBs até 128Tb não são realmente suportados :)
Jack diz tentar topanswers.xyz
@JackPDouglas Você já mencionou o RMAN e eu não pretendia suplantar sua resposta (ou qualquer outra).
Leigh Riffel
@JackPDouglas Boa captura no clob. Deixei-o na lista, porque clobs menores podem ser úteis no XE e, se o banco de dados crescer, estar em uma plataforma que suporta clobs extremamente grandes pode ser útil.
Leigh Riffel
4

Antes de tudo, acho que você não deve subestimar o fator que já existe o Oracle Know-How presente, mas não para outros RDBMS. A construção de conhecimento para os outros leva tempo e dinheiro e também pode ser acompanhada por alguns erros no início.

Além disso, você nunca sabe se um projeto pequeno não crescerá de alguma forma. Em seguida, você pode atualizar de maneira muito fácil e rápida do XE para a Standard Edition One para a Standard Edition para a Enterprise Edition. Uma migração de outro RDBMS levará novamente muito mais tempo e dinheiro. Bottom line: Eu acho que sua empresa faz certo - ok, eu posso ser um pouco tendencioso :-)

Uwe Hesse
fonte
Weeell. Eu diria que o Oracle sabe como é por aqui ... hmm ... eu provavelmente precisaria de 3 horas brincando com o Postgre, mais um pouco de googleing para chegar ao ponto em que eu poderia fazer tanto com ele quanto eu. pode com Oracle. (Exceto para PL / SQL) E eu gosto de pensar que sou um dos usuários avançados do Oracle aqui :-) - Mas seu argumento sobre um caminho de atualização é certamente válido.
Martin Martin
@ Martin: isso não é um bom sinal ... Estou usando o postgres para um de nossos projetos (como parte de um aplicativo empacotado) há ~ 2 anos, e ainda não consigo obtê-lo com bom desempenho (em parte porque as partes do aplicativo em que estou usando dependem muito count(), o que parece ser o calcanhar de aquiles do postgres). Eu tive que perguntar sobre stackoverflow como influenciar o planejador
Joe
2

Um dos recursos interessantes do Oracle são aqueles como o Oracle Resource Manager, que tornam muito mais fácil a consolidação de aplicativos em um banco de dados do que ter um banco de dados separado para cada aplicativo. Parece que isso não é usado na sua organização. Eu projetei bancos de dados consolidados no passado para projetos como você mencionou.

  • Cada projeto tinha seu próprio hardware
  • Todo projeto tinha suas próprias licenças
  • Cada projeto tinha seu próprio armazenamento

Isso fez com que até mesmo o mais simples de todos os projetos levasse meses para começar e, em uma época em que o tempo de lançamento no mercado é extremamente importante, isso está matando. Por alguma razão, isso é esquecido por muitos, muitas vezes até negligenciado por razões políticas.

A solução para isso é bastante simples. Crie um banco de dados sério, dê a cada projeto / aplicativo seu próprio esquema, acesse os usuários e comece a funcionar em horas, em vez de meses. Se você fizer algo assim, pode ser benéfico combinar aplicativos com requisitos de tempo de atividade semelhantes. A Oracle obtém cada vez mais opções de manutenção on-line, mas, às vezes, obter algumas horas de inatividade é muito mais fácil. Ter janelas de tempo para isso definidas de antemão pode evitar muitos problemas. Você vai precisar de algum tempo de inatividade.

Não permita que aplicativos se conectem ao banco de dados, faça com que eles se conectem a serviços dedicados ao aplicativo usando seus próprios tns-aliasses. Isso permite mover o aplicativo para outro banco de dados, sem precisar reconfigurar o aplicativo.

BTW: as empresas que usavam esse modo de consolidação economizavam muito dinheiro anualmente, mais do que as licenças necessárias para começar a rolar.

ik_zelf
fonte
Obrigado por esta entrada. Observe que muitos dos projetos têm o banco de dados em execução no (s) site (s) do cliente, portanto, não faz sentido consolidá-los. (Se bem entendi que você escreveu corretamente a consolidação.) #
527 Martin
Ainda pode ser aconselhável tê-lo consolidado pelo cliente onde o pacote está terminando. Se é para ser um banco de dados incorporado, pode ser um pouco diferente.
Ik_zelf 5/05
Para esclarecer, o Oracle XE não possui o recurso Gerenciador de Recursos, portanto, isso seria útil apenas na consolidação em um servidor licenciado. @ik_zelf Eu sei que não era sua intenção indicar o contrário.
Leigh Riffel
@Leigh Riffel sim, eu estava assumindo que havia uma instalação Oracle disponível, em um cenário tão consolidado, eu preferiria EE. A questão parecia estar mais voltada para uma solução incorporada.
Ik_zelf