达梦备考笔记

达梦培训

  • linux 设置窗口大小

    //查看所有窗口
    xrandr
    //设置窗口大小
     $ xrandr -s 1024x768   
    

安装出现的问题

(1)安装目录内存过小

安装程序临时目录(/tmp)可用空间为476M. 安装程序需要至少800M的临时空间, 请调整临时目录的空间或设置环境变量DM_INSTALL_TMPDIR来指定安装程序的临时目录.

  • 解决方法:https://blog.csdn.net/knight195/article/details/120285224

达梦备考笔记

达梦备考笔记

(2)解压安装程序初始化图形界面失败

[dmdba@localhost dm]$ ./DMInstall.bin
解压安装程序…
初始化图形界面失败,如果当前监视器窗口不支持图形界面,请进入安装文件所在文件夹并使用"./DMInstall.bin -装。

  • root用户到桌面端打开权限,使个用户有权限访问桌面
  • 到桌面端 echo $DISPLAY(查看值,再去用户端设置)
  • 解决方法:(这里知道了DISPLAY的值为0.0)
[root@localhost ~]# xhost +
xhost:  unable to open display ""
[root@localhost ~]# export DISPLAY=:0.0
[root@localhost ~]# xhost +
access control disabled, clients can connect from any host
  • root 用户创建的目录
    • root赋予另一个用户权限:chown 用户:dinstall /目录
    • 查看 ls -ld /目录

(一)安装步骤

  • 添加用户组和用户

    //1.添加用户组
    [root@KylinDCA03 opt]# groupadd dinstall
    //2.添加用户
    //注::-g 所属组 -d 家目录 -s 所用的SHELL
    [root@KylinDCA03 opt]# useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
    //设置密码
    [root@KylinDCA03 opt]# passwd dmdba
    

PS:如果提供镜像则需要挂载安装,提供DMIstall.bin则直接shell命令运行安装即可。

(1)第一次进入虚拟机,执行下 xhost +

root@KylinDCA03 桌面]# xhost +
access control disabled, clients can connect from any host

PS:如果切换过终端,则当前会话的环境改变。需要设置DISPLAY的值。(所以最好开两个终端)

(2)查看 root 用户的 DISPLAY 变量值

[root@KylinDCA03 桌面]# echo $DISPLAY
:0.0

(3)切换 dmdba 用户

[root@KylinDCA03 桌面]# su - dmdba
上一次登录: 一 12 月 20 18:54:09 CST 2021 pts/1 上

(4)设置 dmdba 用户的 DISPLAY

设置 dmdba 用户的 DISPLAY 变量值为步骤(1)中的值(仅对当前会话生效)

[dmdba@KylinDCA03 ~]$ export DISPLAY=:0.0
[dmdba@KylinDCA03 ~]$ cd /mnt/dm
[dmdba@KylinDCA03 dm]$ ll
总用量 739440
-r-xr-xr-x 1 root root 2784248 8 月 23 14:36 ‘DM8 Install.pdf’

(5)设置当前会话打开最大文件数

PS:防止安装出错

命令:ulimit -n(直接查看) 也可对应ulimit -a(对应的是open files)

设置打开文件最大数:ulimit -n 102400

(二)卸载数据库

(1)到安装目录运行./uninstall.sh

[dmdba@KylinDCA03 dm8]$ ./uninstall.sh

达梦备考笔记

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YsaZrbpZ-1641975979670)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20211221000926839.png)]

PS:卸载完还有残留日志文件,可到安装目录下执行(切记是在安装目录下)

rm -rf *

(2)以root用户运行root_uninstaller.sh命令

  • [root@KylinDCA03 桌面]# /dm8/root_uninstaller.sh

  • 删除 DmAPService 服务
    Removed /etc/systemd/system/multi-user.target.wants/DmAPService.service.
    删除/etc/dm_svc.conf 文件

(三)命令行安装

(1)执行 DMInstall.bin -i 安装数据库

[dmdba@KylinDCA03 dm]$ ll
总用量 739440
-r-xr-xr-x 1 root root 2784248 8 月 23 14:36 ‘DM8 Install.pdf’
-r-xr-xr-x 1 root root 754402133 8 月 23 14:40 DMInstall.bin
[dmdba@KylinDCA03 dm]$ pwd
/mnt/dm
[dmdba@KylinDCA03 dm]$ ./DMInstall.bin -i
请选择安装语言(C/c:中文 E/e:英文) [C/c]:
解压安装程序…
欢迎使用达梦数据库安装程序
是否输入 Key 文件路径? (Y/y:是 N/n:否) [Y/y]:n
是否设置时区? (Y/y:是 N/n:否) [Y/y]:
设置时区:

