Azure SQL异地复制事务处理逻辑及托管实例行为一致性咨询
Azure SQL异地复制下同义词事务的辅助库行为解析
主服务器事务在辅助服务器的处理逻辑
Azure SQL数据库的异地复制依赖事务日志的原子性同步:主库上执行的DROP SYNONYM MyProduct;和CREATE SYNONYM MyProduct for NewDb;会被打包成一个完整的事务单元,对应的日志会整体同步到辅助服务器。辅助服务器只会在接收到完整的事务日志后,才会按顺序执行这两个操作,绝对不会拆分执行单个语句。
辅助服务器查询是否会触发对象不存在的错误
不会出现你提到的随机错误。辅助服务器的日志应用严格遵循事务边界:
- 事务未同步完成前,查询看到的是旧的
MyProduct同义词 - 事务同步完成后,查询看到的是新创建的
MyProduct同义词
不会出现“同义词已删除但新同义词未创建”的中间状态,因此select xxxx from MyProduct不会触发Invalid object name 'myDB.dbo.MyProduct'这类错误。
Azure SQL托管实例的行为一致性
Azure SQL托管实例与Azure SQL数据库采用相同的异地复制事务同步机制,同样保证事务的原子性。针对这类同义词修改的事务,托管实例的辅助副本会执行完全一致的处理逻辑,不会出现拆分执行的情况。
内容的提问来源于stack exchange,提问作者daxu
相关产品推荐
相关产品推荐

