标签: geo-replication

SQL Azure地理复制用于非冗余目的

我只是在研究如何在Azure上构建一个大规模,全局可访问的应用程序.

那里已经有很多技术可以让你的应用程序尽可能贴近消费者.

  • 用于静态内容的CDN边缘服务器在全球共享.
  • 不同地区的云服务,使用流量管理器将域名路由到最近的应用程序主机.

我有点困惑的是数据库.如果您使用的是SQL Azure,则必须指定一个区域来放置它.如果我的SQL Azure实例位于西欧(阿姆斯特丹),但我的客户位于澳大利亚,并通过澳大利亚(NSW)的实例访问该应用程序,应用程序与数据库通信之间会有一些延迟.

我见过的有关Geo Replication的所有参考资料似乎都在主从冗余设置的上下文中.但是我想知道是否可以使用Master-Master设置,其中每个应用程序实例在同一个Geo-Region中与它自己的SQL Azure主实例进行对话,然后sql azure会处理它们之间的双向复制.

sql sql-server azure geo-replication azure-sql-database

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

如何在SQL Azure Active Geo-Replication辅助节点上重新创建用户/登录

我的生产应用程序有一个Premium P2 SQL Azure数据库,出于安全考虑,我创建了数据库特定模式/视图/角色以及用于从SSRS查询中读取数据的特定数据库用户帐户.

让我们只是调用服务器PRIMARY和我的数据库MyApp

这个的安装脚本如下.

-- On Primary Master
CREATE LOGIN ssrsuser WITH password='******'

-- On Primary MyApp
CREATE USER ssrsuser FOR LOGIN ssrsuser 
CREATE ROLE [ssrsreader] AUTHORIZATION [db_owner]
GRANT SELECT ON SCHEMA :: [App] TO [ssrsreader]
GRANT SELECT ON SCHEMA :: [Reports] TO [ssrsreader]
EXEC sp_addrolemember 'ssrsreader', 'ssrsuser'
Run Code Online (Sandbox Code Playgroud)

因此,我们的用户对Prod数据库施加了很多负载,我们认为是时候将报告功能移到辅助同步从数据库了.

由于我们使用的是SQL Azure Premium层,因此我们可以使用只读辅助副本启用Active Geo-Replication.实际上MS甚至说它适用于只读工作负载,例如报告.

所以我设置了SECONDARY服务器,启用了播种,它现在已经完成,我可以使用SECONDARY管理员用户和密码访问只读副本.

但是SECONDARY服务器没有登录,ssrsuser而我可以创建一个SECONDARY.master,我不能DROP RECREATE用户,因为SECONDARY.MyApp数据库处于只读模式.

有没有其他方法来解决这个问题.我真的不想将SECONDARY服务器管理员用户和密码放入SSRS连接字符串.

sql-server azure reporting-services geo-replication azure-sql-database

8
推荐指数
1
解决办法
2144
查看次数

应如何在 Azure 中的异地冗余数据库上创建登录名和用户?

我需要在地理复制数据库上创建登录名和用户。用户将被授予该数据库的“db_datareader”角色。

尝试的方法是使用 SID(相同身份)参数,如下所示:

-- 1. PRIMARY_DATABASE: Run on master database of Primary Database to create login
CREATE LOGIN [LOGINUSER] WITH password='XYZ'
GO

-- 2. Select details for created SQL login
SELECT [name], [sid] 
FROM [sys].[sql_logins] 
WHERE [type_desc] = 'SQL_Login'
AND [name] = 'LOGINUSER'
GO

-- 3. SECONDARY_DATABASE: Run on master database of Secondary Database to create login with associated SID
CREATE LOGIN [LOGINUSER]
WITH PASSWORD = 'XYZ',
SID = <SID from Step 2>
GO
Run Code Online (Sandbox Code Playgroud)

虽然登录创建在两个数据库上都工作正常,但允许我访问 PRIMARY_DATABASE,但拒绝访问 SECONDARY_DATABASE,并出现以下错误:

The server principal …
Run Code Online (Sandbox Code Playgroud)

azure geo-replication azure-sql-database

5
推荐指数
1
解决办法
1744
查看次数