DM的常规运维

总结了达梦数据库新手运维部分内容,如下:

1 常用的tool(图形化界面)

dbca.sh   创建新数据库实例使用较多

manager  管理数据库

dmservice.sh  启停数据库服务

console 控制台,包含了参数 、脱机备份等功能

dts   实现多种形式的数据导入

2 DM启动与停止

2.1启动DM节点

服务器1 IP:xx.xx.xx.71

cd /opt/dmdbms/bin

./DmServiceDM71 start

./DmWatcherServiceDM71 start

服务器2 IP:xx.xx.xx.72

cd /opt/dmdbms/bin

./DmServiceDM72 start

./DmWatcherServiceDM72 start

监视器IP:xx.xx.xx.xx

cd /opt/dmdbms/bin

./dmmonitor dmmonitor_noconfirm.ini

show命令查看集群正常后执行exit退出

./DmMonitorServiceDMM start

2.2 停止DM节点

监视器IP:xx.xx.xx.xx

cd /opt/dmdbms/bin

./dmmonitor dmmonitor_noconfirm.ini

show命令查看集群状态,例如71为主库,72为备库

./DmMonitorServiceDMM stop

服务器2 IP:xx.xx.xx.72

cd /opt/dmdbms/bin

./DmWatcherServiceDM72 stop

服务器1 IP:xx.xx.xx.71

cd /opt/dmdbms/bin

./DmWatcherServiceDM71 stop

./DmServiceDM71 stop

服务器2 IP:xx.xx.xx.72

./DmServiceDM72 stop

3 DM登录

cd /opt/dmdbms/bin

./disql username/password@服务名

4 DM环境检查

  • 网络环境检查,数据库服务器都建议关闭防火墙
  • 调整ulimit 设置(nofile,nproc)
  • 配置NTP时钟同步
  • 磁盘环境检查,确认磁盘大小以及挂载点,根据实际情况规划数据库程序安装位置以及数据文件、备份文件位置,归档日志文件大小限制以及位置。

5 DM命令行工具

disql

命令行客户端工具

dimp/dexp

数据导入导出工具

dmrman

脱机备份恢复工具

6 监视集群状态监控

使用监视器对集群进行监控,具体命令如下:

1.help —显示帮助信息

2.exit —退出监视器

3.show version —显示监视器自身版本信息

4.show global info —显示所有组的全局信息

5.show database [group_name.]db_name —显示指定库的详细信息

6.show [group_name] —显示指定组的详细信息,如果未指定组名,则显示所有组的详细信息

7.show i[nterval] n —每隔n秒自动显示所有组的详细信息

8.q —取消自动显示

9.list [[group_name.]db_name] —列出指定组的库对应的守护进程配置信息,如果都未指定,则列出所有守护进程配置信息

10.show open info [group_name.]db_name —显示指定库的OPEN历史信息

11.show arch send info [group_name.]db_name —查看源库到指定组的指定库的归档同步信息(包含恢复间隔信息)

12.show apply stat [group_name.]db_name —查看指定组的指定库的日志重演信息

13.show monitor [group_name[.]] [db_name] —列出连接到指定守护进程的所有监视器信息

14.tip - -查看系统当前运行状态

15.login —登录监视器

16.logout —退出登录

  1. get takeover time —获取备库开始自动接管需要延迟等待的时间

18.startup dmwatcher [group_name] —启动指定组的守护进程监控功能

19.stop dmwatcher [group_name] —关闭指定组的守护进程监控功能

20.startup group [group_name] —启动指定组中的所有库

21.stop group [group_name] —关闭指定组中的所有库

22.kill group [group_name] —强制杀掉指定组中的所有活动库

23.choose switchover [group_name] —选择可切换为PRIMARY库的备库列表

24.choose takeover [group_name] —选择可接管故障PRIMARY库的备库列表

25.choose takeover force [group_name] —选择可强制接管故障PRIMARY库的备库列表

26.set group [group_name] auto restart on —打开指定组中所有节点的自动拉起功能

27.set group [group_name] auto restart off —关闭指定组中所有节点的自动拉起功能

  1. set group [group_name] para_name para_value

