数据库集群的日志该存储在哪个位置? (数据库集群日志在哪里)

随着数据量的不断增加以及应用场景的多样化,数据库的功能需求也随之增加。数据库集群便应运而生。数据库集群是一组相互连接的独立数据库,它们共享一个单一的系统图像。数据库集群可以提供更高的可用性、可扩展性、可靠性和安全性。数据库集群较单节点数据库来说,复杂度更高,要求更高的技术水平进行维护。其中,日志存储是数据库集群维护中的一个重要环节。本文将探讨数据库集群的日志应该存储在哪个位置。

一、概述

在数据库中,日志存储是数据库恢复和故障处理的基础。在数据库操作期间,将会生成各种类型的日志记录。这些日志记录是事务的执行过程的记录。它们可以用来还原数据库的状态,对故障进行诊断,并保持数据完整性。在单节点数据库中,日志主要存储在disk上。但是,在数据库集群中,这个问题要更复杂。这是因为,数据库集群由多个数据库节点组成,而日志的处理必须保持在节点之间同步。

二、日志存储的作用

1. 恢复数据库

在数据库出现故障时,数据库管理员需要使用备份数据来恢复数据库。但是,备份数据只是数据库的一个静态图像。日志则可以记录更新数据库时所做的每个操作,这包括在回滚和恢复操作期间所做的操作。因此,通过日志记录,我们可以将数据库状态恢复到故障之前。

2. 故障诊断

在数据库集群中,如果一个节点出现故障,管理员需要发现故障的根本原因。通过分析日志,管理员可以查明故障发生的时间、原因和持续时间。这非常重要,因为如果管理员能够及时识别故障,就可以避免更多的灾难性影响。

3. 版本控制

日志的另一个作用是进行版本控制。这对于需要与许多参与者获取数据的大型项目来说非常重要。版本控制可以跟踪每个版本的更改,从而帮助团队协作更高效。

三、日志存储的位置

日志存储分为本地和远程存储。本地存储即为将日志文件存储在服务器的磁盘上。远程存储则是将日志文件存储在其他指定的位置,如远程服务器或云存储。

1. 本地存储

本地存储是将日志文件存储在同一节点上的磁盘上。这样做的好处是,所有的日志数据都存储在本地磁盘上,这使得恢复操作可以更快或者操作可以离线完成。此外,本地存储还可以更大化性能,通过对本地磁盘进行优化,实现更高的输入输出性能。

2. 远程存储

远程存储是将日志文件存储在另一个服务器或云存储上。这种方法的好处是,即使节点之间发生故障,日志数据也不会丢失。此外,将日志存储到云存储或另一个服务器中,可以进一步减小本地硬盘的压力,并且从故障中恢复所需的时间会更短。

当然,选择哪种日志存储方式,需要考虑诸多因素,如操作系统、网络带宽、存储设备等。

四、

在数据库集群中,日志文件的存储位置是一个非常重要的问题。本地存储和远程存储各有优缺点。在决定使用哪种存储方式之前,必须考虑到其对性能和可靠性的影响。对于一些操作不频繁的情况下,使用本地存储可以提高效率。而在安全性要求比较高、应用复杂、数据量变化较大的情况下,使用远程存储则是更加普遍的选择。

希望本文能够帮助读者更好地理解数据库集群日志文件存储的重要性和影响因素。数据存储和保护是数据库管理的重要一环,不断地和学习数据库管理经验是解决问题的关键。

相关问题拓展阅读:

如何在Windows系统中配置Mysql群集

MySQL 群集是一种技术,该技术允许在无共享的系统中部署“内存中”和“磁盘中”数据库的 Cluster 。通过无共享体系结构,系统能够使用廉价的硬件,而且对软硬件无特殊要求。此外,由于每个组件有自己的内存和磁盘,不存在单点故障。MySQL Cluster 由一组计算机构成,每台计算机上均运行着多种进程,包括 MySQL 服务器,NDB Cluster 的数据节点,管理服务器,以及(可能存在的)专门的数据访问程序。

