DMHS oracle12c gdb(ASM)-DM8dsc双向同步实施手册
当oracle日志存储在ASM模式下面时,需要申请对应操作系统Oracle同步端为oracle rac(不管oracle是单机还是rac使用) 的dmhs版本。Dm同步端为DM8时,需要申请对应操作系统的执行端为dm8的dmhs版本。准备unixodbc2.3.2安装包,用于连接oracle。dmoci文件,用于读取达梦归档日志。
1.环境检查
1.1Oracle端环境检查
1.1.1系统用户检查
运行用户的要求,要求使用oracle用户或者和oracle同一组的用户,一般系统如果有oracle用户权限控制,则要求给出一个和oracle同组的用户。现场实际运行用户为oracle用户。
设置oracle连接库路径:(用于登陆hs控制台)
export LD_LIBRARY_PATH=
L
D
L
I
B
R
A
R
Y
P
A
T
H
:
LD_LIBRARY_PATH:
LDLIBRARYPATH:ORACLE_HOME/lib。
1.1.2数据同步用户检查
连接oracle(12c版本与之前版本有所区别见以下说明)数据库的用户,若没有dba权限,则至少需要以下权限(需要和dba说明):
grant connect to dmhs;
grant select any table to dmhs;
grant select any dictionary to dmhs;
grant create session to dmhs;
grant lock any table to dmhs;
grant execute on dbms_flashback to dmhs;
说明:oracle12c默认登陆到CDB数据库容器下,创建用户和之前的版本略有不同,所有用户前需要加上C##,如之前的版本用户名为dmhs,12c中创建用户名必须为C##dmhs。连接的用户不能仅授予dba的权限,必须要将sys下用到的所有表的权限一一授予连接用户:
grant all on sys.dmhs_ddl_sql to C##dmhs
grant all on sys.col$ to C##dmhs;
grant all on sys.cdef$ to C##dmhs;
grant all on sys.lobfrag$ to C##dmhs;
grant all on sys.obj$ to C##dmhs
grant all on sys.user$ to C##dmhs
1.1.3归档日志的检查
源端必须开启归档,且建议开启在ASM环境中。检查方式:
sqlplus / as sysdba
SQL> archive log list;
Database log mode No Archive Mode
Automatic archival Enabled ----表示开启归档,且归档放在快速恢复区
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 4862
Current log sequence 4864
如果没有开启归档,要求其开启归档,且对归档的要求需要和DBA明确提出(归档放置的目录,归档保留以及归档的处理方式(保留,移除还是删除),开启归档需要重启数据库,所以会中断业务(切记)
如果是需要自己开启归档,最好放置到ASM环境中,下面示例将归档放置在+FRA目录下
sqlplus / as sysdba
SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_1=‘LOCATION= +ARCH’ SCOPE=SPFILE;
SQL>Shutdown immediate;
SQL>startup mount;
SQL>alter database archivelog;
SQL>archive log list;—检查归档
SQL>alter database open;
如果没有sysdba权限,可以使用下面的sql语句检查是否开启归档
select LOG_MODE from v
d
a
t
a
b
a
s
e
;
结
果
为
y
e
s
代
表
开
启
了
归
档
,
n
o
代
表
没
有
开
启
归
档
1.1.4
检
查
是
否
开
启
附
加
日
志
s
e
l
e
c
t
S
U
P
P
L
E
M
E
N
T
A
L
L
O
G
D
A
T
A
M
I
N
,
S
U
P
P
L
E
M
E
N
T
A
L
L
O
G
D
A
T
A
A
L
L
f
r
o
m
V
database ; 结果为yes代表开启了归档,no代表没有开启归档 1.1.4检查是否开启附加日志 select SUPPLEMENTAL_LOG_DATA_MIN, SUPPLEMENTAL_LOG_DATA_ALL from V
database;结果为yes代表开启了归档,no代表没有开启归档1.1.4检查是否开启附加日志selectSUPPLEMENTALLOGDATAMIN,SUPPLEMENTALLOGDATAALLfromVdatabase;
查询结果均为yes表示已经开启最小附加日志以及主键附加日志,如果有结果为NO,执行一下两条语句:(包含pdb的需要在cdb下执行,否则认定无效)
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
1.1.5检查字符集环境变量
如果是linux环境,先查询一下oracle数据库的字符集
SQL> select userenv(‘language’) from dual;
USERENV(‘LANGUAGE’)
SIMPLIFIED CHINESE_CHINA.ZHS16GBK
检查是否与运行dmhs服务的用户的环境变量NLS_LANG是否一致,查看echo $NLS_LANG。
echo
N
L
S
L
A
N
G
S
I
M
P
L
I
F
I
E
D
C
H
I
N
E
S
E
C
H
I
N
A
.
Z
H
S
16
G
B
K
如
果
不
一
致
会
出
现
乱
码
问
题
,
修
改
系
统
环
境
变
量
需
要
重
启
h
s
服
务
,
重
新
识
别
。
1.1.6
A
S
M
用
户
创
建
默
认
的
A
S
M
用
户
一
般
不
允
许
使
用
,
需
要
新
创
建
高
权
限
A
S
M
用
户
(
需
要
d
b
a
协
助
创
建
)
。
新
建
用
户
用
于
访
问
读
取
归
档
日
志
1.1.7
检
查
A
S
M
用
户
监
听
配
置
l
s
n
r
c
t
l
s
t
a
t
u
s
检
查
A
S
M
服
务
是
否
注
册
到
监
听
,
如
果
没
有
,
需
要
联
系
d
b
a
将
A
S
M
服
务
注
册
到
监
听
中
。
注
册
后
需
要
在
t
n
s
n
a
m
e
s
.
o
r
a
中
配
置
a
s
m
名
称
解
析
(
在
NLS_LANG SIMPLIFIED CHINESE_CHINA.ZHS16GBK 如果不一致会出现乱码问题,修改系统环境变量需要重启hs服务,重新识别。 1.1.6 ASM用户创建 默认的ASM用户一般不允许使用,需要新创建高权限ASM用户(需要dba协助创建)。新建用户用于访问读取归档日志 1.1.7检查ASM用户监听配置 lsnrctl status检查ASM服务是否注册到监听,如果没有, 需要联系dba将ASM服务注册到监听中。 注册后需要在tnsnames.ora中配置asm名称解析(在
NLSLANGSIMPLIFIEDCHINESECHINA.ZHS16GBK如果不一致会出现乱码问题,修改系统环境变量需要重启hs服务,重新识别。1.1.6ASM用户创建默认的ASM用户一般不允许使用,需要新创建高权限ASM用户(需要dba协助创建)。新建用户用于访问读取归档日志1.1.7检查ASM用户监听配置lsnrctlstatus检查ASM服务是否注册到监听,如果没有,需要联系dba将ASM服务注册到监听中。注册后需要在tnsnames.ora中配置asm名称解析(在ORACLE_HOME/network/admin目录中)
cd $ORACLE_HOME/network/admin
vi tnsnames.ora
增加以下内容,注意有格式区分,第一行不能有行头不能有空格
ECIQPDB_ASM=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.10.10)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = +ASM )
)
)
1.2 DM端环境检查
1.2.1系统用户检查
目的端为DM数据库,所以可以直接使用dmdba用户安装
1.2.2 同步用户检查
目的端同步用户DMHS,可以授予DBA权限
2.HS软件安装
2.1软件安装
HS的安装包为可执行的bin文件,可先用root用户进行安装,后权限转授。
2.2 HS软件配置
2.2.1 HS Oracle端配置
数据同步的配置文件dmhs.hs需要手动编辑,是数据同步需要的核心文件。内容包括运行模块类型、同步内容等。具体参数详解可查看<<DMHS参考手册>>
示例如下: