Clipper On Line • Ver Tópico - Fazendo Backup no Banco de Dados MYSQL

Fazendo Backup no Banco de Dados MYSQL

Discussão sobre a biblioteca Fivewin - O Clipper para Windows.

Moderador: Moderadores

 

Fazendo Backup no Banco de Dados MYSQL

Mensagempor 09466261000176 » 10 Mai 2014 17:58

Olá Pessoal. Estou querendo fazer backup do meu banco. Quero embutir em meu aplicativo o comando sql para tal evento. Comno fazer isso por dentro de meu programa? Usei este comando mas ele não funcionou.
mysqldump -u root -ppadrao --all-databases > backup_banco.sql
Avatar de usuário

09466261000176
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 39
Data de registro: 19 Mar 2014 15:50
Cidade/Estado: lorena sp
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Fazendo Backup no Banco de Dados MYSQL

Mensagempor Kapiaba » 13 Mai 2014 11:33

Kapiaba
Colaborador

Colaborador
 
Mensagens: 1606
Data de registro: 07 Dez 2012 15:14
Cidade/Estado: São Paulo
Curtiu: 297 vezes
Mens.Curtidas: 101 vezes

Fazendo Backup no Banco de Dados MYSQL

Mensagempor 09466261000176 » 18 Mai 2014 12:19

Não. Seria algo assim:

No fonte...

cQuery:="comando sql para executar a copia do banco"
sql execute ( cQuery )

Outra coisa estou usando WINDOWS 8.0 não LINUX
Avatar de usuário

09466261000176
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 39
Data de registro: 19 Mar 2014 15:50
Cidade/Estado: lorena sp
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Fazendo Backup no Banco de Dados MYSQL

Mensagempor Kapiaba » 19 Mai 2014 17:13

Kapiaba
Colaborador

Colaborador
 
Mensagens: 1606
Data de registro: 07 Dez 2012 15:14
Cidade/Estado: São Paulo
Curtiu: 297 vezes
Mens.Curtidas: 101 vezes

Fazendo Backup no Banco de Dados MYSQL

Mensagempor 09466261000176 » 22 Mai 2014 22:04

Usar o MYSQLDUMP tudo bem consigo, porém o que quero é embutir dento de meu fonte comandos SQL para realizar esta operação. Não quero fazer isso por um .BAT nem direto na console do MYSQL. Fica mais elegante o próprio programa executar.
Avatar de usuário

09466261000176
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 39
Data de registro: 19 Mar 2014 15:50
Cidade/Estado: lorena sp
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Fazendo Backup no Banco de Dados MYSQL

Mensagempor alxsts » 23 Mai 2014 01:50

Olá!

Recentemente instalei o MySQL, seguindo um excelente tutorial postado pelo Toledo mas, ainda não iniciei meus testes com ele.

Tenho alguns testes feitos com SQL Server com ADO, onde crio um banco de dados e algumas tabelas no mesmo, que compartilho abaixo. Creio que eja possível adaptar isto para MySQL e acrescentar a rotina de backup.
#include "ado.ch"
#include "box.ch"
#include "hbcompat.ch"

REQUEST HB_CODEPAGE_PTISO

STATIC oCn As Object

//------------------------------------------------------------------------------

INIT PROCEDURE AppInit()

   LOCAL oErr As Object
   LOCAL cCnString As Character

   Altd()
   
   RELEASE GetList
   HB_CDPSELECT("PTISO")

   Set( _SET_DATEFORMAT, "dd/mm/yyyy" )
   SetMode(50,150)
   SetBlink( .F. )
   SetColor( "W+/N, N/W*" )

   CLS

   DispBox( 0,0,2, MaxCol(), Space(9), "W+/RB"  )
   DispBox( 3,0,MaxRow() - 1, MaxCol() * .25, Space(9), "N/N"  )
   DispBox( 3,(MaxCol() * .25) + 1,MaxRow(), MaxCol() , Space(9), "N/BG+"  )
   DispBox( MaxRow(), 0, MaxRow(), MaxCol(), Space(9), "N/W"  )
   DispOutAt( 1,0, PadC("Testando Harbour + ADO + SQL Server",MaxCol()), "W+/RB" )

   Try
      cCnString := "Provider=SQLNCLI10;Server=(Local);Database=Harbour;Uid=sa;Pwd=xyz;"

      oCn := win_OleCreateObject("ADODB.Connection")

      oCn:ConnectionString := cCnString
      oCn:CursorLocation := adUseClient
      oCn:Mode := adModeReadWrite

   Catch oErr
      Alert( "Não foi possível conectar ao banco de dados.;Erro: " + oErr:description, { "  Fechar  " } )
      __Quit()
   Finally
   
   End
   
