DM7 RAC数据库恢复成单机数据库

DM7 RAC数据库恢复成单机数据库
1) 启动RMAN备份数据库,保证服务器处于脱机状态。

RMAN> backup database '/dm7/data/rac0_config/dm.ini' full backupset '/dm7/backup/db_rac_full_bak_recover_dbmagic';
backup database '/dm7/data/rac0_config/dm.ini' full backupset '/dm7/backup/db_rac_full_bak_recover_dbmagic';
file dm.key not found, use default license!
checking if the RAC database under system path [+DMDATA/data/rac] is running....
EP [0] is checking....
EP [1] is checking....
EP[0] max_lsn: 76986
EP[0] adjust cur_lsn from [76986] to [77001]
BACKUP DATABASE [rac], execute......
CMD CHECK LSN......
BACKUP DATABASE [rac], collect dbf......
CMD CHECK ......
DBF BACKUP SUBS......
total 1 packages processed...
total 2 packages processed...
total 3 packages processed...
total 4 packages processed...
total 5 packages processed...
DBF BACKUP MAIN......
BACKUPSET [/dm7/backup/db_rac_full_bak_recover_dbmagic] END, CODE [0]......
META GENERATING......
total 9 packages processed...
total 9 packages processed!
CMD END.CODE:[0]
backup successfully!
time used: 3887.714(ms)

RMAN> show backupset '/dm7/backup/db_rac_full_bak_recover_dbmagic';
show backupset '/dm7/backup/db_rac_full_bak_recover_dbmagic';




system path:           +DMDATA/data/rac
db magic:              -1632052820
permanent magic:       450923536
rac node:              2
page check:            0
rlog encrypt:          0
external cipher[id/name]:  0/
external hash[id/name]:  0/
length in char:        0
use new hash:          1
page size:             8 KB
extent size:           16
case sensitive:        1
log page size:         512 B
unicode_flag/charset:  0
data version:          0x7000A
sys version:           V7.1.6.46-Build(2018.02.08-89107)ENT
enable policy:         0
archive flag:          1
blank_pad_mode:        0
crc_check:             TRUE
backupset sig:         BA
backupset version:     4009
database name:         rac
backup name:           DB_FULL_rac_20200616_154323_000689
backupset description:
backupset ID :         1145407476
parent backupset ID:     -1
META file size :       74240
compressed level:      0
encrypt type:          0
parallel num:          1
backup range:          database
mpp_timestamp:         1592293401
ddl_clone:             FALSE
mpp_flag:              FALSE
backup level:          offline
backup type:           full
without log:           FALSE
START_LSN:             76987
START_SEQ:             309
END_LSN:               77001
END_SEQ:               308
base START_LSN:        -1
base END_LSN:          -1
base name:
base backupset:
backup time:           2020-06-16 15:43:25
min trx start lsn:     76987
min exec ver:          0x0701060C
pkg size:              0x02000000



RAC EP:            0
RAC status:          OK
RAC begin lsn:       76987
RAC begin seq:       309
RAC end lsn:         77001
RAC end seq:         308
RAC base begin lsn:  -1
RAC base begin seq:  -1
RAC base end lsn:    -1
RAC base end seq:    -1

RAC EP:            1
RAC status:          OK
RAC begin lsn:       77002
RAC begin seq:       308
RAC end lsn:         77001
RAC end seq:         307
RAC base begin lsn:  -1
RAC base begin seq:  -1
RAC base end lsn:    -1
RAC base end seq:    -1


backupset directory: /dm7/backup/db_rac_full_bak_recover_dbmagic
backupset name:        db_rac_full_bak_recover_dbmagic
backup data file num:  5
backup piece num:      1


$file_seq |$size(KB) |$pos_desc                                               |$content_type
0         |26103     |db_rac_full_bak_recover_dbmagic.bak                     |DATA


$file_seq |$group_id |$group_name                      |$file_id  |$file_path                       |$mirror_path                     |$file_len
1         |0         |SYSTEM                           |0         |+DMDATA/data/rac/system.dbf      |                                 |134217728
2         |1         |ROLL                             |0         |+DMDATA/data/rac/roll.dbf        |                                 |134217728
3         |4         |MAIN                             |0         |+DMDATA/data/rac/main.dbf        |                                 |134217728
4         |5         |TS_FOR_DBF                       |0         |+DMDATA/data/rac/ts_for_dbf_01.dbf|                                 |134217728
5         |5         |TS_FOR_DBF                       |1         |+DMDATA/data/rac/ts_for_dbf_02.dbf|                                 |134217728


$file_seq |$file_path                       |$file_len           |$begin_lsn          |$begin_seqno        |$begin_rpag_off     |$end_lsn            |$end_seqno          |$create_time        |$close_time


show backupsets successfully.
time used: 10.655(ms)

2) 准备目标库,可以使用备份库,也可以重新生成库。这里是在别一台服务器上创建新库,重新生成库操作如下:

[dmdba@dmks ~]$ dminit path=/dm_home/dmdbms/data db_name=dameng_for_recover auto_overwrite=1 port_num=5336
initdb V7.1.6.46-Build(2018.02.08-89107)ENT
db version: 0x7000a
file dm.key not found, use default license!
License will expire in 14 day(s) on 2020-06-30

 log file path: /dm_home/dmdbms/data/dameng_for_recover/dameng_for_recover01.log


 log file path: /dm_home/dmdbms/data/dameng_for_recover/dameng_for_recover02.log

write to dir [/dm_home/dmdbms/data/dameng_for_recover].
create dm database success. 2020-06-16 16:03:18


[root@dmks root]# ./dm_service_installer.sh  -i /dm_home/dmdbms/data/dameng_for_recover/dm.ini -p dmrc -t dmserver
Move the service script file(/dm_home/dmdbms/bin/DmServicedmrc to /etc/rc.d/init.d/DmServicedmrc)
Finished to create the service (DmServicedmrc)

[root@dmks root]# service DmServicedmrc start
Starting DmServicedmrc: [ OK ]

[dmdba@dmks ~]$ disql SYSDBA/SYSDBA@localhost:5336

Server[localhost:5336]:mode is normal, state is open
login used time: 10.727(ms)
disql V7.1.6.46-Build(2018.02.08-89107)ENT
Connected to: DM 7.1.6.46
SQL> select permanent_magic;

LINEID     PERMANENT_MAGIC
---------- ---------------
1          -1238913195

used time: 0.793(ms). Execute id is 809.
SQL> select db_magic from v$rlog;

LINEID     DB_MAGIC
---------- -----------
1          1319824724

used time: 0.984(ms). Execute id is 810.

3)将备份集和归档日志文件复制到目标库所在主机上

[dmdba@dmrac1 backup]$ scp -r db_rac_full_bak_recover_dbmagic dmdba@10.10.10.187:/dm_home/dmdbms/backup/
The authenticity of host ‘10.10.10.187 (10.10.10.187)’ can’t be established.
RSA key fingerprint is 34:9a:d7:67:6d:be:20:45:21:ce:96:82:23:e5:e9:11.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘10.10.10.187’ (RSA) to the list of known hosts.
dmdba@10.10.10.187’s password:
db_rac_full_bak_recover_dbmagic.meta 100% 73KB 72.5KB/s 00:00
db_rac_full_bak_recover_dbmagic.bak 100% 25MB 25.5MB/s 00:00

[dmdba@dmrac1 data]$ scp -r local_arch dmdba@10.10.10.187:/dm_home/dmdbms/backup/
dmdba@10.10.10.187’s password:
ARCHIVE_LOCAL1_20200528171255857_0.log 100% 157KB 156.5KB/s 00:00
[dmdba@dmrac1 data]$ scp -r rac0_arch dmdba@10.10.10.187:/dm_home/dmdbms/backup/
dmdba@10.10.10.187’s password:
ARCHIVE_LOCAL1_20200615164953273_0.log 100% 160KB 160.0KB/s 00:00
ARCHIVE_LOCAL1_20200615165648166_0.log 100% 157KB 157.0KB/s 00:00
ARCHIVE_LOCAL1_20200528202150715_0.log 100% 277KB 277.0KB/s 00:00
ARCHIVE_LOCAL1_20200608151836879_0.log 100% 158KB 157.5KB/s 00:00
ARCHIVE_LOCAL1_20200609150852829_0.log 100% 157KB 157.0KB/s 00:00
ARCHIVE_LOCAL1_20200608152638617_0.log 100% 159KB 158.5KB/s 00:00
ARCHIVE_LOCAL1_20200609170732487_0.log 100% 161KB 160.5KB/s 00:00
ARCHIVE_LOCAL1_20200615172117341_0.log 100% 159KB 158.5KB/s 00:00
ARCHIVE_LOCAL1_20200615171042444_0.log 100% 159KB 159.0KB/s 00:00
ARCHIVE_LOCAL1_20200605154214367_0.log 100% 157KB 157.0KB/s 00:00
[dmdba@dmrac1 data]$ scp -r rac1_arch dmdba@10.10.10.187:/dm_home/dmdbms/backup/
dmdba@10.10.10.187’s password:
ARCH_REMOTE1_20200608152641970_1.log 100% 158KB 158.0KB/s 00:00
ARCH_REMOTE1_20200609170737070_1.log 100% 159KB 159.0KB/s 00:00
ARCH_REMOTE1_20200609150857056_1.log 100% 158KB 158.0KB/s 00:00
ARCH_REMOTE1_20200615172121038_1.log 100% 158KB 158.0KB/s 00:00
ARCH_REMOTE1_20200608151838201_1.log 100% 5632 5.5KB/s 00:00
ARCH_REMOTE1_20200528202146001_1.log 100% 158KB 158.0KB/s 00:00
ARCH_REMOTE1_20200615164957743_1.log 100% 158KB 158.0KB/s 00:00
ARCH_REMOTE1_20200605154211189_1.log 100% 159KB 159.0KB/s 00:00
ARCH_REMOTE1_20200615165652504_1.log 100% 158KB 158.0KB/s 00:00
ARCH_REMOTE1_20200615171046600_1.log 100% 158KB 158.0KB/s 00:00
[dmdba@dmrac1 data]$

4)检验备份

RMAN> check backupset '/dm_home/dmdbms/backup/db_rac_full_bak_recover_dbmagic';
check backupset '/dm_home/dmdbms/backup/db_rac_full_bak_recover_dbmagic';
CMD END.CODE:[0]
check backupset successfully.
time used: 5.877(ms)

5)还原数据库

RMAN> restore database '/dm_home/dmdbms/data/dameng_for_recover/dm.ini' from backupset '/dm_home/dmdbms/backup/db_rac_full_bak_recover_dbmagic';
restore database '/dm_home/dmdbms/data/dameng_for_recover/dm.ini' from backupset '/dm_home/dmdbms/backup/db_rac_full_bak_recover_dbmagic';
file dm.key not found, use default license!
checking if the database under system path [/dm_home/dmdbms/data/dameng_for_recover] is running...[4].
checking if the database under system path [/dm_home/dmdbms/data/dameng_for_recover] is running...[3].
checking if the database under system path [/dm_home/dmdbms/data/dameng_for_recover] is running...[2].
checking if the database under system path [/dm_home/dmdbms/data/dameng_for_recover] is running...[1].
checking if the database under system path [/dm_home/dmdbms/data/dameng_for_recover] is running...[0].
checking if the database under system path [/dm_home/dmdbms/data/dameng_for_recover] is running, write dmrman info.
RESTORE DATABASE  CHECK......
RESTORE DATABASE , dbf collect......
RESTORE DATABASE , dbf refresh ......
RESTORE BACKUPSET [/dm_home/dmdbms/backup/db_rac_full_bak_recover_dbmagic] START......
total 5 packages processed...
RESTORE DATABASE , UPDATE ctl file......
RESTORE DATABASE , REBUILD key file......
RESTORE DATABASE , CHECK db info......
RESTORE DATABASE , UPDATE db info......
total 7 packages processed!
CMD END.CODE:[0]
restore successfully.
time used: 16226.253(ms)

6)恢复数据库

