目 录
达梦数据库安装及维护
1.2.1 检查 Linux系统信息
在安装 DM 前,需要检查当前操作系统的相关信息,确认 DM 安装程序与当前操作系统匹配,以保证 DM 能够正确安装和运行。用户可以使用以下命令检查操作系统基本信息。如下图所示:
#获取系统位数 getconf LONG_BIT #查询操作系统 release 信息 lsb_release -a #查询系统信息 cat /etc/issue #查询系统名称 uname -a |
1.2.2 检查系统内存与存储空间
(1)检查内存
为了保证 DM 的正确安装和运行,要尽量保证操作系统至少 1GB 的可用内存(RAM)。如果可用内存过少,可能导致DM安装或启动失败。可以使用以下命令检查操作内存:
#获取内存总大小 grep MemTotal /proc/meminfo #获取交换分区大小 grep SwapTotal /proc/meminfo #获取内存使用详情 free |
(2)检查存储空间
DM 完全安装需要 1GB 的存储空间,用户需要提前规划好安装目录,预留足够的存储空间。用户在 DM 安装前也应该为数据库实例预留足够的存储空间,规划好数据路径和备份路径。用户可使用以下命令检查存储空间:
#查询目录/dmdata 可用空间 df -h /dmdata |
1.2.3 用户创建
为了减少对操作系统的影响,用户不应该以root用户来安装和运行达梦数据库。用户可以在安装之前为达梦数据库创建一个专用的系统用户。
(1)创建安装用户组 dinstall。
groupadd dinstall |
(2)创建安装用户 dmdba。
useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba |
(3)初始化用户密码。
passwd dmdba |
1.2.4 Linux系统参数优化
(1)修改hosts文件
[root]# vi /etc/hosts #DM Watcher 10.212.152.11 test-dameng-mpp01 10.212.152.12 test-dameng-mpp02 10.212.152.13 test-dameng-mpp03 |
(2)修改limits.conf文件
[root]# vi /etc/security/limits.conf # Dameng setting * soft nofile 102400 * hard nofile 102400 dmdba soft nproc 102400 dmdba hard nproc 102400 |
(3)修改sysctl.conf文件
[root]# vi /etc/sysctl.conf # Dameng setting vm.swappiness=0 vm.overcommit_memory=0 [root]# /sbin/sysctl -p |
(4)关闭防火墙
--Redhat6 [root]# service iptables stop [root]# chkconfig iptables off --Redhat7 [root]# systemctl stop firewalld [root]# systemctl disable firewalld |
(5)关闭SELINUX
[root]# vi /etc/selinux/config SELINUX=disabled |
(6)检查时间同步
[root]# systemctl status ntpd |
1.2.5 目录规划
为了方便数据的同意管理,建议安装前统一规划路径。
(1)安装包存放路径:/dmdata/DM7_SOFT/
(2)home文件路径:/dmdata/dmdbms/dmdbms/bin
(3)数据文件路径:/dmdata/dmdbms/inatance_name /inatance_name
[root]# mkdir -p /dmdata/DM7_SOFT/ [root]# mkdir -p /dmdata/dmdbms/ [root]# chown -R dmdba:dinstall /dmdata |
1.2.6 DM7安装详情
应登录或切换到安装系统用户,进行以下安装步骤的操作,DM 提供了命令行的安装方式。安装方式如下所示:
[root@]# mkdir -p /dmdata/DM7_SOFT/dm7_setup [root@]# mount -o loop /dmdata/DM7_SOFT/dm7_setup_rh6_64_ent_20161009_ v7.1.5.120.iso /dmdata/DM7_SOFT/dm7_setup [root@]# su - dmdba [dmdba@]$ cd /dmdata/DM7_SOFT/dm7_setup [dmdba@test-dameng-mpp02 dm7_setup_rh6_64_ent_20161009_v7.1.5.120]$ ./DMInstall.bin -i Extract install files......... Welcome to DM DBMS Installer Whether to input the path of Key File? (Y/y:Yes N/n:No) [Y/y]:y Please Input the Path of the Key File [dm.key]:/dmdata/DM7_SOFT/dm.key Please Select the TimeZone [21]:21 Please Input the number of the Installation Type [1 Typical]:1 Please Input the install path [/home/dmdba/dmdbms]:/dmdata/dmdbms/dmdbms Available Space:860396M Please Confirm the install path? (Y/y:Yes N/n:No) [Y/y]:y Pre-Installation Summary Installation Location: /dmdata/dmdbms/dmdbms Require Space: 542M Available Space: 860396M Version Information: Expire Date: Installation Type: Typical Confirm to Install? (Y/y:Yes N/n:No) [Y/y]:y [INFO] Installed DM DBMS completely. Please execute the commands by root: mv /dmdata/dmdbms/dmdbms/bin/dm_svc.conf /etc/dm_svc.conf End [dmdba@test-dameng-mpp02 dm7_setup_rh6_64_ent_20161009_v7.1.5.120]$ exit logout [root@]# mv /dmdata/dmdbms/dmdbms/bin/dm_svc.conf /etc/dm_svc.conf |
DIsql 是 DM 数据库的一个命令行客户端工具,用来与 DM 数据库服务器进行交互。DIsql 识别用户输入,将用户输入的 SQL 语句打包发送给 DM 数据库服务器执行,并接收服务器的执行结果,并按用户的要求将执行结果展示给用户。
DISQL 用法1:disql -h|help 显示disql版本信息和帮助信息 DISQL 用法2:disql [ [<option>] [{<logon> | /NOLOG}] [<start>] ] <option> : [-L] [-S] -L 只尝试登录一次 -S 隐藏模式,隐藏<SQL>标识符 <logon> : {<username>[/<password>][*<MPP_TYPE>][@<connect_identifier>]} | {/ AS <SYSDBA|SYSSSO|SYSAUDITOR|AUTO>} <connect_identifier> 为{[<server>][:<port>][?{UDP|TCP|IPC|RDMA}][#<sslpath>][@<sslpwd>]} <server>如果是IPv6的地址,需要用[]指明是IPv6地址, 例如[fe80::1e6f:65ff:fed1:3724%6] <start> : `<filename>[<parameter> ...]<direct sql> 运行disql脚本 /NOLOG 选项能在未登录DM服务器的情况下启动disql <direct sql>:-e "<SQL语句>[;<SQL语句>]" |
1.4.1 安装步骤
达梦数据库windows版本一般为ISO格式文件,可直接使用UltraISO打开,或使用压缩软件解压缩。
图2-2 达梦数据库安装步骤(windows)
版本文件解压后,文件夹中包括安装文件、源文件、中英文版的安装手册及可执行安装程序。双击setup.exe开始进行安装。
图2-3 达梦数据库安装步骤(windows)
达梦数据库windows版本安装方式较为简单,按照程序提示,直接“下一步”即可完成安装,具体步骤参考如下。
(1)版本检测
开始安装程序后,程序将检测当前主机是否已经安装其他版本达梦数据库。同一主机上,可以安装多个版本,但是不建议这样操作。
图2-4 达梦数据库安装步骤(windows)
(2)语言时区选择
根据系统配置选择相应语言与时区,默认为“简体中文”与“ GTM+08:00中国标准时间”,点击“确定”按钮继续安装。
图2-5 达梦数据库安装步骤(windows)
(3)安装欢迎界面
点击“开始”按钮进行安装。
图2-6 达梦数据库安装步骤(windows)
(4)许可证协议
在安装和使用达梦数据库之前,该安装程序需要用户阅读许可协议条款,用户如接受该协议,则选中“接受”,并点击“下一步”继续安装;用户若选中“不接受” ,将无法进行安装。
图2-7 达梦数据库安装步骤(windows)
(5)查看版本信息
查看达梦服务器、客户端等各组件相应的版本信息。
图2-8 达梦数据库安装步骤(windows)
(6)lisence信息
验证 Key 文件。点击“浏览”按钮,选取 Key 文件,安装程序将自动验证 Key 文件信息。开发测试环境,无需使用Key文件,如有用户数、并发数需求,联系技术服务人员获取。
图2-9 达梦数据库安装步骤(windows)
(7)安装组件选择
达梦数据库安装程序提供四种安装方式:“典型安装” 、“服务器安装” 、“客户端安装”和“自定义安装” ,可根据实际情况灵活地选择。如果只作为开发工具使用,可以选择“客户端安装”;如果用作本地开发测试,建议选择“典型安装”。
图2-10 达梦数据库安装步骤(windows)
(8)安装路径选择
达梦数据库默认安装在 C:\dmdbms 目录下,可以通过点击“浏览”按钮自定义安装目录。 安装路径里的目录名由英文字母、数字和下划线等组成,不支持包含空格的目录名,建议不要使用中文字符。
图2-11 达梦数据库安装步骤(windows)
(9)开始菜单创建
选择快捷方式在开始菜单中的文件夹名称,默认为“达梦数据库” 。
图2-12 达梦数据库安装步骤(windows)
(10)安装信息小结
显示用户即将进行的安装的有关信息,检查无误后点击“安装”按钮,开始安装软件。
图2-13 达梦数据库安装步骤(windows)
(11)开始安装
显示安装过程,完成安装。
图2-14 达梦数据库安装步骤(windows)
1.4.2 卸载步骤
达梦数据库卸载,进入达梦数据库安装目录,双击“uninstall.exe”,参照卸载程序向导,逐步进行程序卸载。在此不做详细说明。
1.5.1 客户端工具简介
达梦数据库提供可视化的数据库开发管理软件,DM管理工具,包含在开始菜单--达梦数据库--客户端文件夹中。
图2-15 达梦客户端工具
DM管理工具联机帮助文档,可在帮助--帮助主题中进行查看:
图2-16 达梦客户端工具
图2-17 达梦客户端工具
1.5.2 注册数据库连接
(1)单机连接
根据DBA提供的环境信息,注册数据库连接,以便下次连接时无需重新输入环境信息。生产环境建议不勾选保存口令。
图2-18 达梦客户端注册连接
图2-19 达梦客户端注册连接
(2)集群连接
开发环境、生产环境均使用达梦数据库集群。注册集群连接,需配置C:\Windows\System32下的dm_svc.conf文件,后使用服务名进行连接。dm_svc.conf文件配置完成后,需重启DM管理工具。
图2-20 达梦客户端注册连接
图2-21 达梦客户端注册连接
1.5.3 主菜单工具栏
图2-22 达梦客户端主菜单工具栏
左到右分别为:
新建查询:在当前选定的数据库连接上打开一个新的SQL编辑器
打开脚本文件:打开一个写有SQL脚本的文件,默认文件后缀为.SQL
保存:保存当前编辑器内容到文件
保存所有:保存所有已经打开的编辑器内容到文件
撤销:撤销刚刚对编辑器所做的文字改变
重做:恢复刚刚对编辑器所做的撤销操作
剪切:剪切编辑器中所选中内容到系统剪贴板
复制:复制编辑器中所选中内容到系统剪贴板
粘贴:粘贴剪贴板中的内容
执行:执行选中文本或执行所有
批量执行:批量执行SQL编辑器中的SQL语句
单步执行:每次执行一条SQL语句
执行脚本:打开SQL脚本并执行
停止:停止正在执行中的SQL操作
提交:提交更改到数据库
回滚:回滚到上一个保存点
显示执行计划:显示SQL语句的执行计划(相当于语法explain+SQL)
执行闪回查询:设置闪回查询条件并执行
SQL调试:调试SQL语句
1.5.4 窗口选项配置
在DM管理工具,窗口--选项中对日常使用习惯进行配置。
图2-23 达梦客户端窗口选项配
(1)自动提交
建议开启自动提交,在执行语句后可以省去手工commit操作,同时也避免查询后直接关闭管理工具,造成读未提交的情况。
图2-24 达梦客户端配置自动提交
(2)出错后继续执行
在批量执行脚本时,可根据需求,设置出错后继续执行。
图2-25 达梦客户端配置出错后继续执行
(3)显示行号
可以设置显示行号,在语法出错后可方便进行定位。
图2-26 达梦客户端显示行号
数据库配置工具可以通过 DM 支持的模板或用户自定义的模板来创建数据库。启动数据库配置工具,将出现数据库配置工具界面,在数据库配置工具操作窗口中,选择“创建数据库”选项启动能够创建和配置一个数据库的向导,如图所示。
图2-27 数据库配置工具创建数据库
(1)数据库模板
在这个窗口中可以选择需要创建数据库的类型,DM预定义了一些模板,如一般用途、联机分析处理模板或联机事务处理模板。如图所示。
图2-28 数据库配置工具创建数据库
(2)数据库目录
指定数据库目录。如图所示。
图2-29 数据库配置工具创建数据库
(3)数据库标识
在“数据库名(D)”文本框中,输入数据库名;在“实例名(I)”文本框中输入数据库实例名;在“端口(P)”文本框中,输入端口号。如图所示。
图2-30 数据库配置工具创建数据库
(4)数据库文件
此界面包含四个选项卡:“控制文件”、“数据文件”、“日志文件”和“初始化日志”,可以通过双击路径来更改文件路径。如图所示。
图2-31 数据库配置工具创建数据库
(5)初始化参数
数据文件使用的簇大小,即每次分配新的段空间时连续的页数,只能是 16 页或 32 页,缺省使用 16 页。数据文件使用的页大小,可以为 4K、 8K、 16K 或 32K,选择的页大小越大,则 DM 支持的元组长度也越大,但同时空间利用率可能下降,缺省使用 8K。日志文件使用的大小,默认是 64, 范围为 64 和 2048 之间的整数,单位为 M。时区设置,默认是+08:00,范围为-12:59 和+14:00 之间,如图 7.7 所示。页面检查,默认是不启用, 选项包括不启用、简单检查、严格检查。字符集,默认是 GB18030, 选项包括 GB18030、 Unicode、 EUC-KR。如图所示。
图2-32 数据库配置工具创建数据库
(6)口令管理
为了数据库管理安全,提供了为数据库的 SYSDBA 和 SYSAUDITOR 系统用户指定新口令功能, 如果安装版本为安全版,将会增加 SYSSSO 和 SYSDBO 用户的密码修改。用户可以选择为每个系统用户设置不同口令(留空表示使用默认口令),也可以为所有系统用户设置同一口令。口令必须是合法的字符串, 不能少于 9 个或多于 48 个字符。如图所示。
图2-33 数据库配置工具创建数据库
(7)创建示例库
选择创建示例库。如图所示。
图2-34 数据库配置工具创建数据库
(8)创建摘要
列举创建数据库纲要,会列举创建时指定的数据库名、示例名、数据库目录、端口、控制文件路径、数据文件路径、日志文件路径、簇大小、页大小、日志文件大小、标识符大小写是否敏感、是否使用 unicode 等信息,如图所示。
图2-35 数据库配置工具创建数据库
(9)创建数据库
核对完创建信息后,开始创建数据库、创建并启动实例、创建示例库。如图所示。
图2-36 数据库配置工具创建数据库
安装完成之后将显示对话框,提示安装完成或错误反馈信息,如图所示。
图2-37 数据库配置工具创建数据库
在安装 DM 的过程中,用户可以选择是否创建初始数据库,如果当时没有创建,也可以在完成安装后,利用初始化库工具 dminit 来创建。可以利用该工具提供的各种参数,设置数据库存放路径、段页大小、是否对大小写敏感以及是否使用 unicode。
dminit创建数据库示例:
./dminit PATH=/dmdata/dmdbms PAGE_SIZE=16 LOG_SIZE=2048 CASE_SENSITIVE=Y DB_NAME=YJHF INSTANCE_NAME=YJHF PORT_NUM=5248 |
DM7数据守护(Data Watch)是一种集成化的高可靠性解决方案,同时满足用户对数据安全性和高可用性的要求。解决由于硬件故障、自然灾害等原因导致的数据库服务长时间中断问题,满足用户不间断提供数据库服务的要求,即双机热备。
实时主备包含一个主库和一个实时备库,主库提供完整的数据库功能,主库修改数据产生的Redo日志,在写入联机Redo日志文件之前发送到实时备库,实时备库收到Redo日志后马上响应主库,同时启动重演Redo日志流程,主库收到备库响应消息后再将Redo日志真正写入联机Redo日志文件。当主库出现故障时,备库只需要将收到的所有Redo日志重演结束,就可以切换为主库对外提供数据库服务。系统结构如图所示。
图2-38 数据守护系统结构图
以56/57:5238测试环境为例,介绍DM7数据守护主备集群搭建步骤。
3.1.1 环境规划
设备名 | IP地址 | 端口规划 | 路径规划 |
主机:test-dameng-v01 | 10.212.xx.xx | INSTANCE_NAME = xx_PRI [GROUP_xx_CES] PORT_NUM = 5238 DW_PORT(主) = 33141 MAL_PORT(主) = 61141 MAL_DW_PORT(主) = 52141 INST_OGUID = 82480 | DM_HOME: /dmdata/dmdbms/dmdbms/bin 数据文件: /dmdata/dmdbms/TEXT/TEXT 备份文件: /dm_backup/TEXT/db_backup 归档文件: /dm_backup/TEXT/db_archlog |
备机:test-dameng-v02 | 10.212.xx.xx | [GROUP_TEXT_CES] INSTANCE_NAME = SHRSG_STA PORT_NUM = 5238 DW_PORT(备) = 33142 MAL_PORT(备) = 61142 MAL_DW_PORT(备) = 52142 INST_OGUID = 82480 | |
监视器:shjt-dameng-mon1 | 10.212.xx.xx | [GROUP_TEXT_CES] INST_OGUID = 82480 |
3.1.2 数据一致性检查
依次到每个实例上,切换到执行码目录/dmdata/dmdbms/dmdbms/bin,以mount方式启动数据库。
./dmserver /dmdata/dmdbms/TEXT/TEXT/dm.ini mount |
启动命令行工具disql,分别登录各个实例查询LSN值,如果主库和备库的FILE_LSN和CUR_LSN值相同,可以确保数据完全一致。
SQL>select file_LSN, cur_LSN from v$rlog; 行号 FILE_LSN CUR_LSN -------- ------------------ -------------- 1 10250 10250 |
检查实例的永久魔数是否一致:
SQL>select permanent_magic; 行号 PERMANENT_MAGIC ---------- --------------- 1 385101984 |
确保LSN和永久魔数都一致的情况下,正常关闭各个实例,继续配置数据守护。
3.1.3 配置主库TEXT_PRI
(1)配置dm.ini
在test-dameng-v01机器上配置主库的实例名为TEXT_PRI,dm.ini参数修改如下:
#实例名,建议使用“组名_守护类型_序号”的命名方式,总长度不能超过16 INSTANCE_NAME = TEXT_PRI PORT_NUM = 5238 #数据库实例监听端口 DW_PORT = 33141 #守护环境下,监听守护进程连接端口 DW_ERROR_TIME = 60 #接收守护进程消息超时时间 ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态 MAL_INI = 1 #打开MAL系统 ARCH_INI = 1 #打开本地归档 HA_INST_CHECK_FLAG = 1 #检测是否多个实例进程同时启动 |
(2)配置dmmal.ini
配置MAL系统,各主备库的dmmal.ini配置完全一致,MAL_HOST使用内部网络IP,MAL_PORT与dm.ini中PORT_NUM使用不同的端口值,MAL_DW_PORT是各实例对应的守护进程之间,以及守护进程和监视器之间的通信端口,配置如下:
MAL_CHECK_INTERVAL = 5 #MAL链路检测时间间隔 MAL_CONN_FAIL_INTERVAL = 5 #判定MAL链路断开的时间 [MAL_INST1] MAL_INST_NAME = TEXT_PRI #实例名 MAL_HOST = 10.212.xx.xx #MAL系统监听TCP连接的IP地址 MAL_PORT = 61141 #MAL系统监听TCP连接的端口 MAL_INST_HOST = 10.212.xx.xx #实例的对外服务IP地址 MAL_INST_PORT = 5238 #实例的对外服务端口 MAL_DW_PORT = 52141 #实例对应的守护进程监听TCP连接的端口 [MAL_INST2] MAL_INST_NAME = TEXT_STA MAL_HOST = 10.212.xx.xx MAL_PORT = 61142 MAL_INST_HOST = 10.212.xx.xx MAL_INST_PORT = 5238 MAL_DW_PORT = 52142 |
(3)配置dmarch.ini
修改dmarch.ini,配置本地归档和实时归档。
除了本地归档外,其他归档配置项中的ARCH_DEST表示实例是Primary模式时,需要同步归档数据的目标实例名。
当前实_PRI是主库,需要向TEXT_STA(实时守护类型的备库)同步数据,因此实时归档的ARCH_DEST配置为TEXT_STA。
[ARCHIVE_REALTIME] ARCH_TYPE = REALTIME #实时归档类型 ARCH_DEST = TEXT_STA #实时归档目标实例名 [ARCHIVE_LOCAL1] ARCH_TYPE = LOCAL #本地归档类型 ARCH_DEST = /dmdata/dmdbms/TEXT/TEXT_ARCH ARCH_FILE_SIZE = 1024 #单位Mb,本地单个归档文件最大值 ARCH_SPACE_LIMIT = 10480 #单位Mb,0表示无限制 ARCH_HANG_FLAG = 1 |
(4)配置dmwatcher.ini
修改dmwatcher.ini配置守护进程,配置为实时守护类型,使用自动切换模式。
[GROUP_TEXT_CES] DW_TYPE = REALTIME #实时守护类型 DW_MODE = AUTO #自动切换模式 DW_ERROR_TIME = 10 #远程守护进程故障认定时间 INST_Error_TIME = 10 #本地实例故障认定时间 INST_OGUID = 82480 #守护系统唯一OGUID值 INST_INI = /dmdata/dmdbms/TEXT/TEXT/dm.ini INST_AUTO_RESTART = 1 #打开实例的自动拉起功能 INST_STARTUP_CMD = /dmdata/dmdbms/dmdbms/bin/dmserver #命令行方式启动 INST_HOST_CHECK = 1 #打开实例对外服务IP的网卡检测功能 |
(5)配置dmwatcher.ctl
同一个守护进程组,只需要生成一份dmwatcher.ctl文件,并拷贝到各个数据库目录下。
在配置完成dmwatcher.ini后,使用dmctlcvt工具生成dmwatcher.ctl:
./dmctlcvt t2dwctl /dmdata/dmdbms/TEXT/TEXT/dmwatcher.ini /dmdata/dmdbms/TEXT/ |
拷贝生成的dmwatcher.ctl文件到数据文件目录。
(6)启动主库
以mount方式启动主库。
./dmserver /dmdata/dmdbms/TEXT/TEXT/dm.ini mount |
注意:一定要以mount方式启动数据库实例,否则系统启动时会重构回滚表空间,生成Redo日志;并且,启动后应用可能连接到数据库实例进行相关的操作,破坏主备库的数据一致性。数据守护配置结束后,守护进程会自动Open数据库。
(7)设置OGUID
启动命令行工具disql,登录主库设置OGUID值。
SQL>sp_set_oguid(82480); |
注意:系统通过OGUID值确定一个守护进程组,由用户保证OGUID值的唯一性,并确保数据守护系统中,数据库、守护进程和监视器配置相同的OGUID值。
(8)修改数据库模式
启动命令行工具disql,登录主库修改数据库为Primary模式。
SQL>alter database primary; |
3.1.4 配置备库TEXT_STA
(1)配置dm.ini
在test-dameng-v02机器上配置备库的实例名为TEXT_STA,dm.ini参数修改如下:
#实例名,建议使用“组名_守护类型_序号”的命名方式,总长度不能超过16 INSTANCE_NAME = TEXT_STA PORT_NUM = 5238 #数据库实例监听端口 DW_PORT = 33142 #守护环境下,监听守护进程连接端口 DW_ERROR_TIME = 60 #接收守护进程消息超时时间 ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态 MAL_INI = 1 #打开MAL系统 ARCH_INI = 1 #打开本地归档 HA_INST_CHECK_FLAG = 1 #检测是否多个实例进程同时启动 |
(2)配置dmmal.ini
配置MAL系统,各主备库的dmmal.ini配置完全一致,MAL_HOST使用内部网络IP,MAL_PORT与dm.ini中PORT_NUM使用不同的端口值,MAL_DW_PORT是各实例对应的守护进程之间,以及守护进程和监视器之间的通信端口,相关配置如下:
MAL_CHECK_INTERVAL = 5 #MAL链路检测时间间隔 MAL_CONN_FAIL_INTERVAL = 5 #判定MAL链路断开的时间 [MAL_INST1] MAL_INST_NAME = TEXT_PRI #实例名 MAL_HOST = 10.212.xx.xx #MAL系统监听TCP连接的IP地址 MAL_PORT = 61141 #MAL系统监听TCP连接的端口 MAL_INST_HOST = 10.212.xx.xx#实例的对外服务IP地址 MAL_INST_PORT = 5238 #实例的对外服务端口 MAL_DW_PORT = 52141 #实例对应的守护进程监听TCP连接的端口 [MAL_INST2] MAL_INST_NAME = TEXT_STA MAL_HOST = 10.212.xx.xx MAL_PORT = 61142 MAL_INST_HOST = 10.212.xx.xx MAL_INST_PORT = 5238 MAL_DW_PORT = 52142 |
(3)配置dmarch.ini
修改dmarch.ini,配置本地归档和实时归档。
除了本地归档外,其他归档配置项中的ARCH_DEST表示实例是Primary模式时,需要同步归档数据的目标实例名。
当前实例TEXT_STA是备库,守护系统配置完成后,可能在各种故障处理中,TEXT_STA切换为新的主库,正常情况下,TEXT_PRI会切换为新的备库,需要向TEXT_PRI同步数据,因此实时归档的ARCH_DEST配置为TEXT_PRI。
[ARCHIVE_REALTIME] ARCH_TYPE = REALTIME #实时归档类型 ARCH_DEST = TEXT_PRI #实时归档目标实例名 [ARCHIVE_LOCAL1] ARCH_TYPE = LOCAL #本地归档类型 ARCH_DEST = /dmdata/dmdbms/TEXT/TEXT_ARCH ARCH_FILE_SIZE = 1024 #单位Mb,本地单个归档文件最大值 ARCH_SPACE_LIMIT = 10480 #单位Mb,0表示无限制 ARCH_HANG_FLAG = 1 |
(4)配置dmwatcher.ini
修改dmwatcher.ini配置守护进程,配置为实时守护类型,使用自动切换模式。
[GRP1] DW_TYPE = REALTIME #实时守护类型 DW_MODE = AUTO #自动切换模式 DW_ERROR_TIME = 10 #远程守护进程故障认定时间 INST_Error_TIME = 10 #本地实例故障认定时间 INST_OGUID = 82480 #守护系统唯一OGUID值 INST_INI = /dmdata/dmdbms/TEXT/TEXT/dm.ini INST_AUTO_RESTART = 1 #打开实例的自动拉起功能 INST_STARTUP_CMD = /dmdata/dmdbms/dmdbms/bin/dmserver #命令行方式启动 INST_HOST_CHECK = 1 #打开实例对外服务IP的网卡检测功能 |
(5)配置dmwatcher.ctl
同一个守护进程组,只需要生成一份dmwatcher.ctl文件,这里直接拷贝配置主库时已经生成的dmwatcher.ctl到本地数据文件目录/dmdata/dmdbms/TEXT/TEXT。
(6)启动备库
以mount方式启动备库:
./dmserver /dmdata/dmdbms/TEXT/TEXT/dm.ini mount |
注意:一定要以mount方式启动数据库实例,否则系统启动时会重构回滚表空间,生成Redo日志;并且,启动后应用可能连接到数据库实例进行操作,破坏主备库的数据一致性。数据守护配置结束后,守护进程会自动Open数据库。
(7)设置OGUID
启动命令行工具disql,登录备库设置OGUID值为453331。
SQL>sp_set_oguid(82480); |
注意:系统通过OGUID值确定一个守护进程组,由用户保证OGUID值的唯一性,并确保数据守护系统中,数据库、守护进程和监视器配置相同的OGUID值。
(8)修改数据库模式
启动命令行工具disql,登录备库修改数据库为Standby模式
SQL>alter database standby; |
3.1.5 配置监视器
由于主库和实时备库的守护进程配置为自动切换模式,因此这里选择配置确认监视器。和普通监视器相比,确认监视器除了相同的命令支持外,在主库发生故障时,能够自动通知实时备库接管为新的主库,具有自动故障处理的功能。
注意,确认监视器最多只能配置一个。监视器配置在台式机上。
修改dmmonitor.ini配置确认监视器,其中MON_DW_IP中的IP和PORT和dmmal.ini中的MAL_HOST和MAL_DW_PORT配置项保持一致。
MON_DW_Confirm = 1 #确认监视器模式 MON_LOG_PATH = /dmdata/dmdbms/dmdbms/log MON_LOG_INTERVAL = 60 #每隔60s定时记录系统信息到日志文件 MON_LOG_FILE_SIZE = 32 #每个日志文件最大32M MON_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间 [GRP1] MON_INST_OGUID = 82480 #组GRP1的唯一OGUID值 #以下配置为监视器到组GRP1的守护进程的连接信息,以“IP:PORT”的形式配置 #IP对应dmmal.ini中的MAL_HOST,PORT对应dmmal.ini中的MAL_DW_PORT MON_DW_IP = 10.212.xx.xx:52141 MON_DW_IP = 10.212.xx.xx:52142 |
3.1.6 启动守护进程
守护进程启动后,进入STARTUP状态,此时实例都处于Mount状态。守护进程开始广播自身和其监控实例的状态信息,结合自身信息和远程守护进程的广播信息,守护进程将本地实例Open,并切换为Open状态。
启动各个主备库上的守护进程:
./dmwatcher /dmdata/dmdbms/TEXT/TEXT/dmwatcher.ini |
3.1.7 启动监视器
监视器提供一系列命令,支持当前守护系统状态查看以及故障处理,可输入help命令,查看各种命令说明使用,结合实际情况选择使用。
启动监视器:
./dmmonitor /dmdata/dmdbms/TEXT/TEXT/dmmonitor.ini |
至此实时守护类型的数据守护系统搭建完毕,在搭建步骤和各项配置都正确的情况下,在监视器上执行show命令,可以监控到所有实例都处于Open状态,所有守护进程也都处于Open状态,即为正常运行状态。
3.2.1 状态信息查看
一般情况下,确认监视在后台启动,使用非确认监视器查看集群状态信息。使用show命令查看信息如下:
图2-39 主备集群状态查看
show命令显示结果中各字段含义说明如下:
(1)全局字段信息
GROUP:守护进程组名。
OGUID:守护进程组配置的唯一OGUID值。
MON_Confirm:监视器是否配置为确认模式,值为TRUE或FALSE。
Failover_TYPE:当前配置的切换模式,AUTO Failover表示自动切换,MANUAL Failover表示非自动切换。
(2)实例各字段信息
WTIME:实例对应的守护进程本地的当前时间。
WTYPE:守护进程配置的守护类型,包括LOCAL/REALTIME/TIMELY/MARCH四种类型。
WCTLSTAT:守护进程控制文件状态,包括Valid/SPLIT/Invalid三种状态,对于配置为本地守护类型的实例,由于不需要有守护进程控制文件,该字段值为NULL。
WSTATUS:守护进程状态。
INST_OK:守护进程认定的实例状态,OK或Error。
INAME:实例名称。
ISTATUS:数据库实例状态,包括STARTUP/AFTER Redo/Mount/Open/SUSPEND/
Shutdown这几种状态。
IMODE:数据库实例模式,包括NORMAL/Primary/Standby这三种模式。
RSTAT:此字段对备实例有效,表示主实例到备实例的归档状态,可能为Valid/Invalid/UNKNOWN,对于本地守护类型的备实例,此字段为NULL,对于主实例本身,此字段值为Valid。
N_Open:表示实例的Open次数,主实例每Open一次,该值对应加1,并产生日志同步到备实例重做,主备实例数据一致的情况下,N_Open数值也应该一致。
FLSN:文件LSN,指已经写入联机日志文件的最大LSN值。
CLSN:系统当前LSN,指当前数据库最新产生的LSN值。
SSLSN:备实例收到的主实例发送过来日志的次大LSN,主实例的SSLSN和CLSN相等。
SLSN:备实例收到的主实例发送过来日志的最大LSN,主实例的SLSN和CLSN相等。
3.2.2 主备集群启停
(1)启动顺序(主-备-主-备)
启动主机dmserver:./dmserverd_shrsg start 启动备机dmserver:./dmserverd_shrsg start 启动主机watcher:./DmWatcherService_GL_SHRSG start 启动备机watcher:./DmWatcherService_GL_SHRSG start 启动确认监视器monitor:./DmMonitorService_cs_shrsg start |
(2)关闭顺序(备-主-主-备)
关闭确认监视器monitor:./DmMonitorService_cs_TEXT stop 关闭备机watcher:./DmWatcherService_GL_TEXT stop 关闭主机watcher:./DmWatcherService_GL_TEXT stop 关闭主机dmserver:./dmserverd_TEXT stop 关闭备机dmserver:./dmserverd_TEXTstop |
3.2.3 监视器命令
(1)help
显示帮助信息。
(2)show
显示所有组的实例状态信息。
(3)show i n
每隔n秒自动执行一次show命令,n取值范围为5~3600(s).
(4)list
列出指定组中所有实例的配置信息。
(5)tip
打印当前系统的运行状态。
(6)login/ logout
登录/退出监视器.
登录口令和服务器的用户登录口令一致,默认使用SYSDBA/SYSDBA。
(7)switchover
将指定组的指定实例切换为新的主实例,将当前的主实例切换为新的备实例,此命令要求执行切换的主备实例都是正常Open状态。
注意:执行此命令需要先登录监视器。
(8)takeover
使用指定组的指定实例接管组中的故障主实例。
该命令要求监视器收到过故障主实例的历史信息,并且主实例的历史信息必须满足被接管条件。
注意:执行此命令需要先登录监视器。
3.2.4 备机打开归档
在主备集群中,当主机故障短时间无法恢复,备机接管对外提供服务时,需更改备机归档模式,连接设置归档方式如下:
(1)设置数据库状态为 MOUNT:
alter database mount; |
(2)设置数据库归档模式为归档:
alter database archivelog; |
(3)增加本地归档配置:
ALTER DATABASE ADD ARCHIVELOG 'DEST = /dm_backup/TEXT/db_archlog, TYPE = local, FILE_SIZE= 128, SPACE_LIMIT = 1024'; |
(4)设置数据库状态为 OPEN:
alter database open; |
3.2.5 主备集群拆成单机
(1)待主机数据备份完成之后,将主机拆成单机。删除dmarch.ini、dmmal.ini、dmwatch.ini、dmtimer.ini
rm dmarch.ini –rf rm dmmal.ini –rf rm dmwatch.ini –rf rm dmtimer.ini –rf |
(2)修改dm.ini中的相关参数。
DW_UDP_PORT = 0 INST_UDP_PORT = 0 MAL_INI = 0 ARCH_INI = 0 TIMER_INI = 0 |
(3)待参数修改完成后,以前台方式启动主库上的数据库;
./dmserver path=/data/dmdbms/DM1/dm.ini |
(4)待数据库启动后,使用disql进行登录,此时实例目前应该处于primary mount状态需在disql中执行一下SQL脚本:
alter database normal; alter database open force; |
确认数据库状态正常后,正常退出。
DM监控工具分为dem (WEB版管理工具)和dmagent (远程主机上的代理)两部分。安装包解压后的目录结构如下。
图2-40 DM监控工具安装介质
4.1.1 dem部署
(1)创建一个数据库作为DEM后台数据库
数据库初始化参数建议:页大小16K,日志文件大写:2048M,其他默认即可。
图2-41 DEM数据库初始化
数据库dm.ini参数配置进行优化, 推荐配置:
MEMORY_POOL = 200 BUFFER = 1000 KEEP = 64 MAX_BUFFER = 2000 SORT_BUF_SIZE = 50 |
(2)在该数据库中执行文件夹中dem_init.sql脚本,使用SYSDBA用户执行即可。
图2-42 DEM数据库初始化脚本
(3)配置dem
解压安装包中dem.war,在dem\WEB-INF\ db.xml文件中配置后台数据库的连接信息:ip、port、用户名、密码、连接池大小等信息。将修改后的dem文件夹拷贝到tomcat\webapps目录下(DM7在安装时自带了绿色版的tomcat,在D:\dmdbms\web\目录下)。
.
图2-43 DEM数据库连接信息
(4)配置tomcat
在conf/server.xml中 <Connector port="8080" protocol="HTTP/1.1"... 追加属性字段 maxPostSize="0"; #修改jvm启动参数 Linux:bin/catalina.sh -> JAVA_OPTS="-server -Xms256m -Xmx1024m -XX:MaxPermSize=512m -Djava.library.path=/opt/dmdbms/bin"; Windows:bin/catalina.bat -> set java_opts= -server -Xms40m -Xmx1024m -XX:MaxPermSize=512m -Djava.library.path=c:\dmdbms\bin; |
4.1.2 dmagent部署
(1)配置jdk
考虑到后续版本升级的情况,不建议把jre放在dmagent目录下。目录参考如下:jre与dmagent在同级的一个目录。配置JDK(为了屏蔽jdk版本的差异,可将dem端使用的jre上传到linux服务器)。配置/etc/profile,在最后增加如下一行:
export JRE_HOME=/dmdata/dmagent_dem/jre source /etc/profile使配置生效。 |
图2-44 dmagent配置JDK
图2-45 dmagent配置JDK
(2)配置config.properties
配置信息及说明如下:
#[General] #1:DEM Agent 2:Deploy Agent 3:DEM&Deploy Agent #设置 dmagent 的运行模式 run_mode=3 #dmagent 的 RMI 端口号 rmi_port=6364 #[DEM] # DEM Agent 运行模式所需参数 #DEM 系统所在主机连接信息 center.url=http://192.168.0.104:8080/dem center.agent_servlet=dem/dma_agent |
(3)DMAgentServer启停命令
./DMAgentService.sh start ./DMAgentService.sh stop |
达梦数据生产环境全面部署DEM监控工具,实时监控主机负载,集群状态,会话、表空间、表数据等数据库对象,并实现了邮件告警,对于数据库异常,可以第一时间发现与处理。
登录系统后主界面如下:分为客户端工具、监控及告警、系统管理等三个模块。主要使用的为监控及告警模块。
图2-46 DEM监控平台首页
4.2.1 客户端管理工具
本模块涵盖了管理工具(dmmansger)的基本功能。
图2-47 DEM客户端管理工具
4.2.2 监控及告警
(1)主机模块
在服务器端部署完dmagent后,等待数秒,主机信息会自动显示到页面上。若要删除主机,需先停止服务器端的DMAgentServer。主机完整显示后,CPU、CPU等待、内存、交换区、磁盘读、磁盘写、网络读、网络写等信息将在列表中直观呈现。
图2-48 DEM主机监控模块
在操作列表,点击“负载统计”可分时段跟踪主机负载的整体情况。
图2-49 DEM主机监控模块
在操作列表,点击“磁盘分析”可以直观的呈现磁盘的使用情况。
图2-50 DEM主机监控模块
(2)数据库模块
在主机模块部署完成后,可点击“添加”添加数据库(单机、主备、MPP等)信息;数据库信息添加完成后,可在操作列表对数据库进行监控和管理。
图2-51 DEM数据库监控模块
在操作列表中,可进行“会话分析”、“表空间分析”、“表数据分析”等操作。
图2-52 DEM数据库监控模块
图2-53 DEM数据库监控模块
4.2.3 告警配置
本模块可根据系统具体要求添加告警,并设置告警策略;邮件和短信提醒可以在系统管理à系统配置中进行设置。
图2-54 DEM告警配置
4.2.4 系统管理
用管理员登陆系统后,可根据实际需要对系统的其他属性进行配置,包括dmagent的监控频率、前端刷新频率、邮件手机通知告警等;若要启用邮件通知,需用管理员用户登录系统,在系统配置中完成系统邮箱的相关配置;若需要启用短信通知,用户需要借助我们提供的WEB-INF/lib/demsdk.jar,实现 com.dameng.dem.server.util.IPhoneNotify接口,将依赖包及实现类打包放入到WEB-INF/lib下,重启web容器,然后在系统配置中完成短信通知的相关配置即可。
(1)定义DM JDBC驱动串
String jdbcString = "dm.jdbc.driver.DmDriver"; |
(2)定义DM URL连接串
String urlString = "jdbc:dm://10.212.116.26:5238?comOra=true"; |
(3)定义方言包
<property name="dialect">org.hibernate.dialect.DmDialect</property> |
5.2.1 配置dm_svc.conf
配置 dm_svc.conf,如果操作系统是windows,则将dm_svc.conf放在C:\Windows\System32下;如果操作系统是linux,则放在/etc/ 下面。
TIME_ZONE=(480) LANGUAGE=(cn) CESHI_TEXT=(10.212.xx.xx:5238,10.212.xx.xx:5238) |
5.2.2 JDBC配置
(1)定义DM JDBC驱动串
String jdbcString = "dm.jdbc.driver.DmDriver"; |
(2)定义DM URL连接串
String urlString = "jdbc:dm://CESHI_TEXT?comOra=true"; |
(3)定义方言包
<property name="dialect">org.hibernate.dialect.DmDialect</property> |
5.2.3 ODBC配置
(1)在应用服务器上安装达梦数据库,安装时需要选择驱动组件。
图2-55 达梦ODBC组件
(2)安装完成后,创建数据源(需使用系统DSN)。
图2-56 创建ODBC数据源
图2-57 ODBC数据源连接达梦集群
如果使用了hibernate,需要进行dialect的配置修改。
hibernate.dialect=org.hibernate.dialect.DmDialect |
在数据库的项目迁移过程中,经常遇到websphere、weblogic等中间件的数据源配置。以下我们将介绍在websphere 5.1中配置达梦数据源。
(1)websphere简介
WebSphere 是 IBM 的软件平台。它包含了编写、运行和监视全天候的工业强度的随需应变 Web 应用程序和跨平台、跨产品解决方案所需要的整个中间件基础设施,如服务器、服务和工具。WebSphere 提供了可靠、灵活和健壮的软件。
Websphere的安装过程比较简单,请记住输入的用户名密码,安装结束后进行安装验证,确认服务器上是否已经安装且能够正常的启动。
(2)配置达梦数据源
登陆控制台https://localhost:9043/ibm/console/logon.jsp,输入用户名密码:admin/admin;成功都登陆到集群解决方案控制台的欢迎页面。
(3)配置jdbc提供程序
新建JDBC提供程序,第一步中实现类名是需要注意的地方:dm.jdbc.pool.DmdbConnectionPoolDataSource
注:dm.jdbc.pool.DmdbConnectionPoolDataSource_bs
图2-58 达梦数据库WebSphere配置
第二步输入Jar包的路径信息:
图2-59 达梦数据库WebSphere配置
点击完成,保存以后出现如下的信息:
图2-60 达梦数据库WebSphere配置
(4)配置数据源
数据源配置的四个步骤如下所示:
图2-61 达梦数据库WebSphere配置
图2-62 达梦数据库WebSphere配置
图2-63 达梦数据库WebSphere配置
图2-64 达梦数据库WebSphere配置
点击完成并保存以后,在数据源中出现了dm7_datasource。
图2-65 达梦数据库WebSphere配置
(5)定制属性
点击dm7_datasource,出现如下信息:
图2-66 达梦数据库WebSphere配置
点击定制属性,输入url等信息:
图2-67 达梦数据库WebSphere配置
定制属性完成后保存,点击测试连接,出现如下信息则表示配置成功。
图2-68 达梦数据库WebSphere配置
6.1.1 DTS工具简介
DM数据迁移工具提供了主流大型数据库迁移到DM、DM到DM、文件迁移到DM以及DM迁移到文件的功能。DM数据迁移工具采用向导方式引导用户通过简单的步骤完成需要的操作。
DM数据迁移工具支持:
主流大型数据库Oracle、SQLServer、MySQL、DB2、PostgreSQL、Informix、Kingbase、Sybase的模式、表、视图、序列、索引迁移到DM;
ODBC数据源、JDBC数据源的模式、表、视图迁移到DM;
DM数据库的模式、表、视图、序列、索引迁移到主流大型数据库Oracle、SQLServer、MySQL;
DM数据库之间模式、表、序列、视图、存储过程/函数、包、类、同义词、触发器、对象权限的迁移;
DM数据库模式、表、序列、视图、存储过程/函数、包、类、同义词、触发器、对象权限迁移到XML文件;
DM数据库模式、表、序列、视图、存储过程/函数、包、类、同义词、触发器、对象权限迁移到SQL脚本文件;
DM数据库的表、视图数据迁移到文本文件;
DM数据库的表、视图数据迁移到Excel文件;
DM数据库的表、视图数据迁移到Word文件;
SQL脚本文件迁移到DM数据库;
XML文件迁移到DM数据库;
指定格式的文本文件、Word文件和Excel文件迁移到DM数据库。
6.1.2 DTS工具迁移
(1)新建工程
打开DM数据迁移工具DTS,选中迁移管理视图,如下图
图2-69 DTS工具迁移步骤
注:如果没有迁移管理视图或者不小心关闭了迁移管理视图,可以通过点击 窗口->视图->迁移管理 来打开。
右键点击空白处,选择 新建工程 或者 直接点击 新建工程按钮 如上图的红色框选部分,会弹出新建工程的对话框,如下图所示:
图2-70 DTS工具迁移步骤
在新建工程对话框中填写工程名(必填)和工程描述信息(选填),点击 确定 按钮,成功添加了一个工程。如下图所示:
图2-71 DTS工具迁移步骤
展开工程节点,可以看到下面有迁移、作业、调度和数据类型映射节点,如下图所示:
图2-72 DTS工具迁移步骤
(2)创建迁移
打开DM数据迁移工具,选中迁移管理视图,展开工程节点,右键点击工程节点下级的迁移节点,选择新建迁移,弹出新建迁移的对话框,如下图所示:
图2-73 DTS工具迁移步骤
配置新迁移的各个选项信息,点击确定按钮,完成迁移的创建,如下图所示:
图2-74 DTS工具迁移步骤
(3)迁移过程
第一步 选择迁移向导为“DM7 ==> DM7”
进入选择迁移方式的页面,选定需要的迁移方式,如下图所示:
图2-75 DTS工具迁移步骤
第二步,输入源库DM7的连接信息
进入数据源的配置页面,输入源库DM7数据库的相关信息信息,如下图所示:
图2-76 DTS工具迁移步骤
第三步,输入目的库DM7的连接信息
配置好之后点击 下一步,进入目的数据库的配置,输入相关的配置信息
图2-77 DTS工具迁移步骤
第四步, 选择迁移方式
指定从数据源复制对象还是复制查询结果集。
从数据源复制表/视图/序列/存储过程/函数/包/同义词(T)
在下面的表格中选择源、目的模式以及需要迁移的对象类型。选择创建模式选项,则如果目的模式不存在,则创建模式。
双击所选数据源的目的模式,可弹出下拉框,可指定导入数据库的目的模式。
图2-78 DTS工具迁移步骤
第五步, 选择迁移对象
选好相应的源模式和目的模式后点击 下一步
图2-79 DTS工具迁移步骤
如果有特殊的需求,可以点击 转换 按钮,弹出设置表映射关系的对话框,如下图所示:
图2-80 DTS工具迁移步骤
用户可以根据自己的实际情况,进行相应的设置。设置好之后,点击 确认 按钮。
第六步,审阅迁移计划
图2-81 DTS工具迁移步骤
审阅无误后,点击 完成 按钮。
第七步,执行迁移任务
图2-82 DTS工具迁移步骤
如果在迁移的过程中有出错的话,可以通过查看日志的方式查看迁移出错的位置,然后针对错误进行相应的修改就可以了。到此,整个数据迁移的过程就完成了。
逻辑导出(dexp)和逻辑导入(dimp)是 DM 数据库的两个命令行工具,分别用来实现对 DM 数据库的逻辑备份和逻辑还原。逻辑备份和逻辑还原都是在联机方式下完成。
6.2.1 dexp和dimp应用实例
(1)环境准备
导出库:环境为linux,服务器为192.168.0.248,用户名和密码均为 SYSDBA。 导出的是 DM 数据库系统安装时自带的名为 BOOKSHOP 的示例库,端口号 5236。
导入库:环境为linux,服务器为192.168.0.248,用户名和密码均为 SYSDBA。 准备一个空数据库作为导入库,端口号为 8888。
(2)dexp 导出
导出整个数据库(FULL=Y),导出文件为 dexp01.dmp,导出日志为 dexp01.log, 导出文件和日志文件都存放在/emc_2/data/dexp 目录中。
./dexp SYSDBA/SYSDBA@192.168.0.248:5236 FILE=dexp01.dmp LOG=dexp01.log DIRECTORY=/emc_2/data/dexp FULL=Y |
(3)dimp 导入
导入 SYSDBA、 OTHER、 PERSON 模式中的数据,导入文件就是上一步导出的文件 dexp01.dmp,导入日志 dimp02.log 放入/emc_2/data/dimp目录中。
./dimp SYSDBA/SYSDBA@192.168.0.248:8888 FILE=/emc_2/data/dexp/dexp01.dmp LOG=dimp02.log DIRECTORY=/emc_2/data/dimp SCHEMAS=SYSDBA,OTHER,PERSON |
(4)查看 LOG 日志
如果想了解详细的导出、导入内容统计信息,请查看 LOG 日志 dexp01.log 和dimp02.log
6.3.1 未提交查询
select b.object_name, c.sess_id , a.* from v$lock a , dba_objects b, v$sessions c where a.table_id=b.object_id and ltype ='OBJECT' and a.trx_id =c.trx_id; |
6.3.2 慢sql查询
select * from ( SELECT user_name , clnt_ip , sess_id , sql_text , datediff(ss, last_send_time, sysdate) ss, SF_GET_SESSION_SQL(SESS_ID) fullsql , appname FROM V$SESSIONS WHERE STATE='ACTIVE' and user_name!='SYSDBA' ) where ss>=1 order by 5 desc; |
6.3.3 阻塞查询
with locks as ( select o.name , l.* , s.sess_id , s.sql_text, s.clnt_ip , s.last_send_time from v$lock l , sysobjects o, v$sessions s where l.table_id=o.id and l.trx_id =s.trx_id ) , lock_tr as ( select trx_id wt_trxid, row_idx blk_trxid from locks where blocked=1 ) , res as ( select sysdate stattime , t1.name , t1.sess_id wt_sessid , s.wt_trxid , t2.sess_id blk_sessid , s.blk_trxid , t2.clnt_ip , SF_GET_SESSION_SQL(t1.sess_id) fulsql , datediff(ss, t1.last_send_time, sysdate) ss, t1.sql_text wt_sql from lock_tr s, locks t1 , locks t2 where t1.ltype ='OBJECT' and t1.table_id<>0 and t2.ltype ='OBJECT' and t2.table_id<>0 and s.wt_trxid =t1.trx_id and s.blk_trxid =t2.trx_id ) select distinct wt_sql, clnt_ip, ss, wt_trxid, blk_trxid from res; |
6.3.4 锁查询
select o.name, l.* from v$lock l, sysobjects o where l.table_id=o.id and blocked =1; |
6.3.5 释放会话
select * from V$SESSIONS where trx_id=? ;--事物号 sp_close_session(sess_id); --会话号 |
6.3.6 登录失败历史信息
select * from "SYS"."SYSACCHISTORIES"; |
select a.*,
b. name,c. sess_id from v$lock a left join sysobjects b on b. id=a. table_id left join v$sessions c on a. trx_id=c. trx_id
6.4 统计信息收集
6.4.1 创建系统包
方法1:在使用包内的过程和函数之前,如果还未创建过系统包,请先调用系统过程SP_CREATE_SYSTEM_PACKAGES(1);创建系统包;
方法2:通过管理工具的图形界面进行操作,在工具包中选中需要启用的包SYSTEM PACKAGES,点击右 键,选择启用即可;
6.4.2 收集统计信息
(1)收集模式的统计信息
DBMS_STATS.GATHER_SCHEMA_STATS('模式名',100,TRUE,'FOR ALL COLUMNS SIZE AUTO'); |
注:如果数据量较大,该过程可能较慢,请耐心等待。
(2)收集表的统计信息
DBMS_STATS.GATHER_TABLE_STATS('模式名','表名',null,100,TRUE,'FOR ALL COLUMNS SIZE AUTO'); |
(3)收集列的统计信息
SP_COL_STAT_INIT('模式名','表名','列名'); |
(4)清除列的统计信息
SP_COL_STAT_DEINIT('模式名','表名','列名'); |
(5)收集索引的统计信息
CALL SP_INDEX_STAT_INIT('模式名','索引名'); DBMS_STATS.GATHER_INDEX_STATS(user,'索引名'); |
(6)对表上所有索引生成统计信息
CALL SP_TAB_INDEX_STAT_INIT('模式名','表名'); |
(7)收集表中某列的统计信息
STAT <统计信息采样百分比> ON [<模式名>.]<表名>(<列名>); 如:STAT 100 ON TEST(A); |
注:收集表中指定列的统计信息,当前只支持一列。
达梦log_commit日志可实时记录数据库执行的操作,日志开启方式如下:
--查看ini参数中SVR_LOG的值 select * from v$dm_ini where para_name like '%SVR_LOG%'; --修改SVR_LOG=1 sp_set_para_value(1,'SVR_LOG',1); sp_set_para_value(1,'SVR_LOG',0); --新建log日志文件夹需要dmdba权限 sp_set_para_string_value(1,'SVR_LOG_FILE_PATH',''); --查看ini参数中SQL_TRACE_MASK的值 select * from v$dm_ini where para_name like '%SQL_TRACE_MASK%'; --修改SQL_TRACE_MASK=1 SF_SET_SYSTEM_PARA_VALUE('SQL_TRACE_MASK','1',0,1); 设置SQL过滤规则,只记录必要的SQL,生产环境不要设为1 SQL_TRACE_MASK = 2:3:22:25:28 2:只记录DML语句 3:只记录DLL语句 22:记录绑定参数语句 25: 记录SQL语句和它执行的时间 28:记录申请了语句绑定的参数信息 |
dmdbchk 是 DM 提供的用于检查数据库完整性、正确性的命令行工具。 在服务器正常关闭后的脱机情况下, 用户可以使用 dmdbchk 对数据库进行校验,包括校验 DM 数据库内部的物理存储结构是否正常,对象信息是否合法等。
6.6.1 DBCHK检验内容
(1)数据文件合法性检验。
数据文件校验只校验数据文件大小。 如果数据库文件实际大小大于或等于文件头中记录的大小,则合法。
(2)索引正确性校验。
索引检验包括: 普通表 B 树索引校验、 LIST 表扁平 B 树索引校验、列存储表索引校验。校验内容具体包括: B 树的层次、 层次关系,每层的内部页、叶子页以及页之间的前后链接关系, 每个页的页头信息( 如页类型等)等。
(3) 对象 ID 合法性校验。
对象 ID 校验包括数据库内的所有对象的 ID 检验。 对象包括: 索引、表、约束、存储过程、模式、词、用户等。 如果从系统表中查出的对象 ID 小于库的 ID 预留页中记录的该类型对象的下一分配 ID,则合法。因为库的 ID 预留页中记录的是各类型对象下一个新分配对象将使用的 ID,因此若系统表中的对象 ID 大于或等于该 ID,说明库已损坏。
6.6.2 DBCHK检验步骤:
(1)正常关闭数据库;(生产环境可以全库备份后,新建实例还原脱机检查)
(2)使用 dmdbchk 对数据库进校验。
./dmdbchk PATH=/dmdata/dmdbms/shrsg/shrsg/dm.ini |
(3)校验完成后,会在dmdbchk 工具所在的目录里自动生产名称为 dbchk_err.txt的日志文件,检索error进行检查。