失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 达梦数据库之DM8_实时数据守护配置

达梦数据库之DM8_实时数据守护配置

时间:2020-11-01 00:27:06

相关推荐

达梦数据库之DM8_实时数据守护配置

一 环境配置

1.1环境说明

准备三台机器dmzxhost01、dmzxhost02、dmzxhost03,dmzxhost01和dmzxhost02用来部署主备库,dmzxhost03用来部署确认监视器。其中dmzxhost01、dmzxhost02和dmzxhost03各自只需要配置一块网卡即可。

其中三台机器都事先安装了DM8数据库软件,机器dmzxhost01dmzxhost02需要初始化数据库,安装路径为’/dm8’,执行程序保存在’/dm/bin’目录中,数据存放路径为’/dm8/data’。

主备库的实例名建议采用“组名_守护环境_序号”的方式命名,方便按组区分不同实例,注意总长度不能超过16。本示例中组名为“GRP1”,配置为实时主备,主库命名为“GRP1_RT_01”,备库命名为“GRP1_RT_02”,而数据库名称一样。

表1 配置环境说明

表2 端口规划

1.2关闭防火墙

机器节点一:

[root@dmzxhost01 ~]# systemctl status firewalld

● firewalld.service - firewalld - dynamic firewall daemon

Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)

Active: active (running) since 三 -06-22 16:09:45 CST; 1 day 21h ago

Docs: man:firewalld(1)

Main PID: 7101 (firewalld)

CGroup: /system.slice/firewalld.service

└─7101 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid

6月 22 16:09:44 dmzxhost01 systemd[1]: Starting firewalld - dynamic firewall daemon...

6月 22 16:09:45 dmzxhost01 systemd[1]: Started firewalld - dynamic firewall daemon.

[root@dmzxhost01 ~]# systemctl stop firewalld

[root@dmzxhost01 ~]# systemctl disable firewalld

Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.

Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

机器节点二:

[root@dmzxhost02 ~]# systemctl status firewalld

● firewalld.service - firewalld - dynamic firewall daemon

Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)

Active: active (running) since 五 -06-24 14:30:36 CST; 4min 47s ago

Docs: man:firewalld(1)

Main PID: 7083 (firewalld)

CGroup: /system.slice/firewalld.service

└─7083 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid

6月 24 14:30:36 dmzxhost02 systemd[1]: Starting firewalld - dynamic firewall daemon...

6月 24 14:30:36 dmzxhost02 systemd[1]: Started firewalld - dynamic firewall daemon.

[root@dmzxhost02 ~]# systemctl stop firewalld

[root@dmzxhost02 ~]# systemctl disable firewalld

Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.

Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

机器节点三:

[root@dmzxhost03 ~]# systemctl status firewalld

● firewalld.service - firewalld - dynamic firewall daemon

Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)

Active: active (running) since 三 -06-22 16:49:23 CST; 1 day 21h ago

Docs: man:firewalld(1)

Main PID: 7088 (firewalld)

CGroup: /system.slice/firewalld.service

└─7088 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid

6月 22 16:49:23 dmzxhost03 systemd[1]: Starting firewalld - dynamic firewall daemon...

6月 22 16:49:23 dmzxhost03 systemd[1]: Started firewalld - dynamic firewall daemon.

[root@dmzxhost03 ~]# systemctl stop firewalld

[root@dmzxhost03 ~]# systemctl disable firewalld

Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.

Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

1.3关闭SELINUX

机器节点一:

[root@dmzxhost01 ~]# find / -name selinux

/etc/selinux

/etc/sysconfig/selinux

/usr/lib64/python2.7/site-packages/selinux

/usr/share/selinux

/usr/libexec/selinux

[root@dmzxhost01 ~]# cat /etc/sysconfig/selinux

# This file controls the state of SELinux on the system.

# SELINUX= can take one of these three values:

# enforcing - SELinux security policy is enforced.

# permissive - SELinux prints warnings instead of enforcing.

# disabled - No SELinux policy is loaded.

SELINUX=disabled

# SELINUXTYPE= can take one of three values:

# targeted - Targeted processes are protected,

# minimum - Modification of targeted policy. Only selected processes are protected.

# mls - Multi Level Security protection.

SELINUXTYPE=targeted

备注:配置SELINUX=disabled

机器节点二:

[root@dmzxhost02 ~]# find / -name selinux

/etc/selinux

/etc/sysconfig/selinux

/usr/lib64/python2.7/site-packages/selinux

/usr/share/selinux

/usr/libexec/selinux

[root@dmzxhost02 ~]# cat /etc/sysconfig/selinux

# This file controls the state of SELinux on the system.

# SELINUX= can take one of these three values:

# enforcing - SELinux security policy is enforced.

# permissive - SELinux prints warnings instead of enforcing.

# disabled - No SELinux policy is loaded.

SELINUX=disabled

# SELINUXTYPE= can take one of three values:

# targeted - Targeted processes are protected,

# minimum - Modification of targeted policy. Only selected processes are protected.

# mls - Multi Level Security protection.

SELINUXTYPE=targeted

备注:配置SELINUX=disabled

机器节点三:

[root@dmzxhost03 ~]# find / -name selinux

/etc/selinux

/etc/sysconfig/selinux

/usr/lib64/python2.7/site-packages/selinux

/usr/share/selinux

/usr/libexec/selinux

[root@dmzxhost03 ~]# cat /etc/sysconfig/selinux

# This file controls the state of SELinux on the system.

# SELINUX= can take one of these three values:

# enforcing - SELinux security policy is enforced.

# permissive - SELinux prints warnings instead of enforcing.

# disabled - No SELinux policy is loaded.

SELINUX=disabled

# SELINUXTYPE= can take one of three values:

# targeted - Targeted processes are protected,

# minimum - Modification of targeted policy. Only selected processes are protected.

# mls - Multi Level Security protection.

SELINUXTYPE=targeted

备注:配置SELINUX=disabled

1.4初始化数据库

机器节点一:

[root@dmzxhost01 ~]# su - dmdba

上一次登录:五 6月 24 13:58:50 CST pts/3 上

[dmdba@dmzxhost01 ~]$ export DISPLAY=192.168.197.100:0.0

[dmdba@dmzxhost01 ~]$ dbca.sh

Xlib: extension "RANDR" missing on display "192.168.197.100:0.0".

-06-24 13:58:57 [com.dameng.dbca.Startup]

[INFO] 启动DBCA

[root@dmzxhost01 ~]# mv /dm8/bin/DmServiceGRP1_RT_01.service /usr/lib/systemd/system/DmServiceGRP1_RT_01.service

[root@dmzxhost01 ~]# systemctl enable DmServiceGRP1_RT_01.service

Created symlink from /etc/systemd/system/multi-user.target.wants/DmServiceGRP1_RT_01.service to /usr/lib/systemd/system/DmServiceGRP1_RT_01.service.

[root@dmzxhost01 ~]# systemctl start DmServiceGRP1_RT_01.service

[root@dmzxhost01 ~]# ps -ef|grep dm.ini

dmdba 17838 1 8 15:00 ? 00:00:06 /dm8/bin/dmserver /dm8/data/DMDW/dm.ini -noconsole

root 17926 17693 0 15:02 pts/1 00:00:00 grep --color=auto dm.ini

[dmdba@dmzxhost01 ~]$ disql sysdba/dameng123@localhost:5246

服务器[localhost:5246]:处于普通打开状态

登录使用时间: 5.900(毫秒)

disql V8

SQL> select NAME,INSTANCE_NAME,HOST_NAME,STATUS$ from v$instance;

行号 NAME INSTANCE_NAME HOST_NAME STATUS$

---------- ---------- ------------- ---------- -------

1 GRP1_RT_01 GRP1_RT_01 dmzxhost01 OPEN

已用时间: 0.677(毫秒). 执行号:1775.

SQL>

机器节点二:

[root@dmzxhost02 ~]# su - dmdba

上一次登录:五 6月 24 15:07:17 CST pts/0 上

[dmdba@dmzxhost02 ~]$ export DISPLAY=192.168.197.100:0.0

[dmdba@dmzxhost02 ~]$ dbca.sh

Xlib: extension "RANDR" missing on display "192.168.197.100:0.0".

-06-24 15:07:49 [com.dameng.dbca.Startup]

[INFO] 启动DBCA

[root@dmzxhost02 ~]# mv /dm8/bin/DmServiceGRP1_RT_02.service /usr/lib/systemd/system/DmServiceGRP1_RT_02.service

[root@dmzxhost02 ~]# systemctl enable DmServiceGRP1_RT_02.service

Created symlink from /etc/systemd/system/multi-user.target.wants/DmServiceGRP1_RT_02.service to /usr/lib/systemd/system/DmServiceGRP1_RT_02.service.

[root@dmzxhost02 ~]# systemctl start DmServiceGRP1_RT_02.service

[dmdba@dmzxhost02 ~]$ disql sysdba/dameng123@localhost:5246

服务器[localhost:5246]:处于普通打开状态

登录使用时间: 13.034(毫秒)

disql V8

SQL> select NAME,INSTANCE_NAME,HOST_NAME,STATUS$ from v$instance;

行号 NAME INSTANCE_NAME HOST_NAME STATUS$

---------- ---------- ------------- ---------- -------

1 GRP1_RT_02 GRP1_RT_02 dmzxhost02 OPEN

已用时间: 2.154(毫秒). 执行号:1773.

机器节点三:不需要初始化数据库,有安装DM数据库软件即可

二 实时主备搭建

2.1备份还原

2.1.1创建测试用户表数据

现在主库创建几张表:

SQL> create tablespace TEST_TBS01 datafile '/dm8/data/DMDW/TEST_TBS01.DBF' size 32;

操作已执行

已用时间: 21.766(毫秒). 执行号:1778.

SQL> create user TEST identified by dameng123 default tablespace TEST_TBS01;

操作已执行

已用时间: 14.642(毫秒). 执行号:1779.

SQL> grant create table,create view to TEST;

操作已执行

已用时间: 2.246(毫秒). 执行号:1780.

SQL> create table TEST.T1(ID INT,NAME VARCHAR(20));

操作已执行

已用时间: 6.154(毫秒). 执行号:1781.

SQL> begin

2 for i in 1..10000 loop

3 insert into TEST.T1 values(i,'QIXIANG'||i);

4 end loop;

5 commit;

6 end;

7 /

DMSQL 过程已成功完成

已用时间: 55.124(毫秒). 执行号:1782.

SQL> select count(*) from TEST.T1;

行号 COUNT(*)

---------- --------------------

1 10000

已用时间: 1.800(毫秒). 执行号:1783.

2.1.2主库备份数据

primary主库使用DRMAN备份数据时,需要停止数据库,进行冷备份:

[dmdba@dmzxhost01 ~]$ cd /dm8

[dmdba@dmzxhost01 dm8]$ mkdir backup

[dmdba@dmzxhost01 ~]$ dmrman

dmrman V8

RMAN>backup database '/dm8/data/DMDW/dm.ini' full to backup_file1 backupset '/dm8/backup/BACKUP_FILE_01';

backup database '/dm8/data/DMDW/dm.ini' full to backup_file1 backupset '/dm8/backup/BACKUP_FILE_01';

file dm.key not found, use default license!

[-137]:服务器正在运行或者存在其他进程正在操作同一个库

RMAN> exit

time used: 0.002(ms)

[dmdba@dmzxhost01 DMDW]$ DmServiceGRP1_RT_01 stop

Stopping DmServiceGRP1_RT_01: [ OK ]

[dmdba@dmzxhost01 ~]$ dmrman

dmrman V8

RMAN> backup database '/dm8/data/DMDW/dm.ini' full to backup_file1 backupset '/dm8/backup/BACKUP_FILE_01';

backup database '/dm8/data/DMDW/dm.ini' full to backup_file1 backupset '/dm8/backup/BACKUP_FILE_01';

file dm.key not found, use default license!

Database mode = 0, oguid = 0

EP[0]'s cur_lsn[52384]

BACKUP DATABASE [DMDW],execute......

CMD CHECK LSN......

BACKUP DATABASE [DMDW],collect dbf......