RMAN> recover database '/dm_home/dmdbms/data/dameng_for_recover/dm.ini'  update db_magic ;
recover database '/dm_home/dmdbms/data/dameng_for_recover/dm.ini' update db_magic;
checking if the database under system path [/dm_home/dmdbms/data/dameng_for_recover] is running...[4].
checking if the database under system path [/dm_home/dmdbms/data/dameng_for_recover] is running...[3].
checking if the database under system path [/dm_home/dmdbms/data/dameng_for_recover] is running...[2].
checking if the database under system path [/dm_home/dmdbms/data/dameng_for_recover] is running...[1].
checking if the database under system path [/dm_home/dmdbms/data/dameng_for_recover] is running...[0].
checking if the database under system path [/dm_home/dmdbms/data/dameng_for_recover] is running, write dmrman info.
EP[0] max_lsn: 76986
[-8308]:forbid updating database magic, need redo log

这里使用update db_magic选项出错了,提示需要重做日志文件。下面去掉update db_magic选项,因为每次还原恢复时也是一定会更新db_magic值。

RMAN> recover database '/dm_home/dmdbms/data/dameng_for_recover/dm.ini' with archivedir '/dm_home/dmdbms/backup/rac0_arch','/dm_home/dmdbms/backup/rac1_arch';
recover database '/dm_home/dmdbms/data/dameng_for_recover/dm.ini' with archivedir '/dm_home/dmdbms/backup/rac0_arch' , '/dm_home/dmdbms/backup/rac1_arch';
checking if the database under system path [/dm_home/dmdbms/data/dameng_for_recover] is running...[4].
checking if the database under system path [/dm_home/dmdbms/data/dameng_for_recover] is running...[3].
checking if the database under system path [/dm_home/dmdbms/data/dameng_for_recover] is running...[2].
checking if the database under system path [/dm_home/dmdbms/data/dameng_for_recover] is running...[1].
checking if the database under system path [/dm_home/dmdbms/data/dameng_for_recover] is running...[0].
checking if the database under system path [/dm_home/dmdbms/data/dameng_for_recover] is running, write dmrman info.
EP[0] max_lsn: 76986
min_ckpt_lsn =
The RAC recover total redo 0 ptx
EP(0) slot ctl page(1, 0, 16) trxid = 9986
EP(1) slot ctl page(1, 0, 17) trxid = 8457
EP[0] Recover LSN from 76987 to 77001.
EP[1] Recover LSN from 77002 to 77001.
Recover from archive log finished, time used:0.006s.
recover successfully!
time used: 7027.075(ms)

7)检查数据,查询表t1的数据可以验证数据恢复成功

[dmdba@dmks ~]$ disql SYSDBA/SYSDBA@localhost:5336

Server[localhost:5336]:mode is normal, state is open
login used time: 10.727(ms)
disql V7.1.6.46-Build(2018.02.08-89107)ENT
Connected to: DM 7.1.6.46
SQL> desc t1;

LINEID     NAME TYPE$       NULLABLE
---------- ---- ----------- --------
1          ID   INTEGER     Y
2          NAME VARCHAR(20) Y

used time: 20.311(ms). Execute id is 3.
SQL> select * from t1;

LINEID     ID          NAME
---------- ----------- ----
1          1           jy
2          2           hy

used time: 1.138(ms). Execute id is 4.

8)检查db_magic,还原恢复后db_magic从-1632052820变成了1009602608,

SQL> select permanent_magic;

LINEID     PERMANENT_MAGIC
---------- ---------------
1          450923536

used time: 1.042(ms). Execute id is 5.
SQL> select db_magic from v$rlog;

LINEID     DB_MAGIC
---------- -----------
1          1009602608

used time: 1.332(ms). Execute id is 6.

DM7配置远程归档

配置远程归档
与本地归档一样,远程归档也是配置在dmarch.ini文件中,远程归档相关的主要几个配置项包括:
1. ARCH_TYPE设置为REMOTE,表示是远程归档
2. ARCH_DEST设置为远程数据库实例名,表示REDO日志发送到这个节点
3. ARCH_INCOMING_PATH设置为本地存储路径,用于保存ARCH_DEST实例发送的REDO日志

一般建议DMRAC集群中的节点,在配置本地归档之外,再交叉配置集群中所有其他节点的远程归档。查询V$DM_ARCH_INI、V$ARCH_STATUS等动态视图可以获取归档配置以及归档状态等相关信息。下面以两节点DMRAC集群为例,说明如何配置远程归档,RAC0和RAC1是DMRAC集群中的两个实例,交叉进行REMOTE归档配置:

1)修改数据库为MOUNT状态。
rac0实例:

SQL> alter database mount;
executed successfully
used time: 00:00:01.852. Execute id is 0.

rac1实例:

SQL> alter database mount;
executed successfully
used time: 00:00:01.853. Execute id is 0.

2)配置本地归档。
rac0实例:

SQL> alter database add archivelog 'dest=/dm7/data/rac0_arch,type=local,file_size=256,space_limit=0';
executed successfully
used time: 3.459(ms). Execute id is 0.

rac1实例:

SQL> alter database add archivelog 'dest=/dm7/data/rac1_arch,type=local,file_size=256,space_limit=0';
executed successfully
used time: 3.000(ms). Execute id is 0.

3)配置远程归档。
rac0实例:

SQL> alter database add archivelog 'dest=RAC1,type=remote,file_size=256,space_limit=0,incoming_path=/dm7/data/rac1_arch';
executed successfully
used time: 2.836(ms). Execute id is 0.

rac1实例:

SQL> alter database add archivelog 'dest=RAC0,type=remote,file_size=256,space_limit=0,incoming_path=/dm7/data/rac0_arch';
executed successfully
used time: 2.865(ms). Execute id is 0.

4)开启归档模式。
rac0实例:

SQL> alter database archivelog;
executed successfully
used time: 11.553(ms). Execute id is 0.

rac1实例:

SQL> alter database archivelog;
executed successfully
used time: 10.644(ms). Execute id is 0.

5)修改数据库为OPEN状态。
rac0实例:

SQL> alter database open;
executed successfully
used time: 00:00:01.362. Execute id is 0.

rac1实例:

SQL> alter database open;
executed successfully
used time: 00:00:02.341. Execute id is 0.

6)查看归档配置文件dmarch.ini
rac0实例:

[dmdba@dmrac1 rac0_config]$ pwd
/dm7/data/rac0_config
[dmdba@dmrac1 rac0_config]$ cat dmarch.ini
#DaMeng Database Archive Configuration file
#this is comments

        ARCH_WAIT_APPLY                 = 1

[ARCHIVE_LOCAL1]
        ARCH_TYPE                       = LOCAL
        ARCH_DEST                       = /dm7/data/rac0_arch
        ARCH_FILE_SIZE                  = 256
        ARCH_SPACE_LIMIT                = 0

[ARCH_REMOTE1]
        ARCH_TYPE                       = REMOTE
        ARCH_DEST                       = RAC1
        ARCH_INCOMING_PATH              = /dm7/data/rac1_arch
        ARCH_FILE_SIZE                  = 256
        ARCH_SPACE_LIMIT                = 0

rac1实例:

[dmdba@dmrac2 rac1_config]$ pwd
/dm7/data/rac1_config
[dmdba@dmrac2 rac1_config]$ cat dmarch.ini
#DaMeng Database Archive Configuration file
#this is comments

        ARCH_WAIT_APPLY                 = 1

[ARCHIVE_LOCAL1]
        ARCH_TYPE                       = LOCAL
        ARCH_DEST                       = /dm7/data/rac1_arch
        ARCH_FILE_SIZE                  = 256
        ARCH_SPACE_LIMIT                = 0

[ARCH_REMOTE1]
        ARCH_TYPE                       = REMOTE
        ARCH_DEST                       = RAC0
        ARCH_INCOMING_PATH              = /dm7/data/rac0_arch
        ARCH_FILE_SIZE                  = 256
        ARCH_SPACE_LIMIT                = 0

7)检查ARCH_INI参数是否为1
rac0实例:

SQL> select * from v$dm_ini where para_name='ARCH_INI';

LINEID     PARA_NAME PARA_VALUE MIN_VALUE MAX_VALUE MPP_CHK SESS_VALUE FILE_VALUE DESCRIPTION PARA_TYPE
---------- --------- ---------- --------- --------- ------- ---------- ---------- ----------- ---------
1          ARCH_INI  1          0         1         N       1          1          dmarch.ini  SYS

used time: 10.267(ms). Execute id is 9.

rac1实例:

SQL> select * from v$dm_ini where para_name='ARCH_INI';

LINEID     PARA_NAME PARA_VALUE MIN_VALUE MAX_VALUE MPP_CHK SESS_VALUE FILE_VALUE DESCRIPTION PARA_TYPE
---------- --------- ---------- --------- --------- ------- ---------- ---------- ----------- ---------
1          ARCH_INI  1          0         1         N       1          1          dmarch.ini  SYS

used time: 30.225(ms). Execute id is 19.

8)检查是否生成了归档日志文件(在打开数据库时就会生成)
本地归档日志文件
rac0实例:

[dmdba@dmrac1 rac0_arch]$ pwd
/dm7/data/rac0_arch
[dmdba@dmrac1 rac0_arch]$ ls -lrt
total 136
-rw-r--r-- 1 dmdba dinstall 268435456 May 28 20:21 ARCHIVE_LOCAL1_20200528202150715_0.log

rac1实例:

[dmdba@dmrac2 rac1_arch]$ pwd
/dm7/data/rac1_arch
[dmdba@dmrac2 rac1_arch]$ ls -lrt
total 136
-rw-r--r-- 1 dmdba dinstall 268435456 May 28 20:21 ARCHIVE_LOCAL1_20200528202151877_1.log

远程归档日志文件
rac0实例:

[dmdba@dmrac1 rac1_arch]$ pwd
/dm7/data/rac1_arch
[dmdba@dmrac1 rac1_arch]$ ls -lrt
total 136
-rw-r--r-- 1 dmdba dinstall 268435456 May 28 20:21 ARCH_REMOTE1_20200528202146001_1.log

rac1实例:

[dmdba@dmrac2 rac0_arch]$ pwd
/dm7/data/rac0_arch
[dmdba@dmrac2 rac0_arch]$ ls -lrt
total 136
-rw-r--r-- 1 dmdba dinstall 268435456 May 28 20:21 ARCH_REMOTE1_20200528202156601_0.log

DM7配置本地归档

配置本地归档
归档配置有两种方式:一是联机归档配置,数据库服务器启动情况下,使用SQL语句完成dmarch.ini和ARCH_INI配置;二是手动配置归档,数据库服务器未启动的情况下,手动编写dmarch.ini文件和设置参数ARCH_INI。下面将分别说明这两种归档如何配置。

联机配置归档
使用SQL语句配置本地归档。语法如下:
ALTER DATABASE <ADD|MODIFY|DELETE> ARCHIVELOG <归档配置语句>;
<归档配置语句>::= ‘DEST = <归档目标>,TYPE = <归档类型>’
<归档类型>::=<local方式>|<remote方式>
<local方式>::=LOCAL [,FILE_SIZE = <文件大小>][,SPACE_LIMIT = <空间大小限制>]
<remote方式>::=REMOTE [,FILE_SIZE = <文件大小>][,SPACE_LIMIT = <空间大小限制>],INCOMING_PATH = <归档存放路径>

使用SQL语句开启和关闭归档模式。
语法如下:

ALTER DATABASE ARCHIVELOG | NOARCHIVELOG;

在归档模式下,不允许删除本地归档。
例如,RAC环境联机归档配置如下:
1)修改数据库为MOUNT状态。
节点1:

SQL> alter database mount;
executed successfully
used time: 00:00:01.852. Execute id is 0.

节点2:

SQL> alter database mount;
executed successfully
used time: 00:00:01.853. Execute id is 0.

2)配置本地归档。
节点1:

SQL> alter database add archivelog 'dest=/dm7/data/local_arch,type=local,file_size=256,space_limit=0';
executed successfully
used time: 3.110(ms). Execute id is 0.

节点2:

SQL> alter database add archivelog 'dest=/dm7/data/local_arch,type=local,file_size=256,space_limit=0';
executed successfully
used time: 3.171(ms). Execute id is 0.

3)开启归档模式。
节点1:

SQL> alter database archivelog;
executed successfully
used time: 11.986(ms). Execute id is 0.

节点2:

SQL> alter database archivelog;
executed successfully
used time: 11.780(ms). Execute id is 0.

4)修改数据库为OPEN状态。
节点1:

SQL> alter database open;
executed successfully
used time: 00:00:01.466. Execute id is 0.