请选择设置时区 21:
安装类型:
1 典型安装
2 服务器
3 客户端
4 自定义
请选择安装类型的数字序号 [1 典型安装]:
所需空间: 1178M
请选择安装目录 [/home/dmdba/dmdbms]:/dm8
目录(/dm8)下不为空,请选择其他目录。
请选择安装目录 [/home/dmdba/dmdbms]:/dm8
可用空间: 14G
是否确认安装路径(/dm8)? (Y/y:是 N/n:否) [Y/y]:y
安装前小结
安装位置: /dm8
所需空间: 1178M
可用空间: 14G
版本信息:
有效日期:
安装类型: 典型安装
是否确认安装? (Y/y:是 N/n:否):y
2021-12-20 19:33:00
[INFO] 安装达梦数据库…
2021-12-20 19:33:00
[INFO] 安装 基础 模块…
2021-12-20 19:33:03
[INFO] 安装 服务器 模块…
2021-12-20 19:33:03
[INFO] 安装 客户端 模块…
2021-12-20 19:33:05
[INFO] 安装 驱动 模块…
2021-12-20 19:33:05
[INFO] 安装 手册 模块…
2021-12-20 19:33:05
[INFO] 安装 服务 模块…
2021-12-20 19:33:06
[INFO] 移动日志文件。
2021-12-20 19:33:07
[INFO] 安装达梦数据库完成。
请以 root 系统用户执行命令:
/dm8/script/root/root_installer.sh
安装结束

(2)使用 root 用户执行脚本:

[root@KylinDCA03 ~]# /dm8/script/root/root_installer.sh
移动 /dm8/bin/dm_svc.conf 到/etc 目录
修改服务器权限
创建 DmAPService 服务
Created symlink /etc/systemd/system/multi-user.target.wants/DmAPService.service →
/usr/lib/systemd/system/DmAPService.service.
创建服务(DmAPService)完成
启动 DmAPService 服务

(四)创建数据库实例

(1)进入安装目录的tool目录下执行

  • 注册数据库服务
    • 如果不注册,只能以前台方式启动。
 ./dbca.sh

可能出现的问题

达梦备考笔记

  • 原因重新启动会话或者是设置图形化界面没被授权给当前用户

达梦备考笔记

  • 停止数据库服务

    Systemctl stop DmServiceDMSERVER.service
    

    达梦备考笔记

(五)客户端工具

达梦备考笔记

(1)DM 管理工具启

  • 在tool目录下运行
./manager

(2)DM 控制台工具(console 脱机工具)

  • 主要做数据库的备份还原。

  • 在tool目录下运行

./console

达梦备考笔记

第三方打开客户端

export  DISPLAY = 192.168.180.181:0(本机客户端ip)

达梦备考笔记

达梦数据库-示例库

达梦备考笔记

(六)表空间管理

  • 一个表空间可以有多个数据文件,当一个数据文件只能存放在一个表空间。

  • DM 默认预定义 SYSTEM、ROLL、MAIN、TEMP、HMAIN 五个表空间。

  • 相关数据字典

select * from dba_tablespaces;
select * from DBA_DATA_FILES;
select * from v$tablespace;	//查看存在的表空间
select * from v$datafile;	//查看数据文件(包含路径等)
select * from DBA_FREE_SPACE; //数据文件剩余空间

(1)创建表空间:

//1.创建一个表空间、表空间名字为:tbs 
//存放数据文件路径:这里为相对路径+定义文件名TBS01.DBF
//设置数据文件大小最小为32M(能设置最大值为:2的32次方-1)
create tablespace tbs DATAFILE 'TBS01.DBF' size 32;

//2.创建一个表空间为test1,存放路径用绝对路径 大小为32M
create tablespace test1 DATAFILE '/home/dmdba/dmdbams/data/TBS01.DBF' size 32;

//3.在表空间test1下新增数据文件TEST02.DBF 大小为128M 自扩展为2M 最大存放数据大小为:20G(20480M/1024 = 20G)
create tablespace test1 DATAFILE 'TBST02.DBF' size 128 AUTOEXTEND on NEXT 2 MAXSIZE 20480;

