达梦DCP学习及备考简记

概述:16号正式学习,25号考试,横跨两周,上班时间基本都是挂着,下班和周末看视频学习,时间有点紧张,考试题目有点小多,实验还差注册服务就关机了,有点可惜;

        DCP比DCA里面多了部分内容,DCA更多偏向于教你认识达梦数据库,安装部署,基础操作。DCP是在此的基础上,对数据库进行了更深层次的讲解以及数据库运维应该拥有哪些技能,包含分区表、物化视图、索引、统计信息、迁移、系统字段、安全管理、性能优化(其实更多的是根据系统包的PDF,识别数据库在运行里面的那些参数怎么看,是什么含义,根据实际环境和参数进行调整)和集群,个人感觉集群是里面步骤最多的,应该是对标Oracle的RAC。

        如下是我的部分笔记分区表关键词PARTITION,其中使用的较多的是范围分区表,其中values LESS than只是小于,非等于;

        外部表的控制文件,和数据文件不是非要放在bin目录下,bin目录可以放在bin目录下,数据文件的路径只是dmdba用户拥有读写权限的其他文件夹也可。

        关于在SQL语句使用时的大小写问题,如果在创建时不加双引号,则系统默认使用大写,如果加了双引号创建,则名字可以为小写,在查询/修改/更新的时候,如果发现报错是无效的XXX,可以用管理工具去看下名字是不是大小写异常;建议平常在调用表的识货,把模式加进去,养成好习惯。

        索引优化建议多问问经验丰富的同事,免得优化了这个表,导致其他的查询变慢了,索引要考虑的东西有点多。

        达梦DEM是个好东西,老版本免费,不过实在不行也可以用监视器+zabbix;就是领导看不方便,单纯的技术看看,也够用了;

        数据库审计功能是把双刃剑,还是直接让数据库审计系统去做这个事情吧,能买得起正版数据库的,基本都能再买一套数据库审计系统,免得降低了数据库性能。

        数据迁移吧,课程讲的不多,不过根据目前行业形式来看,使用的是比较多的,而且很吃经验,在国产化替换的过程当中,客户就想我们能给他们提供一条龙服务,既换操作系统、还把业务顺便迁过去,还是得多练练手,建议自己搭建一些数据库,多练练手。

        数据快速载入,参数还需再学习,再练习,多用一些不同格式的的数据文件来做尝试;

部分tips:

1、ini配置文件需要放置在dm.ini的CONFIG_PATH路径下,不然执行会报错,建议直接把dmmal.ini,dmwatcher.ini,dmmonitor.ini.dmarch.ini这四个集群配置文件都放在dm.ini目录里面,方便调用,方便管理;

2、虚拟机要记得使用静态IP,久了容易忘;而且麒麟V10操作系统默认网卡不在开机启动,需要吧oneboot的参数改为yes;

3、全文索引和PATH配置有个坑,在有全文索引的情况下,数据库要去bin目录下启动,如果配置了PATH,习惯性开个终端就执行命令,全文索引会检索不到。

4、在集群后,如果是通过数据库systemctl命令起来的,才能用systemctl查看status,如果是监视器拉起来的,则看不了状态,只能用netstat看端口起没起来,然后尝试着执行disql;也可以直接去监视器看状态。

5、归档日志容易占磁盘,建议设置固定大小,然后让归档进行覆盖回滚。

重点内容-集群搭建步骤:

步骤梳理:

//搭建主备环境需要用物理备份与恢复,即

1、关闭数据库:shutdown immediate;

2、使用dmdba用户在bin目录下进入dmrman冷备:backup database '/dm8/data/DAMENG/dm.ini' backupset '/dm8/backup/fullbac/DMFULLBAC01';

3、更改主库:dm.ini文件中需要开启归档和MAL====如果记不住命令,可以在这个目录下用,版本问题,文件可能有错,不过根据手册,比手动敲更快;//ini配置文件要放在dm.iniCONFIG_PATH路径下

vim中,可以按esc/输入查询单词,然后按n进行跳转;

dm.ini中更改实例名,参数为INSTANCE_NAME =DMserver01

ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态/OGUID

ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间

MAL_INI = 1 #打开 MAL 系统

ARCH_INI = 1 #打开归档配置

4、主机开启MAL系统在数据库目录DAMENG下配置dmmal.ini----mal重新创建文件;

MAL_CHECK_INTERVAL = 5 #MAL 链路检测时间间隔

MAL_CONN_FAIL_INTERVAL = 5 #判定MAL 链路断开的时间

[MAL_INST1]

MAL_INST_NAME = DMSERVER01 #实例名,和dm.ini 中的INSTANCE_NAME 一致

