标签: backup

用不同的名称恢复mysql数据库

我们如何从 mysqldump 文件中恢复不同名称的 mysql 数据库。我不想打开转储文件并对其进行编辑。还有其他更好的方法吗?

mysql mysql-5 mysqldump backup restore

52
推荐指数
4
解决办法
11万
查看次数

仅转储 MySQL 中的存储过程

我只需要转储存储过程:没有数据,没有表创建。如何使用 mysqldump 执行此操作?

mysql mysqldump backup stored-procedures dump

41
推荐指数
1
解决办法
6万
查看次数

如何恢复“包含”的数据库?

我最近尝试将来自网络实例的备份恢复到我的本地开发 SQL Server。令我惊讶的是,我收到以下错误消息:

消息 12824,级别 16,状态 1,第 3 行 sp_configure 值 'contained database authentication' 必须设置为 1 才能恢复包含的数据库。您可能需要使用 RECONFIGURE 来设置 value_in_use。消息 3013,级别 16,状态 1,第 3 行 RESTORE DATABASE 异常终止。

我必须遵循哪些步骤才能成功恢复数据库?

sql-server backup restore contained-database

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

是否可以 mysqldump 重现查询所需的数据库子集?

背景

我想提供重现select查询所需的数据库子集。我的目标是使我的计算工作流程可重复(如可重复研究)。

有没有办法可以将这个 select 语句合并到一个脚本中,该脚本将查询的数据转储到一个新数据库中,这样数据库就可以安装在新的 mysql 服务器上,并且该语句可以与新数据库一起使用。除了查询中已使用的记录外,新数据库不应包含其他记录。

更新: 为了澄清起见,我对查询结果的 csv 转储不感兴趣。我需要能够做的是转储数据库子集,以便它可以安装在另一台机器上,然后查询本身可以重现(并且可以针对相同的数据集进行修改)。

例子

例如,我的分析可能会查询需要来自多个(在本例中为 3 个)表中的记录的数据子集:

select table1.id, table1.level, table2.name, table2.level 
       from table1 join table2 on table1.id = table2.table1_id 
       join table3 on table3.id = table2.table3_id
       where table3.name in ('fee', 'fi', 'fo', 'fum'); 
Run Code Online (Sandbox Code Playgroud)

mysql mysqldump join backup select

39
推荐指数
3
解决办法
8万
查看次数

最小的备份可能......使用 SQL Server

我们每天通过 WAN 运送我们的 SQL Server 备份。我们需要最小化这些备份的大小,这样它就不会花很长时间。

我们不介意我们的备份过程是否需要更长的时间;目前,我们需要在 WAN 上移动 30gigs 的压缩备份,这需要 10 多个小时。

我们有两种选择来获得较小的每日备份。

  1. 日志传送,这意味着我们必须重构 DR 流程。
  2. 从数据库中剥离信息并在另一侧重建(删除非聚集索引,100% 打包聚集索引 - 在另一侧重建)

两者都涉及我们的大量工作。我们使用的是 SQL Server 2008 pro,所有备份都是压缩的。

是否有任何商业产品可以为我们提供与选项 (2) 类似的备份大小?

是否有一个全面的脚本可以让我们完成(2)?(处理索引视图、过滤索引、外键等)

sql-server-2008 sql-server backup

37
推荐指数
5
解决办法
5945
查看次数

为 BACKUP 命令设置 BUFFERCOUNT、BLOCKSIZE 和 MAXTRANSFERSIZE

我找了实际指导的设定值BUFFERCOUNTBLOCKSIZE以及MAXTRANSFERSIZE该的BACKUP命令。我做了一些研究(见下文),我做了一些测试,我完全意识到任何真正有价值的答案都会以“好吧,这取决于……”开头。我对我所做的测试以及我发现的任何资源中显示的测试(见下文)的担忧是,测试是在真空中完成的,很可能是在没有其他负载的系统上完成的。

我很好奇关于这三个基于长期经验的选项的正确指导/最佳实践:数周或数月内的许多数据点。而且我不是在寻找特定值,因为这主要是可用硬件的功能,但我想知道:

  • 各种硬件/负载因素如何影响应该做什么。
  • 是否存在不应覆盖这些值中的任何一个的情况?
  • 是否存在覆盖任何不明显的陷阱?使用了太多内存和/或磁盘 I/O?恢复操作复杂吗?
  • 如果我有一台运行多个 SQL Server 实例的服务器(一个默认实例和两个命名实例),并且如果我同时运行所有 3 个实例的备份,这是否会影响我设置这些值的方式,而不是确保集体(BUFFERCOUNT* MAXTRANSFERSIZE) 不超过可用 RAM?可能的 I/O 争用?
  • 在同一台服务器上拥有三个实例并再次同时运行所有三个实例的备份的相同场景中,在每个实例中同时运行多个数据库的备份如何影响这些值的设置?这意味着,如果三个实例中的每一个都有 100 个数据库,则每个实例同时运行 2 或 3 个备份,这样就有 6 到 9 个备份同时运行。(在这种情况下,我有许多中小型数据库,而不是一些大型数据库。)