管理服务器(MGM节点)负责管理 Cluster 配置文件和 Cluster 日志。Cluster 中的每个节点从管理服务器检索配置数据。当数据节点内出现新的事件时,节点将关于这类事件的信息传输到管理服务器,然后,将这类信息写入 Cluster 日志。

目前能够运行 MySQL Cluster 的操作系统有 Linux、Mac OS X 和 Solaris,最新的版本已经支持 Windows 操作系统。

MySQL 群集的数据节点之间的通信是不加密的,并且需要高速的带宽,所以建议把群集建立在一个高速局域网内,不建议跨网段、跨公网的部署这种系统体系。

MySQL 群集分为三种节点:管理节点,数据节点和SQL节点。

管理节点:主要用于管理各个节点,能够通过命令对某个节点进行重启、关闭、启动等操作。也能够监视全部节点的工作状态。

数据节点:主要是对数据的存储,不提供其他的服务。

SQL节点:主要是对外提供SQL功能,类似一台普通的 MySQL Server。

而SQL节点和数据节点可以是同一台机器,也就是说这台机器即是SQL节点也是数据节点。它们只是逻辑关系上的划分,实际部署时,甚至所有的阶段都可以位于同一台物理机器上,只是配置较复杂些。

一、软件下载机器操作环境

配置 MySQL 群集必需使用其群集版本,注意和 MySQL Server 版本的区别。本文以 Windows 平台下的 MySQL 群集版本 MySQL Cluster 7.1.3 为例(截至2023年6月初的更高版本),这是 MySQL Server 5.1 系列版本之一,添加了群集的功能。下载地址为:

,选择 mysql-cluster-gpl-noinstall-7.1.3-win32.zip 文件,这是一个 for Windows 32位版本的、免安装的二进制版本。

根据自己的操作系统的位数,也可以选择 64 位版本的。还有一个 27.2M 的 Windows(x86, 32-bit) 版本,下载下来需要自己编译,有经验的高级用户可以选用。

本实验在 2 台安装 Windows Server 2023(sp2) 的机器上进行。节点分配及 IP 配置如下:

之一台机器,IP 为 10.0.0.201,作为管理节点(MGM),SQL节点1(SQL1),数据节点1(NDBD1)。

第二台机器,IP 为 10.0.0.202,作为SQL节点2(SQL2),数据节点2(NDBD2)。

管理节点更好不要与数据节点部署在同一台服务器上,否则可能会因为该数据节点服务器的当机,而导致管理节点服务器的问题,从而导致整个群集系统的崩溃。

二,配置管理节点:

在之一台机器上,建文件夹 D:\mysql-cluster,在其下建立文件 config.ini,内容如下:

NoOfReplicas=1

# Managment Server

hostname=10.0.0.201

# Storage Engines

hostname=10.0.0.201

datadir= D:\data

hostname=10.0.0.202

datadir= D:\data

# SQL Engines

hostname=10.0.0.201

hostname=10.0.0.202

Cluster 管理节点的默认端口是1186,数据节点的默认端口是 2202。从 MySQL 5.0.3开始,该限制已被放宽,Cluster 能够根据空闲的端口自动地为数据节点分配端口。如果你的版本低于5.0.22,请注意这个细节。

Cluster 管理节点作为一个服务端(通过运行 db_mgmd.exe 程序读取本配置文件来启动),通过本机上的客户端 ndb_mgm.exe 来连接和操作。

三、配置 MySQL 数据库服务器:

在2台机器上,分别依次操作。

解压 mysql-cluster-gpl-noinstall-7.1.3-win32.zip 文件到 D:\mysql-cluster-gpl-noinstall-7.1.3-win32 文件夹下,把 D:\mysql-cluster-gpl-noinstall-7.1.3-win32\bin 加到 Windows 的系统 path 中。

打开DOS命令行窗口(配置完系统path后,在再次打开新的命令行窗口),执行以下语句,让 MySQL 作为 Windows 服务运行:

mysqld.exe -install mysql

再在 Windows 服务管理界面里,配置 mysql 服务,手动启动(不要自动启动)。

把 D:\mysql-cluster-gpl-noinstall-7.1.3-win32 下的某个备用的配置文件(例如my-all.ini)复制为 my.ini 文件。

建立 D:\tmp 文件夹。

四、配置SQL节点和数据节点:

在2台机器上,分别依次操作。

建立文件夹 D:\data。

编辑 NySQL 配置文件 D:\mysql-cluster-gpl-noinstall-7.1.3-win32\my.ini,在 节末尾加语句:

#SQL群集节点

ndbcluster

ndb-connectstring=10.0.0.201

有了 ndbcluster 语句,mysql 服务将作为群集的 SQL 节点启动。mysqld.exe 命令带参数 –ndbcluster 运行是一样的效果。

mysql 服务连接到数据节点的 2202 默认端口,或自动分配的别的可用端口。

(问题:SQL节点如何获得数据节点的IP地址?是否通过连接管理节点,取得所有数据节点的IP地址的列表?)

这里的连接字符串的值在 MySQL 服务启动时使用,用于连接到管理节点。

在末尾加语句:

#NDB集群节点

ndb-connectstring=10.0.0.201

注:好像以下形式也可:

ndb-connectstring=10.0.0.201

这里的连接字符串的值在数据节点启动时使用,用于连接到管理节点。

五,启动群集各服务器

启动顺序依次是:管理节点、数据节点、SQL节点。

1,启动管理节点

在之一台服务器的DOS窗口,运行命令:

C:\>ndb_mgmd.exe -f d:\mysql-cluster.conf\config.ini –configdir=d:\mysql-cluster

注:如果不带 –configdir=d:\mysql-cluster 参数,将默认为 C:\mysql\mysql-cluster 文件夹。

屏幕显示:

C:\>ndb_mgmd.exe -f d:\mysql-cluster.conf\config.ini –configdir=d:\mysql-cluster

:16:57 INFO — NDB Cluster Management Server. mysql-5.1.44 ndb-7.1.3

:16:57 INFO — Reading cluster configuration from ‘d:\mysql-cluster.conf\config.ini’

:16:57 INFO — Got initial configuration from ‘d:\mysql-cluster.conf\config.ini’, will try to set it when all ndb_mgmd(s) started

:16:57 INFO — Mgmt server state: nodeid 1 reserved for ip 10.0.0.201, m_reserved_nodes 1.

:16:57 INFO — Id: 1, Command port: *:1186

==INITIAL==

:16:57 INFO — Starting initial configuration change

:16:57 INFO — Configuration 1 commited

:16:57 INFO — Config change completed! New generation: 1

==CONFIRMED==

2,启动数据节点

分别在2台服务器的DOS窗口运行命令。

之一次,或初始化群集节点时,运行命令:

ndbd.exe –initial

初始化之后,只运行 ndbd.exe 即可。若带参数 –initial 运行,将使正常运行的群集系统中,数据节点的数据全部丢失。

数据节点依赖管理节点服务器,进行数据的自动复制和同步,使各个数据节点的数据保持一致,并在某个数据节点意外关闭又恢复后,进行数据的恢复重建。

3,启动SQL节点

有了 ndbcluster 语句,启动 mysql 服务,就启动了SQL节点。应在前2种节点启动后,分别在2台服务器上进行。

六、群集管理

在所有的数据节点和SQL节点未启动之前,运行群集管理节点服务的客户端 ndb_mgm.exe,只能获得以下信息:

C:\>ndb_mgm.exe

— NDB Cluster — Management Client –

ndb_mgm> show

Cluster Configuration

———————

2 node(s)

id=2 (not connected, accepting connect from 10.0.0.201)

id=3 (not connected, accepting connect from 10.0.0.202)

1 node(s)