//4.关闭自动扩展
create tablespace test1 DATAFILE 'TBST02.DBF' size 128 AUTOEXTEND off
    
//5.将表空间设置脱机状态(脱机之后才能数据文件进行迁移)
    alter tablespace test1 offline
    
//6.数据文件进行数据迁移 (迁移目录dmdba用户必须有操作权限 )
    alter tablespace test1 RENAME DATAFILE 'TES01.DBF' TO '/home/dmdba/dbback/TEST01.DBF'
    
//7.表空间重命名
    alter tablespace tbs RENAME TO dmtbs;

//8.删除表空间(只能删除空的表空间)
drop tablespace dmtbs;

(2)在表空间创建表

  • SYSTEM、ROLL、TEMP 表空间不能脱机,系统预定义的表空间都不能删除。
  • 表空间脱机后,该表空间中的数据将不能读写。
//创建表t_test 存放在tbs表空间中
create table t_test(id int, name VARCHAR(20)) TABLESPACE tbs;
//插入5条数据并自动提交
insert into t_test(id, name) values(1, 'aaa');
insert into t_test(id, name) values(2, 'aaa');
insert into t_test(id, name) values(3, 'aaa');
insert into t_test(id, name) values(4, 'aaa');
insert into t_test(id, name) values(5, 'aaa');

(3)管理重做日志文件

  • 联机重做日志:存放 redo 信息,循环使用,不断覆盖。
  • DM 数据库联机日志自动切换,不能手工切换。
//1.查看数据库的联机日志
select * from v$rlogfile; //日志默认大小为256M 如图268435456 byte
达梦备考笔记
//2.修改联机日志文件大小(两个日志文件都修改为300M) PS:在manager工具的sql的单位默认为M
alter database RESIZE LOGFILE '/dm8/data/DM/DM01.log' TO 300;
alter database RESIZE LOGFILE '/dm8/data/DM/DM02.log' TO 300;

//3.添加联机日志文件
alter DATABASE ADD LOGFILE '/dm8/data/DM/DM03.log' SIZE 300;
  • 修改联机日志文件路径(迁移联机日志文件)
    • 必须在mount状态下修改
//4.修改数据库状态,迁移日志文件
alter database mount;
alter database RENAME LOGFILE 'DM01.log' TO '/dm8/data/DM/REDO/DM01.log';
alter database RENAME LOGFILE 'DM02.log' TO '/dm8/data/DM/REDO/DM02.log';
alter database RENAME LOGFILE 'DM03.log' TO '/dm8/data/DM/REDO/DM03.log';
alter database open;
//5.表示正在使用的联机日志
select * from v$rlog; //cur_file:表示正在使用的联机日志
达梦备考笔记

(4)数据库归档管理

  • 数据库的归档就是记录对数据库的操作,记录到日志文件中,防止数据库宕机,以便恢复数据。
  • 默认情况,DM 不开启归档。
  • 归档是对 REDO 的归档。归档的目的是使数据库故障时可以恢复到故障的前一刻(完全恢
    复),或者恢复到指定的时间点或指定 LSN(不完全恢复)

4.1开启归档

//1.归档数据库状态必须为:mount
alter database mount;

//2.开归档
alter database archivelog;
//3.查看是否开启归档 
select arch_mode from v$database;
达梦备考笔记
//4.配置归档属性,设置存放位置,以及归档大小10240(10G)达到归档大小,自动删除,在生成新的归档
alter database add archivelog 'type=local,dest=/dm8/arch,file_size=64,space_limit=10240';

//5.设置数据库状态为:open
alter database open;

//6.查看配置结果
select * from v$dm_arch_ini;

4.2关闭归档

//1.设置数据库状态
alter database mount;
//2.关闭归档
alter database noarchivelog;
//3.删除归档配置
alter database delete archivelog 'type=local,dest=/dm8/arch';
//4.开启数据库为open状态
alter database open;
//5.查询配置结果
select arch_mode from v$database;
select * from v$dm_arch_ini; 

4.3查看归档日志

//查看归档日志
select * from v$arch_file;

生成两个归档日志

达梦备考笔记

4.4归档的切换