节点2:

SQL> alter database open;
executed successfully
used time: 711.999(ms). Execute id is 0.

5)查看归档配置文件dmarch.ini
节点1:

[dmdba@dmrac1 rac0_config]$ pwd
/dm7/data/rac0_config
[dmdba@dmrac1 rac0_config]$ cat dmarch.ini
#DaMeng Database Archive Configuration file
#this is comments

        ARCH_WAIT_APPLY                 = 1    --性能模式,是否等待重演完成,取值0:高性能模式, 1:数据一致模式。本地归档取值NULL

[ARCHIVE_LOCAL1]
        ARCH_TYPE                       = LOCAL
        ARCH_DEST                       = /dm7/data/local_arch
        ARCH_FILE_SIZE                  = 256
        ARCH_SPACE_LIMIT                = 0

节点2:

[dmdba@dmrac2 rac1_config]$ pwd
/dm7/data/rac1_config
[dmdba@dmrac2 rac1_config]$ cat dmarch.ini
#DaMeng Database Archive Configuration file
#this is comments

        ARCH_WAIT_APPLY                 = 1       --性能模式,是否等待重演完成,取值0:高性能模式, 1:数据一致模式。本地归档取值NULL

[ARCHIVE_LOCAL1]
        ARCH_TYPE                       = LOCAL
        ARCH_DEST                       = /dm7/data/local_arch
        ARCH_FILE_SIZE                  = 256
        ARCH_SPACE_LIMIT                = 0

6)检查ARCH_INI参数是否为1
节点1:

SQL> select * from v$dm_ini where para_name='ARCH_INI';

LINEID     PARA_NAME PARA_VALUE MIN_VALUE MAX_VALUE MPP_CHK SESS_VALUE FILE_VALUE DESCRIPTION PARA_TYPE
---------- --------- ---------- --------- --------- ------- ---------- ---------- ----------- ---------
1          ARCH_INI  1          0         1         N       1          1          dmarch.ini  SYS

used time: 30.251(ms). Execute id is 5.

节点2:

SQL> select * from v$dm_ini where para_name='ARCH_INI';

LINEID     PARA_NAME PARA_VALUE MIN_VALUE MAX_VALUE MPP_CHK SESS_VALUE FILE_VALUE DESCRIPTION PARA_TYPE
---------- --------- ---------- --------- --------- ------- ---------- ---------- ----------- ---------
1          ARCH_INI  1          0         1         N       1          1          dmarch.ini  SYS

used time: 29.498(ms). Execute id is 13.

禁用归档
1修改数据库为MOUNT状态。
节点1:

SQL> alter database mount;
executed successfully
used time: 00:00:01.858. Execute id is 0.

节点2:

SQL> alter database mount;
executed successfully
used time: 00:00:01.858. Execute id is 0.

2.禁用归档
节点1:

SQL> alter database noarchivelog;
executed successfully
used time: 42.916(ms). Execute id is 0.

节点2:

SQL> alter database noarchivelog;
executed successfully
used time: 42.533(ms). Execute id is 0.

3.删除配置的本地归档设置
节点1:

SQL> alter database delete archivelog 'dest=/dm7/data/local_arch,type=local,file_size=256,space_limit=0';
executed successfully
used time: 0.931(ms). Execute id is 0.

节点2:

SQL> alter database delete archivelog 'dest=/dm7/data/local_arch,type=local,file_size=256,space_limit=0';
executed successfully
used time: 0.952(ms). Execute id is 0.

4.删除之前生成的归档日志文件(可选项)
节点1:

SQL> sf_archivelog_delete_before_time(sysdate+1);
DMSQL executed successfully
used time: 2.907(ms). Execute id is 7.

节点2:

SQL> sf_archivelog_delete_before_time(sysdate+1);
DMSQL executed successfully
used time: 3.542(ms). Execute id is 16.

5.打开数据库
节点1:

SQL> alter database open;
executed successfully
used time: 00:00:01.609. Execute id is 0.

节点2:

SQL> alter database open;
executed successfully
used time: 00:00:02.304. Execute id is 0.

6.检查归档配置文件dmarch.ini的内容是否已经被删除
节点1:

[dmdba@dmrac1 rac0_config]$ cat dmarch.ini
#DaMeng Database Archive Configuration file
#this is comments

        ARCH_WAIT_APPLY      = 1        --性能模式,是否等待重演完成,取值0:高性能模式, 1:数据一致模式。本地归档取值NULL

节点2:

[dmdba@dmrac2 rac1_config]$ cat dmarch.ini
#DaMeng Database Archive Configuration file
#this is comments

        ARCH_WAIT_APPLY      = 1        --性能模式,是否等待重演完成,取值0:高性能模式, 1:数据一致模式。本地归档取值NULL

7.检查ARCH_INI参数是否为0
节点1:

SQL> select * from v$dm_ini where para_name='ARCH_INI';

LINEID     PARA_NAME PARA_VALUE MIN_VALUE MAX_VALUE MPP_CHK SESS_VALUE FILE_VALUE DESCRIPTION PARA_TYPE
---------- --------- ---------- --------- --------- ------- ---------- ---------- ----------- ---------
1          ARCH_INI  0          0         1         N       0          0          dmarch.ini  SYS

used time: 7.086(ms). Execute id is 8.

节点2:

SQL> select * from v$dm_ini where para_name='ARCH_INI';

LINEID     PARA_NAME PARA_VALUE MIN_VALUE MAX_VALUE MPP_CHK SESS_VALUE FILE_VALUE DESCRIPTION PARA_TYPE
---------- --------- ---------- --------- --------- ------- ---------- ---------- ----------- ---------
1          ARCH_INI  0          0         1         N       0          0          dmarch.ini  SYS

used time: 14.366(ms). Execute id is 18.

手动配置归档示例如下:
1)手动编辑dmarch.ini文件,之后保存在dm.ini所在的目录。dmarch.ini文件内容如下:

[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm7/data/local_arch
ARCH_FILE_SIZE = 256
ARCH_SPACE_LIMIT = 0

2)编辑dm.ini文件,设置参数ARCH_INI=1,保存。
3)启动服务器,服务器已运行于归档模式。

多路归档,指配置多个本地归档。配置的第一个归档,称为第一路归档,后面依次是第二路、第三路……

达梦使用联机SQL执行表空间还原(二)

使用disql执行表空间还原(一)已经对表空间的最基本最常用的还原场景进行了描述,这里将介绍一些不常用且较复杂的还原场景。主要内容包括:
1指定归档目录还原
2还原表空间中指定的数据文件
3指定映射文件还原

1.指定归档目录还原
由于磁盘空间的影响,服务器归档可能出现分布在多个目录的情况。出现这种情况时就需要指定归档目录还原。还原时指定多个归档目录的操作步骤如下:
1) 备份用户表空间MAIN。

SQL> backup tablespace main to ts_main_bak_for_arch backupset 'E:\dmdbms\backup\ts_main_bak_for_arch';
操作已执行
已用时间: 00:00:01.116. 执行号:80.

2) 校验备份。此步骤可选。

SQL> select sf_bakset_check('disk','E:\dmdbms\backup\ts_main_bak_for_arch');

行号       SF_BAKSET_CHECK('disk','E:\dmdbms\backup\ts_main_bak_for_arch')
---------- ---------------------------------------------------------------
1          1

已用时间: 18.229(毫秒). 执行号:81.
3) 还原用户表空间MAIN。假设归档日志分布在目录为E:\dmdbms\data\arch和E:\dmdbms\data\arch1两个目录下。
SQL> alter tablespace main offline;
操作已执行
已用时间: 111.415(毫秒). 执行号:82.
SQL> restore tablespace main from backupset 'E:\dmdbms\backup\ts_main_bak_for_arch' with backupdir 'E:\dmdbms\data\arch','E:\dmdbms\data\arch1';
操作已执行
已用时间: 414.930(毫秒). 执行号:83.
SQL> alter tablespace main online;
操作已执行
已用时间: 27.742(毫秒). 执行号:84.

2.还原表空间中指定的数据文件
DM7不仅支持从数据库备份和表空间备份中还原表空间,还支持还原表空间中特定的数据文件。若表空间已经被破坏,则不允许执行特定数据文件的还原。使用数据库备份还原表空间或表空间中的数据文件与使用表空间备份操作类似,区别在于RESTORE语句中指定的备份集为数据库备份集。因此,本节仅以使用表空间备份为例说明还原数据文件的操作步骤。
1) 创建待备份的表空间TS_FOR_RES_01, 并在库目录下创建3个数据文件。

SQL> create tablespace ts_for_res_01 datafile 'ts_for_res_01_01.dbf' size 128;
操作已执行
已用时间: 83.275(毫秒). 执行号:87.
SQL> alter tablespace ts_for_res_01 add datafile 'ts_for_res_01_02.dbf' size 128;
操作已执行
已用时间: 38.806(毫秒). 执行号:88.
SQL> alter tablespace ts_for_res_01 add datafile 'ts_for_res_01_03.dbf' size 128;
操作已执行
已用时间: 42.169(毫秒). 执行号:89.

2) 备份表空间。

SQL> backup tablespace ts_for_res_01 backupset 'E:\dmdbms\backup\ts_for_res_01_bak';
操作已执行
已用时间: 00:00:01.161. 执行号:93.

3) 查询数据文件的文件编号或路径。还原指定的数据文件需知道数据文件对应的文件编号或路径,相关信息可通过查询动态视图V$DATAFILE获取。

SQL> select group_id,id,path from v$datafile;

行号       GROUP_ID    ID          PATH
---------- ----------- ----------- ----------------------------------------
1          0           0           E:\dmdbms\data\jydm\SYSTEM.DBF
2          1           0           E:\dmdbms\data\jydm\ROLL.DBF
3          3           0           E:\dmdbms\data\jydm\TEMP.DBF
4          4           0           E:\dmdbms\data\jydm\MAIN.DBF
5          5           0           E:\dmdbms\data\jydm\BOOKSHOP.DBF
6          6           0           E:\dmdbms\data\jydm\DMHR.DBF
7          7           0           E:\dmdbms\data\jydm\ts_for_res_01_01.dbf
8          7           1           E:\dmdbms\data\jydm\ts_for_res_01_02.dbf
9          7           2           E:\dmdbms\data\jydm\ts_for_res_01_03.dbf

9 rows got

已用时间: 1.655(毫秒). 执行号:94.

如果想还原ts_for_res_01_02.dbf和ts_for_res_01_03.dbf两个数据文件,通过查询结果可知它们的文件编号(1和2)以及相应的路径。

4) 校验备份。此步骤为可选。

SQL> select sf_bakset_check('disk','E:\dmdbms\backup\ts_for_res_01_bak');

行号       SF_BAKSET_CHECK('disk','E:\dmdbms\backup\ts_for_res_01_bak')
---------- ------------------------------------------------------------
1          1

已用时间: 32.108(毫秒). 执行号:95.

5) 通过文件编号还原表空间TS_FOR_RES_01中的数据文件ts_for_res_01_02.dbf和ts_for_res_01_03.dbf。

SQL> alter tablespace ts_for_res_01 offline;
操作已执行
已用时间: 105.157(毫秒). 执行号:96.
SQL> restore tablespace ts_for_res_01 datafile 1,2 from backupset 'E:\dmdbms\backup\ts_for_res_01_bak';
操作已执行
已用时间: 358.862(毫秒). 执行号:97.
如果不想使用文件编号还原,使用指定数据文件路径还原数据文件的语句如下:
SQL> restore tablespace ts_for_res_01 datafile 'E:\dmdbms\data\jydm\ts_for_res_01_02.dbf','E:\dmdbms\data\jydm\ts_for_res_01_03.dbf' from backupset 'E:\dmdbms\backup\ts_for_res_01_bak';
操作已执行
已用时间: 344.008(毫秒). 执行号:98.
SQL> alter tablespace ts_for_res_01 online;
操作已执行
已用时间: 24.644(毫秒). 执行号:99.

3.指定映射文件还原
映射文件用于指定存放还原目标路径,即备份集里面的数据文件路径。指定映射文件还原可以重新指定备份集中数据文件的路径。下面以MAIN表空间为例说明如何使用映射文件还原。
1) 备份MAIN表空间。

SQL>BACKUP TABLESPACE MAIN BACKUPSET '/home/dm_bak/ts_bak_for_map';