id=1 @10.0.0.201 (mysql-5.1.44 ndb-7.1.3)

2 node(s)

id=4 (not connected, accepting connect from 10.0.0.201)

id=5 (not connected, accepting connect from 10.0.0.202)

ndb_mgm>

说明数据节点、SQL节点均未连接到管理节点服务。

在所有的数据节点和SQL节点正确启动之后,将获得以下信息:

ndb_mgm> show

Cluster Configuration

———————

2 node(s)

id=2 @10.0.0.201 (mysql-5.1.44 ndb-7.1.3, Nodegroup: 0, Master)

id=3 @10.0.0.202 (mysql-5.1.44 ndb-7.1.3, Nodegroup: 1)

1 node(s)

id=1 @10.0.0.201 (mysql-5.1.44 ndb-7.1.3)

2 node(s)

id=4 @10.0.0.201 (mysql-5.1.44 ndb-7.1.3)

id=5 @10.0.0.202 (mysql-5.1.44 ndb-7.1.3)

ndb_mgm>

关闭群集的DOS命令:

ndb_mgm -e shutdown

或在 ndb_mgm 环境下执行 shutdown 命令。

以上命令或关闭管理节点服务和所有的数据节点。随意、强行关闭群集系统(关机或关闭进程),会导致数据没有全部写回磁盘而导致的数据丢失。

关闭SQL节点的 mysqld 服务:

C:\>net stop mysql,或:

C:\>mysqladmin -u root shutdown

七、测试

正常运行的 MySQL 群集系统,通过SQL节点可以对数据节点进行数据库操作,各数据节点可以自动进行数据同步。某一个数据节点关闭后,不影响SQL节点的使用。某些数据节点出错后,可以进行恢复。需要注意的是,SQL节点建立数据库时,必须选择“ndbcluster”数据库引擎。如果不选择“ndbcluster”引擎,建立的数据库将不会进入MySQL群集系统中,但是可以独立使用。

另外,每个 NDB 表必须有一个主键。如果在创建表时未定义主键,NDB Cluster 存储引擎将自动生成隐含的主键。该隐含的键也将占用空间,就像任何其他的表索引一样。由于没有足够的内存来容纳这些自动创建的键,出现问题并不罕见。

上海蓝盟网络技术有限公司专业回答您:

MySQL 群集分为三种节点:管理节点,数据节点和SQL节点。

管理节点:主要用于管理各个节点,能够通过命令对某个节点进行重启、关闭、启动等操作。也能够监视全部节点的工作状态。

数据节点:主要是对数据的存储,不提供其他的服务。

SQL节点:主要是对外提供SQL功能,类似一台普通的 MySQL Server。

而SQL节点和数据节点可以是同一台机器,也就是说这台机器即是SQL节点也是数据节点。它们只是逻辑关系上的划分,实际部署时,甚至所有的阶段都可以位于同一台物理机器上,只是配置较复杂些。

一、软件下载机器操作环境

配置 MySQL 群集必需使用其群集版本,注意和 MySQL Server 版本的区别。本文以 Windows 平台下的 MySQL 群集版本 MySQL Cluster 7.1.3 为例(截至2023年6月初的更高版本),这是 MySQL Server 5.1 系列版本之一,添加了群集的功能。下载地址为:

,选择 mysql-cluster-gpl-noinstall-7.1.3-win32.zip 文件,这是一个 for Windows 32位版本的、免安装的二进制版本。

根据自己的操作系统的位数,也可以选择 64 位版本的。还有一个 27.2M 的 Windows(x86, 32-bit) 版本,下载下来需要自己编译,有经验的高级用户可以选用。

本实验在 2 台安装 Windows Server 2023(sp2) 的机器上进行。节点分配及 IP 配置如下:

之一台机器,IP 为 10.0.0.201,作为管理节点(MGM),SQL节点1(SQL1),数据节点1(NDBD1)。

第二台机器,IP 为 10.0.0.202,作为SQL节点2(SQL2),数据节点2(NDBD2)。