CMD CHECK ......

DBF BACKUP SUBS......

total 0 packages processed...

total 0 packages processed...

total 0 packages processed...

total 0 packages processed...

total 0 packages processed...

total 0 packages processed...

DBF BACKUP MAIN......

BACKUPSET [/dm8/backup/BACKUP_FILE_01] END, CODE [0]......

META GENERATING......

CMD END.CODE:[0]

backup successfully!

time used: 00:00:01.124

2.1.3备库还原恢复

主库上操作:

将primary上备份的数据传至standby备库

[dmdba@dmzxhost01 BACKUP_FILE_01]$ pwd

/dm8/backup/BACKUP_FILE_01

[dmdba@dmzxhost01 BACKUP_FILE_01]$ ls -lrt

总用量 7936

-rw-r--r-- 1 dmdba dinstall 8035328 6月 24 15:50 BACKUP_FILE_01.bak

-rw-r--r-- 1 dmdba dinstall 86528 6月 24 15:50 BACKUP_FILE_01.meta

[dmdba@dmzxhost01 BACKUP_FILE_01]$ scp BACKUP_FILE_01.* 192.168.197.102:/dm8/backup

The authenticity of host '192.168.197.102 (192.168.197.102)' can't be established.

ECDSA key fingerprint is SHA256:yOI7XUfjJZYNnX5x7hf8KoGw5diEEQJIsjrvdPaUNeo.

ECDSA key fingerprint is MD5:f6:f0:de:2f:91:c4:57:8d:b0:e0:e2:47:90:e8:28:65.

Are you sure you want to continue connecting (yes/no)? yes

dmdba@192.168.197.102's password:

BACKUP_FILE_01.bak 100% 7847KB 92.3MB/s 00:00

BACKUP_FILE_01.meta

备库上操作;

[dmdba@dmzxhost02 ~]$ cd /dm8

[dmdba@dmzxhost02 dm8]$ mkdir backup

[dmdba@dmzxhost02 dm8]$ cd backup/

[dmdba@dmzxhost02 backup]$ pwd

/dm8/backup

[dmdba@dmzxhost02 backup]$ ls -lrt

总用量 7936

-rw-r--r-- 1 dmdba dinstall 8035328 6月 24 15:54 BACKUP_FILE_01.bak

-rw-r--r-- 1 dmdba dinstall 86528 6月 24 15:54 BACKUP_FILE_01.meta

备库上停止数据库:

[dmdba@dmzxhost02 backup]$ DmServiceGRP1_RT_02 stop

Stopping DmServiceGRP1_RT_02: [ OK ]

备库上进行数据库还原恢复操作:

[dmdba@dmzxhost02 backup]$ dmrman

dmrman V8

RMAN> restore database '/dm8/data/DMDW/dm.ini' from backupset '/dm8/backup';

restore database '/dm8/data/DMDW/dm.ini' from backupset '/dm8/backup';

file dm.key not found, use default license!

RESTORE DATABASE CHECK......

RESTORE DATABASE,data collect......

RESTORE DATABASE,database refresh ......

RESTORE BACKUPSET [/dm8/backup] START......

total 0 packages processed...

RESTORE DATABASE,UPDATE ctl file......

RESTORE DATABASE,REBUILD key file......

RESTORE DATABASE,CHECK db info......

RESTORE DATABASE,UPDATE db info......

CMD END.CODE:[0]

restore successfully.

time used: 408.222(ms)

RMAN> recover database '/dm8/data/DMDW/dm.ini' from backupset '/dm8/backup';

recover database '/dm8/data/DMDW/dm.ini' from backupset '/dm8/backup';

Database mode = 0, oguid = 0

EP[0]'s cur_lsn[52384]

RESTORE RLOG CHECK......

CMD END.CODE:[603],DESC:[备份集[/dm8/backup]备份过程中未产生日志]

备份集[/dm8/backup]备份过程中未产生日志

recover successfully!

time used: 281.378(ms)

备库还原恢复后更新魔数:

RMAN> recover database '/dm8/data/DMDW/dm.ini' update db_magic;

recover database '/dm8/data/DMDW/dm.ini' update db_magic;

Database mode = 0, oguid = 0

EP[0]'s cur_lsn[52384]

EP[0]'s apply_lsn[52384] >= end_lsn[52384]

recover successfully!

time used: 00:00:01.011

----至此备库使用主库的备份文件进行还原恢复就完成了

2.2主库配置文件

该部分仅仅从主库primary上进行配置相关参数文件。

2.2.1主库配置dm.ini

编辑主库primary中的参数文件dm.ini,添加下述内容:

[dmdba@dmzxhost01 DMDW]$ pwd

/dm8/data/DMDW

[dmdba@dmzxhost01 DMDW]$ ls -lrt *.ini

-rw-r--r-- 1 dmdba dinstall 479 6月 24 14:59 sqllog.ini

-rw-r--r-- 1 dmdba dinstall 49258 6月 24 14:59 dm.ini

INSTANCE_NAME = GRP1_RT_01

PORT_NUM = 5246

DW_INACTIVE_INTERVAL = 60

ALTER_MODE_STATUS = 0

ENABLE_OFFLINE_TS = 2

MAL_INI = 1

ARCH_INI = 1

RLOG_SEND_APPLY_MON = 64

2.2.2主库配置dmmal.ini

编辑主库primary中的文件dmmal.ini,添加下述内容:

[dmdba@dmzxhost01 DMDW]$ pwd

/dm8/data/DMDW

[dmdba@dmzxhost01 DMDW]$ vi dmmal.ini

MAL_CHECK_INTERVAL = 5

MAL_CONN_FAIL_INTERVAL = 5

[MAL_INST1]

MAL_INST_NAME = GRP1_RT_01

MAL_HOST = 192.168.197.101

MAL_PORT = 55101

MAL_INST_HOST = 192.168.197.101

MAL_INST_PORT = 5246

MAL_DW_PORT = 65101

MAL_INST_DW_PORT = 45101

[MAL_INST2]

MAL_INST_NAME = GRP1_RT_02

MAL_HOST = 192.168.197.102