RETURN
//------------------------------------------------------------------------------

FUNCTION AppMain()

   LOCAL oRs As Object
   LOCAL oErr As Object
   LOCAL cSql As Character

   Altd()

   Try
      // Cria novo banco de dados, se não existir
      oRs := ExecuteSQL( "SELECT IsNull( db_id('harbour'),0 ) As dbID" )

      If ! oRs:Eof()
         If oRs:fields("dbID"):value == 0
            TEXT INTO cSql
               CREATE DATABASE Harbour
               ON
               ( NAME = Harbour_dat,
                   FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\Harbour.mdf',
                   SIZE = 10,
                   MAXSIZE = 50,
                   FILEGROWTH = 5 )
               LOG ON
               ( NAME = Harbour_log,
                   FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\Harbour.ldf',
                   SIZE = 5MB,
                   MAXSIZE = 25MB,
                   FILEGROWTH = 5MB ) ;
            ENDTEXT

            oCn:Open()

            oCn:Execute( cSql )

            Alert( "Banco de dados 'Harbour' criado com sucesso.",, "W+/B" )
         Else
            Alert( "Banco de dados 'Harbour' já existe e não pode ser criado novamente.",, "W+/B" )
         Endif
      Else
         Alert( "RS vazio" )
      Endif
     
      TablesGenerator( ScriptGenerator() )

      Alert( "O banco de dados da aplicação foi criado com sucesso: 'Harbour'.",, "W+/B" )

   Catch oErr
      If oErr != NIL
         Alert(oErr:description)
      Endif
      Alert( "Ocorreram erros.;O banco de dados da aplicação não foi criado com sucesso: 'Harbour'.",, "W+/B" )
   Finally
      If oRs != NIL .And. oRs:state() == adStateOpen
         oRs:Close()
      Endif

      If oCn:state() == adStateOpen
         oCn:Close()
      Endif

      oRs := NIL
      oCn := NIL
   End

RETURN
//------------------------------------------------------------------------------

EXIT PROCEDURE AppExit()

   HB_GCAll( .T. )
   CLS

RETURN

//------------------------------------------------------------------------------

STATIC FUNCTION ExecuteSql( cSql )

   LOCAL oRs As Object
   LOCAL oErr As Object
   LOCAL cCnString As Character

   Try
      oRs := win_OleCreateObject("ADODB.RecordSet")
   
      With Object oRs

         :activeConnection := oCn:connectionString

         :cursorLocation := adUseClient
         :cursorType := adOpenDynamic

         :lockType := adLockOptimistic

         :maxRecords := 100000
         :cacheSize := 100
         :source := cSql

         :open()
      End With
   Catch oErr
      Throw( oErr )
   End
   
   RETURN oRs
//------------------------------------------------------------------------------

STATIC FUNCTION TablesGenerator( aScripts )

   LOCAL cSql As Character
   LOCAL lRet As Logical

   lRet := .F.
     
   Try
      oCn:Open()

      For Each cSql In aScripts
         oCn:Execute( cSql )
      Next

      lRet := .T.
     
   Catch oErr
      Throw( oErr )
   Finally
      If oCn:state() = adStateOpen
         oCn:Close()
      Endif
   End

RETURN lRet
//------------------------------------------------------------------------------