管理节点更好不要与数据节点部署在同一台服务器上,否则可能会因为该数据节点服务器的当机,而导致管理节点服务器的问题,从而导致整个群集系统的崩溃。

二,配置管理节点:

在之一台机器上,建文件夹 D:\mysql-cluster,在其下建立文件 config.ini,内容如下:

NoOfReplicas=1

# Managment Server

hostname=10.0.0.201

# Storage Engines

hostname=10.0.0.201

datadir= D:\data

hostname=10.0.0.202

datadir= D:\data

# SQL Engines

hostname=10.0.0.201

hostname=10.0.0.202

Cluster 管理节点的默认端口是1186,数据节点的默认端口是 2202。从 MySQL 5.0.3开始,该限制已被放宽,Cluster 能够根据空闲的端口自动地为数据节点分配端口。如果你的版本低于5.0.22,请注意这个细节。

Cluster 管理节点作为一个服务端(通过运行 db_mgmd.exe 程序读取本配置文件来启动),通过本机上的客户端 ndb_mgm.exe 来连接和操作。

三、配置 MySQL 数据库服务器:

在2台机器上,分别依次操作。

解压 mysql-cluster-gpl-noinstall-7.1.3-win32.zip 文件到 D:\mysql-cluster-gpl-noinstall-7.1.3-win32 文件夹下,把 D:\mysql-cluster-gpl-noinstall-7.1.3-win32\bin 加到 Windows 的系统 path 中。

打开DOS命令行窗口(配置完系统path后,在再次打开新的命令行窗口),执行以下语句,让 MySQL 作为 Windows 服务运行:

mysqld.exe -install mysql

再在 Windows 服务管理界面里,配置 mysql 服务,手动启动(不要自动启动)。

把 D:\mysql-cluster-gpl-noinstall-7.1.3-win32 下的某个备用的配置文件(例如my-all.ini)复制为 my.ini 文件。

建立 D:\tmp 文件夹。

四、配置SQL节点和数据节点:

在2台机器上,分别依次操作。

建立文件夹 D:\data。

编辑 NySQL 配置文件 D:\mysql-cluster-gpl-noinstall-7.1.3-win32\my.ini,在 节末尾加语句:

#SQL群集节点

ndbcluster

ndb-connectstring=10.0.0.201

有了 ndbcluster 语句,mysql 服务将作为群集的 SQL 节点启动。mysqld.exe 命令带参数 –ndbcluster 运行是一样的效果。

mysql 服务连接到数据节点的 2202 默认端口,或自动分配的别的可用端口。

(问题:SQL节点如何获得数据节点的IP地址?是否通过连接管理节点,取得所有数据节点的IP地址的列表?)

这里的连接字符串的值在 MySQL 服务启动时使用,用于连接到管理节点。

在末尾加语句:

#NDB集群节点

ndb-connectstring=10.0.0.201

注:好像以下形式也可:

ndb-connectstring=10.0.0.201

这里的连接字符串的值在数据节点启动时使用,用于连接到管理节点。

五,启动群集各服务器

启动顺序依次是:管理节点、数据节点、SQL节点。

1,启动管理节点

在之一台服务器的DOS窗口,运行命令:

C:\>ndb_mgmd.exe -f d:\mysql-cluster.conf\config.ini –configdir=d:\mysql-cluster

注:如果不带 –configdir=d:\mysql-cluster 参数,将默认为 C:\mysql\mysql-cluster 文件夹。

屏幕显示:

C:\>ndb_mgmd.exe -f d:\mysql-cluster.conf\config.ini –configdir=d:\mysql-cluster

:16:57 INFO — NDB Cluster Management Server. mysql-5.1.44 ndb-7.1.3

:16:57 INFO — Reading cluster configuration from ‘d:\mysql-cluster.conf\config.ini’

:16:57 INFO — Got initial configuration from ‘d:\mysql-cluster.conf\config.ini’, will try to set it when all ndb_mgmd(s) started