MAL_HOST = 192.168.94.135 #MAL 系统监听TCP 连接的IP 地址

MAL_PORT = 15236 #MAL 系统监听TCP 连接的端口

#MAL_INST_HOST = 192.168.94.135 #实例的对外服务IP 地址 ,这个可以注释掉,注释后就用MAL_HOSTIP

MAL_INST_PORT = 5236 # 实例的对外服务端口, 和dm.ini 中的PORT_NUM 一致

MAL_DW_PORT = 15238 #实例本地的守护进程监听TCP 连接的端口

MAL_INST_DW_PORT = 5238 #实例监听守护进程TCP 连接的端口

 

[MAL_INST2]

MAL_INST_NAME = DMSERVER02

MAL_HOST = 192.168.94.136

MAL_PORT = 15236

#MAL_INST_HOST = 192.168.94.136 #实例的对外服务IP 地址 ,这个可以注释掉,注释后就用MAL_HOSTIP

MAL_INST_PORT = 5236

MAL_DW_PORT = 15238

MAL_INST_DW_PORT = 5238

5、在数据库目录DAMENG下配置dmwatcher.ini;----dmwatcher重新创建文件;

[GRP1]

DW_TYPE = GLOBAL #全局守护类型

DW_MODE = AUTO #自动切换模式

DW_ERROR_TIME = 10 #远程守护进程故障认定时间

INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间

INST_ERROR_TIME = 10 #本地实例故障认定时间

INST_OGUID = 888888 #守护系统唯一OGUID值(这里要和数据库的OGUID一致,OGUID是写入控制文件的)

INST_INI = /dm8/data/DAMENG/dm.ini #dm.ini配置文件路径

INST_AUTO_RESTART = 1 #打开实例的自动启动功能

INST_STARTUP_CMD = /dm8/bin/dmserver #命令行方式启动

RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阀值,默认关闭

RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阈值,默认关闭

6、归档配置在DAMENG下配置dmarch.ini(主备库的dmarch.ini文件不一致);

ARCH_WAIT_APPLY = 0

[ARCHIVE_REALTIME]

ARCH_TYPE = REALTIME #实时归档类型

ARCH_DEST = DMServer02 #实时归档目标实例名(主机和备份配置不同,配置向备机同步)

 

[ARCHIVE_LOCAL1]

ARCH_TYPE = LOCAL #本地归档类型

ARCH_DEST = /dm8/data/DAMENG/arch #本地归档文件存放路径

ARCH_FILE_SIZE = 128 #单位Mb,本地单个归档文件最大值

ARCH_SPACE_LIMIT = 0 #单位Mb,0表示无限制,范围1024~4294967294M

ARCH_FLUSH_BUF_SIZE = 0

ARCH_HANG_FLAG = 1

7、将备份文件拷贝去备机(利用scp远程拷贝命令)

scp -r /dm8/backup/FULLbac dmdba@192.168.94.136:/dm8/backup

scp -r /dm8/backup/dmmal.ini dmdba@192.168.94.136:/dm8/backup/INI

scp -r /dm8/backup/dmarch.ini dmdba@192.168.94.136:/dm8/backup/INI

scp -r /dm8/backup/dmwatcher.ini dmdba@192.168.94.136:/dm8/backup/INI

8、还原备库数据库restore二选一,注意要使用dmdba进行恢复,如果使用root会报错;

=================下面命令是因为使用的是冷备,所以是直接还原数据库,没有做恢复动作,直接更新魔数;

RMAN> restore database   to '/dm8/data/DAMENG' from backupset '/dm8/backup/';   --没有库的情况下基于目录恢复,方便好用

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

9、将主库的dmmal.ini、dmarch.ini、dmwatcher.ini拷贝至备库;并且更新dm.imi实例名等信息

dm.ini中更改实例名,参数为INSTANCE_NAME =DMSERVER02

ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态/OGUID

ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间

MAL_INI = 1 #打开 MAL 系统

ARCH_INI = 1 #打开归档配置

10、备库更改dmarch.ini的配置

ARCH_WAIT_APPLY = 0

[ARCHIVE_REALTIME]

ARCH_TYPE = REALTIME #实时归档类型

ARCH_DEST = DMServer01 #实时归档目标实例名(主机和备份配置不同,配置向备机同步)

 

[ARCHIVE_LOCAL1]

ARCH_TYPE = LOCAL #本地归档类型

ARCH_DEST = /dm8/data/DAMENG/arch #本地归档文件存放路径

ARCH_FILE_SIZE = 128 #单位Mb,本地单个归档文件最大值

ARCH_SPACE_LIMIT = 0 #单位Mb,0表示无限制,范围1024~4294967294M

ARCH_FLUSH_BUF_SIZE = 0

