我们使用 MySQL 5.6 InnoDB 引擎来实现我们的数据库目的。目前我们只有一个实例,但随着我们的应用程序不断增长,我们希望数据库处于集群模式。现在我们已经做了什么:
我们尝试了 MySQL NDB cluster 7.3.1(实验室版本):但我们仍然面临外键问题,而且它似乎并不可靠。所以我们尝试了下一个选项。
我们尝试使用 DRBD、pacemaker 和 corosync 进行 mysql 主动/被动集群:在两个节点上一切正常。
现在我们想做Mysql主动-主动集群,即使经过很多google我也找不到任何关于它的信息,我们可以用DRBD来做到这一点还是有其他方法可以做到这一点。
请帮忙 !!!!!
服务器:Ubuntu 服务器 14 lts + PostgreSQL 9.2 我想使用 drbd 创建集群数据库,但如果没有集群初始化,我无法设置 PGDATA。我只需要说 pgsql 使用 drbd 磁盘中的数据。我怎样才能做到呢?
示例1:
mkdir /cluster/var/lib/pgsql -p
chown postgres:postgres /cluster/var/lib/pgsql -R
cp -R /var/lib/pgsql /cluster/var/lib/pgsql
edit /etc/init.d/postgresql :
PGDATA=/cluster/var/lib/pgsql/data
...
PGLOG=/cluster/var/lib/pgsql/pgstartup.log
/etc/init.d/postgresql start
Run Code Online (Sandbox Code Playgroud)
在 postgresql 8.3 中它可以工作,但在 9.2 中我无法更改 /etc/init.d/postgresql 中的 pgdata,我需要找到另一个文件并设置 pgdata,但是,令人惊讶的是,它什么也没做。
示例2:PGDATA——指定要存储数据库簇的目录;可以使用 -D 选项覆盖。
好的,让我们开始: --pgdata=directory 是的,它有效!但现在我们有 postgresql-xc 和类似“postgresql 不认识这个用户 - postgresql”的错误。drbd 开始从集群复制数据,但 postgresql 也启动它。
更新1:
root: initdb --pgdata=/home/username/dir
~initdb not install~bla-bla-bla~use apt-get install postgres-xc
Run Code Online (Sandbox Code Playgroud)
更新2:
$: /usr/lib/postgresql/9.3/bin/initdb --pgdata=/whateveryouwant
#now you can run postgresql only one …
Run Code Online (Sandbox Code Playgroud) 以下是初始化drbd分区的常规方法:
在两个服务器上
drbdadm create-md r0 drbdadm up r0
两个服务器现在都应该连接,请检查
仅限初级
drbdadm - --overwrite-data-of-peer primary r0 cat/proc/drbd
两台服务器之后的最新版本 - 初级版本
mkfs -t ext4 -b 4096/dev/drbd0
我现在尝试准备一个没有二级可用的主服务器(例如,客户想要一个服务器系统,可能以后想要添加一个热备用服务器)
drbdadm create-md r0 drbdadm up r0 drbdadm primary r0
我收到了错误:
0:状态更改失败:( - 2)需要访问UpToDate数据
有解决方案吗?