STATIC FUNCTION ScriptGenerator()

   LOCAL cSql As Character
   LOCAL aRet As Array

   aRet := {}

   TEXT INTO cSql
      USE [Harbour]

      /****** Object:  Table [dbo].[tbAddressType]    Script Date: 09/04/2014 20:18:23 ******/
      SET ANSI_NULLS ON
      SET QUOTED_IDENTIFIER ON
      SET ANSI_PADDING ON

      CREATE TABLE [dbo].[tbAddressType](
         [idAddressType] [int] IDENTITY(1,1) NOT NULL,
         [dsAddressType] [varchar](20) NOT NULL,
       CONSTRAINT [XPKtbAddressType] PRIMARY KEY CLUSTERED
      (
         [idAddressType] ASC
      )WITH (PAD_INDEX = ON, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 80) ON [PRIMARY]
      ) ON [PRIMARY]

      SET ANSI_PADDING OFF
   ENDTEXT

   AAdd( aRet, cSql )

   //
   
   TEXT INTO cSql
      USE [Harbour]

      /****** Object:  Table [dbo].[tbCountry]    Script Date: 09/04/2014 20:20:26 ******/
     
      IF OBJECT_ID('dbo.tbNewItens', 'U') IS NULL

      SET ANSI_NULLS ON
      SET QUOTED_IDENTIFIER ON
      SET ANSI_PADDING ON

      CREATE TABLE [dbo].[tbCountry](
         [idCountry] [char](3) NOT NULL,
         [dsCountry] [varchar](50) NOT NULL,
         [idContinent] [char](1) NOT NULL,
         [dsContinent] [varchar](50) NOT NULL,
       CONSTRAINT [XPKtbCountry] PRIMARY KEY CLUSTERED
      (
         [idCountry] ASC
      )WITH (PAD_INDEX = ON, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 80) ON [PRIMARY]
      ) ON [PRIMARY]

      SET ANSI_PADDING OFF
   ENDTEXT

   AAdd( aRet, cSql )

   //
   
   TEXT INTO cSql
      /****** Object:  Table [dbo].[tbCustomer]    Script Date: 09/04/2014 19:56:51 ******/
      SET ANSI_NULLS ON
      SET QUOTED_IDENTIFIER ON
      SET ANSI_PADDING ON

      CREATE TABLE [dbo].[tbCustomer](
         [idCustomer] [int] IDENTITY(1,1) NOT NULL,
         [dsEmail] [varchar](100) NULL,
         [dsPassword] [varchar](50) NULL,
         [dsPwdCrypto] [varchar](250) NULL,
         [dsName] [varchar](200) NOT NULL,
         [dsLastName] [varchar](250) NULL,
         [dsNickName] [varchar](20) NULL,
         [idProfile] [int] NOT NULL,
         [dtCreated] [datetime] NOT NULL,
         [dtLastLogin] [datetime] NULL,
         [dtLastOrder] [datetime] NULL,
         [fgReceiveEmail] [tinyint] NOT NULL,
         [fgActiveLogin] [tinyint] NOT NULL,
         [idVipCustomerMain] [varchar](40) NULL,
         [dtModified] [datetime] NOT NULL,
         [dtMadeInModified] [datetime] NULL,
         [dtMadeInCreated] [datetime] NULL,
         [fldCustomer] [tinyint] NOT NULL,
         [fgReceiveEmailFormat] [tinyint] NOT NULL,
         [dtSync] [datetime] NULL,
         [bitEstrangeiro] [bit] NULL,
       CONSTRAINT [PK_tbReseller] PRIMARY KEY CLUSTERED
      (
         [idCustomer] ASC
      )WITH (PAD_INDEX = ON, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 80) ON [PRIMARY]
      ) ON [PRIMARY]

      SET ANSI_PADDING OFF

      ALTER TABLE [dbo].[tbCustomer] ADD  CONSTRAINT [DF_tbCustomer_fldCustomer]  DEFAULT ((0)) FOR [fldCustomer]
      ALTER TABLE [dbo].[tbCustomer] ADD  CONSTRAINT [DF_tbCustomer_fgReceiveEmailFormat]  DEFAULT ((0)) FOR [fgReceiveEmailFormat]
      ALTER TABLE [dbo].[tbCustomer] ADD  CONSTRAINT [DF_tbCustomer_bitEstrangeiro]  DEFAULT ((0)) FOR [bitEstrangeiro]
   ENDTEXT

   AAdd( aRet, cSql )

   //
   
   TEXT INTO cSql
      /****** Object:  Table [dbo].[tbCustomerDetail]    Script Date: 09/04/2014 19:58:46 ******/
      SET ANSI_NULLS ON
      SET QUOTED_IDENTIFIER ON
      SET ANSI_PADDING ON

      CREATE TABLE [dbo].[tbCustomerDetail](
         [idCustomer] [int] NOT NULL,
         [dsCNPJ] [varchar](18) NULL,
         [dsIE] [varchar](15) NULL,
         [dsIM] [varchar](15) NULL,
         [dsResponsible] [varchar](30) NULL,
         [dsCpf] [varchar](15) NULL,
         [dtBirthDate] [datetime] NULL,
         [dsSex] [char](1) NULL,
         [dsCelularPhone] [varchar](20) NULL,
         [fgPfPj] [char](1) NOT NULL,
         [dsRG] [varchar](25) NULL,
         [dsPhoneDDD1] [varchar](5) NULL,
         [dsPhone1] [varchar](30) NULL,
         [dsBranchPhone1] [varchar](20) NULL,
         [dsPhoneDDD2] [varchar](5) NULL,
         [dsPhone2] [varchar](30) NULL,
         [dsBranchPhone2] [varchar](20) NULL,
         [dsPhoneDDD3] [varchar](5) NULL,
         [dsPhone3] [varchar](30) NULL,
         [dsBranchPhone3] [varchar](20) NULL,
         [dsDispatcherAgency] [varchar](10) NULL,
         [fgSMS] [tinyint] NOT NULL,
       CONSTRAINT [PK_tbCustomerDetail] PRIMARY KEY CLUSTERED
      (
         [idCustomer] ASC
      )WITH (PAD_INDEX = ON, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 80) ON [PRIMARY]
      ) ON [PRIMARY]

      SET ANSI_PADDING OFF

      ALTER TABLE [dbo].[tbCustomerDetail] ADD  CONSTRAINT [DF_tbCustomerDetail_fgSMS]  DEFAULT ((0)) FOR [fgSMS]
      ALTER TABLE [dbo].[tbCustomerDetail]  WITH CHECK ADD  CONSTRAINT [FK_tbCustomer_tbCustomerDetail] FOREIGN KEY([idCustomer])
      REFERENCES [dbo].[tbCustomer] ([idCustomer])
      ALTER TABLE [dbo].[tbCustomerDetail] CHECK CONSTRAINT [FK_tbCustomer_tbCustomerDetail]
   ENDTEXT

   AAdd( aRet, cSql )

   //
   
   TEXT INTO cSql
      /****** Object:  Table [dbo].[tbCustomerDeliveryAddr]    Script Date: 09/04/2014 20:00:31 ******/
      SET ANSI_NULLS ON
      SET QUOTED_IDENTIFIER ON
      SET ANSI_PADDING ON

      CREATE TABLE [dbo].[tbCustomerDeliveryAddr](
         [idCustomerDeliveryAddr] [int] IDENTITY(1,1) NOT NULL,
         [dsDestinationName] [varchar](200) NOT NULL,
         [dsAddress] [varchar](80) NOT NULL,
         [dsNumber] [varchar](10) NOT NULL,
         [dsComplement] [varchar](30) NULL,
         [dsZip] [varchar](10) NULL,
         [dsCity] [varchar](40) NULL,
         [dsDistrict] [varchar](40) NULL,
         [idCustomer] [int] NOT NULL,
         [idCountry] [char](3) NOT NULL,
         [idState] [char](2) NOT NULL,
         [dsReferenceAddress] [varchar](200) NULL,
         [fgCustomerAddress] [tinyint] NOT NULL,
         [fgMainAddress] [tinyint] NOT NULL,
         [dsParentHood] [varchar](20) NULL,
         [dsEmail] [varchar](100) NULL,
         [dsProvince] [varchar](30) NULL,
         [dsDeliveryName] [varchar](200) NULL,
         [dsPhoneDDD1] [varchar](5) NULL,
         [dsPhone1] [varchar](30) NULL,
         [dsBranchPhone1] [varchar](20) NULL,
         [dsPhoneDDD2] [varchar](5) NULL,
         [dsPhone2] [varchar](30) NULL,
         [dsBranchPhone2] [varchar](20) NULL,
         [dsPhoneDDD3] [varchar](5) NULL,
         [dsPhone3] [varchar](30) NULL,
         [dsBranchPhone3] [varchar](20) NULL,
         [idAddressType] [int] NULL,
         [dtMadeInCreated] [datetime] NULL,
         [dtMadeInModified] [datetime] NULL,
       CONSTRAINT [PK_tbCustomerAddr] PRIMARY KEY CLUSTERED
      (
         [idCustomerDeliveryAddr] ASC
      )WITH (PAD_INDEX = ON, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 80) ON [PRIMARY]
      ) ON [PRIMARY]

      SET ANSI_PADDING OFF

      ALTER TABLE [dbo].[tbCustomerDeliveryAddr]  WITH CHECK ADD  CONSTRAINT [FK_tbAddressType_tbCustomerDeliveryAddr] FOREIGN KEY([idAddressType])
      REFERENCES [dbo].[tbAddressType] ([idAddressType])

      ALTER TABLE [dbo].[tbCustomerDeliveryAddr] CHECK CONSTRAINT [FK_tbAddressType_tbCustomerDeliveryAddr]

      ALTER TABLE [dbo].[tbCustomerDeliveryAddr]  WITH CHECK ADD  CONSTRAINT [FK_tbCountry_tbCustomDeliveryAddr] FOREIGN KEY([idCountry])
      REFERENCES [dbo].[tbCountry] ([idCountry])

      ALTER TABLE [dbo].[tbCustomerDeliveryAddr] CHECK CONSTRAINT [FK_tbCountry_tbCustomDeliveryAddr]

      ALTER TABLE [dbo].[tbCustomerDeliveryAddr]  WITH CHECK ADD  CONSTRAINT [FK_tbCustomer_tbCustomerAddr] FOREIGN KEY([idCustomer])
      REFERENCES [dbo].[tbCustomer] ([idCustomer])

      ALTER TABLE [dbo].[tbCustomerDeliveryAddr] CHECK CONSTRAINT [FK_tbCustomer_tbCustomerAddr]
   ENDTEXT

   AAdd( aRet, cSql )

