GaussDB T 主备搭建 切换switchover、failover

整个过程还是很简单的

mkdir -p /gdb/gaussdb/app  /gdb/gaussdb/data
chown -R omm.dbgrp gaussdb

/gdb/software/gaussdb/python-3.9.2/bin/python3 install.py -U omm:dbgrp -R /gdb/gaussdb/app -D /gdb/gaussdb/data -C LSNR_ADDR=127.0.0.1,192.168.1.75 -C LSNR_PORT=1888 -C REPL_PORT=1889 -C "LOG_ARCHIVE_DEST_2=SERVICE=192.168.1.76:1889 SYNC"

备库 -O 不建库
/gdb/software/gaussdb/python-3.9.2/bin/python3 install.py -U omm:dbgrp -R /gdb/gaussdb/app -D /gdb/gaussdb/data -C LSNR_ADDR=127.0.0.1,192.168.1.76 -C LSNR_PORT=1888 -C REPL_PORT=1889 -C "LOG_ARCHIVE_DEST_2=SERVICE=192.168.1.75:1889 SYNC" -O
 

主备库云环境规格操作系统主机名IP地址端口号
主库4vCPUs 8GEulerOS 2.8 64bit with ARMTHR102-0001192.168.0.1641888
备库4vCPUs 8GEulerOS 2.8 64bit with ARMTHR102-0002192.168.0.2311888

主备机分别完成以下操作

  • 创建用户及用户组
groupadd dbgrp
useradd -g dbgrp -d /home/omm -m -s /bin/bash omm
  • 修改OMM用户密码
passwd omm
  • 创建软件目录
mkdir -p /opt/software/gaussdb
  • 进入目录并上传软件
GaussDB_T_1.0.2-EULER20SP8-ARM-64bit.tar.gz

主机操作

  • 解压软件
[root@thr102-0001 ~]# cd /opt/software/gaussdb/
[root@thr102-0001 gaussdb]# ls
GaussDB_T_1.0.2-EULER20SP8-ARM-64bit.tar.gz
[root@thr102-0001 gaussdb]# tar -zxvf GaussDB_T_1.0.2-EULER20SP8-ARM-64bit.tar.gz
  • 解压数据库
[root@thr102-0001 gaussdb]# tar -zxvf GaussDB_T_1.0.2-DATABASE-EULER20SP8-64bit.tar.gz
  • 进入目录执行安装
[root@thr102-0001 gaussdb]# cd GaussDB_T_1.0.2-DATABASE-EULER20SP8-64bit/
[root@thr102-0001 GaussDB_T_1.0.2-DATABASE-EULER20SP8-64bit]# python install.py -U omm:dbgrp -R /opt/gaussdb/app -D /opt/gaussdb/data -C LSNR_ADDR=127.0.0.1,192.168.0.164 -C LSNR_PORT=1888 -C REPL_PORT=1889 -C "LOG_ARCHIVE_DEST_2=SERVICE=192.168.0.231:1889 SYNC"
# 输出信息
Checking runner.
Checking parameters.
End check parameters.
Checking user.
End check user.
Checking old install.
End check old install.
Checking kernel parameters.
Checking directory.
Checking integrality of run file...
Decompressing run file.
Setting user env.
Checking data dir and config file
Initialize db instance.
Creating database.
Creating database succeed.
Changing file permission due to security audit.
Install successfully, for more detail information see /home/omm/zengineinstall.log.
  • 登录数据库查询主机角色
[root@thr102-0001 GaussDB_T_1.0.2-DATABASE-EULER20SP8-64bit]# cd
[root@thr102-0001 ~]# su - omm
Last login: Mon Mar 23 18:44:52 CST 2020
[omm@thr102-0001 ~]$ zsql / as sysdba -q

connected.

SQL> select database_role from dv_database;

DATABASE_ROLE                 
------------------------------
PRIMARY                       

1 rows fetched.

备机操作

  • 解压软件
[root@thr102-0002 ~]# cd /opt/software/gaussdb/
[root@thr102-0002 gaussdb]# ls
GaussDB_T_1.0.2-EULER20SP8-ARM-64bit.tar.gz
[root@thr102-0002 gaussdb]# tar -zxvf GaussDB_T_1.0.2-EULER20SP8-ARM-64bit.tar.gz 
  • 解压数据库
[root@thr102-0002 gaussdb]# tar -zxvf GaussDB_T_1.0.2-DATABASE-EULER20SP8-64bit.tar.gz
  • 进入目录执行安装
[root@thr102-0002 gaussdb]# cd GaussDB_T_1.0.2-DATABASE-EULER20SP8-64bit/
[root@thr102-0002 GaussDB_T_1.0.2-DATABASE-EULER20SP8-64bit]# python install.py -U omm:dbgrp -R /opt/gaussdb/app -D /opt/gaussdb/data -C LSNR_ADDR=127.0.0.1,192.168.0.231 -C LSNR_PORT=1888 -C REPL_PORT=1889 -C "LOG_ARCHIVE_DEST_2=SERVICE=192.168.0.164:1889 SYNC" -O
# 输出信息
Checking runner.
Checking parameters.
End check parameters.
Checking user.
End check user.
Checking old install.
End check old install.
Checking kernel parameters.
Checking directory.
Checking integrality of run file...
Decompressing run file.
Setting user env.
Checking data dir and config file
Initialize db instance.
Changing file permission due to security audit.
Install successfully, for more detail information see /home/omm/zengineinstall.log.
  • 执行脚本
[root@thr102-0002 GaussDB_T_1.0.2-DATABASE-EULER20SP8-64bit]# su - omm
[omm@thr102-0002 ~]$ cd /opt/gaussdb/app/bin/
[omm@thr102-0002 bin]$ python zctl.py -t build
# 输出信息
Check if incremental build is available ...
Begin to shutdown database ...
Done

Begin to clear data and log ...
Done

Begin to startup instance nomount ...
Done

Is incremental build: False
Begin to build database ...
Done

Successfully build database
  • 登录数据库查询备机角色
[omm@thr102-0002 bin]$ zsql / as sysdba -q

connected.

SQL> select database_role from dv_database;

DATABASE_ROLE                 
------------------------------
PHYSICAL_STANDBY              

1 rows fetched.

同步验证

  • 主库创建测试表插入数据
SQL> create table henry(id number);

Succeed.

SQL> insert into henry values(1);

1 rows affected.

SQL> commit;

Succeed.

SQL> select * from henry;

ID                                      
----------------------------------------
1                                       

1 rows fetched.
  • 备库查询验证

------一个命令随便切换。方便

切完主库需要重新登录

GS-00339, uds connection is closed, reason: 32
SQL> 
SQL> 
SQL> 
SQL> exit

[omm@gdb bin]$ zsql / as sysdba -q

connected.


SQL> insert into henry values(1);

GS-00773, operation can not be done when database is in readonly mode


SQL> select * from henry;

ID                                      
----------------------------------------
1                                       
1                                       
1                                       

3 rows fetched.

SQL> select * from henry;

ID                                      
----------------------------------------
1                                       
1                                       
1                                       
100                                     

4 rows fetched.

SQL> 
 

双机切换包含正常切换(switchover)和故障切换(failover)。

switchover

1、正常切换的应用场景如下。

当数据库升级时,先停止备机,升级备机数据库,然后启动备机,当主备关系稳定后切换主备机,然后升级原来的主机数据库,这样可保证业务零中断,数据零丢失,提供高可靠性数据库服务。

在复杂的应用系统中,除数据库软件还有其他应用进程,当这些进程产生异常时需进行切换,则为了避免数据丢失,主备数据库也要跟着切换。

2、正常切换步骤。

查询节点的角色和状态。

SQL> SELECT DATABASE_ROLE, DATABASE_CONDITION, SWITCHOVER_STATUS FROM DV_DATABASE;

DATABASE_ROLE                  DATABASE_CONDITION SWITCHOVER_STATUS
------------------------------ ------------------ --------------------
PHYSICAL_STANDBY               NORMAL             TO PRIMARY

1 rows fetched.

如果查询结果是备机,而且状态是normal,则可以在该节点上执行switchover。

下发switchover命令。

SQL> ALTER DATABASE SWITCHOVER;

Succeed.

switchover只能在备机上执行,级联备上和主机上无法执行。

failover

failover适用于主机发生故障,而且短时间内无法及时恢复。在有级联备的情况下,如果主机和所有备机均已发生故障,则可以在级联备上执行failover升主。其操作步骤如下:

查询备机状态

查询节点状态。

SQL> SELECT DATABASE_ROLE, DATABASE_CONDITION, SWITCHOVER_STATUS FROM DV_DATABASE;

DATABASE_ROLE                  DATABASE_CONDITION SWITCHOVER_STATUS
------------------------------ ------------------ --------------------
PHYSICAL_STANDBY               DISCONNECTED       TO PRIMARY

如果查询结果是备机,而且状态是DISCONNECTED,则可以在该节点上执行failover。

下发FAILOVER命令。

SQL> ALTER DATABASE FAILOVER;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Oracle数据库中,进行DG(Data Guard)主备切换并更换IP可以按照以下步骤进行操作: 1. 首先,在备库上停止应用进程和DG进程。可以使用以下命令: ``` SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL; SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT; ``` 2. 在主库上禁用日志传输,以确保主备库数据同步的一致性。可以使用以下命令: ``` SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=DEFER; ``` 3. 在备库上执行switchover命令,将备库切换为主库。可以使用以下命令: ``` SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN; ``` 4. 修改主库和备库的IP地址。可以使用以下命令: ``` SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE={tns name} ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME={db unique name}', 'SERVICE={tns name} ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME={db unique name}' scope=both; ``` 其中,{tns name}是新的主库的TNS名称,{db unique name}是新的主库的DB唯一名称。 5. 在主库上启用日志传输。可以使用以下命令: ``` SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE; ``` 6. 在新的主库上启动应用进程和DG进程。可以使用以下命令: ``` SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT; ``` 7. 最后,检查主备库状态以确保切换成功。可以使用以下命令: ``` SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE; ``` 如果返回结果为TO PRIMARY,则表示已成功切换到新的主库。 需要注意的是,在执行DG主备切换并更换IP时,需要谨慎操作,确保数据一致性和系统稳定性。建议在进行操作前,先进行备份并制定详细的操作计划。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值