我正在尝试在 SQL Server 2008 R2 Standard 上备份我组织的生产数据库。我正在使用 T-SQL 脚本在选择了 DIFFERENTIAL 和 COMPRESSION 的情况下进行备份。
我对相对于 mdf 文件大小的备份大小感到震惊。例如,我们有一个在 mdf 中为 307 mbs 的共享点数据库。它的备份——选择了差异和压缩——是 280 mbs。这是如何压缩或差分的?
我试过使用 .7z 和 zip 进行备份,但它并没有真正实现更多的压缩。
我错过了什么吗?为什么压缩的差异备份几乎是 mdf 的大小?
谢谢!
以下是我无法改变的事情: 我们有一个运行主服务器和一些从服务器的 mySQL myISAM 复制。一个从服务器用于使用 mysqldump 进行夜间备份。与主服务器相比,备份使用重锁迫使它的从服务器“老化”。mysqldump 以 root 身份连接转储所有数据库,而每个其他连接都使用一个非超级用户每个数据库。使用专用备份服务器上的简单 shell 脚本启动转储。
问题是:我想在以“普通”用户身份连接到正在备份的服务器上运行的数据库之一时检测备份是否正在运行。Cronjobs 应该能够通过提前退出或仅处理不能等到备份完成的真正重要的必需作业来对正在运行的备份做出反应。运行备份脚本的服务器与网络服务器没有连接,它们唯一的共同点是 mysql 服务器。备份脚本可以做一些事情来将服务器标记为“当前正在运行备份”。我更愿意设置某种“所有用户可见的全局服务器端环境变量”以仅忽略运行备份的一个从属设备,但也可以简单地知道备份正在该数据库或复制链上运行.
我试图在备份开始时创建一个临时表(现有 = 备份正在运行,不存在 = 没有备份运行),但临时表只显示最初创建它的连接(如预期)。我在谷歌上搜索了非超级用户是否可以获得查看包括其他用户和 root 在内的所有连接的 SHOW PROCESSLIST 的权限(来自备份服务器的任何连接 = 备份正在运行) - 但没有运气。向所有数据库用户提供 SUPER 是没有选择的。
有什么建议?
感谢阅读(和回答)。
我们正在将数据库从一台运行 SQL Server 2005 的计算机转移到另一台运行 SQL Server 2008 的计算机上。
我正在按照此处找到的步骤操作,尝试使用所有用户登录名和服务器级权限复制主数据库,但是它告诉我无法恢复备份,因为它是由不同版本的服务器创建的.
有没有办法将master数据库从一个版本的 SQL Server复制到另一个版本的 SQL Server?
我对 Oracle 数据库一无所知,所以如果我的问题的路径看起来很奇怪,请随时告诉我正确的做事方法。
我目前看到有两种方法可以为我们拥有的第 3 方应用程序备份运行 3 个 Oracle 数据库的服务器。
我可以使用Symantec BE 2010 R3 的oracle 代理。我下载并配置了它,但它告诉我为了备份数据库“当它处于 NOARCHIVELOG 模式时,数据库必须是 MOUNTED 但不是 OPEN”。所以我想这里的问题是如何将数据库更改为 ARCHIVELOG 模式,以便在我备份它们时可以打开它们,或者如何在备份之前传递一个命令来关闭数据库,然后在备份之后打开它备份完成?
我可以使用“exp”命令。这里的问题是我不确定要为每个数据库传递哪些参数/选项。第 3 方有要采取的步骤,但它们包括选择“(2) 表”和其他一些在 EXP 命令帮助中似乎不是默认选项的选项。例如,这是他们的经验“选择”的屏幕截图:

对这些方法中的任何一种方法的任何帮助,或者如果有另一种/更好的方法,请告诉我。
谢谢!
我正在尝试学习 RMAN,但每次阅读 Oracle 文档时都会感到困惑!
有人可以帮助我有什么区别以及何时使用以下内容吗?
BACKUP DATABASE PLUS ARCHIVELOG DELETE INPUT
BACKUP FULL
Run Code Online (Sandbox Code Playgroud)
其中来自:
run{
backup full tag='INC000000325026'
(database format='/u04/backups/paris/rman/%d_%U_%T' include current controlfile);
}
run{
ALLOCATE CHANNEL d1 DEVICE TYPE DISK FORMAT '/u01/backups/rman/%d_%U_%T';
BACKUP DATABASE PLUS ARCHIVELOG DELETE INPUT TAG ='FRISK_DB';
}
Run Code Online (Sandbox Code Playgroud)
我想/需要以一种简单的方式对数据库进行冷完整备份,那么哪一个合适?
在完整恢复模式中,如果我们进行完整备份,日志文件不会被截断。它是在我们进行事务日志备份时完成的。
为什么这样做的任何特殊原因?
我正在尝试通过编写备份和还原脚本来复制数据库。我的备份程序工作正常,但我不断收到错误消息
已为文件指定了冲突的文件重定位。只应为任何逻辑文件名指定一个 WITH MOVE 子句。
当我运行该程序进行还原时。
这是程序代码。谁能发现我的错误是什么?
ALTER PROCEDURE spDBRestore (@BackupName NVARCHAR(50), @RestoreName NVARCHAR(50))
AS
BEGIN
DECLARE @BackupPath NVARCHAR(4000) = 'S:\MSSQL10_50.MSSQLSERVER\MSSQL\Backup\TemplateCopy\'+@BackupName+'.BAK',
@NewDBFileName NVARCHAR(4000) = 'S:\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\'+@RestoreName+'.mdf',
@NewLFFileName NVARCHAR(4000) = 'L:\MSSQL10_50.MSSQLSERVER\MSSQL\Data\'+@RestoreName+'_1.ldf'
select @BackupName, @RestoreName, @NewDBFileName, @newlffilename
RESTORE DATABASE @RestoreName
FROM DISK = @BackupPath
WITH FILE = 1,
MOVE @BackupName TO @NewDBFileName,
MOVE @BackupName TO @NewLFFileName,
NOUNLOAD,
REPLACE;
END
Run Code Online (Sandbox Code Playgroud) 我们的数据库服务器由另一家公司托管。它们提供每天发生一次的文件级备份。它们还允许日志传送。我的公司正在利用他们的 Logshipping 选项作为其备份和恢复解决方案的主要部分。
我想要一个更好的备份系统,让我们能够将数据恢复到故障点。通常,这将是数据库的完整备份模型和事务日志的备份以及完整和增量。但是,供应商告诉我,向我们提供事务日志备份会导致日志传送出现问题。
是否有备份策略可以让我恢复到故障点并使用日志传送?
我的母语不是英语,我已经阅读了 BOL 中的描述,但仍然无法理解它们到底是什么。谁能用通俗易懂的方式解释一下?
谢谢。
我创建了一个维护计划来备份所有用户数据库(完整)并将它们设置为三天后过期。
事实证明,这在磁盘空间方面的成本效率低下,因此我想切换到差异备份。
然后我创建了一个维护计划来备份所有用户数据库(差异)并将它们设置为在 7 天后过期。
我原以为第一次运行这项工作时,第一次备份必须是完整的,但事实并非如此,它比完整备份应有的要少得多。
我认为它会像这样工作:
第一天:满
第 2-7 天:差异化
然后在第一天它会做另一个完整备份并重新开始。
我只是误解了差异备份的工作原理吗?
我的意思是如果计划没有先进行完整备份,它会以差异方式备份什么?
谢谢!
backup ×10
sql-server ×6
oracle ×2
restore ×2
dump ×1
log-shipping ×1
mysql ×1
mysqldump ×1
oracle-10g ×1
rman ×1