标签: backup

Oracle 中的数据库备份 - 导出数据库还是使用其他工具?

我在我的组织中看到的关于 DBA 执行的“实践”之一是将使用exp/ 等工具的完整数据库导出expdp视为备份。

这是一个很好的做法吗?与这种方法相比,使用 RMAN 有什么优势?

oracle backup

10
推荐指数
2
解决办法
2734
查看次数

SQL Server 备份策略的优缺点及其适当的使用场景

据我所知,有三种可能的方式来备份您的 SQL Server 数据库

  1. 完整备份
  2. 差异备份
  3. 日志传送

每种策略的优缺点是什么,应该在什么情况下使用?

sql-server backup

10
推荐指数
2
解决办法
6580
查看次数

将加密的数据库恢复到另一台服务器

我使用的是在 SQLServer 2008 上运行的产品。可以理解,提供它的公司不提供 SQLServer 支持。当我安装产品时,我指定了一个密码来加密数据库。我想在另一台服务器上运行该产品的另一个副本以进行测试。我已将数据库恢复到另一台服务器并在另一台服务器上安装了该产品。当我安装它时,我提供了相同的密码,然后从主服务器恢复了一个备份。但是我收到错误消息:

System.Data.SqlClient.SqlException: An error occurred during decryption.
Run Code Online (Sandbox Code Playgroud)

从产品。我可以使用 SQLServer Management Studio 访问这些表。

我试过这个:

在第一台服务器上:

CREATE CERTIFICATE cert1 WITH SUBJECT = 'Certificate for my stuff'

BACKUP CERTIFICATE  cert1 TO FILE = 'd:\backup\cert1.dat' 
WITH PRIVATE KEY 
(
ENCRYPTION BY PASSWORD = 'mypassword',
FILE = 'd:\backup\cert1_privatekey.dat'
)
Run Code Online (Sandbox Code Playgroud)

在第二台服务器上:

CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'mypassword'

CREATE CERTIFICATE cert1 FROM FILE = 'd:\cert1.dat'
WITH PRIVATE KEY
(
FILE = 'd:\cert1_privatekey.dat',
DECRYPTION BY PASSWORD = 'mypassword'
)
Run Code Online (Sandbox Code Playgroud)

我也在第二台服务器上试过这个:

alter …
Run Code Online (Sandbox Code Playgroud)

sql-server-2008 sql-server backup restore

10
推荐指数
1
解决办法
3万
查看次数

使用 try/catch 进行动态 SQL 备份命令时如何记录错误详细信息

在使用 try catch 和动态 sql 的存储过程中发出备份命令时,与直接运行备份命令相比,错误消息非常普遍。

在 SP 中尝试/捕获:

    begin try
        execute sp_executesql @sql;  -- a backup command
    end try
    begin catch  
        print ERROR_MESSAGE();  -- save to log, etc.
    end catch
Run Code Online (Sandbox Code Playgroud)

结果是

50000:usp_Backup:117: BACKUP DATABASE 异常终止。

whearea 发出原始命令:

    backup DATABASE someDb to disk...
Run Code Online (Sandbox Code Playgroud)

结果更好的细节:

查找错误 - SQL Server 数据库错误:文件“H:\FolderName\Filename.bak:”112(磁盘空间不足。)发生不可恢复的 I/O 错误。

有没有办法将这些细节捕获到存储过程中的变量中(记录,传回调用者,重试逻辑)?似乎细节正在通过消息通道传递,但我希望它们在 SP 中可用。

sql-server backup error-handling

10
推荐指数
1
解决办法
2万
查看次数

需要备份 MySQL 数据库 information_schema、performance_schema、mysql 和 phpmyadmin?

我知道没有必要备份information_schema数据库,但是以下数据库(除了用户定义的数据库)呢?

  • performance_schema
  • mysql
  • phpmyadmin

(所以,如果出现问题,我们必须从头开始(新的 MySQL 安装),我必须放回哪些数据库?)

mysql mysqldump backup

9
推荐指数
1
解决办法
5194
查看次数

带有 ssl 证书的 pg_dump

我想从我的数据库服务器上的远程主机运行 pg_dump 命令,该服务器只允许完全验证的基于证书的连接。我该怎么做呢?9.1 的手册页说明了我所看到的通过密码连接的说明。

postgresql backup postgresql-9.1 pg-dump

9
推荐指数
1
解决办法
4440
查看次数

使用 mongoexport 或 mongodump 备份?

对于生产备份,MongoDB 建议使用mongodump而不是mongoexport以确保数据的准确性。但是,在备份之前,我需要从 MongoDB 数据库中“清除”数据。我不知道除mongoexport之外的任何服务器端数据清理选项。两个问题:

  1. mongoexport是否访问 RAM 中的 MongoDB 缓存?它会像mongodump那样改变 RAM 中的工作集吗?
  2. mongodump命令有这个--query选项。“提供一个 JSON 文档作为查询,可以选择性地限制 mongodump 输出中包含的文档。” 排除文档中的某些字段是否需要查询?