2) 使用DMRMAN的DUMP命令生成映射文件ts_bak_mapped.txt,存至’E:\dmdbms\backup\目录。文件中指定数据文件MAIN.DBF还原后的路径为E:\dmdbms\data\jydm\MAIN.DBF。

RMAN> dump backupset  'E:\dmdbms\backup\ts_main_bak_for_map'  device type disk mapped file  'E:\dmdbms\backup\ts_bak_mapped.txt';
dump backupset 'E:\dmdbms\backup\ts_main_bak_for_map' device type disk mapped file 'E:\dmdbms\backup\ts_bak_mapped.txt';
dump mapped file successfully.
time used: 28.360(ms)



/**************************************************************/
/***  Delete the unnecessary modified groups                 **/
/***  Modify the data_path or mirror_path only in one group  **/
/**************************************************************/

/**=============================================================**/
/*[jydm_MAIN_FIL_0]*/
fil_id         = 0
ts_id          = 4
ts_name        = MAIN
data_path      = E:\dmdbms\data\jydm\MAIN.DBF
mirror_path    =

/***************************** END ****************************/

3) 还原MAIN表空间。

SQL> alter tablespace main offline;
操作已执行
已用时间: 119.506(毫秒). 执行号:102.
SQL> select * from tab_for_res_2;
select * from tab_for_res_2;
[-3408]:表空间[MAIN]处于脱机状态.
已用时间: 1.372(毫秒). 执行号:0.
SQL> restore tablespace main from backupset 'E:\dmdbms\backup\ts_main_bak_for_map' mapped file 'E:\dmdbms\backup\ts_bak_mapped.txt';
操作已执行
已用时间: 377.253(毫秒). 执行号:104.
SQL> alter tablespace main online;
操作已执行
已用时间: 17.211(毫秒). 执行号:105.
SQL> select * from tab_for_res_2;

行号       C1
---------- -----------
1          1
2          2
3          3
4          4
5          5
6          6
7          7
8          8
9          9
10         10

10 rows got

已用时间: 2.604(毫秒). 执行号:106.

达梦使用联机SQL执行表空间还原(一)

使用disql执行表空间还原
介绍使用disql工具如何还原表空间。主要内容包括:
1.使用表空间完全备份还原表空间
2.使用表空间增量备份还原表空间
3.使用数据库备份还原表空间

1.使用表空间完全备份还原表空间
表空间的还原、恢复操作是一次性完成,因此还原后不需要执行恢复操作。使用表空间完全备份还原表空间的完整步骤如下:
1) 配置归档。
2) 保证数据库处于OPEN或MOUNT状态。
3) 备份表空间。

SQL> backup tablespace main to ts_main_bak backupset 'E:\dmdbms\backup\ts_main_bak';
操作已执行
已用时间: 00:00:01.069. 执行号:9.

4) 校验表空间备份。此步骤为可选,如果确定备份文件合法可不进行备份校验。

SQL> select sf_bakset_check('disk','E:\dmdbms\backup\ts_main_bak');

行号       SF_BAKSET_CHECK('disk','E:\dmdbms\backup\ts_main_bak')
---------- ------------------------------------------------------
1          1

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

5) 修改表空间为脱机。

SQL> alter tablespace main offline;
操作已执行
已用时间: 137.581(毫秒). 执行号:11.

6) 还原表空间。

SQL> restore tablespace main from backupset 'E:\dmdbms\backup\ts_main_bak';
操作已执行
已用时间: 276.897(毫秒). 执行号:12.

7) 修改表空间为联机。

SQL> alter tablespace main online;
操作已执行
已用时间: 17.971(毫秒). 执行号:13.

2.使用表空间增量备份还原表空间
在增量备份与基备份同目录情况下,使用增量备份还原表空间步骤与完全备份一致。当增量备份与基备份不在同一个目录下时需要使用RESTORE TABLESPACE…WITH BACKUPDIR语句还原。这里以后面一种情况为例说明使用增量备份还原表空间。步骤如下:
1) 配置归档。
2) 保证数据库处于OPEN或MOUNT状态。
3) 完全备份表空间。

SQL> backup tablespace main to ts_main_full_bak backupset 'E:\dmdbms\backup\ts_main_full_bak';
操作已执行
已用时间: 00:00:01.095. 执行号:35.

4) 多次增量备份表空间。

SQL> begin
2   for i in 1 .. 100 loop
3    insert into t1 values(i);
4   end loop;
5   commit;
6   end;
7   /
DMSQL 过程已成功完成
已用时间: 3.383(毫秒). 执行号:36.
SQL> backup tablespace main increment with backupdir 'E:\dmdbms\backup\ts_main_full_bak' backupset 'E:\dmdbms\backup1\ts_main_incr_bak_01';
操作已执行
已用时间: 00:00:01.079. 执行号:37.


SQL> begin
2   for i in 101 .. 200 loop
3   insert into t1 values(i);
4   end loop;
5   end;
6   /
DMSQL 过程已成功完成
已用时间: 1.274(毫秒). 执行号:38.
SQL> alter system switch logfile;
操作已执行
已用时间: 14.166(毫秒). 执行号:0.
SQL> backup tablespace main increment with backupdir 'E:\dmdbms\backup\ts_main_full_bak','E:\dmdbms\backup1\ts_main_incr_bak_01' backupset 'E:\dmdbms\backup2\ts_main_incr_bak_02';
操作已执行
已用时间: 00:00:01.081. 执行号:39.

5) 校验表空间备份。此步骤为可选,如果确定备份文件合法可不进行备份校验。

SQL> select sf_bakset_check('disk','E:\dmdbms\backup\ts_main_full_bak');

行号       SF_BAKSET_CHECK('disk','E:\dmdbms\backup\ts_main_full_bak')
---------- -----------------------------------------------------------
1          1

已用时间: 20.931(毫秒). 执行号:40.
SQL> select sf_bakset_check('disk','E:\dmdbms\backup1\ts_main_incr_bak_01');

行号       SF_BAKSET_CHECK('disk','E:\dmdbms\backup1\ts_main_incr_bak_01')
---------- ---------------------------------------------------------------
1          1

已用时间: 31.184(毫秒). 执行号:41.
SQL> select sf_bakset_check('disk','E:\dmdbms\backup2\ts_main_incr_bak_02');

行号       SF_BAKSET_CHECK('disk','E:\dmdbms\backup2\ts_main_incr_bak_02')
---------- ---------------------------------------------------------------
1          1

已用时间: 25.171(毫秒). 执行号:42.

6) 修改表空间为脱机

SQL> alter tablespace main offline;
操作已执行
已用时间: 98.420(毫秒). 执行号:43.

7) 使用增量备份E:\dmdbms\backup2\ts_main_incr_bak_02还原表空间。

SQL> restore tablespace main from backupset 'E:\dmdbms\backup2\ts_main_incr_bak_02' with backupdir 'E:\dmdbms\backup\ts_main_full_bak','E:\dmdbms\backup1\ts_main_incr_bak_01';
操作已执行
已用时间: 370.046(毫秒). 执行号:44.

8) 修改表空间为联机。

SQL> alter tablespace main online;
操作已执行
已用时间: 15.717(毫秒). 执行号:45.
SQL> select count(*) from t1;

行号       COUNT(*)
---------- --------------------
1          200

已用时间: 1.345(毫秒). 执行号:46.

3.使用数据库备份还原表空间
使用数据库备份还原表空间可以快速还原一个或多个表空间,而不影响数据库中其他的表空间和对象。在数据库中仅有特定的表空间损坏且没有表空间备份的情况下,可以选择使用此种方式还原。
具体步骤如下:
1) 配置归档。
2) 保证数据库处于OPEN或MOUNT状态。
3) 创建数据库完全备份。

SQL> backup database full to db_jydm_full_bak backupset 'E:\dmdbms\backup\ts_jydm_full_bak';
操作已执行
已用时间: 00:00:01.198. 执行号:50.

4) 校验表空间备份。此步骤为可选,如果确定备份文件合法可不进行备份校验。

SQL> select sf_bakset_check('disk','E:\dmdbms\backup\ts_jydm_full_bak');

行号       SF_BAKSET_CHECK('disk','E:\dmdbms\backup\ts_jydm_full_bak')
---------- -----------------------------------------------------------
1          1

已用时间: 46.115(毫秒). 执行号:51.

5) 修改表空间为脱机。

SQL> alter tablespace main offline;
操作已执行
已用时间: 96.596(毫秒). 执行号:52.

6) 还原表空间。

SQL> restore tablespace main from backupset 'E:\dmdbms\backup\ts_jydm_full_bak';
操作已执行
已用时间: 326.842(毫秒). 执行号:53.

7) 修改表空间为联机。

SQL> alter tablespace main online;
操作已执行
已用时间: 17.338(毫秒). 执行号:54.
SQL> select count(*) from t1;

行号       COUNT(*)
---------- --------------------
1          200

已用时间: 1.969(毫秒). 执行号:55.

DM7搭建读写分离集群

读写分离集群
环境说明
下列机器事先都安装了DM软件,安装路径为/dm7,执行程序保存在/dm7/bin目录中,数据存放路径为/dm7/data

机器名     IP地址                    初始状态                          操作系统    
18c1     10.13.13.171(对外)         主库 JY1                         redhat 6.7
         10.13.13.171(mal对内)



18c2     10.13.13.172(对外)
         10.13.13.171(mal对内)      备库 JY2                         redhat 6.7

dmks     10.13.13.187               确认监视器                       redhat 6.7



实例名       port_num             dw_port    mal_host                mal_port        mal_dw_port
jy1          5236                 5239       10.13.13.171          5237            5238
jy2          5236                 5239       10.13.13.172          5237            5238

数据准备
在主库机器上初始化数据库到目录/dm7/data:

[dmdba@18c1 bin]$ ./dminit path=/dm7/data db_name=jy instance_name=jy1 port_num=5236 page_size=8 charset=0
initdb V7.1.6.46-Build(2018.02.08-89107)ENT 
db version: 0x7000a
file dm.key not found, use default license!
License will expire in 14 day(s) on 2020-06-17

 log file path: /dm7/data/jy/jy01.log


 log file path: /dm7/data/jy/jy02.log

write to dir [/dm7/data/jy].
create dm database success. 2020-06-03 16:01:44

注册服务用于启动数据库

[root@18c1 root]# ./dm_service_installer.sh -i /dm7/data/jy/dm.ini -p jy1 -t dmserver
ln -s '/usr/lib/systemd/system/DmServicejy1.service' '/etc/systemd/system/multi-user.target.wants/DmServicejy1.service'
Finished to create the service (DmServicejy1)

正常启动数据库并正常关闭

[root@18c1 root]# service DmServicejy1 start
Redirecting to /bin/systemctl start  DmServicejy1.service
[root@18c1 root]# ps -ef | grep dmserver
dmdba    29989     1 13 16:04 ?        00:00:04 /dm7/bin/dmserver /dm7/data/jy/dm.ini -noconsole
root     30292  3890  0 16:05 pts/1    00:00:00 grep --color=auto dmserver
[dmdba@18c1 bin]$ ./disql SYSDBA/SYSDBA

Server[LOCALHOST:5236]:mode is normal, state is open
login used time: 8.010(ms)
disql V7.1.6.46-Build(2018.02.08-89107)ENT 
Connected to: DM 7.1.6.46
SQL> exit

[root@18c1 root]# service DmServicejy1 stop
Redirecting to /bin/systemctl stop  DmServicejy1.service

一.配置操作
主库
配置dm.ini文件,配置以下参数

[dmdba@18c1 jy]$ vi dmmal.ini
INSTANCE_NAME = JY1
PORT_NUM = 5236                             
DW_PORT = 5239                              
DW_ERROR_TIME = 60                         
ALTER_MODE_STATUS = 0                       
ENABLE_OFFLINE_TS = 2                       
MAL_INI = 1                                
ARCH_INI = 1                               
HA_INST_CHECK_FLAG = 1                     
RLOG_SEND_APPLY_MON = 64                   

配置dmmal.ini文件
配置MAL系统,各主备库的dmmal.ini配置必须完全一致,MAL_HOST使用内部网络IP,MAL_PORT与dm.ini中PORT_NUM使用不同的端口值,MAL_DW_PORT是各实例对应的守护进程之间,以及守护进程和监视器之间的通信端口,配置如下:

