docker搭建达梦8实时主备
时间: 2023-07-05 07:03:53 浏览: 84
要使用 Docker 搭建达梦数据库的实时主备,需要遵循以下步骤:
1. 安装 Docker 和 Docker Compose。
2. 创建两个目录,一个用于存放主库的数据,一个用于存放备库的数据。例如:
```
mkdir /data/dm_primary
mkdir /data/dm_standby
```
3. 创建一个 `docker-compose.yml` 文件,并在其中定义主备两个数据库的容器。
```
version: '3.7'
services:
primary:
image: registry.cn-hangzhou.aliyuncs.com/dameng/dameng8:latest
container_name: dm_primary
restart: always
volumes:
- /data/dm_primary:/opt/dm8/data
environment:
- DBNAME=primary
- DBPORT=5236
- DBUSER=SYSDBA
- DBPASSWD=SYSDBA
ports:
- "5236:5236"
networks:
- dm
standby:
image: registry.cn-hangzhou.aliyuncs.com/dameng/dameng8:latest
container_name: dm_standby
restart: always
volumes:
- /data/dm_standby:/opt/dm8/data
environment:
- DBNAME=standby
- DBPORT=5237
- DBUSER=SYSDBA
- DBPASSWD=SYSDBA
ports:
- "5237:5237"
networks:
- dm
networks:
dm:
driver: bridge
```
在上述配置文件中,我们使用了达梦数据库 8 的最新版本,并创建了两个容器,一个用于主库,一个用于备库。在 `volumes` 部分,我们将主库和备库的数据目录分别挂载到了 `/data/dm_primary` 和 `/data/dm_standby` 目录中。在 `environment` 部分,我们分别为主库和备库设置了数据库名、端口号、用户名和密码,并在 `ports` 部分将主库和备库的端口都映射到了宿主机的 5236 和 5237 端口上。
4. 在终端中切换到 `docker-compose.yml` 文件所在的目录,并运行以下命令启动容器:
```
docker-compose up -d
```
5. 在主库容器中创建一个用于复制的用户,并授予复制权限。例如:
```
docker exec -it dm_primary /bin/bash
/opt/dm8/bin/dmuseradd -u repl -p repl
/opt/dm8/bin/dmusermod -u repl -r repl
exit
```
6. 在备库容器中启动复制进程,将备库连接到主库。例如:
```
docker exec -it dm_standby /bin/bash
/opt/dm8/bin/dmrepl -s primary -p 5236 -u repl -w repl -r /opt/dm8/data/standby -i
exit
```
在上述命令中,`-s primary` 参数指定了主库的地址,`-p 5236` 参数指定了主库的端口,`-u repl -w repl` 参数指定了用于复制的用户和密码,`-r /opt/dm8/data/standby` 参数指定了备库的数据目录,`-i` 参数表示首次启动复制进程。
7. 在主库上进行一些操作,例如创建表或插入数据,然后在备库上检查是否同步成功。
以上就是使用 Docker 搭建达梦数据库实时主备的步骤。