mongodb backup

9
推荐指数
2
解决办法
1万
查看次数

SQL 备份与 IT 常规夜间服务器备份有何不同?

我们的 IT 部门每晚都会备份整个服务器(此服务器上安装了一个 SQL Server 实例),这应该备份该服务器以及整个网络,以防出现问题......

所以我的经理问我的完整、差异和日志 SQL 备份与 IT 部门备份的任何备份相比有何重要意义?为了在我们的服务器上节省更多空间,而不是将这些文件保留几个星期并删除它们,她认为 IT 只会提供它们!

我知道这是不对的,因为我可以用我的日志备份恢复到最后 30 分钟,IT 会在第二天恢复它,但这是唯一的区别吗?

由于我将数据库备份文件保存/发送到同一台服务器,IT 将恢复它们,但如果我的维护计划中没有这些备份作业,那么 IT 可以只恢复 SQL 实例,而无需我们的任何表、事务......等我做对了吗?
任何建议将不胜感激。

backup sql-server-2008-r2

9
推荐指数
2
解决办法
1500
查看次数

按计划备份和截断事务日志的最佳方法

我不是 DBA,但事情就是这样,我必须戴上 DBA 的帽子,并在我的 SQL Server 实例上设置维护计划。

因此,有一段时间我一直让我的 SSIS 通宵进程运行执行 SQL 任务来执行备份 - 基本上运行master.dbo.xp_create_subdir以确保目标文件夹存在,然后BACKUP DATABASE [DbName] TO DISK = 'G:\Backups\DbName\DbName.bak' WITH INIT.

每当该任务失败时,其余的过程将中止,我会收到通知,第二天早上来时注意到事务日志的驱动器已满,因此我会手动截断它们并继续。 .. 直到故事重演并且事务日志再次超过可用磁盘空间。

“手动截断”脚本如下所示:

use Staging;
alter database Staging set recovery simple
alter database Staging set recovery full
dbcc shrinkfile ('Staging_log', 0, truncateonly);
go
Run Code Online (Sandbox Code Playgroud)

所以我越来越厌倦了,我决定尝试正确地做事情,并按照这里的步骤创建一个实际的维护计划

SQL Server 维护计划

问题是,我以前从未这样做过,所以我有几个问题:

  • 像这样备份事务日志会自动截断它们,还是我需要做其他事情?
  • 可以同时运行数据和事务日志备份吗?如果没有,那么这样做的正确方法是什么?
  • 备份文件正在被另一个进程在一夜之间提取,该进程获取服务器上的所有文件并将它们存储在其他地方 - 在 2 天后使备份集过期是个好主意吗?我需要让它们过期吗?
  • 清理任务分别删除 .bak 和 .trn 子文件夹下的“旧”.bak 和 .trn 文件G:\Backups。那有意义吗?
  • 在 SSIS 中执行此操作是否会更好,因此如果/当备份失败时我可以使 …

sql-server backup transaction-log maintenance-plans sql-server-2014

9
推荐指数
1
解决办法
3万
查看次数

了解与完整备份和日志备份相关的 Ola Hallengren 的 SQL Server 脚本中的 CleanupTime

我无法理解Ola Hallengren 服务器维护解决方案中CleanupTime选项的确切期望。我正在寻找一些相关的问题和详尽的答案,但这些解释仍然让我有些困惑。

具体来说:

我正在做每周完整备份、每日 DIFF 备份和每小时日志备份。完整备份使用默认值CleanupTime24 小时。DIFF 和 LOG 备份的 NULL 为CleanupTime

CleanupTime 参数文档中,我无法理解是否设置FULLCleanupTime备份的设置BackupType也会删除旧的 DIFF 和 LOG 备份文件,或删除FULL 备份文件。

指定删除备份文件之前的时间(以小时为单位)。如果未指定时间,则不会删除任何备份文件。

后一段让我认为设置FULLCleanupTime备份BackupType也会删除旧的事务日志。然而,不清楚这一段是只适用于BackupTypeLOG的备份,还是也适用于BackupTypeFULL的备份。

DatabaseBackup 有一个检查来验证比最近的完整或差异备份更新的事务日志备份没有被删除。

我想要实现的是,我可以进行长达 1 周的时间点恢复。(我们有一个非常缓慢变化的数据库,所以这是可行的)按照我现在的理解,这需要一周的完整备份,以及一周的事务日志备份。由于完整备份和差异备份只能用于恢复到一个特定的时间点。

那么,我应该将CleanupTime完整备份作业的选项设置为24*7吗?我现在猜测的是,将其设置为 24 小时,将导致下一次完整备份删除所有较旧的完整、差异事务日志备份文件,从而使我的时间点恢复窗口为 ... 0 小时。对?

sql-server backup sql-server-2016 ola-hallengren

9
推荐指数
2
解决办法
7726
查看次数