到目前为止我收集到的:

  • BLOCKSIZE

    • 支持的大小为 512、1024、2048、4096、8192、16384、32768 和 65536 (64 KB) 字节。[1]
    • 磁带设备的默认值为 65536,否则为 512 [1]
    • 如果您要进行备份并计划从 CD-ROM 复制和恢复,请指定 BLOCKSIZE=2048 [1]
    • 写入单个磁盘时,默认512就可以了;如果使用RAID阵列或SAN,则必须测试以查看默认或65536是否更好。[13(第 18 页)]
    • 如果手动设置,该值需要 >= 用于创建数据文件的块大小,否则您将收到以下错误:

      消息 3272,级别 16,状态 0,第 3 行
      “C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Backup\BackupTest.bak”设备的硬件扇区大小为 4096,但块大小参数指定不兼容的覆盖值 512。使用兼容的块大小重新发出语句。 …

sql-server backup best-practices maintenance

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

将备份还原到旧版本的 SQL Server

尝试将备份还原到SQL Server Express 2008数据库时,出现以下错误:

Restore failed for Server '...\SQLEXPRESS'.  (Microsoft.SqlServer.SmoExtended)
System.Data.SqlClient.SqlError: The database was backed up on a server running version
10.50.1600. 
That version is incompatible with this server, which is running version 10.00.2531. 
Either restore the database on a server that supports the backup, or use a backup 
that is compatible with this server. (Microsoft.SqlServer.Smo)
Run Code Online (Sandbox Code Playgroud)

有没有办法从 SQL Server Express 的较新(在我的情况下为 10.50.1600)版本中获取与旧(在我的情况下为 10.00.2531)版本兼容的备份?

sql-server-2008 sql-server backup restore

34
推荐指数
5
解决办法
14万
查看次数

将 MySQL/Amazon RDS 数据库备份到 S3 的推荐方法是什么?

我有两个目的:

  1. 在 Amazon Web Services 出现区域性问题时进行异地备份。
  2. 将生产数据从生产结算帐户复制到 Beta 结算帐户。

目前,亚马逊似乎不支持这两个开箱即用的用例。

我已经看到提到了mysqldump 和 xtrabackup(参见表格帖子)。

我还看到了一个更复杂的过程(记录在这里

  1. 源计费帐户 (prod) 中的新 RDS 服务器从最近的备份中启动。
  2. 在步骤 1 中启动了一个可以访问 RDS 服务器的新 EC2 实例。
  3. mysqldump 用于备份该数据库。
  4. 备份被复制到异地位置 (S3?)。
  5. 在单独的帐户和/或区域中,启动了一个新的 RDS 服务器。
  6. 导入数据库转储。

提示和建议表示赞赏。

mysql mysqldump backup xtrabackup

33
推荐指数
3
解决办法
5万
查看次数

设备上的媒体系列格式不正确。SQL Server 无法处理此媒体系列

我正在尝试在 SQL 服务器中恢复 .BAK,但出现以下错误:

消息 3241,级别 16,状态 7,第 1 行 设备“c:\glyn\JA.bak”上的媒体系列格式不正确。SQL Server 无法处理此媒体系列。消息 3013,级别 16,状态 1,第 1 行 RESTORE DATABASE 异常终止。

我尝试使用 2012、2008 甚至 2005 进行恢复,但没有任何效果,我使用了以下查询,Tasks >> Back up但没有任何效果,这是我的 SQL:

RESTORE DATABASE JA FROM DISK='c:\glyn\JA.bak'
Run Code Online (Sandbox Code Playgroud)

有没有人有什么建议?我已经读到 bak 可能已损坏,它是由另一位从事该项目的 DVD 开发人员发送给我的。

sql-server backup restore

33
推荐指数
4
解决办法
22万
查看次数

pg_restore: [archiver (db)] 无法执行查询:错误:架构“public”已经存在

我正在使用 pg_dump / pg_restore 来备份和恢复 PostgreSQL 数据库,但是从 pg_restore 收到一些错误消息(和非零退出状态)。我尝试了一个超级简单的基本案例(如下所述),但仍然出现以下错误:

pg_restore: [archiver (db)] 处理 TOC 时出错:
pg_restore: [archiver (db)] 目录条目 5 中的错误;2615 2200 SCHEMA公共postgres
pg_restore: [archiver (db)] 无法执行查询:错误:架构“public”已经存在
    命令是:CREATE SCHEMA public;

重现步骤:

  1. 安装一个全新的、原版的 Ubuntu 14.04 发行版(我在这个 Vagrant box 中使用 Vagrant )。
  2. 安装 PostgreSQL 9.3,配置为允许任何 Linux 用户以 PostgreSQL 用户“postgres”的身份进行本地连接。
  3. 创建一个测试数据库。我只是在做:

    vagrant@vagrant-ubuntu-trusty-64:~$ psql --username=postgres postgres
    psql (9.3.5)
    输入“帮助”以获得帮助。
    
    postgres=# 创建数据库 mydb;
    创建数据库
    postgres=# \q
    vagrant@vagrant-ubuntu-trusty-64:~$ psql --username=postgres mydb
    psql (9.3.5)
    输入“帮助”以获得帮助。
    
    mydb=# 创建表数据(条目 bigint);
    创建表
    mydb=# 插入数据值(1);
    插入 0 1
    mydb=# …

postgresql backup restore

33
推荐指数
3
解决办法
7万
查看次数