AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题 / 11409
Accepted
Nate
Nate
Asked: 2012-01-24 10:44:00 +0800 CST2012-01-24 10:44:00 +0800 CST 2012-01-24 10:44:00 +0800 CST

将数据从生产移动到测试的简单或可调度方式

  • 772

我想做的是将生产数据库中的数据副本安排到我的开发/测试数据库中。

就架构而言,开发/测试数据库将比生产数据库更新,但生产数据库具有当前数据。我有点纠结,因为我需要根据生产规模数据测试我的数据库更改,拥有当前数据会非常有帮助。

我在生产和开发环境中使用 SQL Server 2008 R2 Standard;有没有一种方法可以在我的开发服务器上创建一个作业,以只读方式从我的生产数据库中“吸取”数据?我想要一个可以批量复制表数据、忽略丢失的列并忽略目标表中的任何约束的脚本。我真正需要一个为一个表执行此操作的脚本,我可以修改它以适合我的表并复制它以运行我的所有表。我遇到的问题是发现任何与此类似的东西。

这是对我最后一个相同性质的问题的后续跟进;从那以后,我将我的数据库纳入源代码控制,我更喜欢它。问题是我在我的开发服务器上仍然面临一个过时的数据问题,所以我想找到一种方法来安排更新。

我愿意接受替代方法来实现这一点,但它需要是我可以按计划运行的东西,并且我可以使用记事本和/或 SSMS 或标准版 SQL Server 提供的其他工具构建的东西。

sql-server testing
  • 3 3 个回答
  • 10542 Views

3 个回答

  • Voted
  1. Best Answer
    adam f
    2012-01-24T13:44:29+08:002012-01-24T13:44:29+08:00

    以下是我的建议:

    1. 如果您还没有这样做,请为您的生产数据库创建一个定期备份过程。为了简单起见,将其设为完整备份并包含所有数据库对象(表/模式/数据/用户)。Microsoft 网站上有很多关于如何实现此目的的信息。

    2. 当您需要更新开发环境时,将生产备份恢复到开发中,然后使用为生产更改记录的方法实施您需要测试的迁移(表、过程、数据)。

    3. 测试,知道您不仅要测试代码更改,还要测试迁移策略,以便将更改部署到生产环境。您也在测试您的数据库备份和恢复 (DR) 策略。

    请注意,这可能意味着您有 2 个开发数据库,​​一个用于实际开发,一个用于集成/QA/UAT 测试。

    • 8
  2. hqrsie
    2012-01-24T12:14:28+08:002012-01-24T12:14:28+08:00

    对于这种情况,SSIS 可能是您最好的工具。创建一个执行复制的包并使用 SQL 代理对其进行调度。您可以非常轻松地将数据从一个环境复制到另一个环境。您可以根据需要将其设置为重定向或忽略复制操作中的错误和不一致。

    我意识到这不是记事本和 SSMS,但 SSIS 包含在 SQL 2008 R2 标准中,并且(IMO)非常值得至少熟悉一下。

    • 2
  3. Sanjeev Singh
    2013-03-12T22:32:40+08:002013-03-12T22:32:40+08:00

    我觉得最好的方法是:

    1. 为您的生产数据库创建定期备份过程。为了简单起见,将其设为完整备份并包含所有数据库对象(表/模式/数据/用户)。
    2. 当您需要更新开发/QA 环境时,将生产备份恢复到开发/QA,然后实施迁移(表、过程和数据)。
    3. 然后根据需要,您可以设置事务复制、差异事务或快照复制。对于报告数据库,您可以通过日志传送、复制或镜像使其保持相对最新,并根据要求创建快照
    4. 如果您想控制 QA 服务器上的数据库大小,则可以根据需要设置清除作业。
    • 0

相关问题

  • SQL Server - 使用聚集索引时如何存储数据页

  • 我需要为每种类型的查询使用单独的索引,还是一个多列索引可以工作?

  • 什么时候应该使用唯一约束而不是唯一索引?

  • 死锁的主要原因是什么,可以预防吗?

  • 如何确定是否需要或需要索引

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何查看 Oracle 中的数据库列表?

    • 8 个回答
  • Marko Smith

    mysql innodb_buffer_pool_size 应该有多大?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    从 .frm 和 .ibd 文件恢复表?

    • 10 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    如何选择每组的第一行?

    • 6 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    pedrosanta 使用 psql 列出数据库权限 2011-08-04 11:01:21 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST
  • Martin Hope
    bernd_k 什么时候应该使用唯一约束而不是唯一索引? 2011-01-05 02:32:27 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve