我是我的雇主公司私人网站的开发人员,一个用于公司报告等的 HTML5/PHP/CSS 支持的站点。该站点托管在共享托管包上,连接到远程只读 MySQL 数据库服务器以进行身份验证和报告数据查询。此远程 DB 主要由单独的 Windows exe 使用。
远程数据库经常宕机,这当然会导致私人网站因 MySQL 连接错误而炸毁。我曾考虑将远程 DB 复制到站点的本地托管 MySQL DB 并使用本地 DB 作为站点的主要和唯一的 DB 连接。
有没有办法以一种简单而轻松的方式将远程数据库同步到站点的共享托管数据库?比如每小时更新一次?
或者是否有一个功能,该站点的托管包 MySQL DB 功能可以缓存远程 DB 数据并将其用作后备。
提前致谢。
我想在MS Windows 2008 R2下使用MySQL 5.6.14进行MySQL复制,Master和Slave的端口应该是1000(PC1上的主库,PC2上安装的从库)。
我为 master 添加了以下参数 My.ini
[mysqld]
server-id=1
log-bin=black-bin.log
datadir=d:\mysql\master\
innodb_flush_log_at_trx_commit=1
sync_binlog=1
Run Code Online (Sandbox Code Playgroud)
然后我编辑从My.ini添加以下参数:
[mysqld]
server-id=2
relay-log-index=slave-relay-bin.index
relay-log=slave-relay-bin
datadir=d:\mysql\slave
Run Code Online (Sandbox Code Playgroud)
之后,我使用 root 用户登录到 Master 数据库并执行以下命令
CREATE USER repl_user@slave_ip;
GRANT REPLICATION SLAVE ON *.* TO repl_user@slave_ip IDENTIFIED BY 'password';
Run Code Online (Sandbox Code Playgroud)
为了初始化复制,我登录到从数据库并执行以下命令:
CHANGE MASTER TO MASTER_HOST='maset_ip',
-> MASTER_USER='repl_user',
-> MASTER_PASSWORD='password';
start slave;
Run Code Online (Sandbox Code Playgroud)
如果 master 的端口是 3306,则复制工作正常,但如果端口更改,则它不再工作。我的问题是:如何让从设备连接到端口 1000?我尝试将以下参数添加到从属my.ini master-port=1000然后重新启动从属 SID 但它不起作用(服务未启动,错误消息:未知参数主端口)。请指教,谢谢。
我的 3 套副本集都变成了次要的,我不知道为什么。
我得到的日志是:
数据库1
2014-12-12T02:43:55.067+0000 [conn1413096] end connection
10.0.64.12:58483 (512 connections now open) 2014-12-12T02:43:55.067+0000 [initandlisten] connection accepted from
10.0.64.12:58485 #1413098 (513 connections now open) 2014-12-12T02:44:01.068+0000 [conn1413097] end connection
10.0.64.11:35195 (512 connections now open) 2014-12-12T02:44:01.069+0000 [initandlisten] connection accepted from
10.0.64.11:35197 #1413099 (513 connections now open) 2014-12-12T02:44:14.070+0000 [rsHealthPoll] couldn't connect to
10.0.64.12:27017: couldn't connect to server 10.0.64.12:27017 (10.0.64.12), connection attempt failed 2014-12-12T02:44:19.071+0000 [rsHealthPoll] couldn't connect to 10.0.64.12:27017: couldn't connect to server 10.0.64.12:27017 (10.0.64.12) failed, connection attempt failed 2014-12-12T02:44:22.072+0000 [rsHealthPoll] couldn't connect …Run Code Online (Sandbox Code Playgroud) 我刚刚在 SQL Server 2014 上设置了非常基本的事务复制。
发行商和发行商是一回事。
我已将发布者配置为推送到订阅者,因此所有配置均在发布者上完成。
我完全按照此 Microsoft 教程中的详细说明设置了所有用户帐户。
发布服务器和订阅服务器已成功设置,并且 SQL Server 代理正在两台服务器上运行。
无论如何,当我检查发布者的状态时,我反复收到此消息:
进程无法连接到订阅者“(订阅者框)”
我已经尝试了这些建议并且无法调试它,尽管我很确定它与登录相关。
我已成功使用GTID_MODE. 它完美地工作。现在我需要在其中设置自动故障转移功能。我已经运行了以下命令。
mysqlfailover --master=root:abc@10.24.184.12:3306 --discover-slaves-login=root:abc
Run Code Online (Sandbox Code Playgroud)
我得到了以下结果。没有列出任何奴隶。
MySQL Replication Failover Utility
Failover Mode = auto Next Interval = Tue May
Master Information
------------------
Binary Log File Position Binlog_Do_DB Binlog
mysql-bin.000016 9568
GTID Executed Set
8fe8b710-cd34-11e4-824d-fa163e52e544:1-1143
Replication Health Status
0 Rows Found.
Q-quit R-refresh H-health G-GTID Lists U-UUIDs U
Run Code Online (Sandbox Code Playgroud)
但是当我执行mysqlrplcheck和mysqlrplshow命令时,会列出从属设备。
这是正常的吗?
我已经通过本手册安装了 postgres 主节点和从节点:
在主 (10.0.0.1) 处:
sudo -u postgres initdb -D /data/postgres/main
Run Code Online (Sandbox Code Playgroud)
更改 postgresql.conf:
listen_addresses = '*'
wal_level = hot_standby
max_wal_senders = 2
logging_collector = on
max_wal_senders = 5
Run Code Online (Sandbox Code Playgroud)
将复制记录添加到 pg_hba.conf:
host replication replica 10.0.0.2/32 md5
Run Code Online (Sandbox Code Playgroud)
然后启动postgres
service postgresql start
Run Code Online (Sandbox Code Playgroud)
创建复制用户:
CREATE USER replica WITH REPLICATION ENCRYPTED PASSWORD '123456';
Run Code Online (Sandbox Code Playgroud)
并添加复制槽:
SELECT pg_create_physical_replication_slot('standby_slot');
Run Code Online (Sandbox Code Playgroud)
在从站 (10.0.0.2):
pg_basebackup -h 10.0.0.1 -U replica -D /db/postgres/main -X s -P
Run Code Online (Sandbox Code Playgroud)
在 postgresql.conf 中将状态更改为备用:
hot_standby = on
Run Code Online (Sandbox Code Playgroud)
添加recovery.conf:
standby_mode = 'on'
primary_conninfo = 'host=10.0.0.1 port=5432 …Run Code Online (Sandbox Code Playgroud) 我正在 SQL Server 中配置事务复制。订阅配置为从 2008R2 发布者(分发者为同一服务器)推送到 2012 订阅者。
我要复制的对象是索引视图。基表仅存在于发布者上。
由于以下错误,复制失败:
无法复制视图或函数,因为引用的对象或列不存在于订阅服务器上
确实,订阅数据库中不存在该视图。如何在没有基表的情况下创建它?
replication sql-server sql-server-2008-r2 sql-server-2012 transactional-replication
我在不同的地理位置(本地站点)有几个 PostgreSQL 数据库。
每个本地站点 DB 都具有相同的架构,但具有唯一的数据。例如,以包含以下列的表为例:Site_ID、Department_ID、Department_Name。Site_ID 对于每个站点都是唯一的。
我想将本地站点数据库中的所有数据收集到充当数据仓库的集中式数据库(再次是 PostgreSQL)中。
集中式数据库上的相应示例表将具有与上述相同的列。所有本地站点数据都将进入此表。当然,每个站点数据由 Site_ID 指定。
问题:如何使用PostgreSQL 复制方法(流/多主 UDR/BDR/等)实现这一点。我看到这可以通过 SQLServer 使用Transactional Replication来完成。使用 PostgreSQL 实现此功能的最佳方法是什么?
限制:本地站点只能进行传出网络连接(即由于防火墙限制不能进行入站连接)
postgresql replication transactional-replication multi-master
我们有一个 Postgres RDS 实例,我们为它创建了一个只读副本实例。我们面临的问题是,只要在只读副本上有长时间运行的查询(大约 30-40 分钟),它就不会完成并给出冲突错误。发生此冲突的原因是主 RDS 上有更新,该更新反映到只读副本,因为它遵循流式复制方法。正是出于这个原因,也由于新的需求,我们需要每天进行此复制过程,即我们需要基于触发器的方法(类似于每日备份方法)而不是持续更新。
我在AWS的控制台中看到,我们可以设置各种参数。我可以设置一些参数来满足我的要求吗?或者对我来说唯一的出路是删除只读副本实例并使用基于触发器的复制工具(如 Bucardo)并为此使用 EC2 实例?
我真的更喜欢这种方法,通过它我可以调整一些参数并实现我的目标,而不必删除只读副本实例。
我刚刚被问到我们公司是否应该考虑Data Virtualization我们的测试环境。好处如下:
但是我只找到了营销信息;没什么技术含量。据我所知,有两种方法:
在没有看到任何技术信息的情况下,这对我来说是蛇油的味道;但我想理解它,而不是一发不可收拾。
关键词:[数据即服务] [数据虚拟化] [数据虚拟化] [delphix] [denodo]
replication ×10
mysql ×3
postgresql ×3
failover ×2
sql-server ×2
amazon-rds ×1
aws ×1
backup ×1
daas ×1
mirroring ×1
mongodb ×1
multi-master ×1
permissions ×1
restore ×1