DEV Community

mmllllzcn
mmllllzcn

Posted on

GBase Database(GBase 8a): How to Fix GCware Add-Node Failures

A GBase Database(GBase 8a) cluster installation reaches the final stage but fails with the message fail to add new datanodes to gcware. Network and configuration issues are common suspects, but a missing dependency library can be the actual cause: the service never starts.

Adding nodes to a GBase Database cluster depends on two key services: GCware and GCluster (gclusterd). GCware manages cluster membership and coordination. If it cannot start, the node addition process will fail.

The troubleshooting sequence is important: check GCware first, then GCluster, and finally verify node status. Reversing this order can leave you with multiple nodes showing CLOSE without revealing the root cause.

1. Load the Environment and Check GCware

First, load the DBA user's environment variables before running any diagnostic commands.

source ~/.gbase_profile
gcware_services all start
ldd gcware | grep "not found"
gcluster_services all start
ldd gclusterd | grep "not found"
gcadmin
Enter fullscreen mode Exit fullscreen mode

If gcware_services all start fails, immediately check the GCware binary dependencies:

ldd gcware | grep "not found"
Enter fullscreen mode Exit fullscreen mode

Any library marked not found indicates a missing runtime dependency.

One frequent issue is:

libcrypto.so.10 => not found
Enter fullscreen mode Exit fullscreen mode

This often occurs on operating systems that provide newer OpenSSL versions but do not include the required OpenSSL 1.0 compatibility library.

2. Resolve Missing Shared Libraries

There are two approaches to resolving missing shared library dependencies.

Option 1: Install the matching compatibility package

Install the appropriate dependency package for your operating system and version. This is generally the preferred long-term solution.

Option 2: Create a symbolic link

As a temporary workaround, an existing compatible shared library can sometimes be linked to the missing library name.

However, do not blindly link different major library versions. Binary and ABI compatibility must be verified first. A symbolic link cannot guarantee compatibility between different OpenSSL versions.

For example, after resolving the GCware dependency, check GCluster separately:

ldd gclusterd | grep "not found"
Enter fullscreen mode Exit fullscreen mode

A common missing dependency on the GCluster side is:

libidn.so.11 => not found
Enter fullscreen mode Exit fullscreen mode

Install the appropriate compatibility package for the target operating system.

Important: Check every node individually. Dependencies are installed locally on each machine. One node passing the check does not mean the entire GBase Database cluster is ready.

3. Verify Services and Node Status

After resolving all missing dependencies, start both services:

gcware_services all start
gcluster_services all start
gcadmin
Enter fullscreen mode Exit fullscreen mode

Use gcadmin to check the cluster node status. Confirm that the relevant nodes have successfully joined and show OPEN before proceeding.

Do not run the add-node operation until the underlying services are running correctly.

4. Retry the Add-Node Operation

Once GCware and GCluster are running, return to the GBase Database installation directory and execute:

cd /opt/gcinstall
gcadmin addnodes gcChangeInfo.xml
Enter fullscreen mode Exit fullscreen mode

The gcChangeInfo.xml file is generated during the installation process and describes the nodes involved in the current cluster expansion.

Before executing addnodes, verify that its node list matches the machines you actually intend to add.

Previously installed and uninstalled environments may leave outdated configuration files behind. Using a stale gcChangeInfo.xml can cause node-matching problems and prevent the operation from completing.

Use the generated file as the starting point rather than manually recreating the node list.

5. A Real GBase Database Deployment Case

In a provincial government project deployed on openEuler, the installation encountered the same fail to add new datanodes to gcware error.

Following the troubleshooting sequence revealed two missing dependencies:

  1. GCware failed to start because libcrypto.so.10 was missing.
  2. After resolving that dependency, GCluster startup revealed another missing library: libidn.so.11.

After installing the corresponding compatibility packages, both services started successfully. The gcadmin command then showed all nodes as OPEN.

Finally, rerunning gcadmin addnodes gcChangeInfo.xml successfully added the previously failed nodes.

The entire diagnosis and recovery took less than an hour.

6. Build a Dependency Checklist for Future Deployments

When troubleshooting GBase Database(GBase 8a) add-node failures, avoid jumping straight to reinstallation.

Reinstalling the cluster does not automatically resolve missing operating system libraries. If the dependencies remain unchanged, the same failure can happen again.

For future deployments, record:

  • Node IP address and operating system version
  • GCware startup result
  • GCluster startup result
  • Missing libraries reported by ldd
  • Dependency packages installed on each node
  • Final node status reported by gcadmin

Keep the installation logs and service startup output together. They help identify which library was missing and which machine was affected.

The key takeaway: When GBase Database add-node operations fail, check GCware dependencies first, then GCluster, and only afterward investigate node status and configuration.

Service names and dependency package names may vary across operating system versions. Always verify the required packages against the documentation for your specific GBase Database release and operating system.

Top comments (0)