//数据库自动完成归档的切换,DM 支持手工切换归档;
alter SYSTEM ARCHIVE LOG CURRENT;
alter SYSTEM SWITCH LOGFILE;
alter DATABASE ARCHIVELOG CURRENT;

4.5归档删除

//1.查询归档删除函数
select * from v$ifun t where name like 'SF_ARCHIVELOG_%';

//2.LSE号可以用select * from v$arch_file;查询
SF_ARCHIVELOG_DELETE_BEFORE_LSN
SF_ARCHIVELOG_DELETE_BEFORE_TIME(sysdate -7);//表示删除现在到7天前的归档信息


达梦备考笔记

(七)用户管理

//1.查看所用用户
select * from dba_users;
//2.查看所有角色
select * from dba_roles;
  • DM 默认的预定义用户:
    SYS:系统内置用户,不允许登录。
    SYSDBA:系统管理员,拥有几乎所有权限(除审计和强制访问控制)
    SYSAUDITOR:系统审计员,具有审计相关权限。
    SYSSSO:系统安全员,具有强制访问控制等权限;
    SYSDBO:安全版本才有的用户,安全操作员。

  • 查询用户策略

    //查询用户策略
    select * from v$parameter t where t.name = 'PWD_POLICY';
    
    • PWD_POLICY 参数指定系统的口令策略,默认为 2;
      系统支持的口令策略有:
      ⚫ 0 无策略
      ⚫ 1 禁止与用户名相同
      ⚫ 2 口令长度不小于 9
      ⚫ 4 至少包含一个大写字母(A-Z)
      ⚫ 8 至少包含一个数字(0-9)
      ⚫ 16 至少包含一个标点符号(英文输入法状态下,除“和空格外的所有符号)
      口令策略可单独应用,也可组合应用。组合应用时,如需要应用策略 2 和 4,则设置口
      令策略为 2+4=6 即可。
    //修改默认策略
    alter SYSTEM set 'PWD_POLICY' = 15 BOTH;
    

(1)创建用户

  • 创建的用户并没有创建表的权限
//1.创建用户  默认在main空间(没有创建表、查看其他表的权限)
create user hr IDENTIFIED by dameng123;
//2.修改用户默认表空间
alter user hr default tablespace DMTEST;
//3.或者在创建时直接指定(密码有特殊字符用双引号)
create user hrtest IDENTIFIED by Dameng123 DEFAULT TABLESPACE TBSTEST;

(2)用户锁定和解锁

//用户锁定和解锁:
alter user hr ACCOUNT UNLOCK; //锁定
alter user hr ACCOUNT LOCK;   //解锁

(3)删除用户

drop user if EXISTS hr;
drop user if EXISTS hr CASCADE ; --生成环境慎用

(4)修改密码

//修改用户密码
alter user test1 identified by XXXX;

(5)权限管理

//赋予hrtest用户创建表的权限
grant create table to hrtest;

5.1赋予对象权限

//赋予对象权限,即能操作其他表、
//赋予给用户hrtest在dmhr模式下的employee表权限
grant select on dmhr.employee to hrtest;

(6)回收权限

//回收对象权限
revoke select on dmhr.employee from hrtest;
//回收创建表的权限
 revoke create table from hrtest;

(7)创建角色

create role r1;
grant create table to r1;
grant select on dmhr
grant r1 to hrtest;//给用户赋予r1角色的权限
赋予对象权限增加 with grant option 说明权限可以转授,回收时要增加 cascade 关键字级联
回收权限。

(八)模式对象管理

//1.HRTEST用户创建hrtest01模式
create schema hrtest01 AUTHORIZATION HRTEST;
//2.查看当前模式和当前用户
select sys_context('USERENV','CURRENT_SCHEMA');
select sys_context('USERENV','CURRENT_USER');
//3.切换模式
set SCHEMA dmhr;
//4.--删除模式
drop SCHEMA IF EXISTS HRTEST01;
drop SCHEMA IF EXISTS HRTEST01 CASCADE; - -级联删除模式下对象,生产环境慎
用。

(九)创建表

(1)在模式在创建表

//1.创建表,在hrtest模式下
create table hrtest.t_testpid(pid int, pname varchar(20), sex bit, logtime datetime)
//2.使用 CTAS 方式创建表(只复制表结构,不复制约束、主外键等信息):
create table hrtest.t_emp as select * from DMHR.EMPLOYEE where 1=0;
//3.like 创建表(只复制表结构,不复制约束、主外键等信息):
create table hrtest.t_emp01 like DMHR.EMPLOYEE;