RETURN aRet
//------------------------------------------------------------------------------
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador

Colaborador
 
Mensagens: 2422
Data de registro: 12 Ago 2008 15:50
Cidade/Estado: São Paulo-SP-Brasil
Curtiu: 15 vezes
Mens.Curtidas: 177 vezes

Fazendo Backup no Banco de Dados MYSQL

Mensagempor rochinha » 05 Jun 2014 02:28

Amiguinho,

Veja se o MySQL aceita o comando:
BACKUP DATABASE NomeDoDatabase TO DISK='C:\BACKUPS\NomeDoDatabase.bak'


Para restaurar:
RESTORE DATABASE NomeDoDatabase FROM DISK='C:\BACKUPS\NomeDoDatabase.bak'


Não uso ainda o MySQL mas sei que algum SQL tem estes comandos.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4329
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 589 vezes
Mens.Curtidas: 198 vezes

Fazendo Backup no Banco de Dados MYSQL

Mensagempor asimoes » 09 Abr 2021 22:06

Faço assim no MariaDb

mysqldump --databases --routines --triggers asaprev -u root -p****** >> backupbanco\backupbanco.sql

::Execute( "mysqldump", "--databases --routines --triggers asaprev -u root -p***** >> backupbanco\backupbanco.sql ", .T. ) //faz dump do banco de dados
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 5068
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 242 vezes

Fazendo Backup no Banco de Dados MYSQL

Mensagempor alxsts » 10 Abr 2021 23:28

Olá!

Como seria o comando para restore?
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador

Colaborador
 
Mensagens: 2422
Data de registro: 12 Ago 2008 15:50
Cidade/Estado: São Paulo-SP-Brasil
Curtiu: 15 vezes
Mens.Curtidas: 177 vezes

Fazendo Backup no Banco de Dados MYSQL

Mensagempor JoséQuintas » 11 Abr 2021 09:40

09466261000176 escreveu:Usar o MYSQLDUMP tudo bem consigo, porém o que quero é embutir dento de meu fonte comandos SQL para realizar esta operação. Não quero fazer isso por um .BAT nem direto na console do MYSQL. Fica mais elegante o próprio programa executar.


Não existe comando SQL pra backup.
Existem utilitários que fazem backup.
Ou faz no aplicativo uma chamada de um programa de backup, com o comando que ele precisa, ou cria toda uma rotina de backup no aplicativo.
O MySQLDump é um dos utilitários que fazem backup.

Pra fazer pelo aplicativo, vários comandos select *, um pra cada tabela, e mais pra stored procedures, views, etc.
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 16392
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 928 vezes




Retornar para FiveWin

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 2 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro