none
Distribuir Banco de Dados RRS feed

  • Pergunta

  • Bom dia galera...

    Para distribuição do Banco de Dados, existem alguma ferramenta tipo um Wizard, para evitar que o cliente tenha que instalar, restaurar e adicionar o usuário no banco ?

     

    Cenário > Possuo uma aplicação que tenho um Banco de Dados padrão (com as tabelas,SP,View...) existe alguma maneira de deixar a instalação deste banco um pouco mais automática ?

     

    Att,

    José Luiz

     

     

    • Movido Gustavo Maia Aguiar sábado, 4 de setembro de 2010 13:25 (De:SQL Server - Desenvolvimento Geral)
    sábado, 4 de setembro de 2010 12:49

Respostas

  • José,

    Ferramenta específica para este tipo de situação não é muito comum de se encontrar, o que normalmente as empresas costumam fazer é criar seus próprios aplicativos para realizar a instalação do seu software em conjunto com o banco de dados.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário]
    • Marcado como Resposta Jose Luiz Borges quinta-feira, 9 de setembro de 2010 11:42
    domingo, 5 de setembro de 2010 01:39
    Moderador
  • Opa obrigado por responder....

     

    Então estive olhando seu site (http://juniorgalvao-mvp2007.spaces.live.com/blog/cns!89CE123EEEEBD03A!1641.entry)  e tentei instalar o SQL Server 2008 Express, por linha de comando , mas não consegui...

    Estou utilizando o seu arquivo de exemplo:

    Setup.exe /q /ACTION=Install /FEATURES=SQL /INSTANCENAME=MSb2y /SQLSVCACCOUNT="<DomainName\UserName>" /SQLSVCPASSWORD="<StrongPassword>" /SQLSYSADMINACCOUNTS="<DomainName\UserName>" /AGTSVCACCOUNT="NT AUTHORITY\Network Service"

    Massss

    Onde pede <DomainName\UserName> como que eu informo que é o usuário da Maquina que está logado ? Pois quem vai rodar o script será o cliente....

     

     

     

    • Marcado como Resposta Jose Luiz Borges quinta-feira, 9 de setembro de 2010 11:42
    terça-feira, 7 de setembro de 2010 15:31
  • Bom dia Junior...

    Olhá só ...

    Consegui Instalar o SQL EXPRESS pelo INNO SETUP (com a conta LocalSystem) sem a intervenção do usuario...

    Depois da instalação eu rodo um script que cria a base e restaura (com um arquivo que é descompactado junto com a instalação), este roda pelo sqlcmd, a principio a senha do SA fica visivel, mas eu também altero pelo script

    Hj eu já consegui criar um instalador que instala a aplicação + sqlexpress + base "padrão" + bde acesso + liberação porta 1433(que é bloqueada por padrão)

    Estou finalizando alguns testes ainda, mas acredito que ficará bem bacana.... Vou fazer um tutorial para disponibilizar para a galera pois possa vir a solucionar para outro usuário... pois é grande a procura...

    Obrigado...

     

    • Marcado como Resposta Jose Luiz Borges quinta-feira, 9 de setembro de 2010 11:42
    quinta-feira, 9 de setembro de 2010 11:42

Todas as Respostas

  • José,

    Ferramenta específica para este tipo de situação não é muito comum de se encontrar, o que normalmente as empresas costumam fazer é criar seus próprios aplicativos para realizar a instalação do seu software em conjunto com o banco de dados.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário]
    • Marcado como Resposta Jose Luiz Borges quinta-feira, 9 de setembro de 2010 11:42
    domingo, 5 de setembro de 2010 01:39
    Moderador
  • Opa obrigado por responder....

     

    Então estive olhando seu site (http://juniorgalvao-mvp2007.spaces.live.com/blog/cns!89CE123EEEEBD03A!1641.entry)  e tentei instalar o SQL Server 2008 Express, por linha de comando , mas não consegui...

    Estou utilizando o seu arquivo de exemplo:

    Setup.exe /q /ACTION=Install /FEATURES=SQL /INSTANCENAME=MSb2y /SQLSVCACCOUNT="<DomainName\UserName>" /SQLSVCPASSWORD="<StrongPassword>" /SQLSYSADMINACCOUNTS="<DomainName\UserName>" /AGTSVCACCOUNT="NT AUTHORITY\Network Service"

    Massss

    Onde pede <DomainName\UserName> como que eu informo que é o usuário da Maquina que está logado ? Pois quem vai rodar o script será o cliente....

     

     

     

    • Marcado como Resposta Jose Luiz Borges quinta-feira, 9 de setembro de 2010 11:42
    terça-feira, 7 de setembro de 2010 15:31
  • Bom dia Junior...

    Olhá só ...

    Consegui Instalar o SQL EXPRESS pelo INNO SETUP (com a conta LocalSystem) sem a intervenção do usuario...

    Depois da instalação eu rodo um script que cria a base e restaura (com um arquivo que é descompactado junto com a instalação), este roda pelo sqlcmd, a principio a senha do SA fica visivel, mas eu também altero pelo script

    Hj eu já consegui criar um instalador que instala a aplicação + sqlexpress + base "padrão" + bde acesso + liberação porta 1433(que é bloqueada por padrão)

    Estou finalizando alguns testes ainda, mas acredito que ficará bem bacana.... Vou fazer um tutorial para disponibilizar para a galera pois possa vir a solucionar para outro usuário... pois é grande a procura...

    Obrigado...

     

    • Marcado como Resposta Jose Luiz Borges quinta-feira, 9 de setembro de 2010 11:42
    quinta-feira, 9 de setembro de 2010 11:42
  • José Luiz

    Sei que o tópico é antigo, mais estou precisando desta solução. Você disponibilizou o tutorial mencionado ?

    Pode me ajudar de alguma forma ? Se puder, meu e-mail é sanses@msn.com

    Obrigado!

    sábado, 6 de abril de 2013 20:42
  • Opa,

    Então o script na verdade não estou mais usando, mas eu fiz assim

    1 - Você precisa ter o INNO SETUP

      Edite este arquivo pelo INNO SETUP, você irá ver que no script ele tem o caminho para o SQL2008EXPRESS, você tem que alterar para onde está o seu SQL2008EXPRESS

    Source: \\192.168.1.105\f$\NotJose\SQL2008Express\*; DestDir: C:\B2YTMP\ Flags: ignoreversion recursesubdirs createallsubdirs;

    Logo apos, (ao final da instalação) o script chama dois arquivos 

    Filename: C:\B2YTMP\Install2008.bat; Flags: waituntilterminated; StatusMsg: Instalando MSDN...;
    Filename: C:\B2YTMP\ConfiguraSQL.bat; Flags: waituntilterminated; StatusMsg: Configurando Base de Dados...;

    Conteúdo do arquivo .iss (script do inno setup), copie e cole e salve como .iss e abra pelo INNO SETUP

    ; Script generated by the Inno Setup Script Wizard.
    ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

    [Setup]
    ; NOTE: The value of AppId uniquely identifies this application.
    ; Do not use the same AppId value in installers for other applications.
    ; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
    AppId={{4BBE97DA-78CF-4AE8-A042-30FC164F0A01}
    AppName=Servidor B2y
    AppVersion=1.5
    ;AppVerName=Servidor B2y 1.5
    AppPublisher=Isco Sistemas Soluções Integradas Ltda.
    AppPublisherURL=http://www.iscosistemas.com.br
    AppSupportURL=http://www.iscosistemas.com.br
    AppUpdatesURL=http://www.iscosistemas.com.br
    DefaultDirName={pf}\Servidor B2y
    DefaultGroupName=Servidor B2y
    DisableProgramGroupPage=yes
    DisableDirPage=yes
    OutputBaseFilename=Server
    Compression=lzma
    SolidCompression=yes

    [Languages]
    Name: english; MessagesFile: compiler:Default.isl
    Name: brazilianportuguese; MessagesFile: compiler:Languages\BrazilianPortuguese.isl


    [Files]
    Source: E:\Projetos Delphi\Clientes\Isco\Sistema\Compilado\SQL2008Express\*; DestDir: C:\B2YTMP\ Flags: ignoreversion recursesubdirs createallsubdirs;
    ;Source: E:\Projetos Delphi\Clientes\Isco\Sistema\Compilado\b2yServices.exe; DestDir: {tmp}\SQL\; Flags: ignoreversion
    ;Source: E:\Projetos Delphi\Clientes\Isco\Sistema\Compilado\Server.bat; DestDir: {tmp}\SQL\; Flags: ignoreversion


    ; NOTE: Don't use "Flags: ignoreversion" on any shared system files


    [Run]
    Filename: C:\B2YTMP\Install2008.bat; Flags: waituntilterminated; StatusMsg: Instalando MSDN...;
    Filename: C:\B2YTMP\ConfiguraSQL.bat; Flags: waituntilterminated; StatusMsg: Configurando Base de Dados...;
    ;Filename: {tmp}\SQL\Server.bat; Flags: waituntilterminated

    Obs.: Não me preocupei em tirar os nomes isco sistema e tal

    Os Arquivos ISNTALL2008.bat é um arquivo que você irá criar e tem que estar dentro da pasta do SQL2008EXPRESS

    Conteúdo INSTALL2008.bat

    setup /SAPWD="samssql69" /configurationfile="SQLSERVER2008.INI"

    Pode ver que ele faz referencia ao arquivo SQLSERVER2008.INI. é um arquivo de configuração do SQL

    Conteúdo SQLSERVER2008.INI

    [SQLSERVER2008]
    INSTANCEID="b2ycliente"
    ACTION="INSTALL"
    FEATURES=SQLENGINE
    INDICATEPROGRESS="TRUE"
    QUIET="TRUE"
    INSTANCENAME="cliente"
    AGTSVCSTARTUPTYPE="Automatic"
    SQLSVCSTARTUPTYPE="Automatic"
    ENABLERANU="FALSE"
    SQLCOLLATION="SQL_LATIN1_GENERAL_CP1_CI_AS"
    SQLSVCACCOUNT="AUTORIDADE NT\SYSTEM"
    SQLSYSADMINACCOUNTS="BUILTIN\Administradores"
    SECURITYMODE="SQL"
    ADDCURRENTUSERASSQLADMIN="False"
    TCPENABLED="1"
    NPENABLED="0"
    BROWSERSVCSTARTUPTYPE="Disabled"

    Neste arquivo você vai alterar para as suas preferencias, claro.

    ____neste ponto o sql já estará instalado

    Ai tem o ConfiguraSQL.bat (que também é chamado ao final da instalação)

    este arquivo também deve estar dentro da pasta do SQLEXPRESS, e eu uso para restaurar o banco de dados e tal

    Conteúdo do arquivo ConfiguraSQL.bat

    sqlcmd /Usa /Psamssql69 /S localhost\cliente /i"ScriptConfigura.txt" /o"LogSQL.txt"

    Ele faz referência a dois arquivos LogSQL (Somente log da instalação) e ao arquivo ScriptConfigura.txt, este arquivo tem os meus comando para a instalação do usuário e outros detalhes

    Conteúdo do Arquivo ScriptConfigura.txt

    USE [master]
    go 
    SET NOCOUNT ON
    GO
    IF EXISTS (SELECT 1 FROM SYS.DATABASES WHERE NAME = N'b2ycliente')
    DROP DATABASE b2ycliente
    GO
    CREATE DATABASE b2ycliente
    GO
    RESTORE DATABASE b2ycliente FROM DISK = N'C:\B2YTMP\SQL\cliente.bak' WITH REPLACE


    USE [master]
    GO
    CREATE LOGIN [iscosistemas] WITH PASSWORD=N'<sua senha>', DEFAULT_DATABASE=[cliente], DEFAULT_LANGUAGE=[us_english], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
    GO
    USE [cliente]
    GO
    CREATE USER [iscosistemas] FOR LOGIN [iscosistemas]
    GO
    USE [cliente]
    GO
    EXEC sp_addrolemember N'db_securityadmin', N'iscosistemas'
    GO
    USE [cliente]
    GO
    EXEC sp_addrolemember N'db_datareader', N'iscosistemas'
    GO
    USE [cliente]
    GO
    EXEC sp_addrolemember N'db_accessadmin', N'iscosistemas'
    GO
    USE [cliente]
    GO
    EXEC sp_addrolemember N'db_datawriter', N'iscosistemas'
    GO
    USE [cliente]
    GO
    EXEC sp_addrolemember N'db_backupoperator', N'iscosistemas'
    GO
    USE [cliente]
    GO
    EXEC sp_addrolemember N'db_ddladmin', N'iscosistemas'
    GO
    USE [cliente]
    GO
    EXEC sp_addrolemember N'db_owner', N'iscosistemas'
    GO
    USE [cliente]
    GO
    -- Grant database ALTER permision to the user
    GRANT ALTER To iscosistemas 
    GO
    -- Grant database CONTROL permision to the user
    GRANT CONTROL To iscosistemas
    GO
    USE [master]
    -- Altera o login sa
    ALTER LOGIN sa WITH PASSWORD =N'<sua senha>'

    Pode ver que estour fazendo um restore e passando o caminha do arquivo .bak (que também deve estar na pasta do SQLEXPRESS)

    Eu não sou muito bom em tutorial, rs..... mas qualquer dúvida pergunte ai... blz ?


    Isco Sistemas José Luiz Borges


    • Editado Jose Luiz Borges segunda-feira, 8 de abril de 2013 12:19 falta de arquivo
    segunda-feira, 8 de abril de 2013 12:16
  • José Luiz,

    Obrigado pela ajuda, vou fazer uns testes aqui e qualquer coisa volto a lhe pedir socorro.

    A propósito, se você não utiliza mais o inno setup, encontrou uma forma mais eficiente de dazer a instalação e distribuição do banco ?

    Grato!

    segunda-feira, 8 de abril de 2013 12:21
  •   Não utilizamos mais pois o modelo de distribuição do software não é mais local e sim na nuvem

      Quando o cliente quer instalar LOCALMENTE na rede, ai sim utilizamos este script, mas hoje é raro, só para que não confia em nuvem ainda.

    Na época a única maneira que me atendia de fazer a instalação e distribuição foi pelo INNO SETUP por chamar em etapas

    att


    Isco Sistemas José Luiz Borges

    segunda-feira, 8 de abril de 2013 12:34
  • Estou fazendo como orientou, contudo ele não chega a instalar o sqlserver 2008. Até cria o diretório em arquivos de programas mas não instala.

    segunda-feira, 26 de agosto de 2013 18:09