MAL_PORT = 55121

MAL_INST_HOST = 192.168.197.102

MAL_INST_PORT = 5246

MAL_DW_PORT = 65121

MAL_INST_DW_PORT = 45121

2.2.3主库配置dmarch.ini

编辑主库primary中的文件dmarch.ini,添加下述内容:

[dmdba@dmzxhost01 DMDW]$ pwd

/dm8/data/DMDW

[dmdba@dmzxhost01 DMDW]$ vi dmarch.ini

[ARCHIVE_REALTIME]

ARCH_TYPE = REALTIME

ARCH_DEST = GRP1_RT_02

[ARCHIVE_LOCAL1]

ARCH_TYPE = LOCAL

ARCH_DEST = /dm8/arch

ARCH_FILE_SIZE = 128

ARCH_SPACE_LIMIT = 0

2.2.4主库配置dmwatcher.ini

编辑主库primary中的文件dmwatcher.ini,添加下述内容:

[dmdba@dmzxhost01 DMDW]$ pwd

/dm8/data/DMDW

[dmdba@dmzxhost01 DMDW]$ vi dmwatcher.ini

[GRP1]

DW_TYPE = GLOBAL

DW_MODE = AUTO

DW_ERROR_TIME = 10

INST_RECOVER_TIME = 60

INST_ERROR_TIME = 10

INST_OGUID = 453331

INST_INI = /dm8/data/DMDW/dm.ini

INST_AUTO_RESTART = 1

INST_STARTUP_CMD = /dm8/bin/dmserver

RLOG_SEND_THRESHOLD = 0

RLOG_APPLY_THRESHOLD = 0

2.2.5主库启动到mount调整参数

在主库启动到mount状态(还原恢复后没有启动的)

[dmdba@dmzxhost01 DMDW]$ dmserver /dm8/data/DMDW/dm.ini mount

file dm.key not found, use default license!

version info: develop

Use normal os_malloc instead of HugeTLB

Use normal os_malloc instead of HugeTLB

DM Database Server x64 V8 1-1-88-20.06.24-123627-ENT startup...

Database mode = 0, oguid = 0

License will expire on -07-11

file lsn: 52384

ndct db load finished

ndct fill fast pool finished

nsvr_startup end.

aud sys init success.

aud rt sys init success.

systables desc init success.

ndct_db_load_info success.

SYSTEM IS READY.

修改参数

[dmdba@dmzxhost01 DMDW]$ disql sysdba/dameng123@localhost:5246

服务器[localhost:5246]:处于普通配置状态

登录使用时间: 4.176(毫秒)

disql V8

SQL> SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',1);

DMSQL 过程已成功完成

已用时间: 5.647(毫秒). 执行号:1.

SQL> sp_set_oguid(453331);

DMSQL 过程已成功完成

已用时间: 2.626(毫秒). 执行号:2.

SQL> alter database primary;

操作已执行

已用时间: 3.072(毫秒). 执行号:0.

SQL> SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',0);

DMSQL 过程已成功完成

已用时间: 2.738(毫秒). 执行号:3.

SQL>

此时重新登录disql,发现配置模式已经改变:

SQL> exit

[dmdba@dmzxhost01 DMDW]$ disql sysdba/dameng123@localhost:5246

服务器[localhost:5246]:处于主库配置状态

登录使用时间: 3.655(毫秒)

disql V8

SQL> select INSTANCE_NAME,HOST_NAME,STATUS$,MODE$,OGUID from v$instance;

行号 INSTANCE_NAME HOST_NAME STATUS$ MODE$ OGUID

---------- ------------- ---------- ------- ------- -----------

1 GRP1_RT_01 dmzxhost01 MOUNT PRIMARY 453331

已用时间: 1.276(毫秒). 执行号:6.

SQL>

----至此,主库已经配置完成。

2.3备库配置文件

该部分仅仅从备库standby上进行配置相关参数文件。

2.3.1备库配置dm.ini

编辑备库standby中的参数文件dm.ini,添加下述内容:

[dmdba@dmzxhost02 DMDW]$ pwd

/dm8/data/DMDW

[dmdba@dmzxhost02 DMDW]$ ls -lrt *.ini

-rw-r--r-- 1 dmdba dinstall 479 6月 24 15:11 sqllog.ini

-rw-r--r-- 1 dmdba dinstall 49258 6月 24 15:11 dm.ini

[dmdba@dmzxhost02 DMDW]$ vi dm.ini

INSTANCE_NAME = GRP1_RT_02

PORT_NUM = 5246

DW_INACTIVE_INTERVAL = 60

ALTER_MODE_STATUS = 0

ENABLE_OFFLINE_TS = 2

MAL_INI = 1

ARCH_INI = 1

RLOG_SEND_APPLY_MON = 64

2.3.2备库配置dmmal.ini

编辑备库standby中的文件dmmal.ini,添加下述内容:

MAL_CHECK_INTERVAL = 5

MAL_CONN_FAIL_INTERVAL = 5

[MAL_INST1]

MAL_INST_NAME = GRP1_RT_01

MAL_HOST = 192.168.197.101

MAL_PORT = 55101

MAL_INST_HOST = 192.168.197.101

MAL_INST_PORT = 5246

MAL_DW_PORT = 65101

MAL_INST_DW_PORT = 45101

[MAL_INST2]

MAL_INST_NAME = GRP1_RT_02

MAL_HOST = 192.168.197.102

MAL_PORT = 55121

MAL_INST_HOST = 192.168.197.102

MAL_INST_PORT = 5246

MAL_DW_PORT = 65121

MAL_INST_DW_PORT = 45121

2.3.3备库配置dmarch.ini

编辑备库standby中的文件dmarch.ini,添加下述内容:

[ARCHIVE_REALTIME]

ARCH_TYPE = REALTIME

ARCH_DEST = GRP1_RT_01

[ARCHIVE_LOCAL1]

ARCH_TYPE = LOCAL

ARCH_DEST = /dm8/arch

ARCH_FILE_SIZE = 128

ARCH_SPACE_LIMIT = 0

2.3.4备库配置dmwatcher.ini