[dmdba@18c1 jy]$ vi dmmal.ini
MAL_CHECK_INTERVAL = 5
MAL_CONN_FAIL_INTERVAL = 5
[MAL_INST1]
MAL_INST_NAME = JY1
MAL_HOST = 10.13.13.171
MAL_PORT = 5237
MAL_INST_HOST = 10.13.13.171
MAL_INST_PORT = 5236
MAL_DW_PORT = 5238

[MAL_INST2]
MAL_INST_NAME = JY2
MAL_HOST = 10.13.13.172
MAL_PORT = 5237
MAL_INST_HOST = 10.13.13.172
MAL_INST_PORT = 5236
MAL_DW_PORT = 5238

配置dmarch.ini
修改dmarch.ini,配置本地归档和实时归档。除了本地归档外,其他归档配置项中的ARCH_DEST表示实例是Primary模式时,需要同步归档数据的目标实例名。当前实例DM1是主库,需要向DM2(实时备库)同步数据,因此实时归档的ARCH_DEST配置为DM2。

[dmdba@18c1 jy]$ vi dmarch.ini
[ARCHIVE_TIMELY]
ARCH_TYPE = TIMELY
ARCH_DEST = JY2
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm7/data/jy/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0

配置dmwatcher.ini
修改dmwatcher.ini配置守护进程,配置为全局守护类型,使用自动切换模式。

[dmdba@18c1 jy]$ vi dmwatcher.ini
[GRP1]
DW_TYPE = GLOBAL
DW_MODE = AUTO
DW_ERROR_TIME = 10
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 10
INST_OGUID = 453332
INST_INI = /dm7/data/jy/dm.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD = /dm7/bin/dmserver
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0

配置dmwatcher.ctl
同一个守护进程组,必须使用同一份dmwatcher.ctl。因此,只需要使用dmctlcvt工具生成一份dmwatcher.ctl文件,然后分别拷贝到各个数据库目录下即可。在配置完成dmwatcher.ini后,使用dmctlcvt工具生成dmwatcher.ctl:(特别注意,DEST目录为jy的上一级目录,否则不生成控制文件)

[dmdba@18c1 bin]$ ./dmctlcvt TYPE=3 SRC=/dm7/data/jy/dmwatcher.ini DEST=/dm7/data
DMCTLCVT V7.1.6.46-Build(2018.02.08-89107)ENT 
convert txt to ctl success!

会在/dm7/data目录中生成一个GRP1目录,在GRP1目录中生成了dmwatcher.ctl控制文件

[dmdba@18c1 data]$ ls -lrt
total 4
drwxr-xr-x 6 dmdba dinstall 4096 Jun  3 16:23 jy
drwxr-xr-x 2 dmdba dinstall   26 Jun  3 16:23 GRP1

[dmdba@18c1 data]$ cd GRP1/
[dmdba@18c1 GRP1]$ ls -lrt
total 4
-rw-r--r-- 1 dmdba dinstall 512 Jun  3 16:23 dmwatcher.ctl
[dmdba@18c1 GRP1]$ cp  dmwatcher.ctl /dm7/data/jy/

拷贝生成的dmwatcher.ctl文件到数据文件目录/dm7/data/jy。

将主库相关文件传输到备机:

[dmdba@18c1 dm7]$ scp -r data/ dmdba@10.13.13.172:/dm7/
The authenticity of host '10.13.13.172 (10.13.13.172)' can't be established.
ECDSA key fingerprint is 7f:1f:9a:0f:8b:d1:e0:17:32:08:12:73:d8:1d:9c:da.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.13.13.172' (ECDSA) to the list of known hosts.
dmdba@10.13.13.172's password: 
dminit20200603160057.log                                                                                                                                                                                  100%  727     0.7KB/s   00:00    
sqllog.ini                                                                                                                                                                                                100%  479     0.5KB/s   00:00    
dm.ctl                                                                                                                                                                                                    100% 5120     5.0KB/s   00:00    
jy01.log                                                                                                                                                                                                  100%  256MB 128.0MB/s   00:02    
jy02.log                                                                                                                                                                                                  100%  256MB  85.3MB/s   00:03    
dm_20200603160143_364345.ctl                                                                                                                                                                              100% 5120     5.0KB/s   00:00    
dm_20200603160450_367099.ctl                                                                                                                                                                              100% 5120     5.0KB/s   00:00    
SYSTEM.DBF                                                                                                                                                                                                100%   21MB  21.0MB/s   00:00    
dm_service.prikey                                                                                                                                                                                         100%  633     0.6KB/s   00:00    
MAIN.DBF                                                                                                                                                                                                  100%  128MB 128.0MB/s   00:01    
ROLL.DBF                                                                                                                                                                                                  100%  128MB 128.0MB/s   00:01    
dminst.sys                                                                                                                                                                                                100%  220     0.2KB/s   00:00    
TEMP.DBF                                                                                                                                                                                                  100%   10MB  10.0MB/s   00:00    
rep_conflict.log                                                                                                                                                                                          100%   12     0.0KB/s   00:00    
dm.ini                                                                                                                                                                                                    100%   40KB  39.8KB/s   00:00    
dmmal.ini                                                                                                                                                                                                 100%  558     0.5KB/s   00:00    
dmarch.ini                                                                                                                                                                                                100%  340     0.3KB/s   00:00    
dmwatcher.ini                                                                                                                                                                                             100%  665     0.7KB/s   00:00    
dmwatcher.ctl                                                                                                                                                                                             100%  512     0.5KB/s   00:00    
dmwatcher.ctl                                                                                                                                                                                             100%  512     0.5KB/s   00:00    
[dmdba@18c1 dm7]$ 

备机修改相关配置
修改dm.ini

INSTANCE_NAME = JY2

修改dmarch.ini

ARCH_DEST = JY1

dmwatcher.ini,dmwatcher.ctl,dmmal.ini与主库一致不用修改 二:启动到mount状态设置oguid 主库

[dmdba@18c1 bin]$ ./dmserver /dm7/data/jy/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 V7.1.6.46-Build(2018.02.08-89107)ENT  startup...
License will expire in 14 day(s) on 2020-06-17
ckpt lsn: 32981
SYSTEM IS READY.

[dmdba@18c1 bin]$ ./disql SYSDBA/SYSDBA

Server[LOCALHOST:5236]:mode is normal, state is mount
login used time: 5.995(ms)
disql V7.1.6.46-Build(2018.02.08-89107)ENT 
Connected to: DM 7.1.6.46
SQL> sp_set_oguid(453332);
DMSQL executed successfully
used time: 68.576(ms). Execute id is 1.

备库

[dmdba@18c2 bin]$ ./dmserver /dm7/data/jy/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 V7.1.6.46-Build(2018.02.08-89107)ENT  startup...
License will expire in 14 day(s) on 2020-06-17
ckpt lsn: 32981
SYSTEM IS READY.

[dmdba@18c2 bin]$ ./disql SYSDBA/SYSDBA

Server[LOCALHOST:5236]:mode is normal, state is mount
login used time: 6.344(ms)
disql V7.1.6.46-Build(2018.02.08-89107)ENT 
Connected to: DM 7.1.6.46
SQL> sp_set_oguid(453332);
DMSQL executed successfully
used time: 32.329(ms). Execute id is 1.

注册服务用于启动数据库

[root@18c2 root]# ./dm_service_installer.sh -i /dm7/data/jy/dm.ini -p jy2 -t dmserver
ln -s '/usr/lib/systemd/system/DmServicejy2.service' '/etc/systemd/system/multi-user.target.wants/DmServicejy2.service'
Finished to create the service (DmServicejy2)

三:打开数据库
主库以primary打开

SQL> alter database primary;
executed successfully
used time: 43.384(ms). Execute id is 0.

备库以standby 打开

SQL> alter database standby;
executed successfully
used time: 100.645(ms). Execute id is 0.

四:启动守护进程
启动各个主备库上的守护进程:
主库

[dmdba@18c1 bin]$ ./dmwatcher /dm7/data/jy/dmwatcher.ini
DMWATCHER[2.1] V7.1.6.46-Build(2018.02.08-89107)ENT 
DMWATCHER[2.1] IS READY
show
2020-06-03 16:43:10
---------------------------------------------------------------------------
GROUP_NAME       TYPE      MODE      OGUID       MPP_FLAG  AUTO_RESTART LOCAL_DW_STATUS 
GRP1             GLOBAL    AUTO      453332      FALSE     TRUE         OPEN            

INST_OK   NAME             SVR_MODE  SYS_STATUS   OPEN_CNT        RTYPE     N_TASK    TASK_MEM_USED   FLSN            CLSN            SLSN            SSLSN           
OK        JY1              PRIMARY   OPEN         2               TIMELY    0         0               34412           34412           34412           34412           
---------------------------------------------------------------------------

备库

[dmdba@18c2 bin]$ ./dmwatcher /dm7/data/jy/dmwatcher.ini
DMWATCHER[2.1] V7.1.6.46-Build(2018.02.08-89107)ENT 
DMWATCHER[2.1] IS READY
show
2020-06-03 16:43:05
---------------------------------------------------------------------------
GROUP_NAME       TYPE      MODE      OGUID       MPP_FLAG  AUTO_RESTART LOCAL_DW_STATUS 
GRP1             GLOBAL    AUTO      453332      FALSE     TRUE         OPEN            

INST_OK   NAME             SVR_MODE  SYS_STATUS   OPEN_CNT        RTYPE     N_TASK    TASK_MEM_USED   FLSN            CLSN            SLSN            SSLSN           
OK        JY2              STANDBY   OPEN         1               TIMELY    0         0               32981           32981           32981           32981           
---------------------------------------------------------------------------

五:查看file_lsn与cur_lsn主备库是否一致
主库

SQL> select file_LSN, cur_LSN from v$rlog;

LINEID     FILE_LSN             CUR_LSN             
---------- -------------------- --------------------
1          34412                34412

used time: 1.203(ms). Execute id is 6.

备库

SQL> select file_LSN, cur_LSN from v$rlog;

LINEID     FILE_LSN             CUR_LSN             
---------- -------------------- --------------------
1          34412                34412

used time: 1.228(ms). Execute id is 3.

测试数据同步
主库:

SQL> create table t1(id int);
executed successfully
used time: 23.402(ms). Execute id is 4.
SQL> insert into t1 values(1);
affect rows 1

used time: 1.303(ms). Execute id is 5.
SQL> commit;
executed successfully
used time: 4.034(ms). Execute id is 6.
SQL> select file_LSN, cur_LSN from v$rlog;

LINEID     FILE_LSN             CUR_LSN             
---------- -------------------- --------------------
1          34443                34443

used time: 0.555(ms). Execute id is 7.

备库:

SQL> select file_LSN, cur_LSN from v$rlog;

LINEID     FILE_LSN             CUR_LSN             
---------- -------------------- --------------------
1          34443                34443

used time: 0.325(ms). Execute id is 2.
SQL> select * from t1;

LINEID     ID         
---------- -----------
1          1

used time: 1.373(ms). Execute id is 3.

六:配置监视器(基本要求,安装dm7的软件)
由于主库和实时备库的守护进程配置为自动切换模式,因此这里选择配置确认监视器。和普通监视器相比,确认监视器除了相同的命令支持外,在主库发生故障时,能够自动通知实时备库接管为新的主库,具有自动故障处理的功能。修改dmmonitor.ini配置确认监视器,其中MON_DW_IP中的IP和PORT和dmmal.ini中的MAL_HOST和MAL_DW_PORT配置项保持一致。

[dmdba@ora19c data]$ vi dmmonitor.ini
[dmdba@dmks dmdbms]$ vi dmmonitor.ini
MON_DW_CONFIRM = 1
MON_LOG_PATH = /dm_home/dmdbms/log
MON_LOG_INTERVAL = 60
MON_LOG_FILE_SIZE = 32
MON_LOG_SPACE_LIMIT = 0
[GRP1]
MON_INST_OGUID = 453332
MON_DW_IP = 10.13.13.171:5238
MON_DW_IP = 10.13.13.172:5238

启动监视器:

[dmdba@dmks bin]$ ./dmmonitor /dm_home/dmdbms/dmmonitor.ini
[monitor]         2020-06-03 10:54:59: DMMONITOR[2.1] V7.1.6.46-Build(2018.02.08-89107)ENT 
[monitor]         2020-06-03 10:54:59: DMMONITOR[2.1] IS READY.

