数据库的备份和导入问题 我用的是delphi6和SQL SERVER 2000 搞的一个小项目!我不知道如何通过delphi进行数据库的备份和恢复! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用sql 语句restore /backup database 如何创建数据库备份 (Transact-SQL)创建数据库备份 执行 BACKUP DATABASE 语句以创建数据库备份,同时指定: 要备份的数据库的名称。数据库备份将写入的备份设备。 指定(可选): INIT 子句,通过它可以重写备份媒体,并在备份媒体上将该备份作为第一个文件写入。如果没有现成的媒体头,备份过程将自动写入一个。SKIP 和 INIT 子句,通过它们可以在备份媒体中仍然存在未失效的备份,或在媒体本身的名称与备份媒体中的名称不匹配时重写备份媒体。FORMAT 子句,通过它可以在第一次使用媒体时对备份媒体进行完全初始化,并覆盖任何现有的媒体头。 如果已经指定了 FORMAT 子句,则不需要指定 INIT 子句。重要 当使用 BACKUP 语句的 FORMAT 子句或 INIT 子句时,一定要十分小心,因为它们会破坏以前存储在备份媒体中的所有备份。示例下例将整个 MyNwind 数据库备份到磁带上:USE MyNwindGOBACKUP DATABASE MyNwind TO TAPE = '\\.\Tape0' WITH FORMAT, NAME = 'Full Backup of MyNwind'GO 示例说明 所有的示例均假定已执行了完整数据库备份。A. 还原完整数据库说明 MyNwind 数据库仅供举例说明。下例显示还原完整数据库备份。RESTORE DATABASE MyNwind FROM MyNwind_1B. 还原完整数据库备份和差异备份下例还原完整数据库备份后还原差异备份。另外,下例还说明如何还原媒体上的另一个备份集。差异备份追加到包含完整数据库备份的备份设备上。RESTORE DATABASE MyNwind FROM MyNwind_1 WITH NORECOVERYRESTORE DATABASE MyNwind FROM MyNwind_1 WITH FILE = 2C. 使用 RESTART 语法还原数据库下例使用 RESTART 选项重新启动因服务器电源故障而中断的 RESTORE 操作。-- This database RESTORE halted prematurely due to power failure.RESTORE DATABASE MyNwind FROM MyNwind_1-- Here is the RESTORE RESTART operation.RESTORE DATABASE MyNwind FROM MyNwind_1 WITH RESTARTD. 还原数据库并移动文件下例还原完整数据库和事务日志,并将已还原的数据库移动到 C:\Program Files\Microsoft SQL Server\MSSQL\Data 目录下。RESTORE DATABASE MyNwind FROM MyNwind_1 WITH NORECOVERY, MOVE 'MyNwind' TO 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\NewNwind.mdf', MOVE 'MyNwindLog1' TO 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\NewNwind.ldf'RESTORE LOG MyNwind FROM MyNwindLog1 WITH RECOVERYE. 使用 BACKUP 和 RESTORE 创建数据库的复本下例显示使用 BACKUP 和 RESTORE 语句创建 Northwind 数据库的复本。MOVE 语句使数据和日志文件还原到指定的位置。RESTORE FILELISTONLY 语句用于确定待还原数据库内的文件数及名称。该数据库的新复本称为 TestDB。有关更多信息,请参见 RESTORE FILELISTONLY。 BACKUP DATABASE Northwind TO DISK = 'c:\Northwind.bak'RESTORE FILELISTONLY FROM DISK = 'c:\Northwind.bak'RESTORE DATABASE TestDB FROM DISK = 'c:\Northwind.bak' WITH MOVE 'Northwind' TO 'c:\test\testdb.mdf', MOVE 'Northwind_log' TO 'c:\test\testdb.ldf'GOF. 使用 STOPAT 语法还原到即时点和使用多个设备进行还原下例将数据库还原到其在 1998 年 4 月 15 日中午 12 点时的状态,并显示涉及多个日志和多个备份设备的还原操作。RESTORE DATABASE MyNwind FROM MyNwind_1, MyNwind_2 WITH NORECOVERYRESTORE LOG MyNwind FROM MyNwindLog1 WITH NORECOVERYRESTORE LOG MyNwind FROM MyNwindLog2 WITH RECOVERY, STOPAT = 'Apr 15, 1998 12:00 AM'G. 使用 TAPE 语法还原下例显示从 TAPE 备份设备还原完整数据库备份。RESTORE DATABASE MyNwind FROM TAPE = '\\.\tape0'H. 使用 FILE 和 FILEGROUP 语法还原下例还原一个包含两个文件、一个文件组和一个事务日志的数据库。RESTORE DATABASE MyNwind FILE = 'MyNwind_data_1', FILE = 'MyNwind_data_2', FILEGROUP = 'new_customers' FROM MyNwind_1 WITH NORECOVERY-- Restore the log backup.RESTORE LOG MyNwind FROM MyNwindLog1I. 将事务日志还原到标记处下例显示将事务日志还原到名为"RoyaltyUpdate"的标记处。BEGIN TRANSACTION RoyaltyUpdate WITH MARK 'Update royalty values'GOUSE pubsGOUPDATE roysched SET royalty = royalty * 1.10 WHERE title_id LIKE 'PC%'GOCOMMIT TRANSACTION RoyaltyUpdateGO--Time passes. Regular database --and log backups are taken.--An error occurs.USE masterGORESTORE DATABASE pubsFROM Pubs1WITH FILE = 3, NORECOVERYGORESTORE LOG pubs FROM Pubs1 WITH FILE = 4, STOPATMARK = 'RoyaltyUpdate' 恢复操作的时候,要把当前的数据库连接关闭,通过另一个TADOConnection连接到Master数据库上1. ADOConnection1 连接你的业务数据库。2. ADOConnection2 连接 MASTER 数据库。3. ADOCommand1.Connection := ADOConnection2;假设你的数据库名为: DataBaseNameButton.OnClick:begin ADOConnection1.Connected := False; ADOCommand1.CommandText := 'BACKUP DATABASE DataBaseName TO DISK = ' + #39 + 'C:\KKK.BAK' + #39; ADOCommand1.Execute; ADOCommand1.CommandText := 'ALTER DATABASE DataBaseName SET OFFLINE WITH ROLLBACK IMMEDIATE'; ADOCommand1.Execute; ADOCommand1.CommandText := 'RESTORE DATABASE DataBaseName FROM DISK = ' + #39 + 'C:\KKK.BAK' + #39; ADOCommand1.Execute; ADOCommand1.CommandText := 'ALTER DATABASE DataBaseName SET ONLINE WITH ROLLBACK IMMEDIATE'; ADOCommand1.Execute; ADOConnection1.Connected := True; ADOTable1.Active := true;end; 恢复的时候数据库不能正在使用,建议你自己连接到MASTER,再执行恢复命令 adoquery Filter 问题 BS那些人云亦云.盲目打击delphi的人.把我害惨了. INI操作中ReadInteger函数的问题 PopupMenu右键菜单小问题 那位高手帮忙看一下这个密码是如何加密的 添加记录问题,再线等 如何得到子节点的数量?急!!!!! 如何在打开一个子窗口的时候关掉另一个子窗口? 十万火急,在线等待 为什么Delete不了? 那里错了? COM-DLL中引用ADO、TQuery等数据库连接操作对象如何设置? 请问在delphi怎样和网页连接起来?
创建数据库备份 执行 BACKUP DATABASE 语句以创建数据库备份,同时指定:
要备份的数据库的名称。
数据库备份将写入的备份设备。
指定(可选):
INIT 子句,通过它可以重写备份媒体,并在备份媒体上将该备份作为第一个文件写入。如果没有现成的媒体头,备份过程将自动写入一个。
SKIP 和 INIT 子句,通过它们可以在备份媒体中仍然存在未失效的备份,或在媒体本身的名称与备份媒体中的名称不匹配时重写备份媒体。
FORMAT 子句,通过它可以在第一次使用媒体时对备份媒体进行完全初始化,并覆盖任何现有的媒体头。
如果已经指定了 FORMAT 子句,则不需要指定 INIT 子句。重要 当使用 BACKUP 语句的 FORMAT 子句或 INIT 子句时,一定要十分小心,因为它们会破坏以前存储在备份媒体中的所有备份。
示例
下例将整个 MyNwind 数据库备份到磁带上:USE MyNwind
GO
BACKUP DATABASE MyNwind
TO TAPE = '\\.\Tape0'
WITH FORMAT,
NAME = 'Full Backup of MyNwind'
GO
说明 所有的示例均假定已执行了完整数据库备份。
A. 还原完整数据库
说明 MyNwind 数据库仅供举例说明。
下例显示还原完整数据库备份。RESTORE DATABASE MyNwind
FROM MyNwind_1B. 还原完整数据库备份和差异备份
下例还原完整数据库备份后还原差异备份。另外,下例还说明如何还原媒体上的另一个备份集。差异备份追加到包含完整数据库备份的备份设备上。RESTORE DATABASE MyNwind
FROM MyNwind_1
WITH NORECOVERY
RESTORE DATABASE MyNwind
FROM MyNwind_1
WITH FILE = 2C. 使用 RESTART 语法还原数据库
下例使用 RESTART 选项重新启动因服务器电源故障而中断的 RESTORE 操作。-- This database RESTORE halted prematurely due to power failure.
RESTORE DATABASE MyNwind
FROM MyNwind_1
-- Here is the RESTORE RESTART operation.
RESTORE DATABASE MyNwind
FROM MyNwind_1 WITH RESTARTD. 还原数据库并移动文件
下例还原完整数据库和事务日志,并将已还原的数据库移动到 C:\Program Files\Microsoft SQL Server\MSSQL\Data 目录下。RESTORE DATABASE MyNwind
FROM MyNwind_1
WITH NORECOVERY,
MOVE 'MyNwind' TO 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\NewNwind.mdf',
MOVE 'MyNwindLog1' TO 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\NewNwind.ldf'
RESTORE LOG MyNwind
FROM MyNwindLog1
WITH RECOVERYE. 使用 BACKUP 和 RESTORE 创建数据库的复本
下例显示使用 BACKUP 和 RESTORE 语句创建 Northwind 数据库的复本。MOVE 语句使数据和日志文件还原到指定的位置。RESTORE FILELISTONLY 语句用于确定待还原数据库内的文件数及名称。该数据库的新复本称为 TestDB。有关更多信息,请参见 RESTORE FILELISTONLY。 BACKUP DATABASE Northwind
TO DISK = 'c:\Northwind.bak'
RESTORE FILELISTONLY
FROM DISK = 'c:\Northwind.bak'
RESTORE DATABASE TestDB
FROM DISK = 'c:\Northwind.bak'
WITH MOVE 'Northwind' TO 'c:\test\testdb.mdf',
MOVE 'Northwind_log' TO 'c:\test\testdb.ldf'
GOF. 使用 STOPAT 语法还原到即时点和使用多个设备进行还原
下例将数据库还原到其在 1998 年 4 月 15 日中午 12 点时的状态,并显示涉及多个日志和多个备份设备的还原操作。RESTORE DATABASE MyNwind
FROM MyNwind_1, MyNwind_2
WITH NORECOVERY
RESTORE LOG MyNwind
FROM MyNwindLog1
WITH NORECOVERY
RESTORE LOG MyNwind
FROM MyNwindLog2
WITH RECOVERY, STOPAT = 'Apr 15, 1998 12:00 AM'G. 使用 TAPE 语法还原
下例显示从 TAPE 备份设备还原完整数据库备份。RESTORE DATABASE MyNwind
FROM TAPE = '\\.\tape0'H. 使用 FILE 和 FILEGROUP 语法还原
下例还原一个包含两个文件、一个文件组和一个事务日志的数据库。RESTORE DATABASE MyNwind
FILE = 'MyNwind_data_1',
FILE = 'MyNwind_data_2',
FILEGROUP = 'new_customers'
FROM MyNwind_1
WITH NORECOVERY
-- Restore the log backup.
RESTORE LOG MyNwind
FROM MyNwindLog1I. 将事务日志还原到标记处
下例显示将事务日志还原到名为"RoyaltyUpdate"的标记处。BEGIN TRANSACTION RoyaltyUpdate
WITH MARK 'Update royalty values'
GO
USE pubs
GO
UPDATE roysched
SET royalty = royalty * 1.10
WHERE title_id LIKE 'PC%'
GO
COMMIT TRANSACTION RoyaltyUpdate
GO
--Time passes. Regular database
--and log backups are taken.
--An error occurs.
USE master
GORESTORE DATABASE pubs
FROM Pubs1
WITH FILE = 3, NORECOVERY
GO
RESTORE LOG pubs
FROM Pubs1
WITH FILE = 4,
STOPATMARK = 'RoyaltyUpdate'
TADOConnection连接到Master数据库上
1. ADOConnection1 连接你的业务数据库。
2. ADOConnection2 连接 MASTER 数据库。
3. ADOCommand1.Connection := ADOConnection2;
假设你的数据库名为: DataBaseName
Button.OnClick:
begin
ADOConnection1.Connected := False;
ADOCommand1.CommandText := 'BACKUP DATABASE DataBaseName TO DISK = ' + #39 + 'C:\KKK.BAK' + #39;
ADOCommand1.Execute;
ADOCommand1.CommandText := 'ALTER DATABASE DataBaseName SET OFFLINE WITH ROLLBACK IMMEDIATE';
ADOCommand1.Execute;
ADOCommand1.CommandText := 'RESTORE DATABASE DataBaseName FROM DISK = ' + #39 + 'C:\KKK.BAK' + #39;
ADOCommand1.Execute;
ADOCommand1.CommandText := 'ALTER DATABASE DataBaseName SET ONLINE WITH ROLLBACK IMMEDIATE';
ADOCommand1.Execute;
ADOConnection1.Connected := True;
ADOTable1.Active := true;
end;