编辑备库standby中的文件dmwatcher.ini,添加下述内容:

dmwatcher.ini

[GRP1]

DW_TYPE = GLOBAL

DW_MODE = AUTO

DW_ERROR_TIME = 10

INST_RECOVER_TIME = 60

INST_ERROR_TIME = 10

INST_OGUID = 453331

INST_INI = /dm8/data/DMDW/dm.ini

INST_AUTO_RESTART = 1

INST_STARTUP_CMD = /dm8/bin/dmserver

RLOG_APPLY_THRESHOLD = 0

2.3.5备库启动到mount调整参数

备库standby启动到mount状态(还原恢复后没有启动的)

[dmdba@dmzxhost02 DMDW]$ dmserver /dm8/data/DMDW/dm.ini mount

file dm.key not found, use default license!

version info: develop

Use normal os_malloc instead of HugeTLB

Use normal os_malloc instead of HugeTLB

DM Database Server x64 V8 1-1-88-20.06.24-123627-ENT startup...

Database mode = 0, oguid = 0

License will expire on -07-11

file lsn: 52384

ndct db load finished

ndct fill fast pool finished

nsvr_startup end.

aud sys init success.

aud rt sys init success.

systables desc init success.

ndct_db_load_info success.

SYSTEM IS READY.

修改参数

[dmdba@dmzxhost02 DMDW]$ pwd

/dm8/data/DMDW

[dmdba@dmzxhost02 DMDW]$ disql sysdba/dameng123@localhost:5246

服务器[localhost:5246]:处于普通配置状态

登录使用时间: 5.061(毫秒)

disql V8

SQL> SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',1);

DMSQL 过程已成功完成

已用时间: 6.281(毫秒). 执行号:1.

SQL> sp_set_oguid(453331);

DMSQL 过程已成功完成

已用时间: 2.136(毫秒). 执行号:2.

SQL> alter database standby;

操作已执行

已用时间: 3.008(毫秒). 执行号:0.

SQL> SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',0);

DMSQL 过程已成功完成

已用时间: 2.696(毫秒). 执行号:3.

SQL> exit

[dmdba@dmzxhost02 DMDW]$ disql sysdba/dameng123@localhost:5246

服务器[localhost:5246]:处于备库配置状态

登录使用时间: 6.141(毫秒)

disql V8

SQL> select INSTANCE_NAME,HOST_NAME,STATUS$,MODE$,OGUID from v$instance;

行号 INSTANCE_NAME HOST_NAME STATUS$ MODE$ OGUID

---------- ------------- ---------- ------- ------- -----------

1 GRP1_RT_02 dmzxhost02 MOUNT STANDBY 453331

已用时间: 6.223(毫秒). 执行号:4.

SQL>

----至此,备库就已配置成功过了

2.4监视器配置文件

配置监视器,在第三台机器上,只需要部署了软件,不需要初始化数据库,配置dmmonitor.ini文件。

[dmdba@dmzxhost03 dm8]$ pwd

/dm8

[dmdba@dmzxhost03 dm8]$ vi dmmonitor.ini

MON_DW_CONFIRM = 1

MON_LOG_PATH = /dm8/data/log

MON_LOG_INTERVAL = 60

MON_LOG_FILE_SIZE = 32

MON_LOG_SPACE_LIMIT = 0

[GRP1]

MON_INST_OGUID = 453331

MON_DW_IP = 192.168.197.101:65101

MON_DW_IP = 192.168.197.102:65121

2.5启动同步

启动主库:

会自动OPEN数据库

[dmdba@dmzxhost01 DMDW]$ dmwatcher /dm8/data/DMDW/dmwatcher.ini

DMWATCHER[4.0] V8

DMWATCHER[4.0] IS READY

[dmdba@dmzxhost01 DMDW]$ disql sysdba/dameng123@localhost:5246

服务器[localhost:5246]:处于主库打开状态

登录使用时间: 12.159(毫秒)

disql V8

SQL> select INSTANCE_NAME,HOST_NAME,STATUS$,MODE$,OGUID from v$instance;

行号 INSTANCE_NAME HOST_NAME STATUS$ MODE$ OGUID

---------- ------------- ---------- ------- ------- -----------

1 GRP1_RT_01 dmzxhost01 OPEN PRIMARY 453331

已用时间: 2.087(毫秒). 执行号:10.

启动备库

会自动OPEN数据库

[dmdba@dmzxhost02 DMDW]$ dmwatcher /dm8/data/DMDW/dmwatcher.ini

DMWATCHER[4.0] V8

DMWATCHER[4.0] IS READY

SQL> select INSTANCE_NAME,HOST_NAME,STATUS$,MODE$,OGUID from v$instance;

行号 INSTANCE_NAME HOST_NAME STATUS$ MODE$ OGUID

---------- ------------- ---------- ------- ------- -----------

1 GRP1_RT_02 dmzxhost02 OPEN STANDBY 453331

已用时间: 8.866(毫秒). 执行号:1.

启动监视器

[dmdba@dmzxhost03 ~]$ dmmonitor /dm8/dmmonitor.ini

[monitor] -06-27 12:05:16: DMMONITOR[4.0] V8

[monitor] -06-27 12:05:16: DMMONITOR[4.0] IS READY.

[monitor] -06-27 12:05:16: 收到守护进程(GRP1_RT_01)消息

WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN

-06-27 12:05:16 OPEN OK GRP1_RT_01 OPEN PRIMARY VALID 3 56166 56166

[monitor] -06-27 12:05:16: 收到守护进程(GRP1_RT_02)消息

WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN

-06-27 12:05:16 OPEN OK GRP1_RT_02 OPEN STANDBY VALID 3 56166 56166

保证双VALID,不行就统一重启一下

show

-06-27 12:06:07

#================================================================================#

GROUP OGUID MON_CONFIRM MODE MPP_FLAG

GRP1 453331 TRUE AUTO FALSE

<<DATABASE GLOBAL INFO:>>

IP MAL_DW_PORT WTIME WTYPE WCTLSTAT WSTATUS INAME INST_OK N_EP N_OK ISTATUS IMODE DSC_STATUS RTYPE RSTAT