[monitor]         2020-06-03 10:54:59: Received message from(JY1)
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN           CLSN           SSLSN          SLSN           
                  2020-06-03 16:47:46  OPEN           OK        JY1              OPEN        PRIMARY   VALID    2        34443          34443          34443          34443          

[monitor]         2020-06-03 10:54:59: Received message from(JY2)
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN           CLSN           SSLSN          SLSN           
                  2020-06-03 16:47:47  OPEN           OK        JY2              OPEN        STANDBY   VALID    2        34443          34443          34443          34443          

在JDBC连接串中增加了两个连接属性:
rwSeparate 是否使用读写分离系统,默认0;取值(0不使用,1使用)。
rwPercent 分发到主库的事务占主备库总事务的百分比,有效值0~100,默认值25。
下面使用jdbc来测试读写分离

package cs;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;


public class testrw 
{
	// 驱动
    public static String driver = "dm.jdbc.driver.DmDriver";
    // 连接URL
    public static String url = "jdbc:dm://10.13.13.171:5236?rwSeparate=1&rwPercent=10"; 
    // 数据库用户
    public static String username = "SYSDBA";
    // 数据库密码
    public static String password = "SYSDBA";
 
    /**
     * @param driver
     * @param url
     * @param username
     * @param password
     * @return
     */
    public static Connection createConnection(String driver, String url,
            String username, String password) {
        Connection connection = null;
        try {
            // 加载JDBC驱动程序
            Class.forName(driver);
            connection = DriverManager.getConnection(url, username, password);
        } catch (Exception ex) {
            ex.printStackTrace();
            System.err.println("Load JDBC Driver Error : " + ex.getMessage());
        }
        return connection;
    }
 
    /**
     * @param args
     */
    public static void main(String[] args){
        Connection connection = createConnection(driver,url,username,password);
        System.out.println(connection);
        try
        {  PreparedStatement ps1=connection.prepareStatement("select * from t2;");
           ResultSet rs = ps1.executeQuery();
           Statement ps=connection.createStatement();
           ps.addBatch("insert into t2 values(2)");
           ps.executeBatch();
           String name = "";
           while (rs.next())
           {
             name = rs.getString("ID");
             System.out.println("ID is:"+name);
           }
           rs.close();
           ps.close();
        }
        catch (Exception ex)
        {
        	ex.printStackTrace();
            System.err.println("Run SQL Error : " + ex.getMessage());
        }
    }

}

备库上执行的是查询语句执行时间是2020-06-10 22:18:14.000000

SQL> select * from v$sessions;

LINEID     SESS_ID              SESS_SEQ    SQL_TEXT                  STATE  N_STMT      N_USED_STMT SEQ_NO      CURR_SCH USER_NAME TRX_ID               CREATE_TIME                 CLNT_TYPE TIME_ZONE CHK_CONS CHK_IDENT RDONLY INS_NULL COMPILE_FLAG AUTO_CMT DDL_AUTOCMT RS_FOR_QRY CHK_NET ISO_LEVEL   CLNT_HOST       APPNAME CLNT_IP               OSNAME                 CONN_TYPE    VPOOLADDR            RUN_STATUS MSG_STATUS LAST_RECV_TIME              LAST_SEND_TIME              DCP_FLAG THRD_ID     CONNECTED   PORT_TYPE   SRC_SITE    MAL_ID               CONCURRENT_FLAG
---------- -------------------- ----------- ------------------------- ------ ----------- ----------- ----------- -------- --------- -------------------- --------------------------- --------- --------- -------- --------- ------ -------- ------------ -------- ----------- ---------- ------- ----------- --------------- ------- --------------------- ---------------------- ------------ -------------------- ---------- ---------- --------------------------- --------------------------- -------- ----------- ----------- ----------- ----------- -------------------- ---------------
1          139663411057416      3           select * from v$sessions; ACTIVE 64          1           16          SYSDBA   SYSDBA    140737488355329      2020-06-03 16:43:58.000000  SQL3      +08:00    N        N         N      Y        N            N        Y           N          N       1           18c2            disql   ::1                   Linux                   HOMOGENEOUS 139663410989816      RUNNING    RECIEVE    2020-06-10 22:18:39.000000  2020-06-10 22:16:07.000000  N        4982        1           0           65535       NULL                 0
2          139663412173640      11          select * from t2;         IDLE   64          2           5           SYSDBA   SYSDBA    0                    2020-06-10 22:18:14.000000  JDBC      +08:00    N        N         N      Y        N            Y        Y           N          N       1           WIN-ROUOJ6ERFO3         ::ffff:10.13.13.242 Windows Server 2008 R2  HOMOGENEOUS 139663412106040      IDLE       SEND       2020-06-10 22:18:21.000000  2020-06-10 22:18:21.000000  N        12355       1           0           65535       NULL                 0

used time: 0.833(ms). Execute id is 25.

主库上执行的是插入语句执行时间是2020-06-10 22:18:13.000000

SQL> select * from v$sessions;

LINEID     SESS_ID              SESS_SEQ    SQL_TEXT                  STATE  N_STMT      N_USED_STMT SEQ_NO      CURR_SCH USER_NAME TRX_ID               CREATE_TIME                 CLNT_TYPE TIME_ZONE CHK_CONS CHK_IDENT RDONLY INS_NULL COMPILE_FLAG AUTO_CMT DDL_AUTOCMT RS_FOR_QRY CHK_NET ISO_LEVEL   CLNT_HOST       APPNAME CLNT_IP               OSNAME                 CONN_TYPE    VPOOLADDR            RUN_STATUS MSG_STATUS LAST_RECV_TIME              LAST_SEND_TIME              DCP_FLAG THRD_ID     CONNECTED   PORT_TYPE   SRC_SITE    MAL_ID               CONCURRENT_FLAG
---------- -------------------- ----------- ------------------------- ------ ----------- ----------- ----------- -------- --------- -------------------- --------------------------- --------- --------- -------- --------- ------ -------- ------------ -------- ----------- ---------- ------- ----------- --------------- ------- --------------------- ---------------------- ------------ -------------------- ---------- ---------- --------------------------- --------------------------- -------- ----------- ----------- ----------- ----------- -------------------- ---------------
1          139880043352296      1           select * from v$sessions; ACTIVE 64          1           42          SYSDBA   SYSDBA    1124                 2020-06-03 16:41:00.000000  SQL3      +08:00    N        N         N      Y        N            N        Y           N          N       1           18c1            disql   ::1                   Linux                   HOMOGENEOUS 139878427790072      RUNNING    RECIEVE    2020-06-10 22:18:50.000000  2020-06-10 22:15:59.000000  N        17205       1           0           65535       NULL                 0
2          139878562075400      12          insert into t2 values(2)  IDLE   64          2           4           SYSDBA   SYSDBA    0                    2020-06-10 22:18:13.000000  JDBC      +08:00    N        N         N      Y        N            Y        Y           N          N       1           WIN-ROUOJ6ERFO3         ::ffff:10.13.13.242 Windows Server 2008 R2  HOMOGENEOUS 139878562007800      IDLE       SEND       2020-06-10 22:18:26.000000  2020-06-10 22:18:26.000000  N        21802       1           0           65535       NULL                 0

used time: 1.602(ms). Execute id is 41.

DM7搭建数据守护

数据守护(DG)
环境说明
下列机器事先都安装了DM软件,安装路径为/dm7,执行程序保存在/dm7/bin目录中,数据存放路径为/dm7/data

机器名     IP地址                  初始状态                         操作系统    
19c1     10.13.13.141(对外)        主库 dm1                         redhat 6.7
         10.10.10.141(mal对内)



19c2     10.13.13.142(对外)
         10.10.10.142(mal对内)     备库 dm2                         redhat 6.7

ora19c   10.13.13.140              确认监视器                       redhat 6.7



实例名       port_num             dw_port    mal_host              mal_port        mal_dw_port
dm1          5236                 5239       10.10.10.141          5237            5238
dm2          5236                 5239       10.10.10.142          5237            5238

数据准备
在主库机器上初始化数据库到目录/dm7/data:

[dmdba@19c1 bin]$ ./dminit path=/dm7/data db_name=DAMENG instance_name=DM1 port_num=5236 page_size=8 charset=0
initdb V7.1.6.46-Build(2018.02.08-89107)ENT
db version: 0x7000a
file dm.key not found, use default license!
License will expire in 14 day(s) on 2020-06-17

log file path: /dm7/data/DAMENG/DAMENG01.log

log file path: /dm7/data/DAMENG/DAMENG02.log

write to dir [/dm7/data/DAMENG].
create dm database success. 2020-06-03 02:55:43

注册服务用于启动数据库

[root@19c1 root]# ./dm_service_installer.sh -i /dm7/data/DAMENG/dm.ini -p DM1 -t dmserver
ln -s '/usr/lib/systemd/system/DmServiceDM1.service' '/etc/systemd/system/multi-user.target.wants/DmServiceDM1.service'
Finished to create the service (DmServiceDM1)

正常启动数据库并正常关闭

[root@19c1 root]# service DmServiceDM1 start
Redirecting to /bin/systemctl start DmServiceDM1.service
[root@19c1 root]# ps -ef | grep dmserver
dmdba 21312 1 14 02:59 ? 00:00:03 /dm7/bin/dmserver /dm7/data/DAMENG/dm.ini -noconsole
root 21536 18668 0 03:00 pts/2 00:00:00 grep --color=auto dmserver
[dmdba@19c1 bin]$ ./disql SYSDBA/SYSDBA

Server[LOCALHOST:5236]:mode is normal, state is open
login used time: 5.903(ms)
disql V7.1.6.46-Build(2018.02.08-89107)ENT
Connected to: DM 7.1.6.46
SQL> exit

[root@19c1 root]# service DmServiceDM1 stop
Redirecting to /bin/systemctl stop DmServiceDM1.service

ARCH_INI=1(打开归档)
MAL_INI=1(打开MAL配置)
DW_PORT=5239 (DW端口)

配置dmmal.ini文件
配置MAL系统,各主备库的dmmal.ini配置必须完全一致,MAL_HOST使用内部网络IP,MAL_PORT与dm.ini中PORT_NUM使用不同的端口值,MAL_DW_PORT是各实例对应的守护进程之间,以及守护进程和监视器之间的通信端口,配置如下:

[dmdba@19c1 DAMENG]$ vi dmmal.ini
MAL_CHECK_INTERVAL = 5
MAL_CONN_FAIL_INTERVAL = 5

[MAL_INST1]
MAL_INST_NAME = DM1
MAL_HOST = 10.10.10.141
MAL_PORT = 5237
MAL_INST_HOST = 10.13.13.141
MAL_INST_PORT = 5236
MAL_DW_PORT = 5238

[MAL_INST2]
MAL_INST_NAME = DM2
MAL_HOST = 10.10.10.142
MAL_PORT = 5237
MAL_INST_HOST = 10.13.13.142
MAL_INST_PORT = 5236
MAL_DW_PORT = 5238

配置dmarch.ini
修改dmarch.ini,配置本地归档和实时归档。除了本地归档外,其他归档配置项中的ARCH_DEST表示实例是Primary模式时,需要同步归档数据的目标实例名。当前实例DM1是主库,需要向DM2(实时备库)同步数据,因此实时归档的ARCH_DEST配置为DM2。

[dmdba@19c1 DAMENG]$ vi dmarch.ini
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME
ARCH_DEST = DM2
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm7/data/DAMENG/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0

配置dmwatcher.ini
修改dmwatcher.ini配置守护进程,配置为全局守护类型,使用自动切换模式。

[dmdba@19c1 DAMENG]$ 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 = /dm7/data/DAMENG/dm.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD = /dm7/bin/dmserver
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0

配置dmwatcher.ctl
同一个守护进程组,必须使用同一份dmwatcher.ctl。因此,只需要使用dmctlcvt工具生成一份dmwatcher.ctl文件,然后分别拷贝到各个数据库目录下即可。在配置完成dmwatcher.ini后,使用dmctlcvt工具生成dmwatcher.ctl:(特别注意,DEST目录为DAMENG的上一级目录,否则不生成控制文件)

