Usuário com melhor resposta
Melhor Prática Nome Banco

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?
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:
-
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 Database. Esse 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
-
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
-
-
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ãoMCITP - Administration SQL Server 2008MCITP - Developer SQL Server 2008MCSA - SQL Server 2012
MCT - SQL ServerRoberto Galvão | MCTS | MCITP | Microsoft Partner |
-
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
-
Segue os passos:
- Crie o novo banco de dados na instância;
- Clique sobre a nova database com botão direito;
- vá até restore database;
- Em source selecione Device;
- Selecione o arquivo de backup.
- Em files ajuste o apontamento para a nova base de dados.
- em options marque as opcoes marcadas na imagem abaixo.
- Clique em Ok para restaurar.
"Se a resposta foi útil, não esqueça de marcar a resposta."
Roberto GalvãoMCITP - Administration SQL Server 2008MCITP - Developer SQL Server 2008MCSA - SQL Server 2012
MCT - SQL Server
Roberto Galvão | MCTS | MCITP | Microsoft Partner |
- Editado Roberto Galvão sexta-feira, 4 de outubro de 2013 13:00
- Sugerido como Resposta Leonardo N. D'Amato sexta-feira, 4 de outubro de 2013 13:14
-
-
É 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 |
- Editado Roberto Galvão sexta-feira, 4 de outubro de 2013 13:28
-
-
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:
-
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 Database. Esse 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
-
-
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
-
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 |