随着IT科技的发展,数据逐渐成为社会和企业的核心资产,面对纷繁复杂的社会环境,供应链风险随时可能发生,国产化势在必行,DM数据库作为国产化数据库代表,正在行业中变得越来越流行,达梦作为国产数据库的佼佼者,深受传统行业和广大金融客户的喜爱。它有着40年深厚的技术沉淀,相信在不久的将来,它将在国产化进程中国脱颖而出,成为国货代表,期待那一天的到来。
今日将个人在学习达梦数据库中备份恢复的学习心得成文发布共享,希望能给你带来一点帮助。
一、DM数据库软件安装
01:新建文件夹(root),下述文件夹在考试时可能不用全部使用
mkdir /dm8 --数据库软件安装目录
mkdir /dmdata --实例安装目录
mkdir /dmarch --归档日志存放目录
mkdir /dmbak --备份文件存放目录
02: 新建组及用户
DM 数据库不应该使用 root 用户安装和维护。需要在安装之前为 DM 数据库创建一个专用的系统用户 (dmdba) 和用户组 (dinstall)。
执行以下命令,新建用户组 dinstall:
groupadd dinstall
执行以下命令,新建用户 dmdba:
useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
执行以下命令,修改 dmdba 用户密码:
passwd dmdba
输入密码并确认。
03:修改属主(root)
chown dmdba:dinstall /dm8
chown dmdba:dinstall /dmdata
chown dmdba:dinstall /dmarch
chown dmdba:dinstall /dmbak
04:用户资源限制(使用root)--注:考试时如不能copy命令就不用配置
执行以下命令,修改 dmdba 用户资源限制:
vim /etc/security/limits.conf
文件末尾添加如下内容:
dmdba soft core unlimited
dmdba hard core unlimited
dmdba soft nofile 65536
dmdba hard nofile 65536
dmdba soft nproc 65536
dmdba hard nproc 65536
dmdba soft stack 65536
dmdba hard stack 65536
05:用户环境变量
执行以下命令,修改 dmdba 用户环境变量:
vi /home/dmdba/.bash_profile
文件末尾添加如下内容:(安装路径有变化的话需进行修改/dm8)
export DM_HOME=/dm8
export PATH=$PATH:$DM_HOME/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$DM_HOME/bin
06:安装数据库(脚本)
1、安装数据库软件
将安装包上传到服务器后使用 root 用户挂载 iso 安装包文件到 /mnt 目录下(使用root):
--切换到程序安装包所在目录
cd /opt
--挂载iso,主要安装包文件名可能不同
mount -oloop dm8_20200930_x86_rh6_64_ent_8.1.1.134.iso /mnt
执行以下命令,切换到 dmdba 用户:
su - dmdba
切换到/mnt
cd /mnt
查看文件
执行 DMInstall.bin 文件开始安装,选择【-i】参数以命令行方式安装:
./DMInstall.bin -i
- 选择安装程序的语言 c/C 为中文,e/E 为英文。选c
- 提示是否安装 key 文件,输入 N 跳过。
- 选择时区,21 即东 8 区。
- 选择安装类型,默认典型安装(包含所有内容)。
5.选择软件安装目录,为之前规划的目录 /dm8。
6.确认安装目录。
7.确认安装概要。
8.开始安装
9.安装完成后,按照系统提示使用 root 用户执行脚本。重要
/dm8/script/root/root_installer.sh
提示 DmAPService 服务启动成功,则安装完成。
--查看服务状态
./DmServiceDMSERVER status
二、初始化数据库实例
使用 dminit 工具初始化实例(使用用户dmdba)。
1、初始化实例
执行以下命令,切换到 /dm8/bin 目录。(这里page size保持默认8k)
cd /dm8/bin
./dminit path=/dmdata page_size=8 SYSDBA_PWD=password db_name=DAMENG
注意
初始化参数中除了 path 参数必须指定,其它参数都有默认值,如果需求与默认值不同,初始化的时候请指定需要的值。因为部分参数初始化后是无法修改的例如:page_size(页大小),charset(字符集),case_sensitive(大小写敏感)等。更多参数./dminit help 查看,是否无法修改的参数可以查询 v$dm_ini 视图,para_type=’READ ONLY’ 表示无法修改。
使用dminit 初始化数据库实例的方式,必须手工注册并启动dm服务。
2、实例注册与启动
以系统服务方式启动实例,DM 提供脚本将数据库实例注册为操作系统服务。
root 用户下切换到 /dm8/script/root/:
cd /dm8/script/root/
注册服务:(DAMENG为实例名称)
./dm_service_installer.sh -t dmserver -p dmserver -dm_ini /dmdata/DAMENG/dm.ini
tips:
-t 指服务类型是 dmserver;-p 为服务名的后缀;-dm_ini 为实例的 dm.ini 文件的绝对路径。
启动实例:
systemctl start DmServicedmserver
扩展:
systemctl stop DmServicedmserver
systemctl restart DmServicedmserver
systemctl status DmServicedmserver
建议
每个实例都建议注册为操作系统服务,这样不仅方便启动和关闭实例,而且注册为服务后,在服务器重启时,实例将随系统启动而自动启动。
三、数据库备份与恢复
物理备份
物理备份是直接备份数据库所对应的数据文件甚至是整个磁盘。
物理备份分为完全备份和增量备份:完全备份是指一个备份包含指定数据库或表空间的所有数据,增量备份是指在一次全备份或上一次增量备份后,以后每次的备份只需备份与前一次相比增加或者被修改的文件。
逻辑备份
逻辑备份是将数据从数据库中导出,并将导出的数据进行存档备份。
冷备和热备
热备:指数据库启动状态下的备份
冷备:指数据库关闭状态下的备份。
冷备准备
冷备也被称为脱机备份脱机备份时,需要关闭数据库,支持库级备份和归档备份。
Console是DM脱机备份和还原的图形化界面工具。
DMRMAN是DM脱机备份和还原的命令行工具。
以下演示命令行方式的脱机备份
在达梦安装路径bin目录下
关闭数据库./DmServiceDMSERVER stop
检查DmAP服务的状态
./DmAPService status
若DmAP服务关闭则开启
./DmAPService start
冷备
新建备份
./dmrman
RMAN> backup database ‘/dm8/data/DMDB/dm.ini' backupset 'dm8/bak'
冷备下的数据库还原与恢复
在达梦安装路径bin目录下
关闭数据库
./DmServiceDMSERVER stop
检查DmAP服务的状态
./DmAPService status
若DmAP服务关闭则开启
./DmAPService start
还原数据库
./dmrman
RMAN> restore database '/dm8/data/DMDB/dm.ini' from backupset '/dm8/bak'
恢复数据库
./dmrman
RMAN> recover database '/dm8/data/DMDB/dm.ini' from backupset '/dm8/bak'
更新db_magic(DM8需要进行此步骤)
./dmrman
RMAN> recover database '/dm8/data/DMDB/dm.ini' update db_magic
最后启动数据库以完成还原与恢复
./DmServiceDMSERVER start
热备准备
此时要求数据库处于运行状态并正常提供数据库服务。
打开数据库
./DmServiceDMSERVER start
打开DmAP服务
./DmAPService start
使用disql工具
./disql
进入配置模式
alter database mount;
打开归档配置
alter database archivelog;
增加归档文件
alter database add archivelog 'type=local,dest=/dm8/arch,file_size=80,space_limit=0';
数据库到打开状态
alter database open;
查看数据库归档状态(arch_mode 为y说明处于归档)
select arch_mode from v$database;
热备
完全备份
backup database;
指定完全备份的路径
backup database full to fullbak0001 backupset '/dm8/bak/full/fullbak0001';
指定增量备份的路径
backup database increment to incrbak0001 backupset '/dm8/backup/incr/incrbak0001';
指定增量备份的目标
backup database increment with BACKUPDIR '/dm8/bak/full' to incrbak0002
表空间备份:
backup tablespace HRTBS;
backup tablespace HRTBS INCREMENT with BACKUPDIR '/dm8/bak/full' to incrhrtbsbak0001
backupset '/dm8/backup/incr/incrhrtbsbak0001';
表的备份和归档备份:
backup table dmhr.employee;
backup ARCHIVELOG ALL;
热备下的还原与恢复
关闭数据库
关闭数据库
./DmServiceDMSERVER stop
打开DmAP服务
./DmAPService start
还原数据库
./dmrman
RMAN> restore database '/dm8/data/DMDB/dm.ini' from backupset '/dm8/bak/full/fullbak0001'
恢复数据库
./dmrman
RMAN> recover database '/dm8/data/DMDB/dm.ini' from backupset '/dm8/bak/full/fullbak0001'
更新db_magic(DM8需要进行此步骤)
./dmrman
RMAN> recover database '/dm8/data/DMDB/dm.ini' update db_magic
最后启动数据库以完成还原与恢复
./DmServiceDMSERVER start