[dmdba@19c1 bin]$ ./dmctlcvt TYPE=3 SRC=/dm7/data/DAMENG/dmwatcher.ini DEST=/dm7/data
DMCTLCVT V7.1.6.46-Build(2018.02.08-89107)ENT
convert txt to ctl success!

会在/dm7/data目录中生成一个GRP1目录,在GRP1目录中生成了dmwatcher.ctl控制文件

[root@19c1 data]# ls -lrt
total 4
drwxr-xr-x 8 dmdba dinstall 4096 Jun 3 03:44 DAMENG
drwxr-xr-x 2 dmdba dinstall 26 Jun 3 03:53 GRP1

[root@19c1 data]# cd GRP1
[root@19c1 GRP1]# ls -lrt
total 4
-rw-r--r-- 1 dmdba dinstall 512 Jun 3 03:53 dmwatcher.ctl

拷贝生成的dmwatcher.ctl文件到数据文件目录/dm7/data/DAMENG。

将主库相关文件传输到备机:

[dmdba@19c1 dm7]$ scp -r data/ dmdba@10.13.13.142:/dm7/
The authenticity of host '10.13.13.142 (10.13.13.142)' can't be established.
ECDSA key fingerprint is 7f:1f:9a:0f:8b:d1:e0:17:32:08:12:73:d8:1d:9c:da.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.13.13.142' (ECDSA) to the list of known hosts.
dmdba@10.13.13.142's password:
dminit20200603025444.log 100% 783 0.8KB/s 00:00
sqllog.ini 100% 479 0.5KB/s 00:00
dm.ctl 100% 5120 5.0KB/s 00:00
DAMENG01.log 100% 256MB 256.0MB/s 00:01
DAMENG02.log 100% 256MB 128.0MB/s 00:02
dm_20200603025543_320471.ctl 100% 5120 5.0KB/s 00:00
dm_20200603030017_373808.ctl 100% 5120 5.0KB/s 00:00
SYSTEM.DBF 100% 21MB 21.0MB/s 00:01
dm_service.prikey 100% 633 0.6KB/s 00:00
MAIN.DBF 100% 128MB 128.0MB/s 00:01
ROLL.DBF 100% 128MB 128.0MB/s 00:01
dminst.sys 100% 220 0.2KB/s 00:00
TEMP.DBF 100% 10MB 10.0MB/s 00:00
rep_conflict.log 100% 12 0.0KB/s 00:00
dm.ini 100% 40KB 39.8KB/s 00:00
dmmal.ini 100% 558 0.5KB/s 00:00
dmarch.ini 100% 367 0.4KB/s 00:00
dmwatcher.ini 100% 615 0.6KB/s 00:00
dmwatcher.ctl 100% 512 0.5KB/s 00:00

备机修改相关配置

修改dm.ini
INSTANCE_NAME = DM2

修改dmarch.ini

ARCH_DEST = DM1

其中dmwatcher.ini,dmmal.ini,dmwatcher.ctl和主库一致

二:启动到mount状态设置oguid
主库

[dmdba@19c1 bin]$ ./dmserver /dm7/data/DAMENG/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 V7.1.6.46-Build(2018.02.08-89107)ENT startup...
License will expire in 14 day(s) on 2020-06-17
ckpt lsn: 32981
SYSTEM IS READY.

[dmdba@19c1 bin]$ ./disql SYSDBA/SYSDBA

Server[LOCALHOST:5236]:mode is normal, state is mount
login used time: 6.020(ms)
disql V7.1.6.46-Build(2018.02.08-89107)ENT
Connected to: DM 7.1.6.46
SQL> sp_set_oguid(453331);
DMSQL executed successfully
used time: 38.995(ms). Execute id is 1.
SQL> exit

备库

[dmdba@19c2 bin]$ ./dmserver /dm7/data/DAMENG/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 V7.1.6.46-Build(2018.02.08-89107)ENT startup...
License will expire in 14 day(s) on 2020-06-17
ckpt lsn: 32981
SYSTEM IS READY.

[dmdba@19c2 bin]$ ./disql SYSDBA/SYSDBA

Server[LOCALHOST:5236]:mode is normal, state is mount
login used time: 6.005(ms)
disql V7.1.6.46-Build(2018.02.08-89107)ENT
Connected to: DM 7.1.6.46
SQL> sp_set_oguid(453331);
DMSQL executed successfully
used time: 46.333(ms). Execute id is 1.

注册服务用于启动数据库

[root@19c2 root]# ./dm_service_installer.sh -i /dm7/data/DAMENG/dm.ini -p DM2 -t dmserver
ln -s '/usr/lib/systemd/system/DmServiceDM2.service' '/etc/systemd/system/multi-user.target.wants/DmServiceDM2.service'
Finished to create the service (DmServiceDM2)

三:打开数据库
主库以primary打开

SQL> alter database primary;
executed successfully
used time: 37.838(ms). Execute id is 0.

备库以standby 打开

SQL> alter database standby;
executed successfully
used time: 39.682(ms). Execute id is 0.

四:启动守护进程
启动各个主备库上的守护进程:
主库

[dmdba@19c1 bin]$ ./dmwatcher /dm7/data/DAMENG/dmwatcher.ini
DMWATCHER[2.1] V7.1.6.46-Build(2018.02.08-89107)ENT
DMWATCHER[2.1] IS READY

备库

[dmdba@19c2 bin]$ ./dmwatcher /dm7/data/DAMENG/dmwatcher.ini
DMWATCHER[2.1] V7.1.6.46-Build(2018.02.08-89107)ENT
DMWATCHER[2.1] IS READY

五:查看file_lsn与cur_lsn主备库是否一致
主库
SQL> select file_LSN, cur_LSN from v$rlog;

LINEID FILE_LSN CUR_LSN
---------- -------------------- --------------------
1 34412 34412

used time: 1.203(ms). Execute id is 6.

备库

SQL> select file_LSN, cur_LSN from v$rlog;

LINEID FILE_LSN CUR_LSN
---------- -------------------- --------------------
1 34412 34412

used time: 1.228(ms). Execute id is 3.

测试数据同步
主库:

SQL> create table t1(id int);
executed successfully
used time: 18.410(ms). Execute id is 7.
SQL> insert into t1 values(1);
affect rows 1

used time: 0.890(ms). Execute id is 8.
SQL> commit;
executed successfully
used time: 6.026(ms). Execute id is 9.
SQL> select file_LSN, cur_LSN from v$rlog;

LINEID FILE_LSN CUR_LSN
---------- -------------------- --------------------
1 34443 34443

used time: 0.340(ms). Execute id is 10.

备库:

SQL> select file_LSN, cur_LSN from v$rlog;

LINEID FILE_LSN CUR_LSN
---------- -------------------- --------------------
1 34443 34443

used time: 0.363(ms). Execute id is 4.
SQL> select * from t1;

LINEID ID
---------- -----------
1 1

used time: 1.213(ms). Execute id is 5.

六:配置监视器(基本要求,安装dm7的软件)
由于主库和实时备库的守护进程配置为自动切换模式,因此这里选择配置确认监视器。和普通监视器相比,确认监视器除了相同的命令支持外,在主库发生故障时,能够自动通知实时备库接管为新的主库,具有自动故障处理的功能。
修改dmmonitor.ini配置确认监视器,其中MON_DW_IP中的IP和PORT和dmmal.ini中的MAL_HOST和MAL_DW_PORT配置项保持一致。

[dmdba@ora19c data]$ vi dmmonitor.ini
MON_DW_CONFIRM = 1
MON_LOG_PATH = /dm7/data/log
MON_LOG_INTERVAL = 60
MON_LOG_FILE_SIZE = 32
MON_LOG_SPACE_LIMIT = 0
[GRP1]
MON_INST_OGUID = 453331
MON_DW_IP = 10.10.10.141:5238
MON_DW_IP = 10.10.10.142:5238

启动监视器:

[dmdba@ora19c bin]$ ./dmmonitor /dm7/data/dmmonitor.ini
[monitor] 2020-06-03 09:18:20: DMMONITOR[2.1] V7.1.6.46-Build(2018.02.08-89107)ENT
[monitor] 2020-06-03 09:18:20: DMMONITOR[2.1] IS READY.

[monitor] 2020-06-03 09:18:20: Received message from(DM1)
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN SSLSN SLSN
2020-06-03 04:35:58 OPEN OK DM1 OPEN PRIMARY VALID 2 34443 34443 34443 34443

[monitor] 2020-06-03 09:18:20: Received message from(DM2)
WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN SSLSN SLSN
2020-06-03 04:35:58 OPEN OK DM2 OPEN STANDBY VALID 2 34443 34443 34443 34443

达梦dmfldr加载大字段

dmfldr加载大字段
1.外部数据

[dmdba@shard1 ~]$ vi t1.txt
1,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

2.创建控制文件

[dmdba@shard1 ~]$ vi t1.ctl
load data
infile '/home/dmdba/t1.txt'
into table test_lob
fields ','

3.创建表

SQL> create table test_lob(id int,name clob);
executed successfully
used time: 51.594(ms). Execute id is 7552.

[dmdba@shard1 ~]$ dmfldr sysdba/xxzx7817600 control=\'\/home\/dmdba\/t1.ctl\' 
dmfldr V7.1.6.46-Build(2018.02.08-89107)ENT 
dmfldr: 

Copyright (c) 2011, 2015, Dameng.  All rights reserved.

Control file:

Loaded rows:All

Rows per commit to server: 50000

 Rows to skip: 0

 Errors count allowed: 100

 Whether to load direct: Yes

 Whether insert self-increase col: No

 Whether data has sort by gather index: No

 Character sets:GBK



Data file counts: 1
/home/dmdba/t1.txt

Error file :fldr.bad

Dest table :TEST_LOB

Column Name                                                                                                                      Packed data type     End
ID                                                                                                                               CHARACTER            ,
NAME                                                                                                                             CHARACTER            ,


row buffer number is 4
task thread number is 4
not set lob dir
0 rows committed.

Dest table :TEST_LOB
0 Rows loaded success
Due to data format error, 0 rows abandon
Due to data error, 1 rows not loaded

Skip logic record counts: 0
Read logic record counts: 1
Refuse logic record counts: 1

The total time used: 38.056(ms)

上面显示拒绝加载了一行记录也就是说数据没有加载成功。
在加载大字段时需要指定direct=false选项

[dmdba@shard1 ~]$ dmfldr sysdba/xxzx7817600 control=\'\/home\/dmdba\/t1.ctl\' direct=false
dmfldr V7.1.6.46-Build(2018.02.08-89107)ENT 
dmfldr: 

Copyright (c) 2011, 2015, Dameng.  All rights reserved.

Control file:

Loaded rows:All

Rows per commit to server: 50000

 Rows to skip: 0

 Errors count allowed: 100

 Whether to load direct: Yes

 Whether insert self-increase col: No

 Whether data has sort by gather index: No

 Character sets:GBK



Data file counts: 1
/home/dmdba/t1.txt

Error file :fldr.bad

Dest table :TEST_LOB

Column Name                                                                                                                      Packed data type     End
ID                                                                                                                               CHARACTER            ,
NAME                                                                                                                             CHARACTER            ,


1 rows processed.

Dest table :TEST_LOB
1 Rows loaded success
Due to data format error, 0 rows abandon
Due to data error, 0 rows not loaded

Skip logic record counts: 0
Read logic record counts: 1
Refuse logic record counts: 0

The total time used: 229.173(ms)

达梦dmfldr数据快速加载

dmfldr数据快速加载
1.外部数据(文本)

[dmdba@shard1 ~]$ cat prod.dat
ProdID,ProdName,Code,ReOrder,Cost,Price,PriSrc,SecSrc,ObsoletedDate
1001,DaMeng Database,Server,25,45.45,14.32,Redwood Shores,Reston,
1002,DaMeng Database,Server,15,55.78,50.10,Redwood Shores,Reston,2014-02-14

2.控制文件

[dmdba@shard1 ~]$ cat prod.ctl
load data
infile '/home/dmdba/prod.dat'
into table test_load
fields ','

3.数据库规划表

create table test_load
(prodid int,
prodname varchar(40),
code varchar(30),
reorder int,
cost int,
price int,
prisrc varchar(30),
secsrc varchar(30),
obsoleteddate date
);

4.加载数据

[dmdba@shard1 ~]$ dmfldr sysdba/xxzx7817600 control='/home/dmdba/prod.ctl'
dmfldr V7.1.6.46-Build(2018.02.08-89107)ENT 
error occured during getting control input.Make sure the input is embraced by charactor '

