我们有一个奇怪的情况。我们有一个旧数据库和新数据库,两者都采用不同的架构(SQL Server)。我们正在使用 abinitio 将数据从旧数据复制到新数据。
现在如果由于某种原因新结构对我们不起作用,我们需要一个回滚计划来将数据从新的复制到旧的。但这也可能意味着在新的和插入中更新的记录。
此外,如果这必须在客户不停机的情况下完成,我们如何才能做到这一点?
我们有一些 SQL Server 数据库。可能不相关,但仅供参考:
我的问题是:使用 SQL Server Management Studio 备份数据库时,是否.bak需要生成的文件才能在另一台计算机上完全还原数据库?
我多年来一直在开发环境中这样做,所以我认为答案是肯定的,但我们正在迁移生产服务器,所以我不想冒险。是否有任何日志文件、配置文件 [?],如果从恢复中省略,可能会影响性能/完整性/[?]?
我遇到了一个让我有点困惑的 SQL 问题。关于这个问题,我有两个不同的问题:
以下查询:
SELECT subs.date_added,subs.subscribed_to,users.userid, users.username, users.email, users.avatar, users.fbuid, users.level, users.avatar_url, users.sex, users.dob, users.profile_hits, users.total_videos, users.subscribers, users.doj, users.extras, users.first_name, users.last_name, users.ban_status, users.usr_status, users.last_logged, users.country, users.user_filter_level, users.signup_ip, subs.userid as subscriber
FROM cb_subscriptions as subs
LEFT JOIN cb_users AS users
ON subs.userid=users.userid
WHERE subs.subscribed_to ='2960'
GROUP BY subs.subscribed_to ,subs.userid
ORDER BY subs.date_added ASC
LIMIT 8;
Run Code Online (Sandbox Code Playgroud)
...产生以下错误:
ERROR: column "users.userid" must appear in the GROUP BY clause or be used in an aggregate function
Run Code Online (Sandbox Code Playgroud)
该字段是 a CHAR,所以我不确定要使用哪种聚合,或者(对我的理解更重要)为什么需要一个聚合。
正如我所说,我不确定我是否理解为什么会发生这种情况。我假设我group …
我计划将 SQL Server 2012 的 SQL Server 迁移到新硬件和新版本的 SQL Server (2016)。我试图找到停机时间最短的最佳解决方案。我在互联网上找到了一些理论上听起来很棒的建议。我说的是数据库镜像和滚动升级。但我也读到 MS 不推荐不同 SQL Server 版本之间的数据库镜像。所以现在我很困惑我应该还是不应该为此使用数据库镜像。有什么建议?以前有人试过这种方法吗?我也在考虑日志传送。
sql-server migration mirroring sql-server-2012 sql-server-2016
我希望通过添加适当的索引来提高在生产中运行的大型 MySQL 数据库的查询性能。我们尝试在实时数据库上添加索引,但这当然会锁定数据库并使我们的应用程序不可用。
我们曾考虑使用更新的索引创建辅助数据库,然后迁移数据库数据。这将涉及一些停机时间。
有没有更好的方法来做到这一点?那不涉及停机时间吗?
预先感谢您的帮助
关于向后兼容性,我可以在一些较新版本的 SQL Server(具体是 SQL Server 2019)中托管的旧数据库上设置的最大兼容模式是什么?
在一个 MS Workshop 我被告知 SQL 2012 通常是一个安全的赌注,但我想听听是否对此有任何不同的意见。
我的任务是根据 DDL 将 Oracle 数据库转换为 SQL Server。Oracle建表语句示例如下:
CREATE TABLE "RENTAL"."ADDRESS"
( "ID" NUMERIC(8,0),
"TOWN" NVARCHAR(40),
"COUNTY" NVARCHAR(40),
"POSTCODE" NVARCHAR(10)
) SEGMENT CREATION IMMEDIATE
PCTFREE 10 PCTUSED 40 INITRANS 10 MAXTRANS 255
NOCOMPRESS LOGGING
STORAGE(INITIAL 163840 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "AAA_123" ;
Run Code Online (Sandbox Code Playgroud)
这里是什么TABLESPACE?它在 SQL Server 中是否有等效项?数据库中似乎使用了 6 个不同的表空间。
(我一直认为表名中点之前的部分(本例中为 RENTAL)称为表空间)
MS Access 中的查询就像 oracle 中的视图一样,您可以对它们进行查询。示例:如果您在 access 中有一个名为 allProducts 的查询,您也可以这样做
SELECT * from allProducts;
Run Code Online (Sandbox Code Playgroud)
我的问题是,Sql Server 中的等价物是什么?我目前正在开展一个项目,我们将所有 ms access 数据库转换为 ms sql server。表被转换为表,但是我们的程序员非常了解我们的程序员使用访问查询,如上面的例子,查询呢?
我正在对我的数据库进行非常严肃的操作,我想保证我的数据安全。
不幸的是出了点问题,看:
SAVEPOINT before_foo_update;
CREATE TABLE AUX_FOO as
SELECT * FROM FOO;
TRUNCATE TABLE FOO;
ALTER TABLE FOO
MODIFY(BAR NUMBER(11) NOT NULL);
INSERT INTO FOO
SELECT * FROM AUX_FOO;
DROP TABLE AUX_FOO;
ROLLBACK TO SAVEPOINT before_foo_update;
Run Code Online (Sandbox Code Playgroud)
不幸的是,我收到一个错误:
ROLLBACK TO SAVEPOINT before_foo_update
Error report:
SQL Error: ORA-01086: savepoint 'BEFORE_FOO_UPDATE' never established
01086. 00000 - "savepoint '%s' never established"
*Cause: Trying to roll back to a save point that was never established
Run Code Online (Sandbox Code Playgroud)
现在 FOO 表是空的......并且 AUX_FOO 没有被删除。你知道我做错了什么吗?
对于未来的项目,我需要使用以下设置:
一些小的(离线)数据框(随着时间的推移收集数据)填满了 PostgreSQL 数据库(大约1 TB a year总共)。
有时,我有机会将数据从这些盒子中移出(到棒或移动驱动器上)并将其导入到庞大的企业 Oracle 数据库中。
到目前为止,这希望不是一个非常糟糕的解决方案。目前,我正在寻找准备好以后易于使用的东西。
有没有人做过这样的事情?
migration ×10
sql-server ×5
oracle ×3
mysql ×2
postgresql ×2
dump ×1
index ×1
mirroring ×1
ms-access ×1
rollback ×1