192.168.197.101 65101 -06-27 12:06:06 GLOBAL VALID OPEN GRP1_RT_01 OK 1 1 OPEN PRIMARY DSC_OPEN REALTIME VALID

EP INFO:

INST_PORT INST_OK INAME ISTATUS IMODE DSC_SEQNO DSC_CTL_NODE RTYPE RSTAT FSEQ FLSN CSEQ CLSN DW_STAT_FLAG

5246 OK GRP1_RT_01 OPEN PRIMARY 0 0 REALTIME VALID 5387 56166 5387 56166 NONE

<<DATABASE GLOBAL INFO:>>

IP MAL_DW_PORT WTIME WTYPE WCTLSTAT WSTATUS INAME INST_OK N_EP N_OK ISTATUS IMODE DSC_STATUS RTYPE RSTAT

192.168.197.102 65121 -06-27 12:06:07 GLOBAL VALID OPEN GRP1_RT_02 OK 1 1 OPEN STANDBY DSC_OPEN REALTIME VALID

EP INFO:

INST_PORT INST_OK INAME ISTATUS IMODE DSC_SEQNO DSC_CTL_NODE RTYPE RSTAT FSEQ FLSN CSEQ CLSN DW_STAT_FLAG

5246 OK GRP1_RT_02 OPEN STANDBY 0 0 REALTIME VALID 5362 56166 5362 56166 NONE

DATABASE(GRP1_RT_02) APPLY INFO FROM (GRP1_RT_01):

DSC_SEQNO[0], (ASEQ, SSEQ, KSEQ)[5387, 5387, 5387], (ALSN, SLSN, KLSN)[56166, 56166, 56166], N_TSK[0], TSK_MEM_USE[0]

#================================================================================#

2.6切换测试

主库创建一张测试表,备库查看同步情况:

dmdba@dmzxhost01 DMDW]$ disql sysdba/dameng123@localhost:5246

服务器[localhost:5246]:处于主库打开状态

登录使用时间: 12.159(毫秒)

disql V8

SQL> select INSTANCE_NAME,HOST_NAME,STATUS$,MODE$,OGUID from v$instance;

行号 INSTANCE_NAME HOST_NAME STATUS$ MODE$ OGUID

---------- ------------- ---------- ------- ------- -----------

1 GRP1_RT_01 dmzxhost01 OPEN PRIMARY 453331

已用时间: 2.087(毫秒). 执行号:10.

SQL> CREATE TABLE TEST.T2(ID INT,NAME VARCHAR(30));

操作已执行

已用时间: 18.892(毫秒). 执行号:11.

SQL> BEGIN

2 FOR i IN 1..500 LOOP

3 INSERT INTO TEST.T2 VALUES(i,i||'QI-XIANG');

4 END LOOP;

5 COMMIT;

6 END;

7 /

DMSQL 过程已成功完成

已用时间: 4.578(毫秒). 执行号:12.

SQL> SELECT * FROM TEST.T2 WHERE ID<10;

行号 ID NAME

---------- ----------- ---------

1 1 1QI-XIANG

2 2 2QI-XIANG

3 3 3QI-XIANG

4 4 4QI-XIANG

5 5 5QI-XIANG

6 6 6QI-XIANG

7 7 7QI-XIANG

8 8 8QI-XIANG

9 9 9QI-XIANG

9 rows got

已用时间: 1.182(毫秒). 执行号:13.

SQL>

在备库上进行查询:

[dmdba@dmzxhost02 ~]$ disql sysdba/dameng123@localhost:5246

服务器[localhost:5246]:处于备库打开状态

登录使用时间: 6.945(毫秒)

disql V8

SQL> select INSTANCE_NAME,HOST_NAME,STATUS$,MODE$,OGUID from v$instance;

行号 INSTANCE_NAME HOST_NAME STATUS$ MODE$ OGUID

---------- ------------- ---------- ------- ------- -----------

1 GRP1_RT_02 dmzxhost02 OPEN STANDBY 453331

已用时间: 3.003(毫秒). 执行号:2.

SQL> SELECT * FROM TEST.T2 WHERE ID<10;

行号 ID NAME

---------- ----------- ---------

1 1 1QI-XIANG

2 2 2QI-XIANG

3 3 3QI-XIANG

4 4 4QI-XIANG

5 5 5QI-XIANG

6 6 6QI-XIANG

7 7 7QI-XIANG

8 8 8QI-XIANG

9 9 9QI-XIANG

9 rows got

已用时间: 7.616(毫秒). 执行号:3.

SQL>

这样主备实时同步的数据就同步过来了。

主备切换

首先在监视器页面登录

login

用户名:sysdba

密码:

[monitor] -06-27 12:08:14: 登录监视器成功!

进行主备切换switchover

switchover

[monitor] -06-27 12:08:37: 开始切换实例GRP1_RT_02

[monitor] -06-27 12:08:37: 通知守护进程GRP1_RT_01切换SWITCHOVER状态

[monitor] -06-27 12:08:37: 守护进程(GRP1_RT_01)状态切换 [OPEN-->SWITCHOVER]

[monitor] -06-27 12:08:38: 切换守护进程GRP1_RT_01为SWITCHOVER状态成功

[monitor] -06-27 12:08:38: 通知守护进程GRP1_RT_02切换SWITCHOVER状态

[monitor] -06-27 12:08:38: 守护进程(GRP1_RT_02)状态切换 [OPEN-->SWITCHOVER]

[monitor] -06-27 12:08:38: 切换守护进程GRP1_RT_02为SWITCHOVER状态成功

[monitor] -06-27 12:08:38: 实例GRP1_RT_01开始执行SP_SET_GLOBAL_DW_STATUS(0, 6)语句

[monitor] -06-27 12:08:38: 实例GRP1_RT_01执行SP_SET_GLOBAL_DW_STATUS(0, 6)语句成功

[monitor] -06-27 12:08:38: 实例GRP1_RT_02开始执行SP_SET_GLOBAL_DW_STATUS(0, 6)语句

[monitor] -06-27 12:08:38: 实例GRP1_RT_02执行SP_SET_GLOBAL_DW_STATUS(0, 6)语句成功

[monitor] -06-27 12:08:38: 实例GRP1_RT_01开始执行ALTER DATABASE MOUNT语句

[monitor] -06-27 12:08:40: 实例GRP1_RT_01执行ALTER DATABASE MOUNT语句成功

[monitor] -06-27 12:08:40: 实例GRP1_RT_02开始执行SP_APPLY_KEEP_PKG()语句

[monitor] -06-27 12:08:40: 实例GRP1_RT_02执行SP_APPLY_KEEP_PKG()语句成功

[monitor] -06-27 12:08:40: 实例GRP1_RT_02开始执行ALTER DATABASE MOUNT语句

[monitor] -06-27 12:08:41: 实例GRP1_RT_02执行ALTER DATABASE MOUNT语句成功

[monitor] -06-27 12:08:41: 实例GRP1_RT_01开始执行ALTER DATABASE STANDBY语句

[monitor] -06-27 12:08:41: 实例GRP1_RT_01执行ALTER DATABASE STANDBY语句成功

[monitor] -06-27 12:08:41: 实例GRP1_RT_02开始执行ALTER DATABASE PRIMARY语句

[monitor] -06-27 12:08:42: 实例GRP1_RT_02执行ALTER DATABASE PRIMARY语句成功

[monitor] -06-27 12:08:42: 通知实例GRP1_RT_02修改所有归档状态无效

[monitor] -06-27 12:08:42: 修改所有实例归档为无效状态成功

[monitor] -06-27 12:08:42: 实例GRP1_RT_01开始执行ALTER DATABASE OPEN FORCE语句

[monitor] -06-27 12:08:42: 实例GRP1_RT_01执行ALTER DATABASE OPEN FORCE语句成功

[monitor] -06-27 12:08:42: 实例GRP1_RT_02开始执行ALTER DATABASE OPEN FORCE语句

[monitor] -06-27 12:08:44: 实例GRP1_RT_02执行ALTER DATABASE OPEN FORCE语句成功

[monitor] -06-27 12:08:44: 实例GRP1_RT_01开始执行SP_SET_GLOBAL_DW_STATUS(6, 0)语句

[monitor] -06-27 12:08:44: 实例GRP1_RT_01执行SP_SET_GLOBAL_DW_STATUS(6, 0)语句成功

[monitor] -06-27 12:08:44: 实例GRP1_RT_02开始执行SP_SET_GLOBAL_DW_STATUS(6, 0)语句

[monitor] -06-27 12:08:44: 实例GRP1_RT_02执行SP_SET_GLOBAL_DW_STATUS(6, 0)语句成功

[monitor] -06-27 12:08:44: 通知守护进程GRP1_RT_01切换OPEN状态

[monitor] -06-27 12:08:44: 守护进程(GRP1_RT_01)状态切换 [SWITCHOVER-->OPEN]

[monitor] -06-27 12:08:44: 切换守护进程GRP1_RT_01为OPEN状态成功

[monitor] -06-27 12:08:44: 通知守护进程GRP1_RT_02切换OPEN状态

[monitor] -06-27 12:08:44: 守护进程(GRP1_RT_02)状态切换 [SWITCHOVER-->OPEN]

[monitor] -06-27 12:08:44: 切换守护进程GRP1_RT_02为OPEN状态成功

[monitor] -06-27 12:08:44: 通知组(GRP1)的守护进程执行清理操作

[monitor] -06-27 12:08:44: 清理守护进程(GRP1_RT_01)请求成功

-06-27 12:08:44

#================================================================================#

GROUP OGUID MON_CONFIRM MODE MPP_FLAG

[monitor] -06-27 12:08:44: 清理守护进程(GRP1_RT_02)请求成功

[monitor] -06-27 12:08:44: 实例GRP1_RT_02切换成功

GRP1 453331 TRUE AUTO FALSE

<<DATABASE GLOBAL INFO:>>

IP MAL_DW_PORT WTIME WTYPE WCTLSTAT WSTATUS INAME INST_OK N_EP N_OK ISTATUS IMODE DSC_STATUS RTYPE RSTAT

192.168.197.102 65121 -06-27 12:08:44 GLOBAL VALID OPEN GRP1_RT_02 OK 1 1 OPEN PRIMARY DSC_OPEN REALTIME VALID

EP INFO:

INST_PORT INST_OK INAME ISTATUS IMODE DSC_SEQNO DSC_CTL_NODE RTYPE RSTAT FSEQ FLSN CSEQ CLSN DW_STAT_FLAG

5246 OK GRP1_RT_02 OPEN PRIMARY 0 0 REALTIME VALID 5390 58580 5390 58580 NONE

<<DATABASE GLOBAL INFO:>>

IP MAL_DW_PORT WTIME WTYPE WCTLSTAT WSTATUS INAME INST_OK N_EP N_OK ISTATUS IMODE DSC_STATUS RTYPE RSTAT

192.168.197.101 65101 -06-27 12:08:44 GLOBAL VALID OPEN GRP1_RT_01 OK 1 1 OPEN STANDBY DSC_OPEN REALTIME INVALID

EP INFO:

INST_PORT INST_OK INAME ISTATUS IMODE DSC_SEQNO DSC_CTL_NODE RTYPE RSTAT FSEQ FLSN CSEQ CLSN DW_STAT_FLAG

5246 OK GRP1_RT_01 OPEN STANDBY 0 0 REALTIME INVALID 5388 56166 5388 56166 NONE

DATABASE(GRP1_RT_01) APPLY INFO FROM (GRP1_RT_02):

DSC_SEQNO[0], (ASEQ, SSEQ, KSEQ)[5388, 5388, 5388], (ALSN, SLSN, KLSN)[56166, 56166, 56166], N_TSK[0], TSK_MEM_USE[0]

查看监视器信息,都是有效的

show

-06-27 12:12:17

#================================================================================#

GROUP OGUID MON_CONFIRM MODE MPP_FLAG

GRP1 453331 TRUE AUTO FALSE

<<DATABASE GLOBAL INFO:>>

IP MAL_DW_PORT WTIME WTYPE WCTLSTAT WSTATUS INAME INST_OK N_EP N_OK ISTATUS IMODE DSC_STATUS RTYPE RSTAT

192.168.197.102 65121 -06-27 12:12:16 GLOBAL VALID OPEN GRP1_RT_02 OK 1 1 OPEN PRIMARY DSC_OPEN REALTIME VALID

EP INFO:

INST_PORT INST_OK INAME ISTATUS IMODE DSC_SEQNO DSC_CTL_NODE RTYPE RSTAT FSEQ FLSN CSEQ CLSN DW_STAT_FLAG

5246 OK GRP1_RT_02 OPEN PRIMARY 0 0 REALTIME VALID 5391 58583 5391 58583 NONE

<<DATABASE GLOBAL INFO:>>

IP MAL_DW_PORT WTIME WTYPE WCTLSTAT WSTATUS INAME INST_OK N_EP N_OK ISTATUS IMODE DSC_STATUS RTYPE RSTAT

192.168.197.101 65101 -06-27 12:12:16 GLOBAL VALID OPEN GRP1_RT_01 OK 1 1 OPEN STANDBY DSC_OPEN REALTIME VALID

EP INFO:

INST_PORT INST_OK INAME ISTATUS IMODE DSC_SEQNO DSC_CTL_NODE RTYPE RSTAT FSEQ FLSN CSEQ CLSN DW_STAT_FLAG

5246 OK GRP1_RT_01 OPEN STANDBY 0 0 REALTIME VALID 5388 58583 5388 58583 NONE

DATABASE(GRP1_RT_01) APPLY INFO FROM (GRP1_RT_02):

DSC_SEQNO[0], (ASEQ, SSEQ, KSEQ)[5391, 5391, 5391], (ALSN, SLSN, KLSN)[58583, 58583, 58583], N_TSK[0], TSK_MEM_USE[0]

#================================================================================#

此时登录备库(原来的主库,注意主机名)查看

[dmdba@dmzxhost01 DMDW]$ disql sysdba/dameng123@localhost:5246

服务器[localhost:5246]:处于备库打开状态

登录使用时间: 3.979(毫秒)

disql V8

SQL> select INSTANCE_NAME,HOST_NAME,STATUS$,MODE$,OGUID from v$instance;

行号 INSTANCE_NAME HOST_NAME STATUS$ MODE$ OGUID

---------- ------------- ---------- ------- ------- -----------

1 GRP1_RT_01 dmzxhost01 OPEN STANDBY 453331

已用时间: 10.578(毫秒). 执行号:7.

SQL>

登录主库(原来的备库,注意主机名)查看

[dmdba@dmzxhost02 ~]$ disql sysdba/dameng123@localhost:5246

服务器[localhost:5246]:处于主库打开状态

登录使用时间: 5.209(毫秒)

disql V8

SQL> select INSTANCE_NAME,HOST_NAME,STATUS$,MODE$,OGUID from v$instance;

行号 INSTANCE_NAME HOST_NAME STATUS$ MODE$ OGUID

---------- ------------- ---------- ------- ------- -----------

1 GRP1_RT_02 dmzxhost02 OPEN PRIMARY 453331

已用时间: 1.947(毫秒). 执行号:8.

在切换后的主库(原来的备库,注意主机名)创建测试数据

SQL> CREATE TABLE TEST.T3(ID INT,NAME VARCHAR(30));

操作已执行

已用时间: 6.058(毫秒). 执行号:9.

SQL> BEGIN

2 FOR i IN 1..500 LOOP

3 INSERT INTO TEST.T3 VALUES(i,i||'TEST');

4 END LOOP;

5 COMMIT;

6 END;

7 /

DMSQL 过程已成功完成

已用时间: 5.799(毫秒). 执行号:12.

SQL> SELECT * FROM TEST.T3 WHERE ID<10;

行号 ID NAME

---------- ----------- -----

1 1 1TEST

2 2 2TEST

3 3 3TEST

4 4 4TEST

5 5 5TEST

6 6 6TEST

7 7 7TEST

8 8 8TEST

9 9 9TEST

9 rows got

已用时间: 0.741(毫秒). 执行号:13.

现在在备库(原来的备库,注意主机名)查询

[dmdba@dmzxhost01 DMDW]$ disql sysdba/dameng123@localhost:5246

服务器[localhost:5246]:处于备库打开状态

登录使用时间: 3.979(毫秒)

disql V8

SQL> select INSTANCE_NAME,HOST_NAME,STATUS$,MODE$,OGUID from v$instance;

行号 INSTANCE_NAME HOST_NAME STATUS$ MODE$ OGUID

---------- ------------- ---------- ------- ------- -----------

1 GRP1_RT_01 dmzxhost01 OPEN STANDBY 453331

已用时间: 10.578(毫秒). 执行号:7.

SQL> SELECT * FROM TEST.T3 WHERE ID<10;

行号 ID NAME

---------- ----------- -----

1 1 1TEST

2 2 2TEST

3 3 3TEST

4 4 4TEST

5 5 5TEST

6 6 6TEST

7 7 7TEST

8 8 8TEST

9 9 9TEST

9 rows got

已用时间: 1.652(毫秒). 执行号:8.

并且在备库(原来的备库,注意主机名)数据插入,无法写

[dmdba@dmzxhost01 DMDW]$ disql sysdba/dameng123@localhost:5246

服务器[localhost:5246]:处于备库打开状态

登录使用时间: 3.037(毫秒)

disql V8

SQL> BEGIN

2 FOR i IN 600..1000 LOOP

3 INSERT INTO TEST.T3 VALUES(i,i||'TEST');

4 END LOOP;

5 COMMIT;

6 END;

7 /

BEGIN

FOR i IN 600..1000 LOOP

INSERT INTO TEST.T3 VALUES(i,i||'TEST');

END LOOP;

COMMIT;

END;

第3 行附近出现错误[-]:STANDBY模式下不支持对非临时表或含有lob类型列的表进行增删改操作.

已用时间: 0.362(毫秒). 执行号:0.

至此主备切换后,数据能正常同步过来

如果觉得《达梦数据库之DM8_实时数据守护配置》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。