ARCH_HANG_FLAG = 1

11、将主库启动到MOUNT状态

bin目录下./dmserver /dm8/data/DAMENG/dm.ini  mount

12、新开窗口,主库设置为主机-primary

./disql sysdba/admpwd@!23

alter database primary;

Alter system set 'ALTER_MODE_STATUS'=1;

sp_set_oguid(888888); --这里同配置文件一致

Alter system set 'ALTER_MODE_STATUS'=0;

13、将备库启动到MOUNT状态:一定不能设置错了,不然就要重新还原和恢复

bin目录下./dmserver /dm8/data/DAMENG/dm.ini  mount

12、新开窗口,备库设置为备机standby

./disql sysdba/admpwd@!23

alter database standby;

Alter system set 'ALTER_MODE_STATUS'=1;

sp_set_oguid(888888); --这里同配置文件一致

Alter system set 'ALTER_MODE_STATUS'=0;

==========================================================

13、主备库关闭防火墙

14、主库的bin目录下,运行 ./dmwatcher /dm8/data/DAMENG/dmwatcher.ini

15、备库的bin目录下,运行 ./dmwatcher /dm8/data/DAMENG/dmwatcher.ini

16show,在创建正常时,查看结果数据库状态为OPEN,且两边的LSN为一样的

可以在数据库中看见mal的线程信息:select * from v$THREADS t where t.name like '%mal%';

可以在数据库中看见mal的端口信息:netstat -ntlp

watcher拥有单独的进程,mal和数据库实例是一个进程;

 17、单独使用一台设备开启监视器192.168.94.137(监视器可以多个)//监视器需要安装数据库服务,但是不需要数据库实例

dm8目录下创建dmmonitor.ini

确认监视器

MON_DW_CONFIRM = 1

MON_LOG_PATH = /dm8/log

MON_LOG_INTERVAL = 60

MON_LOG_FILE_SIZE = 32

MON_LOG_SPACE_LIMIT = 0

[GRP1]

MON_INST_OGUID = 888888

MON_DW_IP = 192.168.94.135:15238

MON_DW_IP = 192.168.94.136:15238

非确认监视器dmmonitor_con.ini

MON_DW_CONFIRM = 0

MON_LOG_PATH = /dm8/log

MON_LOG_INTERVAL = 60

MON_LOG_FILE_SIZE = 32

MON_LOG_SPACE_LIMIT = 0

[GRP1]

MON_INST_OGUID = 888888

MON_DW_IP = 192.168.94.135:15238

MON_DW_IP = 192.168.94.136:15238

18、在bin目录下启动监视器

./dmmonitor /路径/dmmonitor.ini

show监视器可以看见主备状态;

19、主库、备库和监控器分别使用root用户在/dm8/script/root目录下将实例和监视器注册为系统服务

[root@KylinDCA02 root]# ./dm_service_installer.sh -t dmserver -p DM01 -dm_ini /dm8/data/DAMENG/dm.ini

Created symlink /etc/systemd/system/multi-user.target.wants/DmServiceDM01.service → /usr/lib/systemd/system/DmServiceDM01.service.

创建服务(DmServiceDM01)完成

[root@KylinDCA02 root]# ./dm_service_installer.sh -t dmwatcher -p DM02 -watcher_ini /dm8/data/DAMENG/dmwatcher.ini

Created symlink /etc/systemd/system/multi-user.target.wants/DmWatcherServiceDM02.service → /usr/lib/systemd/system/DmWatcherServiceDM02.service.

创建服务(DmWatcherServiceDM02)完成

[root@KylinDCA02 root]# ./dm_service_installer.sh -t dmmonitor -p DM03 -monitor_ini /dm8/dmmonitor.ini

Created symlink /etc/systemd/system/multi-user.target.wants/DmMonitorServiceDM03.service → /usr/lib/systemd/system/DmMonitorServiceDM03.service.

创建服务(DmMonitorServiceDM03)完成

Systemctl start DmServiceDM01

Systemctl start DmWatcherServiceDM02

Systemctl start DmMonitorServiceDM03

20、监视器上可以查看集群的状态

Show命令查看集群状态

login登录

choose switchover查看选择可切换为PRIMARY库的备库列表

switchover 切换主库

help 查看用法

可以通过login登录,使用数据库口令-然后利用switchover切换主备库;

如果使用手动方式关闭数据守护系统,请严格按照以下顺序执行:

1. 先关闭确认监视器(防止自动接管)

2. 关闭备库守护进程-watcher(防止重启实例)

3. 关闭主库守护进程-watcher(防止重启实例)

4. Shutdown 主库

5. Shutdown 备库

 

Select * from v$arch_status;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值