none
Melhor Prática Nome Banco RRS feed

  • Pergunta

  • estou com ma seguinte dúvida  ( sql server express 2012 )

    em minha empresa a base  de produção se chama "BASE_SISTEMA"

    qual seria a melhor politica quando vamos implantar o nosso sistema em um cliente

    manter a base com o mesmo nome ou criar uma base com nome para cada cliente?

    sexta-feira, 4 de outubro de 2013 11:26

Respostas

  • Olha só...

    Você pode utilizar o utilitário sqlcmd.

    Link: http://technet.microsoft.com/pt-br/library/ms180944.aspx

    Crie um arquivo bat ou cmd com a instrução de backup e agende no task scheduler do windows.

    Também pode fazer por powershell:

    1. Backup-SqlDatabase cmdlet." id="mt124" xml:space="preserve"><sentencetext xmlns="http://www.w3.org/1999/xhtml">Use o cmdlet Backup-SqlDatabase.</sentencetext> -BackupAction parameter with its default value, Database." id="mt125" xml:space="preserve">Para indicar explicitamente que este é um backup completo de banco de dados, especifique o parâmetro -BackupAction com seu valor padrão DatabaseEsse parâmetro é opcional para backups completos de banco de dados.

      MyDB database to the default backup location of the server instance Computer\Instance." id="mt127" xml:space="preserve"><sentencetext xmlns="http://www.w3.org/1999/xhtml">O exemplo a seguir cria um backup de banco de dados completo do banco de dados MyDB para o local de backup padrão da instância de servidorComputer\Instance.</sentencetext> -BackupAction Database." id="mt128" xml:space="preserve">Como opção, esse exemplo especifica -BackupAction Database.

      --Enter this command at the PowerShell command prompt, C:\PS>
      Backup-SqlDatabase -ServerInstance Computer\Instance -Database MyDB -BackupAction Database

    Link: http://technet.microsoft.com/pt-br/library/ms187510.aspx#PowerShellProcedure

    Salve o script .ps1 e pode realizar o agendamento no no task scheduler do windows.

    para formatação do nome do backup tente assim:

    select convert(char(10), getdate(), 112) + '_' + replace(convert(char(10), getdate(), 108), ':', '')

    Abraço,


    Roberto Galvão | MCTS | MCITP | Microsoft Partner |

    • Marcado como Resposta jceoms sexta-feira, 4 de outubro de 2013 13:54
    sexta-feira, 4 de outubro de 2013 13:50

Todas as Respostas

  • Olá,

    Sugiro que utilize o mesmo nome para todos os clientes. Assim ficará mais fácil a sua gerência, controle de deploy, suporte, etc...




    Roberto Galvão | MCTS | MCITP | Microsoft Partner |

    • Sugerido como Resposta Giovani Cr sexta-feira, 4 de outubro de 2013 12:24
    sexta-feira, 4 de outubro de 2013 12:16
  • tambem achamos isto mas aí vem a questão

    se eu precisar trazer a base do cliente para a empresa

    ela precisa ser restaurada com outro nome

    como fazer isto?

    sexta-feira, 4 de outubro de 2013 12:30
  • Você pode criar um banco de dados novo na sua instancia e executar o processo de restore.

    Link: http://technet.microsoft.com/pt-br/library/ms186390.aspx

    Cuide só para alterar o nome dos arquivos e diretório  para o novo banco de dados.

    "Se a resposta foi útil, não esqueça de marcar a resposta."

    Roberto Galvão
    MCITP - Administration SQL Server 2008
    MCITP - Developer SQL Server 2008

    MCSA - SQL Server 2012
    MCT - SQL Server


    Roberto Galvão | MCTS | MCITP | Microsoft Partner |

    sexta-feira, 4 de outubro de 2013 12:37
  • eu ainda não consegui restaurar um banco com um nome para um banco criado com outro nome

    na mesma instancia

    é por isso que ainda não adotei esta politica, mas quero que seja assim

    as bases nos clientes com o  mesmo nome  e aqui na  empresa com nome diferentes

    sexta-feira, 4 de outubro de 2013 12:46
  • Segue os passos:

    1. Crie o novo banco de dados na instância;
    2. Clique sobre a nova database com botão direito;
    3. vá até restore database;
    4. Em source selecione Device;
    5. Selecione o arquivo de backup.
    6. Em files ajuste o apontamento para a nova base de dados.
    7. em options marque as opcoes marcadas na imagem abaixo.
    8. Clique em Ok para restaurar.

    "Se a resposta foi útil, não esqueça de marcar a resposta."

    Roberto Galvão
    MCITP - Administration SQL Server 2008
    MCITP - Developer SQL Server 2008

    MCSA - SQL Server 2012
    MCT - SQL Server


    Roberto Galvão | MCTS | MCITP | Microsoft Partner |

    sexta-feira, 4 de outubro de 2013 12:57
  • Show de bola!

    Que bom que deu certo.

    Se resolveu, por favor, marque como resposta para fechar a a thread.

    Abraço!


    Roberto Galvão | MCTS | MCITP | Microsoft Partner |

    sexta-feira, 4 de outubro de 2013 13:19
  • É normal esta situação. Quando se restaura uma base já existente na instância com outro nome é necessário mudar o apontamento/nomes dos arquivos. Porque se tentar restaurar a DB e os arquivos estiverem em uso por outra base dará falha informando que os arquivos MDF e LDF já estão em uso por outra base de dados.

    Roberto Galvão | MCTS | MCITP | Microsoft Partner |



    sexta-feira, 4 de outubro de 2013 13:26
  • obrigado

    nada como ter conhecimento e compartillhar da forma clara como o sr faz

    o que nos está faltando é uma ferramenta para agendar o bck no sql express 2012

    que salve o backup com ano mes dia hora minuto segundo, estamos pesquisando

    sexta-feira, 4 de outubro de 2013 13:31
  • Olha só...

    Você pode utilizar o utilitário sqlcmd.

    Link: http://technet.microsoft.com/pt-br/library/ms180944.aspx

    Crie um arquivo bat ou cmd com a instrução de backup e agende no task scheduler do windows.

    Também pode fazer por powershell:

    1. Backup-SqlDatabase cmdlet." id="mt124" xml:space="preserve"><sentencetext xmlns="http://www.w3.org/1999/xhtml">Use o cmdlet Backup-SqlDatabase.</sentencetext> -BackupAction parameter with its default value, Database." id="mt125" xml:space="preserve">Para indicar explicitamente que este é um backup completo de banco de dados, especifique o parâmetro -BackupAction com seu valor padrão DatabaseEsse parâmetro é opcional para backups completos de banco de dados.

      MyDB database to the default backup location of the server instance Computer\Instance." id="mt127" xml:space="preserve"><sentencetext xmlns="http://www.w3.org/1999/xhtml">O exemplo a seguir cria um backup de banco de dados completo do banco de dados MyDB para o local de backup padrão da instância de servidorComputer\Instance.</sentencetext> -BackupAction Database." id="mt128" xml:space="preserve">Como opção, esse exemplo especifica -BackupAction Database.

      --Enter this command at the PowerShell command prompt, C:\PS>
      Backup-SqlDatabase -ServerInstance Computer\Instance -Database MyDB -BackupAction Database

    Link: http://technet.microsoft.com/pt-br/library/ms187510.aspx#PowerShellProcedure

    Salve o script .ps1 e pode realizar o agendamento no no task scheduler do windows.

    para formatação do nome do backup tente assim:

    select convert(char(10), getdate(), 112) + '_' + replace(convert(char(10), getdate(), 108), ':', '')

    Abraço,


    Roberto Galvão | MCTS | MCITP | Microsoft Partner |

    • Marcado como Resposta jceoms sexta-feira, 4 de outubro de 2013 13:54
    sexta-feira, 4 de outubro de 2013 13:50
  • estou usando

    DECLARE @pathName NVARCHAR(512)
    SET @pathName = 'C:\1\BASE_' + convert(char(10), getdate(), 112) + '_'
     + replace(convert(char(10), getdate(), 108), ':', '') + '.bak'
    BACKUP DATABASE [BASE] TO DISK = @pathName WITH NOFORMAT, NOINIT,
     NAME = N'db_backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10

    sexta-feira, 4 de outubro de 2013 13:58
  • Ok, teste via SSMS para ver se esta funcionando certo.

    Estando ok, crie o BAT utilizando o utilitário SQLCMD.

    teste a execução via MS-DOS.

    Ficando ok, agende o BAT no Task Scheduler do Windows.


    Roberto Galvão | MCTS | MCITP | Microsoft Partner |

    sexta-feira, 4 de outubro de 2013 14:17