Fazendo Backup no Banco de Dados MYSQL
Moderador: Moderadores
- 09466261000176
- Usuário Nível 1

- Mensagens: 39
- Registrado em: 19 Mar 2014 15:50
- Localização: lorena sp
Fazendo Backup no Banco de Dados MYSQL
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
mysqldump -u root -ppadrao --all-databases > backup_banco.sql
- 09466261000176
- Usuário Nível 1

- Mensagens: 39
- Registrado em: 19 Mar 2014 15:50
- Localização: lorena sp
Fazendo Backup no Banco de Dados MYSQL
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
No fonte...
cQuery:="comando sql para executar a copia do banco"
sql execute ( cQuery )
Outra coisa estou usando WINDOWS 8.0 não LINUX
-
Kapiaba
- Colaborador

- Mensagens: 1912
- Registrado em: 07 Dez 2012 16:14
- Localização: São Paulo
- Contato:
Fazendo Backup no Banco de Dados MYSQL
Olá, veja se ajuda:
http://www.hardware.com.br/dicas/mysql.html
http://fivewin.com.br/index.php?/topic/ ... com-mysql/
abs,
http://www.hardware.com.br/dicas/mysql.html
http://fivewin.com.br/index.php?/topic/ ... com-mysql/
abs,
- 09466261000176
- Usuário Nível 1

- Mensagens: 39
- Registrado em: 19 Mar 2014 15:50
- Localização: lorena sp
Fazendo Backup no Banco de Dados MYSQL
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.
-
alxsts
- Colaborador

- Mensagens: 3108
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
Fazendo Backup no Banco de Dados MYSQL
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.
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.
Código: Selecionar todos
#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)
Alexandre Santos (AlxSts)
- rochinha
- Administrador

- Mensagens: 4666
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Curtiu: 1 vez
- Contato:
Fazendo Backup no Banco de Dados MYSQL
Amiguinho,
Veja se o MySQL aceita o comando:
Para restaurar:
Não uso ainda o MySQL mas sei que algum SQL tem estes comandos.
Veja se o MySQL aceita o comando:
Código: Selecionar todos
BACKUP DATABASE NomeDoDatabase TO DISK='C:\BACKUPS\NomeDoDatabase.bak'
Código: Selecionar todos
RESTORE DATABASE NomeDoDatabase FROM DISK='C:\BACKUPS\NomeDoDatabase.bak'
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Fazendo Backup no Banco de Dados MYSQL
Faço assim no MariaDb
Código: Selecionar todos
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)
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)
-
alxsts
- Colaborador

- Mensagens: 3108
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
Fazendo Backup no Banco de Dados MYSQL
Olá!
Como seria o comando para restore?
Como seria o comando para restore?
[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
- JoséQuintas
- Administrador

- Mensagens: 20415
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
- Curtiram: 1 vez
Fazendo Backup no Banco de Dados MYSQL
Não existe comando SQL pra backup.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.
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.2, mingw, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (Linux/Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (Linux/Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/