Document Type | Technical Information
Category | Installation
Applicable Product Version | Tibero 7.2.4
Document Number | TINTI040
Overview
1. What is TAC?
TAC automatically fails over to a functioning node in case of failures in the DB engine, OS, system, or public network, maintaining a non-stop system and enabling rapid recovery.
Depending on the workload, it can be configured as a large-scale triple redundancy node beyond dual redundancy, providing optimal performance for processing large volumes of data.
TAC allows flexible capacity adjustment through horizontal scaling of active nodes and improves system performance by minimizing disk I/O with Global Cache implementation.
2. TAC Installation Diagram
Method
TAC Installation (using Shared File System)
1. Installation Environment
1-1) Installation Sequence
Step | Item | Description |
|---|---|---|
1 | Basic Setup | Environment variables, CM, Tibero tip configuration |
2 | Cluster Membership Layer Configuration | Process of connecting each node into a cluster |
3 | Cluster Resource Layer Configuration | Registering resources used by nodes |
4 | DB Setup | Database configuration |
1-2) Node Environment
Item | Node 1 | Node 2 | Description | |
OS | hostname | tibrero0 | tibero1 | Hostname of each server |
| User | tibero | tibero | OS user where Tibero will be installed | |
| Shared Volume | Configured according to server environment | Generally, filesystems are created by the OS itself, but shared filesystems are created and managed through cluster solutions. For example, vxfs is created with Veritas solutions, gpfs with hcmp, and gfs2 with pacemaker for shared filesystems. | ||
TAC | SID | tibero0 | tibero1 | Tibero Instance Name |
| DB_NAME | tibero | Tibero Database Name | ||
| LISTENER_PORT | 8629 | 8629 | Tibero Listener Port | |
| Public IP | 192.168.50.121 NIC : enp0s3 | 192.168.50.122 NIC : enp0s3 | Public IP | |
| LOCAL_CLUSTER_ADDR | 10.10.10.121 | 10.10.10.122 | Inter-Connect IP | |
| LOCAL_CLUSTER_PORT | 18629 | 18629 | Communication port between Tibero nodes | |
| CM_PORT | 28629 | 28629 | Communication for cmrctl command and TiberoโCM communication | |
CM | SID | cm0 | cm1 | TBCM SID |
| CM Inter-Connect PORT | 29000 | 29000 | Communication port between TBCM nodes (Defined when executing cmrctl add command) | |
| CM_UI_PORT | 28629 | 28629 | Port used to connect to TBCM to check its status when executing cmrctl commands | |
1-3) Environment Variables
Node 1 | Node 2 |
|---|---|
(tibero)$ cat .bash_profile ### Tibero ENV ### ### Tibero Cluster Manager ENV ### | (tibero)$ cat .bash_profile ### Tibero ENV ### ### Tibero Cluster Manager ENV ### |
2. Installation
2-1) $CM.tip Configuration
Node 1 | Node 2 |
|---|---|
(tibero)$ vi $TB_HOME/config/$CM_SID.tip CM_NAME=cm0 | (tibero)$ vi $TB_HOME/config/$CM_SID.tip CM_NAME=cm1 |
2-2) $TB.tip Configuration
Node 1 | Node 2 |
|---|---|
(tibero)$ vi $TB_HOME/config/$TB_SID.tip DB_NAME=tibero ############Memory & Session################### ########cluster################ | (tibero)$ vi $TB_HOME/config/$TB_SID.tip DB_NAME=tibero ############Memory & Session################### ########cluster################ |
2-3) tbdsn.tbr Configuration
Node 1 | Node 2 |
|---|---|
(tibero)$ vi $TB_HOME/client/config/tbdsn.tbr tibero0=( | (tibero)$ vi $TB_HOME/client/config/tbdsn.tbr tibero0=( |
2-4) Register CM Membership Layer Resources
Node | Item | Command |
|---|---|---|
Node 1 | Start TBCM | (tibero)$ tbcm -b # Run as root if using VIP environment |
| Register Network | (tibero)$ cmrctl add network --name net0 --ipaddr 10.10.10.121 --portno 29000 (tibero)$ cmrctl add network --name pub0 --nettype public --ifname enp0s3 | |
| Register Cluster | (tibero)$ cmrctl add cluster --name cls0 --incnet net0 --pubnet pub0 --cfile /tbdata/CMFILE/CMFILE_cls0 | |
| Start Cluster | (tibero)$ cmrctl start cluster --name cls0 | |
Node 2 | Start TBCM | (tibero)$ tbcm -b # Run as root if using VIP environment |
| Register Network | (tibero)$ cmrctl add network --name net1 --ipaddr 10.10.10.122 --portno 29000 (tibero)$ cmrctl add network --name pub1 --nettype public --ifname enp0s3 | |
| Register Cluster | (tibero)$ cmrctl add cluster --name cls0 --incnet net1 --pubnet pub1 --cfile /tbdata/CMFILE/CMFILE_cls0 | |
| Start Cluster | (tibero)$ cmrctl start cluster --name cls0 |
2-5) Register CM Resource Layer Resources
Since services are shared, registration on Node 2 is omitted.
Node | Item | Command |
|---|---|---|
Node 1 | Register DB Service | (tibero)$ cmrctl add service --name tibero --cname cls0 --type db |
| Register DB | (tibero)$ cmrctl add db --name tibero0 --svcname tibero --dbhome $TB_HOME --envfile $HOME/.bash_profile | |
| Register VIP | (tibero)$ cmrctl add vip --name vip0 --node cm0 --svcname tibero --ipaddr 192.168.50.126/255.255.255.0 --bcast 192.168.50.255 | |
Node 2 | Register DB | (tibero)$ cmrctl add db --name tibero1 --svcname tibero --dbhome $TB_HOME --envfile $HOME/.bash_profile |
| Register VIP | (tibero)$ cmrctl add vip --name vip1 --node cm1 --svcname tibero --ipaddr 192.168.50.127/255.255.255.0 --bcast 192.168.50.255 |
Note
VIP registration is not mandatory, and when registering, TBCM must be started with root privileges.
VIP registration command
cmrctl add vip --name <vip_name> --node <cm_sid> --svcname <database_name> --ipaddr <virtual_IP>/<Netmask> --bcase <broadcast>
2-6) Database Creation
Node | Item | Command |
|---|---|---|
Node 1 | Start DB in nomount mode | (tibero)$ tbboot nomount (or cmrctl start db --name tibero0 --option "-t nomount") |
| Create DB | (tibero)$ tbsql sys/tibero SQL> create database | |
| Start DB | (tibero)$ tbboot | |
| Execute system_install.sh | (tibero)$ sh $TB_HOME/scripts/system_install.sh -p1 tibero -p2 syscat | |
| Add Undo and Redo for Node 2 | (tibero)$ tbsql sys/tibero SQL> create undo tablespace UNDO1 datafile '/tbdata/data/undo011.dtf' size 100m autoextend on next 32M; | |
| Activate Node 2 | SQL> alter database enable public thread 1 ; | |
Node 2 | Start DB | (tibero)$ tbboot |
2-7) Verification
Item | Details |
|---|---|
Cluster | |
DB |
Reference
1. $CM_SID.tip Configuration
Item | Required | Description |
|---|---|---|
| CM_NAME | Required | This is the name used as the node identifier when creating a cluster. Different CM nodes must have different values. |
| CM_UI_PORT | Required | This is the network port number used to connect to CM when executing cmrctl commands. |
| CM_RESOURCE_FILE | Required | Path to the CM resource file. |
| LOG_LVL_CM | Optional | Specifies the level of logging by CM. Higher values cause CM to store more logs; integer values between 1 and 6 are allowed. (Default: 2) |
| CM_LOG_DEST | Optional | Specifies the directory where CM logs will be stored. This must be an absolute path. (Default: $CM_HOME/instance/$CM_SID/) |
| CM_HEARTBEAT_EXPIRE | Optional | Heartbeat expire is the standard time CM needs to detect a problem in another CM node. If this time passes, the cluster member is considered out. (Unit: seconds, Default: 300) |
| CM_WATCHDOG_EXPIRE | Optional | Specifies the expiration period if the watchdog function between Tibero and CM is enabled. If CM does not operate within this time, Tibero automatically shuts down. This value should be less than CM_HEARTBEAT_EXPIRE. (Unit: seconds, Default: 290) |
| CM_FENCE | Optional | Determines whether to run the CM fence daemon. If CM performs I/O longer than the time specified by CM_WATCHDOG_EXPIRE, other CMs will exclude this CM's node from the cluster, requiring the node to reboot the OS. |