:16:57 INFO — Mgmt server state: nodeid 1 reserved for ip 10.0.0.201, m_reserved_nodes 1.

:16:57 INFO — Id: 1, Command port: *:1186

==INITIAL==

:16:57 INFO — Starting initial configuration change

:16:57 INFO — Configuration 1 commited

:16:57 INFO — Config change completed! New generation: 1

==CONFIRMED==

2,启动数据节点

分别在2台服务器的DOS窗口运行命令。

之一次,或初始化群集节点时,运行命令:

ndbd.exe –initial

初始化之后,只运行 ndbd.exe 即可。若带参数 –initial 运行,将使正常运行的群集系统中,数据节点的数据全部丢失。

数据节点依赖管理节点服务器,进行数据的自动复制和同步,使各个数据节点的数据保持一致,并在某个数据节点意外关闭又恢复后,进行数据的恢复重建。

3,启动SQL节点

有了 ndbcluster 语句,启动 mysql 服务,就启动了SQL节点。应在前2种节点启动后,分别在2台服务器上进行。

六、群集管理

在所有的数据节点和SQL节点未启动之前,运行群集管理节点服务的客户端 ndb_mgm.exe,只能获得以下信息:

C:\>ndb_mgm.exe

— NDB Cluster — Management Client –

ndb_mgm> show

Cluster Configuration

———————

2 node(s)

id=2 (not connected, accepting connect from 10.0.0.201)

id=3 (not connected, accepting connect from 10.0.0.202)

1 node(s)

id=1 @10.0.0.201 (mysql-5.1.44 ndb-7.1.3)

2 node(s)

id=4 (not connected, accepting connect from 10.0.0.201)

id=5 (not connected, accepting connect from 10.0.0.202)

ndb_mgm>

说明数据节点、SQL节点均未连接到管理节点服务。

在所有的数据节点和SQL节点正确启动之后,将获得以下信息:

ndb_mgm> show

Cluster Configuration

———————

2 node(s)

id=2 @10.0.0.201 (mysql-5.1.44 ndb-7.1.3, Nodegroup: 0, Master)

id=3 @10.0.0.202 (mysql-5.1.44 ndb-7.1.3, Nodegroup: 1)

1 node(s)

id=1 @10.0.0.201 (mysql-5.1.44 ndb-7.1.3)

2 node(s)

id=4 @10.0.0.201 (mysql-5.1.44 ndb-7.1.3)

id=5 @10.0.0.202 (mysql-5.1.44 ndb-7.1.3)

ndb_mgm>

关闭群集的DOS命令:

ndb_mgm -e shutdown

或在 ndb_mgm 环境下执行 shutdown 命令。

以上命令或关闭管理节点服务和所有的数据节点。随意、强行关闭群集系统(关机或关闭进程),会导致数据没有全部写回磁盘而导致的数据丢失。

关闭SQL节点的 mysqld 服务:

C:\>net stop mysql,或:

C:\>mysqladmin -u root shutdown

七、测试

正常运行的 MySQL 群集系统,通过SQL节点可以对数据节点进行数据库操作,各数据节点可以自动进行数据同步。某一个数据节点关闭后,不影响SQL节点的使用。某些数据节点出错后,可以进行恢复。需要注意的是,SQL节点建立数据库时,必须选择“ndbcluster”数据库引擎。如果不选择“ndbcluster”引擎,建立的数据库将不会进入MySQL群集系统中,但是可以独立使用。

另外,每个 NDB 表必须有一个主键。如果在创建表时未定义主键,NDB Cluster 存储引擎将自动生成隐含的主键。该隐含的键也将占用空间,就像任何其他的表索引一样。由于没有足够的内存来容纳这些自动创建的键,出现问题并不罕见。

具体的可以参考

www.linemore.net

你可以参考这边文章,写的非常详细。

关于数据库集群日志在哪里的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » 数据库集群的日志该存储在哪个位置? (数据库集群日志在哪里)