(2)修改表结构

//1.添加字段:
alter table hrtest.t_testpid add COLUMN email varchar(20);
//2.修改字段类型:
alter table hrtest.t_testpid modify email varchar(50);
//3.删除字段:
alter table hrtest.t_testpid drop logtime;
//4.对字段添加默认值(大表不建议添加字段时给默认值):
alter table hrtest.t_testpid add COLUMN logtime datetime DEFAULT sysdate;

(十)表的约束

  • 约束类型:
    NOT NULL:非空约束
    UNIQUE:唯一约束
    PRIMARY KEY:主键约束 (唯一约束+非空约束)
    FOREIGN KEY:外键约束
    CHECK:检验约
非空约束
alter table hrtest.t_testpid modify pname not null;
唯一约束
alter table hrtest.t_testpid add CONSTRAINT uk_testpid_email unique (email);
主键约束
alter table hrtest.t_testpid ADD CONSTRAINT pk_testpid_pid PRIMARY KEY(pid);
检验约束
alter table hrtest.t_testpid add salary number(10,2);
alter table hrtest.t_testpid ADD CONSTRAINT ck_testpid_salary CHECK
(salary>=2100);
外键约束(外键引用两一张表的主键或者唯一键)
alter table hrtest.t_test add CONSTRAINT fk_test_id FOREIGN KEY(id) REFERENCES
hrtest.t_testpid(pid);

(1)表的约束禁用和删除

  • 防止导出报错
--约束的禁用和启用、删除
 //1.禁用
alter table hrtest.t_test disable CONSTRAINT fk_test_id;
//2.启用
alter table hrtest.t_test enable CONSTRAINT fk_test_id;
//3.删除约束
alter table hrtest.t_test drop CONSTRAINT fk_test_id;

(十一)管理视图

//1.创建视图
create view hrtest.v_emp
as
select a.EMPLOYEE_ID, a.EMPLOYEE_NAME, a.EMAIL, a.PHONE_NUM
from dmhr.employee a
where a.DEPARTMENT_ID = 1001;
//2.查询视图
select * from hrtest.v_emp ;

//3.创建复杂视图:
create or REPLACE view hrtest.v_emp_salary
as
select a.DEPARTMENT_ID, sum(A.SALARY) SUM_SALARY
from dmhr.employee a
group by a.DEPARTMENT_ID
having sum(A.SALARY) > 100000;

//4.查询视图
select * from hrtest.v_emp_salary ;

(十二)管理索引

  • 索引包含:聚簇索引、二级索引、函数索引、位图索引、唯一索引、组合索引等。

  • 组合索引创建时要注意索引列的顺序(一般经常查询的列放在前面,等值查询的列放在前面)。

  • CSCN表示的是聚簇索引。

    达梦备考笔记
  • DM 创建表时如果指定了主键,则主键为聚簇索引键;如果创建表示未指定主键,则 rowid
    为聚簇索引键(由参数 PK_WITH_CLUSTER 指定);

select * from v$parameter t where name ='PK_WITH_CLUSTER';
//查看执行计划
explain select * from hrtest.t_emp01 t where T.EMPLOYEE_NAME = '马学铭';

(1)创建索引

//1.创建索引
create index ix_emp01_employeename ON HRTEST.T_EMP01(EMPLOYEE_NAME);
//2.删除索引
drop index HRTEST.ix_emp01_employeename;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fVdlOVy8-1641975979681)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20220110003401351.png)]

//3.赋予创建索引的权限
grant create index to XXX

PS:创建表的时候客户端区分大小写,如果表名是小写的话,sql要加双引号:“ ”

//统中所有索引定义信息
SELECT * FROM SYSINDEXES;

(十三)导入脚本数据

  • 备份包含物理备份、逻辑备份。
    物理备份是拷贝有效的数据页。
    逻辑备份是导出数据库中逻辑数据。
    物理备份分为完全备份、增量备份;联机备份(热备)和脱机备份(冷备)。
    备份级别:全库备份、表空间级备份、表级备份、归档备份。
    增量备份包含差异增量备份和累积增量备份:
    差异增量备份的基础备份集可以是全量备份,也可以是增量备份;
    累计增量备份的基备份集只能是全量备份。
    物理还原是备份的逆过程;
    恢复是使用归档将数据库恢复到最新状态或指定时间点;或使用备份集中的 redo
    信息将数据库恢复至一致性状态。

  • 数据的导入(DM 使用 start 或者`):

  • 方式1:

    • start /dm8/backup/JOB.sql

达梦备考笔记

  • 方式2:
    • SQL> ` /dm8/backup/JOB.sql

达梦备考笔记

  • 导入数据时,可以关闭界面显示:

达梦备考笔记

  • 在命令行切换用户

    conn sysdba/DAMENG123
    

(十四)联机备份与还原

《联机备份》

  • 联机备份:数据库是启动状态,联机备份要求数据库打开归档。
    DM 默认使用 AP 服务备份(由参数 BAK_USE_AP),所以备份时要保证 AP 服务是启动的

达梦备考笔记

  • DM 默认的备份路径由参数 BAK_PATH 指定,建议备份路径不要和数据库原始数据文件放在同一磁盘,避免磁盘损坏,数据文件和备份文件同时损坏的情况。
//1.查看备份地址
select * from v$parameter t where name in ('BAK_USE_AP','BAK_PATH');
  • bin目录查看AP服务,并查看状态
达梦备考笔记

14.1全量备份

  • 默认为全量备份

  • 用disql命令

    //1.联机备份
    backup databse;//默认是全量备份
    

达梦备考笔记

//2.查看备份集
select * from v$backupset; 
达梦备考笔记
14.1.1联机备份目录
  • 联机备份目录有三个

    • 日志文件

    • 数据文件

    • 元数据信息

达梦备考笔记
14.1.2指定目录备份
//1.全量备份
//ONLINEBAK_01:备份名
//backupset:备份目录
backup database full to ONLINEBAK_01 backupset
'/dm8/backup/full/ONLINEBAK_01';

14.2增量备份

//1.增量备份(只用默认目录保存)
backup database increment; 

14.2.1指定目录备份
  • 方法一:基于基备份
//2.指定保存目录的增量备份
// BASE ON BACKUPSET:指定基于基备份(之前备份的文件)的增量备份
backup database increment BASE ON BACKUPSET
'/dm8/backup/full/ONLINEBAK_01' to ONLINEBAKINCR_01
backupset '/dm8/backup/incr/ONLINEBAK_01' ;
  • 方法二:基于最新备份进行数据库备份
//3.increment with BACKUPDIR:这是一个目录,会根据最新的备份文件来进行备份
backup database increment with BACKUPDIR '/dm8/backup/full/' to
ONLINEBAKINCR_02 backupset '/dm8/backup/incr/ONLINEBAK_02' ;
14.2.2校验备份集
  • 校验备份集

    select SF_BAKSET_CHECK('DISK','/dm8/backup/incr/ONLINEBAK_02');//结果为1表示:备份成功
    

14.3表空间的备份

--表空间备份
backup tablespace dmtbs;
backup tablespace dmtbs INCREMENT with BACKUPDIR '/dm8/backup/full/' to
DMTBSINCR_01 backupset '/dm8/backup/incr/DMTBSINCR_01' ;
  • 根据最新的备份

    达梦备考笔记

14.4表的备份

//表的备份
backup table dmhr.employee; 
//归档备份
backup ARCHIVELOG all; 
//库级、表空间的还原和恢复不支持联机恢复,只支持脱机还原恢复。

14.5图形化的配置

  • 设置完库备份后,要指定工作目录才能看到备份的文件。

    如果出现:

    达梦备考笔记

执行:

checkpoint(100);

14.6出现的问题

  • 如果备份提示未开启归档,重启数据库即可。

《联机还原与恢复》

(十五)脱机实现表空间的还原与恢复

15.1表空间的还原与恢复(.DBF文件代表一个表空间)

  • 表空间恢复不用更新数据库魔术。

  • 先制造故障

    • 把表空间里的一个数据文件删除(表空间文件在)

    • 删除DMHR.DBF表空间

      达梦备考笔记
  • 故障后数据库就启动不了

  • 解决方法:如15.1.1

15.1.1用dmrman还原
  • 步骤1:启动dmrman

    //1.在bin目录启动dmrman
    ./dmrman
    
  • 步骤2.命令开始恢复

    // restore database '数据库的配置文件'  tablespace 表空间 from backupset '全量备份目录';
    restore database '/home/dmdba/dmdbms/data/DAMENG/dm.ini' tablespace DMHR from backupset '/dm8/data/full/ONLINEBACK_01';
    

    达梦备考笔记

  • 步骤3:将表空间恢复到数据库最新状态

    • DM8 表空间恢复时会自动应用归档
    //recover database '数据库的配置文件'  tablespace 表空间名 with archivedir'/dm8/arch';
    recover database '/home/dmdba/dmdbms/data/DAMENG/dm.ini' tablespace DMHR with archivedir'/dm8/arch';
    

15.2全库的还原与恢复

  • 记住最后要恢复数据库魔数。

  • 测试场景:

    • 测试场景:删除 system 数据文件

达梦备考笔记

15.2.1数据库的还原
  • 1.进入bin目录运行dmrman

    达梦备考笔记
  • 2.运行命令,开始还原。

    //restore database '数据库配置文件' from backupset '备份<目录>'
    restore database '/home/dmdba/dmdbms/data/DAMENG/dm.ini' from backupset '/dm8/backup/full/CONSOLE_FULL_BAK_01/'
    

    达梦备考笔记

  • 3.开始恢复

    //recover database '数据库配置' with archivedir'/dm8/arch';
     recover database '/home/dmdba/dmdbms/data/DAMENG/dm.ini' with archivedir '/dm8/arch';
    
    达梦备考笔记
  • 4.更新是数据库魔数

    //recover database '数据库启动配置' update db_magic;
    recover database '/home/dmdba/dmdbms/data/DAMENG/dm.ini' update db_magic;
    

    达梦备考笔记

  • 最后被删除的数据文件已恢复

    达梦备考笔记

15.2.2容易出现的错误
  • 没有更新数据库魔数

达梦备考笔记

(十六)脱机备份 (冷备)

16.1即数据库在关闭状态下备份

//1.关闭数据库(在bin目录下运行)
./DmServiceDMSERVER stop 
16.1.1《方法一》:使用 dmrman 工具可以脱机备份
  • 进入bin目录
//2.启动dmrman
./dmrman 
16.1.2开始备份(ps:数据库要关闭)
  • 比数据库热备多了一个参数
//运行命令
backup databse xxx.dm.ini(指定数据库的配置参数文件)
    
  • 运行结果:
达梦备考笔记

达梦备考笔记

16.2.1《方法二》:用conlose工具备份
  • 切记不要用root用户启动console备份,会改变用户权限,导致数据库启动不了

    1.获取归档目录

达梦备考笔记
16.2.2点击新建备份
达梦备考笔记

(十七)配置本地归档

达梦备考笔记

(十八)逻辑备份

  • dexp 逻辑导出、dimp 逻辑导入
    四个级别:
    全库(full=y)
    按用户(owner=XXX)
    按模式(schemas=XXX)
    按表(tables=XX)

达梦备考笔记

  • 全库导出:
    [dmdba@KylinDCA03 dexp]$ dexp userid=sysdba/Dameng123:5236
    directory=/dm8/backup/dexp file=full.dmp log=full.log full=y
  • 按用户导出:
    dexp userid=sysdba/Dameng123:5236 directory=/dm8/backup/dexp file=HRTEST.dmp
    log=HRTEST.log owner=HRTEST
  • 按模式导出:
    dexp userid=sysdba/Dameng123:5236 directory=/dm8/backup/dexp file=DMHR.dmp
    log=DMHR.log schemas=DMHR
  • 按表导出:
    dexp userid=sysdba/Dameng123:5236 directory=/dm8/backup/dexp
    file=EMPLOYEE.dmp log=EMPLOYEE.log tables=DMHR.EMPLOYEE

达梦备考笔记

  • 全库导入:
    dimp userid=sysdba/Dameng123:5238 directory=/dm8/backup/dexp file=full.dmp
    log=impfull.log full=y
    按模式导入(将 A 模式导入到 B 模式,使用 REMAP_SCHEMA 参数):
    dimp userid=sysdba/Dameng123:5238 directory=/dm8/backup/dexp file=DMHR.dmp
    log=impDMHR.log REMAP_SCHEMA=DMHR:DMTEST

达梦备考笔记

达梦备考笔记

  • 全库导入(DM 管理工具):

达梦备考笔记

(十九)作业管理

19.1创建作业首先要创建代理服务

达梦备考笔记

达梦备考笔记

19.2创建作业

19.2.1全量备份

达梦备考笔记

达梦备考笔记

达梦备考笔记

达梦备考笔记

  • 以上操作对应生成的DDL

    call SP_CREATE_JOB('JOB01',1,0,'',0,0,'',0,'');
    call SP_JOB_CONFIG_START('JOB01');
    call SP_ADD_JOB_STEP('JOB01', 'FULLBAK', 6,
    '00000000/dm8/backup/full', 0, 0, 0, 0, NULL, 0);
    call SP_ADD_JOB_SCHEDULE('JOB01', 'FULLBAK', 1, 2, 1, 1, 0,
    '22:00:00', NULL, '2021-12-22 16:32:21', NULL, '');
    call SP_JOB_CONFIG_COMMIT('JOB01');
    

19.2.2增量备份

增量备份:

达梦备考笔记

达梦备考笔记

19.4容易遇到的问题

达梦备考笔记

  • 第一个没开归档

    • 可通过管理服务器开启归档
  • 第二个归档日志不连续

    • 解决方法:执行检查点(或者重启数据库)
    --查看job
    select * from sysjob.sysjobs;
    --运行job
    dbms_job.run(1640162093);
    --查看job运行日志
    select * from SYSJOB.SYSJOBHISTORIES2;
    checkpoint(100); --执行完全检查点
    

(二十)ODBC配置

  • DM 支持开发语言的种类

    达梦备考笔记
  • DM 开发语言接口配置

DM8 JDBC 编程注意事项
// 定义 DM JDBC 驱动串
String jdbcString = "dm.jdbc.driver.DmDriver";
// 定义 DM URL 连接串
String urlString = "jdbc:dm://localhost:5236";

20.1ODBC 的安装:

  • (1)解压
    [root@KylinDCA03 opt]# tar -zxvf unixODBC-2.3.0.tar.gz

  • (2)源码安装三部曲(配置、编译、安装)
    [root@KylinDCA03 opt]# cd unixODBC-2.3.0/
    [root@KylinDCA03 unixODBC-2.3.0]# ./configure
    [root@KylinDCA03 unixODBC-2.3.0]# make
    [root@KylinDCA03 unixODBC-2.3.0]# make install

    • 没有配置编译目录,默认安装在:/usr/local/etc目录下

    • 可用命令查看

      odbcinst -j 
      
  • (3)进入etc目录下: 配置 odbc.ini 数据源信息和 odbcinst.ini 驱动信息

    (1:)[root@KylinDCA03 unixODBC-2.3.0]# cd /usr/local/etc/(2:)[root@KylinDCA03 etc]# ll
    总用量 0
    drwxr-xr-x 2 root root 6 12 月 22 16:56 ODBCDataSources
    -rw-r–r-- 1 root root 0 12 月 22 16:56 odbc.ini
    -rw-r–r-- 1 root root 0 12 月 22 16:56 odbcinst.ini
    (3:)[root@KylinDCA03 etc]# vim odbcinst.ini

    //配置该信息,保存退出!
    //注意安装目录,安装在:/dm8/bin/libdodbc.so
    [DM8 ODBC DRIVER]
    Description = ODBC DRIVER FOR DM8
    Driver = /dm8/bin/libdodbc.so
    

    (4:)[root@KylinDCA03 etc]# vim odbc.ini

    //配置信息:
    //Description:和上面[]名相同
    //注意账号密码
    [DM8]
    Description = DM ODBC DSN
    Driver = DM8 ODBC DRIVER
    SERVER = localhost
    UID = SYSDBA
    PWD = Dameng123
    TCP_PORT = 5236
    

    (5:)测试连接

  • 切换至dmdba用户

  • 测试连接:isql dm8 -v

    //1.切换用户
    su dmdba
    //2.测试连接
    
  • 测试查询

达梦备考笔记

  • 考试重点:
    安装、
    实例创建、
    **参数修改、
    创建表空间、
    创建用户、
    角色、
    权限管理;
    创建表、
    导入脚本数据、
    约束、索引、视图等;(PS:用manager工具去实现)
    物理备份还原、(PS:用命令去备份和还原)
    逻辑备份还原;(PS:用manager工具实现)
    DM 作业、 (PS:用manager工具实现)
    ODBC 配置等。
上一篇:Mysql:Mysql基本命令操作


下一篇:2.操作数据库