--修改指定组的所有守护进程的指定配置参数(同时修改ini文件和内存值),如果未指定组名,则通知所有组执行

--para_name指定参数名称,para_value指定参数值

--支持修改参数: DW_ERROR_TIME/INST_RECOVER_TIME/INST_ERROR_TIME/INST_AUTO_RESTART/

INST_SERVICE_IP_CHECK/RLOG_SEND_THRESHOLD/RLOG_APPLY_THRESHOLD

  1. set group [group_name] recover time time_value

--修改指定组中所有备库的恢复间隔为time_value指定的整数值(time_value取值:3~86400,单位为秒)(只修改守护进程内存值)

--如果未指定组名,则通知所有组执行

30.set group [group_name] arch invalid —修改指定组中所有备库的归档为无效状态,如果未指定组名,则通知所有组执行

31.clear group [group_name] arch send info —清理指定组中源库到所有备库(包括异步备库)的最近N次归档发送信息(通知源库执行),没有指定组名则通知所有组执行

--N值取主库dm.ini中配置的RLOG_SEND_APPLY_MON值和实际归档发送次数中的较小值

32.clear group [group_name] apply stat —清理指定组中所有备库的最近N次重演信息(通知组中所有备库执行),没有指定组名则通知所有组执行

--N值取备库dm.ini中配置的RLOG_SEND_APPLY_MON值和实际重演次数中的较小值

33.check recover [group_name.]db_name —检查指定组的指定库是否满足自动恢复条件

34.check open [group_name.]db_name —检查指定组的指定库是否满足自动OPEN条件

35.open database [group_name.]db_name —强制OPEN指定组的指定库

36.switchover [group_name[.]] [db_name] —切换指定组的指定库为PRIMARY库

37.takeover [group_name[.]] [db_name] —使用指定组的指定库接管故障PRIMARY库

38.takeover force [group_name[.]] [db_name] —使用指定组的指定库强制接管故障PRIMARY库

39.set database [group_name.]db_name recover time time_value

--修改指定组的指定库的恢复间隔为time_value指定的整数值(time_value取值:3~86400,单位为秒)(只修改守护进程内存值)

  1. set database [group_name.]db_name arch invalid

--修改指定组的指定库的归档为无效状态

41.detach database [group_name.]db_name —将指定的备库分离出守护进程组

42.attach database [group_name.]db_name —将分离出去的备库重新加回到守护进程组

43.startup dmwatcher database [group_name.]db_name

--启动指定库的守护进程监控功能

  1. stop dmwatcher database [group_name.]db_name

--关闭指定库的守护进程监控功能

  1. startup database [group_name.]db_name

--启动指定组的指定库

  1. stop database [group_name.]db_name

--关闭指定组的指定库

  1. kill database [group_name.]db_name

--强杀指定组的指定库

  1. clear database [group_name.]db_name arch send info

--清理指定组中主库到指定备库的最近N次归档发送信息(通知主库执行)

--N值取主库dm.ini中配置的RLOG_SEND_APPLY_MON值和实际归档发送次数中的较小值

  1. clear database [group_name.]db_name apply stat

--清理指定备库的最近N次重演信息(通知备库执行)

--N值取备库dm.ini中配置的RLOG_SEND_APPLY_MON值和实际重演次数中的较小值

7 DM用户创建与管理

  • 创建用户

create user “USERNAME” identified by “PASSWORD” password_policy 2 limit failed_login_attemps 3, password_lock_time 1, password_grace_time 10 default tablespace “tablespace_name” default index tablespace “tablespace_name”;

  • 删除用户

drop user username cascade;

  • 修改密码

alter user username identified by “PASSWORD”;

8 DM配置文件

达梦数据库主要的配置文件有如下5个:

  1. dm.ini是DM数据库启动所必须的配置文件
  2. dmmal.ini是DM数据库 MAL系统的配置文件
  3. dmarch.ini是DM数据库Redo日志归档配置文件。
  4. dmwatcher.ini是DM数据库守护进程配置文件。
  5. dmmonitor.ini是DM数据库监视器配置文件。
  6. dm_svc.conf是包含DM各接口及客户端参数的文件,配置如下:

TIME_ZONE=(+480)

LANGUAGE=(en)