控制文件输入参数出错,请确认以符号’作为首尾字符

[dmdba@shard1 ~]$ dmfldr sysdba/xxzx7817600 control=\'/home/dmdba/prod.ctl\' skip=1
dmfldr V7.1.6.46-Build(2018.02.08-89107)ENT 
dmfldr: 

Copyright (c) 2011, 2015, Dameng.  All rights reserved.

Control file:

Loaded rows:All

Rows per commit to server: 50000

 Rows to skip: 1

 Errors count allowed: 100

 Whether to load direct: Yes

 Whether insert self-increase col: No

 Whether data has sort by gather index: No

 Character sets:GBK



Data file counts: 1
/home/dmdba/prod.dat

Error file :fldr.bad

Dest table :TEST_LOAD

Column Name                                                                                                                      Packed data type     End
PRODID                                                                                                                           CHARACTER            ,
PRODNAME                                                                                                                         CHARACTER            ,
CODE                                                                                                                             CHARACTER            ,
REORDER                                                                                                                          CHARACTER            ,
COST                                                                                                                             CHARACTER            ,
PRICE                                                                                                                            CHARACTER            ,
PRISRC                                                                                                                           CHARACTER            ,
SECSRC                                                                                                                           CHARACTER            ,
OBSOLETEDDATE                                                                                                                    CHARACTER            ,


row buffer number is 4
task thread number is 4
2 rows committed.

Dest table :TEST_LOAD
2 Rows loaded success
Due to data format error, 0 rows abandon
Due to data error, 0 rows not loaded

Skip logic record counts: 1
Read logic record counts: 2
Refuse logic record counts: 0

The total time used: 26.677(ms)

或者

[dmdba@shard1 ~]$ dmfldr sysdba/xxzx7817600 control=\'\/home\/dmdba\/prod.ctl\' skip=1
dmfldr V7.1.6.46-Build(2018.02.08-89107)ENT 
dmfldr: 

Copyright (c) 2011, 2015, Dameng.  All rights reserved.

Control file:

Loaded rows:All

Rows per commit to server: 50000

 Rows to skip: 1

 Errors count allowed: 100

 Whether to load direct: Yes

 Whether insert self-increase col: No

 Whether data has sort by gather index: No

 Character sets:GBK



Data file counts: 1
/home/dmdba/prod.dat

Error file :fldr.bad

Dest table :TEST_LOAD

Column Name                                                                                                                      Packed data type     End
PRODID                                                                                                                           CHARACTER            ,
PRODNAME                                                                                                                         CHARACTER            ,
CODE                                                                                                                             CHARACTER            ,
REORDER                                                                                                                          CHARACTER            ,
COST                                                                                                                             CHARACTER            ,
PRICE                                                                                                                            CHARACTER            ,
PRISRC                                                                                                                           CHARACTER            ,
SECSRC                                                                                                                           CHARACTER            ,
OBSOLETEDDATE                                                                                                                    CHARACTER            ,


row buffer number is 4
task thread number is 4
2 rows committed.

Dest table :TEST_LOAD
2 Rows loaded success
Due to data format error, 0 rows abandon
Due to data error, 0 rows not loaded

Skip logic record counts: 1
Read logic record counts: 2
Refuse logic record counts: 0

The total time used: 30.680(ms)

DM7审计之语句序列审计

审计机制是DM数据库管理系统安全管理的重要组成部分之一。DM数据库除了提供数据安全保护措施外,还提供对日常事件的事后审计监督。DM具有一个灵活的审计子系统,可以通过它来记录系统级事件、个别用户的行为以及对数据库对象的访问。通过考察、跟踪审计信息,数据库审计员可以查看用户访问的形式以及曾试图对该系统进行的操作,从而采取积极、有效的应对措施。

审计开关
在DM系统中,专门为审计设置了开关,要使用审计功能首先要打开审计开关。审计开关由DM的INI参数ENABLE_AUDIT控制,有三种取值:
0:关闭审计
1:打开普通审计
2:打开普通审计和实时审计
在普通版本中,ENABLE_AUDIT的缺省值为0;在安全版本中,ENABLE_AUDIT的缺省值为2。

审计开关必须由具有DBA权限的管理员进行设置。

系统管理员可通过查询V$PARAMETER动态视图查询ENABLE_AUDIT的当前值。

SQL> select * from v$parameter where name='ENABLE_AUDIT';

LINEID     ID          NAME         TYPE VALUE SYS_VALUE FILE_VALUE DESCRIPTION
---------- ----------- ------------ ---- ----- --------- ---------- ---------------------------------------------------------------------------------------
1          385         ENABLE_AUDIT SYS  0     0         0          Flag For Allowing Audit, 0: no audit 1: normal audit  2:normal audit and realtime audit

used time: 8.170(ms). Execute id is 24948.

SQL> sp_set_para_value(1,'ENABLE_AUDIT',2);
DMSQL executed successfully
used time: 80.901(ms). Execute id is 24968.
SQL> select * from v$parameter where name='ENABLE_AUDIT';

LINEID     ID          NAME         TYPE VALUE SYS_VALUE FILE_VALUE DESCRIPTION
---------- ----------- ------------ ---- ----- --------- ---------- ---------------------------------------------------------------------------------------
1          385         ENABLE_AUDIT SYS  2     2         2          Flag For Allowing Audit, 0: no audit 1: normal audit  2:normal audit and realtime audit

used time: 6.829(ms). Execute id is 24969.
SQL> select * from v$dm_ini where para_name='ENABLE_AUDIT';

LINEID     PARA_NAME    PARA_VALUE MIN_VALUE MAX_VALUE MPP_CHK SESS_VALUE FILE_VALUE DESCRIPTION                                                                             PARA_TYPE
---------- ------------ ---------- --------- --------- ------- ---------- ---------- --------------------------------------------------------------------------------------- ---------
1          ENABLE_AUDIT 2          0         2         N       2          2          Flag For Allowing Audit, 0: no audit 1: normal audit  2:normal audit and realtime audit SYS

used time: 7.090(ms). Execute id is 24970.
SQL>

也可以通过使用客户端工具Console或调用系统过程SP_SET_PARA_VALUE重新设置ENABLE_AUDIT的值,ENABLE_AUDIT为动态INI参数。

审计的设置与取消
数据库审计员指定被审计对象的活动称为审计设置,只有具有AUDIT DATABASE权限的审计员才能进行审计设置。DM提供审计设置系统过程来实现这种设置,被审计的对象可以是某类操作,也可以是某些用户在数据库中的全部行踪。只有预先设置的操作和用户才能被DM系统自动进行审计。

DM允许在三个级别上进行审计设置
系统级:系统的启动与关闭,此级别的审计无法也无需由用户进行设置,只要审计开关打开就会自动生成对应审计记录
语句级:导致影响特定类型数据库对象的特殊SQL或语句组的审计。如AUDIT TABLE 将审计CREATE TABLE、ALTER TABLE和DROP TABLE等语句
对象级:审计作用在特殊对象上的语句。如test表上的INSERT语句

审计设置存放于DM字典表SYSAUDIT中,进行一次审计设置就在SYSAUDIT中增加一条对应的记录,取消审计则删除SYSAUDIT中相应的记录。

语句序列审计
DM还提供了语句序列审计功能,作为语句级审计和对象级审计的补充。语句序列审计需要审计员预先建立一个审计规则,包含N条SQL语句(SQL1,SQL2……),如果某个会话依次执行了这些SQL语句,就会触发审计。

建立语句序列审计规则的过程包括下面三个系统过程。

VOID
SP_AUDIT_SQLSEQ_START(
NAME VARCHAR (128)
)

VOID
SP_AUDIT_SQLSEQ_ADD(
NAME VARCHAR (128),
SQL VARCHAR (8188)
)

VOID
SP_AUDIT_SQLSEQ_END(
NAME VARCHAR (128)
)

参数说明:
NAME 语句序列审计规则名
SQL 需要审计的语句序列中的SQL语句
使用说明:
建立语句序列审计规则需要先调用SP_AUDIT_SQLSEQ_START,之后调用若干次SP_AUDIT_SQLSEQ_ADD,每次加入一条SQL语句,审计规则中的SQL语句顺序根据加入SQL语句的顺序确定,最后调用SP_AUDIT_SQLSEQ_END完成规则的建立。

例如,建立一个语句序列审计规则audit_sql1。

SQL> sp_audit_sqlseq_start('audit_sql1');
DMSQL executed successfully
used time: 0.901(ms). Execute id is 25115.
SQL> sp_audit_sqlseq_add('audit_sql1','select c2 from t1;');
DMSQL executed successfully
used time: 0.698(ms). Execute id is 25117.
SQL> sp_audit_sqlseq_add('audit_sql1','select c1 from t2;');
DMSQL executed successfully
used time: 0.709(ms). Execute id is 25118.
SQL> sp_audit_sqlseq_add('audit_sql1','select * from t3;');
DMSQL executed successfully
used time: 0.814(ms). Execute id is 25119.
SQL> sp_audit_sqlseq_end('audit_sql1');
DMSQL executed successfully
used time: 32.279(ms). Execute id is 25120.

在别一个会话执行语句

SQL> select * from t1;
DMSQL executed successfully
used time: 0.814(ms). Execute id is 5119.

SQL> select * from t2;
DMSQL executed successfully
used time: 0.814(ms). Execute id is 5120.

SQL> select * from t3;
DMSQL executed successfully
used time: 0.814(ms). Execute id is 5121.

查询审计记录

SQL> select * from v$auditrecords;

LINEID     USERID      USERNAME ROLEID      ROLENAME IP               SCHID       SCHNAME OBJID       OBJNAME OPERATION    SUCC_FLAG SQL_TEXT                                                                                             DESCRIBTION                 OPTIME                      MAC                 
---------- ----------- -------- ----------- -------- ---------------- ----------- ------- ----------- ------- ------------ --------- ---------------------------------------------------------------------------------------------------- --------------------------- --------------------------  -------------------
1          50331649    SYSDBA   67108864    DBA      ::ffff:127.0.0.1 -1                  -1                  DROP TABLE   Y         drop table cs purge;                                                                                                             2020-05-27 19:28:06.000000  00:00:00:00:00:00

2          50331649    SYSDBA   67108864    DBA      ::ffff:127.0.0.1 -1                  -1                  CREATE TABLE Y         create table cs(id int,name varchar(20));                                                                                        2020-05-27 19:28:19.000000  00:00:00:00:00:00

3          50331649    SYSDBA   67108864    DBA      ::ffff:127.0.0.1 -1                  -1                  CREATE USER  Y         create user cs2 identified by ******;                                                                                            2020-05-27 19:32:18.000000  00:00:00:00:00:00

4          50331750    JY       67108864    DBA      ::ffff:127.0.0.1 150995951   JY      1454        T1      UPDATE       Y         update t1 set c2='WY' where c1=2;                                                                                                2020-05-27 19:36:39.000000  00:00:00:00:00:00

5          50331750    JY       67108864    DBA      ::ffff:127.0.0.1 150995951   JY      1454        T1      DELETE       Y         delete from t1;                                                                                                                  2020-05-27 19:37:08.000000  00:00:00:00:00:00

6          50331649    SYSDBA   67108864    DBA      ::ffff:127.0.0.1 150995945   PERSON  1254        ADDRESS INSERT       Y         insert into person.address values('常德武陵区武陵大道938号',null,'德武陵区','415700',10);                                        2020-05-27 19:58:29.000000  00:00:00:00:00:00

7          50331649    SYSDBA   -1                   ::ffff:127.0.0.1 -1                  -1                  SQL SEQ      Y         select name from t1; select id from t2; select * from t3;                                             audit_sql1                 2020-05-27 20:14:44.000000  00:00:00:00:00:00


7 rows got

used time: 1.013(ms). Execute id is 25133.

可使用下面的系统过程删除指定的语句序列审计规则。

VOID
SP_AUDIT_SQLSEQ_DEL(
NAME VARCHAR (128)
)

参数说明:
NAME 语句序列审计规则名
例如,删除语句序列审计规则AUDIT_SQL1。

SQL> sp_audit_sqlseq_del('audit_sql1');
DMSQL executed successfully
used time: 26.854(ms). Execute id is 25137.