我正在构建一个新的应用程序,它将在非常差的网络上使用SQL Merge Replication.似乎"逻辑记录"功能将有助于显着地处理这些网络问题,确保我们可以在单独的事务中逐个复制完整的"实体"而不是逐个表.
但是,文档说明
将在Microsoft SQL Server的未来版本中删除此功能.避免在新的开发工作中使用此功能,并计划修改当前使用此功能的应用程序.
我在文档中找不到的建议是应该使用什么来获得类似的功能.这样的建议是否存在?如果不是官方推荐,那么人们有什么想法呢?
sql-server sql-server-2008 database-replication merge-replication sql-server-2012
我有一个~80GB的MySql DB.
我想在当前DB作为主数据库并为其设置从属数据库的同时在该数据库上创建复制.
我的主要问题是如何将数据(所有80GB)从主设备移动到新的从设备,并尽可能减少停机时间,最好不要停机.
我最初的想法是停止数据库(在获取日志位置后),然后从mysqldata lib复制文件,然后重新启动服务器,但只需复制文件大约需要2个小时.
有什么想法吗?
我正在尝试使用Postgres 9.1设置同步复制,但我无法让它工作.我能够配置流复制,但不能同步.我希望我没有错过任何明显的东西.我仔细阅读了管理指南中第17,18,14,25,26和29节的许多部分.
我正在运行ubuntu 12.04,我的主postgresql.conf在所有其他标准设置中都有这些:
listen_addresses = '*' # what IP address(es) to listen on;
wal_level = archive # minimal, archive, or hot_standby
archive_mode = on # allows archiving to be done
archive_command = 'test ! -f /data/pgWalArchive/%f && cp %p /data/pgWalArchive/%f'
wal_keep_segments = 100 # in logfile segments, 16MB each; 0 disables ??? What should this be ????
max_wal_senders = 3 # max number of walsender processes
Run Code Online (Sandbox Code Playgroud)
除了标准的东西之外,我的pg_hba.conf还有这个:
host all all XX.6.35.0/24 md5
host replication postgres XX.6.35.0/24 md5
Run Code Online (Sandbox Code Playgroud)
我的主数据库只有一个序列,所以它很小.我成功地在主服务器上创建了主服务器的备份并将其恢复:
sudo …Run Code Online (Sandbox Code Playgroud) 在有关事务隔离级别的PostgreSQL文档中,我们可以阅读以下内容:
在主服务器上的Serializable事务中执行所有永久数据库写入时,将确保所有备用数据库最终都将达到一致状态,在备用数据库上运行的可重复读取事务有时会看到一个与序列化事务的任何串行执行不一致的瞬态.主.
以上文字位于http://www.postgresql.org/docs/9.4/static/transaction-iso.html的底部
在什么情况下,在热备份上运行的可重复读取事务可能会看到不一致的瞬态?
postgresql transactions transaction-isolation database-replication
我正在运行PostgreSQL 9.3(在热备用设置中)Ubuntu 14.04 LTS.
我希望随着时间的推移显示表格的增长(例如元组数量).该表不包含"timestamp"(或等效于历史原因)列.
他们是否PostgreSQL 9.3可以查询有关表中元组插入时间的信息?
我正在将grails 3应用程序部署到实时服务器.已经在复制模式下设置了mongodb实例,并从活动框中成功进行了测试.我测试过:
mongo -u uname -authenticationDatabase dbname ip-1.ec2.internal:27017/dbname -p password
Run Code Online (Sandbox Code Playgroud)
我已经使用replicaSet并connectionString作为指定在这里和这里.但在这两种情况下,它的行为都好像没有提供主机配置,因此默认为localhost.由于没有设置,它失败了.这是application.groovy:
mongodb {
replicaSet = [ "ip-1.ec2.internal", "ip-12.ec2.internal", "ip-3.ec2.internal"]
host = "ip-1.ec2.internal" //This works for any of the hosts
port = 27017
username = "username"
password = "password"
databaseName = "dbname"
}
Run Code Online (Sandbox Code Playgroud)
我使用的是最新版本:
grailsVersion=3.2.8 //It was the same for 3.2.5
gormVersion=6.0.9.RELEASE
gradleWrapperVersion=3.4.1 //It was the same for 3.0
Run Code Online (Sandbox Code Playgroud)
以下是其版本的插件列表:
compile 'org.grails.plugins:mongodb:6.1.0'
compile 'org.grails:grails-datastore-rest-client:6.0.9.RELEASE'
Run Code Online (Sandbox Code Playgroud)
这是我遇到的错误:
01:22:26.410 - [localhost-startStop-1] INFO …Run Code Online (Sandbox Code Playgroud) 我是mysql新手.
当涉及到故障转移时,哪个奴隶应该被提升为新的主人?
例如,A是主服务器,B和C是从服务器,A执行到B和C的异步复制.
在某些时候,B从A接收的数据多于C,A崩溃.
如果我们将C提升为新的主人,并将B的主人改为C,那么B会发生什么?它截断其数据以匹配C?
显然,B是最好的新候选人,但我的问题是,如何确定这个事实呢?
我们一直在使用golang database/sql和github.com/lib/pqPostgreSQL集群,这意味着作为复制主机的某个数据库服务器可能是在前一个主机发生故障后的只读副本.
最近,我们的低使用率服务设法在其连接池中保留单个连接(没有可以打开第二个连接的并发请求),并且其目标已降级为只读副本.因此,对服务的每个写入操作都会失败,直到重新启动为止.如果与群集建立了新连接,那就不会发生这种情况.
问题是我找不到记录的方法来丢弃某些类型的错误的连接.database/sql声音正确的唯一公共方法是Conn.Close将连接返回到池而不关闭它.不调用它会导致资源泄漏,最终导致池无法使用.在应用程序想要时,是否有可持续的方法来摆脱连接?
我有一个使用SQLite进行存储的应用程序,我想知道使用Windows DFS复制将数据库文件备份到安装了该应用程序的冷备用实例的第二台服务器是否安全。
可能相关的详细信息:
如果DFS在复制期间锁定了主数据库文件,那么我认为只要锁定的保持时间不长,这种方法就可以起作用。但是,我找不到有关如何实现DFS的足够信息。
更新:我已经在测试环境中实现了它,并且已经运行了好几天。在那段时间内我没有遇到任何问题,因此我很想采用这种解决方案。
sqlite microsoft-distributed-file-system database-replication
postgresql ×4
database ×2
mysql ×2
failover ×1
go ×1
grails ×1
microsoft-distributed-file-system ×1
mongodb ×1
replication ×1
sql ×1
sql-server ×1
sqlite ×1
transactions ×1