ZGRS=(xx.xx.xx.xx:5236,xx.xx.xx.xx:5236) #ZGRS为服务名

[ZGRS]

LOGIN_MODE=(1)

SWITCH_TIME=(6000)

SWITCH_INTERVAL=(10)

9 数据库状态和模式

DM数据库包含以下几种状态:

1. 配置状态(MOUNT):不允许访问数据库对象,只能进行控制文件维护、归档配置、数据库模式修改等操作;

2. 打开状态(OPEN):不能进行控制文件维护、归档配置等操作,可以访问数据库对象,对外提供正常的数据库服务;

3. 挂起状态(SUSPEND):与OPEN状态的唯一区别就是,限制磁盘写入功能;一旦修改了数据页,触发REDO日志、数据页刷盘,当前用户将被挂起。

OPEN状态与MOUNT和SUSPEND能相互转换,但是MOUNT和SUSPEND之间不能相互转换。

DM数据库包含以下几种模式:

1.普通模式(NORMAL):用户可以正常访问数据库,操作没有限制;

2.主库模式(PRIMARY):用户可以正常访问数据库,所有对数据库对象的修改强制生成REDO日志,在归档有效时,发送REDO日志到备库;

3.备库模式(STANDBY):接收主库发送过来的REDO日志并重做。数据对用户只读。

三种模式只能在MOUNT状态下设置,模式之间可以相互转换。

对于新初始化的库,首次启动不允许使用mount方式,需要先正常启动并正常退出,然后才允许mount方式启动。

一般情况下,数据库为NORMAL模式,如果不指定MOUNT状态启动,则自动启动到OPEN状态。

在需要对数据库配置时(如配置数据守护、数据复制),服务器需要指定MOUNT状态启动。当数据库模式为非NORMAL模式(PRIMARY、STANDBY模式),无论是否指定启动状态,服务器启动时自动启动到MOUNT状态。

10 DM的备份恢复

10.1 物理备份恢复

物理备份则直接扫描数据库文件,找出那些已经分配、使用的数据页,拷贝并保存到备份集中。物理备份过程中,不关心数据页的具体内容是什么,也不关心数据页属于哪一张表,只是简单的根据数据库文件系统的描述,来挑选有效的数据页。

10.1.1 数据库联机备份

数据库处于运行状态、并正常提供数据库服务情况下进行的备份操作,我们称为联机备份。

联机备份则使用客户端工具连接到数据库实例后,通过执行SQL语句进行;也可以通过配置作业,定时完成自动备份。联机备份不影响数据库正常提供服务,是最常用的备份手段之一。

联机备份时,可能存在一些处于活动状态的事务正在执行,为确保备份数据的一致性,需要将备份期间产生的REDO日志一起备份。因此,只能在配置本地归档、并开启本地归档的数据库上执行联机备份。

1.数据库全量备份

SQL>BACKUP DATABASE FULL BACKUPSET ‘/home/dm_bak/db_full_bak_01’;

2.数据库增量备份

SQL>BACKUP DATABASE INCREMENT WITH BACKUPDIR ‘/home/dm_bak’BACKUPSET ‘/home/dm_bak/db_increment_bak_02’;

10.1.2 数据库脱机备份

数据库处于关闭状态时进行的备份操作,被称为脱机备份。

使用DMRMAN工具进行脱机备份,并且支持对异常关闭的数据库进行脱机库备份。备份异常关闭的数据库,要求配置了本地归档,如果本地归档不完整,则需要先修复本地归档,再进行备份。

cd /opt/dmdbms/bin

./dmrman

RMAN>BACKUP DATABASE ‘/opt/dmdbms/data/DAMENG/dm.ini’ FULL BACKUPSET ‘/home/dm_bak/db_full_bak_01’;

RMAN>exit

10.1.3 数据库还原和恢复

  1. 校验备份

RMAN>CHECK BACKUPSET ‘/home/dm_bak/db_full_bak_for_recover_backupset’;

  1. 还原数据库

使用全备还原语句

RMAN>RESTORE DATABASE ‘/opt/dmdbms/data/DAMENG_FOR_RESTORE/dm.ini’ FROM BACKUPSET ‘/home/dm_bak/db_full_bak_for_recover_backupset’;

使用增备还原语句

RMAN>RESTORE DATABASE ‘/opt/dmdbms/data/DAMENG_FOR_RESTORE/dm.ini’ FROM BACKUPSET ‘/home/dm_bak/db_increment_bak_for_recover_backupset’ WITH BACKUPDIR ‘/home/dm_bak/db_full_bak_for_recover_backupset’

  1. 恢复数据库

使用全备恢复语句

RMAN>RECOVER DATABASE ‘/opt/dmdbms/data/DAMENG_FOR_RESTORE/dm.ini’ FROM BACKUPSET ‘/home/dm_bak/db_full_bak_for_recover_backupset’;

使用增备恢复语句

RMAN>RECOVER DATABASE ‘/opt/dmdbms/data/DAMENG_FOR_RESTORE/dm.ini’ FROM BACKUPSET ‘/home/dm_bak/db_increment_bak_for_recover_backupset’ WITH BACKUPDIR ‘/home/dm_bak/db_full_bak_for_recover_backupset’

10.2 逻辑备份恢复

逻辑备份是指利用dexp导出工具,将指定对象(库级、模式级、表级)的数据导出到文件的备份方式。逻辑备份针对的是数据内容,并不关心这些数据物理存储在什么位置。

10.2.1 dexp逻辑导出

格式: ./dexp KEYWORD=value 或 KEYWORD=(value1,value2,…,valueN)

例程: ./dexp SYSDBA/SYSDBA GRANTS=Y TABLES=(SYSDBA.TAB1,SYSDBA.TAB2,SYSDBA.TAB3)

USERID 必须是命令行中的第一个参数

关键字 说明(默认值)

-———————————————————————————————————————-

USERID 用户名/口令 格式:USER/PWD*MPP_TYPE@SERVER:PORT#SSLPATH@SSLPWD

FILE 导出文件 (dexp.dmp)

DIRECTORY 导出文件所在目录

FULL 整库导出 (N)

OWNER 以用户方式导出 格式 (user1,user2,…)

SCHEMAS 以模式方式导出 格式 (schema1,schema2,…)

TABLES 以表方式导出 格式 (table1,table2,…)

FUZZY_MATCH TABLES选项是否支持模糊匹配 (N)

QUERY 用于导出表的子集的select 子句

PARALLEL 用于指定导出的过程中所使用的线程数目

TABLE_PARALLEL 用于指定导出的过程中表内的并发线程数目,MPP模式下会转换成单线程

TABLE_POOL 用于指定表的缓冲区个数

EXCLUDE 忽略指定的对象

格式 EXCLUDE=(CONSTRAINTS,INDEXES,ROWS,TRIGGERS,GRANTS) or

EXCLUDE=TABLES:table1,table2 or

EXCLUDE=SCHEMAS:sch1,sch2

INCLUDE 包含指定的对象

格式 INCLUDE=(CONSTRAINTS,INDEXES,ROWS,TRIGGERS,GRANTS) or

INCLUDE=TABLES:table1,table2

CONSTRAINTS 导出约束 (Y)

TABLESPACE 导出对象带有表空间 (N)

GRANTS 导出权限 (Y)

INDEXES 导出索引 (Y)

TRIGGERS 导出触发器 (Y)

ROWS 导出数据行 (Y)

LOG 屏幕输出的日志文件

NOLOGFILE 不使用日志文件(N)

NOLOG 屏幕上不显示日志信息(N)

LOG_WRITE 日志信息实时写入文件: 是(Y),否(N)

DUMMY 交互信息处理: 打印(P), 所有交互都按YES处理(Y),NO(N)

PARFILE 参数文件名

FEEDBACK 每 x 行显示进度 (0)

COMPRESS 导出数据是否压缩 (N)

ENCRYPT 导出数据是否加密 (N)

ENCRYPT_PASSWORD 导出数据的加密密钥

ENCRYPT_NAME 加密算法的名称

FILESIZE 每个转储文件的最大大小

FILENUM 一个模板可以生成的文件数

DROP 导出后删除原表,但不级联删除 (N)

DESCRIBE 导出数据文件的描述信息,记录在数据文件中

LOCAL MPP模式下登录使用MPP_LOCAL方式(N)

HELP 打印帮助信息

./dexp USERNAME/PASSWORD@IP:端口 FILE=dexp01.dmp LOG=dexp01.log DIRECTORY=/emc_2/data/dexp FULL=Y

10.2.2 dimp逻辑导入

格式: ./dimp KEYWORD=value 或 KEYWORD=(value1,value2,…,vlaueN)

例程: ./dimp SYSDBA/SYSDBA IGNORE=Y ROWS=Y FULL=Y

USERID 必须是命令行中的第一个参数

关键字 说明(默认值)

-———————————————————————————————————————-

USERID 用户名/口令 格式:USER/PWD*MPP_TYPE@SERVER:PORT#SSLPATH@SSLPWD

FILE 导入文件名称 (dexp.dmp)

DIRECTORY 导入文件所在目录

FULL 整库导入 (N)

OWNER 以用户方式导入 格式 (user1,user2,…)

SCHEMAS 以模式方式导入 格式 (schema1,schema2,…)

TABLES 以表名方式导入 格式(table1,table2,…)

PARALLEL 用于指定导入的过程中所使用的线程数目

TABLE_PARALLEL 用于指定导入的过程中每个表所使用的子线程数目,在FAST_LOAD为Y时有效

IGNORE 忽略创建错误 (N)

TABLE_EXISTS_ACTION 需要的导入表在目标库中存在时采取的操作[SKIP | APPEND | TRUNCATE | REPLACE]

FAST_LOAD 是否使用dmfldr来导数据(N)

FLDR_ORDER 使用dmfldr是否需要严格按顺序来导数据(Y)

COMMIT_ROWS 批量提交的行数(5000)

EXCLUDE 忽略指定的对象格式 EXCLUDE=(CONSTRAINTS,INDEXES,ROWS,TRIGGERS,GRANTS)

GRANTS 导入权限 (Y)

CONSTRAINTS 导入约束 (Y)

INDEXES 导入索引 (Y)

TRIGGERS 导入触发器 (Y)

ROWS 导入数据行 (Y)

LOG 指定日志文件

NOLOGFILE 不使用日志文件(N)

NOLOG 屏幕上不显示日志信息(N)

LOG_WRITE 日志信息实时写入文件(N): 是(Y),否(N)

DUMMY 交互信息处理(P): 打印(P), 所有交互都按YES处理(Y),NO(N)

PARFILE 参数文件名

FEEDBACK 每 x 行显示进度 (0)

COMPILE 编译过程, 程序包和函数… (Y)

INDEXFILE 将表的索引/约束信息写入指定的文件

INDEXFIRST 导入时先建索引(N)

REMAP_SCHEMA 格式(SOURCE_SCHEMA:TARGET_SCHEMA)

将SOURCE_SCHEMA中的数据导入到TARGET_SCHEMA中

ENCRYPT_PASSWORD 数据的加密密钥

ENCRYPT_NAME 加密算法的名称

SHOW/DESCRIBE 打印出指定文件的信息(N)

LOCAL MPP模式下登录使用MPP_LOCAL方式(N)

TASK_THREAD_NUMBER 用于设置dmfldr处理用户数据的线程数目

BUFFER_NODE_SIZE 用于设置dmfldr读入文件缓冲区大小

TASK_SEND_NODE_NUMBER 用于设置dmfldr发送节点个数[16,65535]

LOB_NOT_FAST_LOAD 如果一个表含有大字段,那么不使用dmfldr,因为dmfldr是一行一行提交的

PRIMARY_CONFLICT 主键冲突的处理方式[IGNORE|OVERWRITE],默认报错

TABLE_FIRST 是否先导入表(N):是(Y),否(N)

HELP 打印帮助信息

./dimp USERNAME/PASSWORD@IP:端口 FILE=/emc_2/data/dexp/dexp01.dmp LOG=dimp02.log DIRECTORY=/emc_2/data/dimp SCHEMAS=SCHEMA_NAME1,SCHEMA_NAME2

posted @ 2021-03-12 15:54  时光浅夏wk  阅读(421)  评论(0编辑  收藏  举报