ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

达梦备考笔记

2022-01-12 16:30:27  阅读:438  来源: 互联网

标签:备份 笔记 数据库 备考 select dm8 root alter 达梦


达梦培训

  • 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

image-20211221000915194

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(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

可能出现的问题

image-20211221004030990

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

image-20220104100209479

  • 停止数据库服务

    Systemctl stop DmServiceDMSERVER.service
    

    image-20220104104254959

(五)客户端工具

image-20220108144647836

(1)DM 管理工具启

  • 在tool目录下运行
./manager

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

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

  • 在tool目录下运行

./console

image-20211221092413668

第三方打开客户端

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

image-20220104105241396

达梦数据库-示例库

image-20220104152750084

(六)表空间管理

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

  • 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
image-20220109014503880
//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:表示正在使用的联机日志
image-20220109020007267

(4)数据库归档管理

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

4.1开启归档

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

//2.开归档
alter database archivelog;
//3.查看是否开启归档 
select arch_mode from v$database;
image-20220109022907663
//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;

生成两个归档日志

image-20220109025639499

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天前的归档信息


image-20220109030813253

(七)用户管理

//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表示的是聚簇索引。

    image-20220109232716829
  • 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

image-20220110194528818

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

image-20220110194609613

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

image-20220110194641577

  • 在命令行切换用户

    conn sysdba/DAMENG123
    

(十四)联机备份与还原

《联机备份》

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

image-20220110204853579

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

14.1全量备份

  • 默认为全量备份

  • 用disql命令

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

image-20220110211727032

//2.查看备份集
select * from v$backupset; 
image-20220110211925844
14.1.1联机备份目录
  • 联机备份目录有三个

    • 日志文件

    • 数据文件

    • 元数据信息

image-20220110212419701
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' ;
  • 根据最新的备份

    image-20220111135143330

14.4表的备份

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

14.5图形化的配置

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

    如果出现:

    image-20220111140932531

执行:

checkpoint(100);

14.6出现的问题

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

《联机还原与恢复》

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

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

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

  • 先制造故障

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

    • 删除DMHR.DBF表空间

      image-20220111162907737
  • 故障后数据库就启动不了

  • 解决方法:如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';
    

    image-20220111172139101

  • 步骤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 数据文件

image-20220111202024085

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

    image-20220111202505667
  • 2.运行命令,开始还原。

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

    image-20220111203320793

  • 3.开始恢复

    //recover database '数据库配置' with archivedir'/dm8/arch';
     recover database '/home/dmdba/dmdbms/data/DAMENG/dm.ini' with archivedir '/dm8/arch';
    
    image-20220111204227442
  • 4.更新是数据库魔数

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

    image-20220111204342337

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

    image-20220111204530366

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

image-20220111205829076

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

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

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

image-20220111151805007

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

    1.获取归档目录

image-20220111155656583
16.2.2点击新建备份
image-20220111155527231

(十七)配置本地归档

image-20220111211722146

(十八)逻辑备份

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

image-20220111232734108

  • 全库导出:
    [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

image-20220111232803018

  • 全库导入:
    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

image-20220111232827681

image-20220111232852611

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

image-20220111232905889

(十九)作业管理

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

image-20220111235121786

image-20220111235139073

19.2创建作业

19.2.1全量备份

image-20220111235226953

image-20220111235236776

image-20220111235245513

image-20220111235255401

  • 以上操作对应生成的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增量备份

增量备份:

image-20220112000247708

image-20220112000257611

19.4容易遇到的问题

image-20220112001250767

  • 第一个没开归档

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

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

(二十)ODBC配置

  • DM 支持开发语言的种类

    image-20220112093355116
  • 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.测试连接
    
  • 测试查询

image-20220112095249019

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

标签:备份,笔记,数据库,备考,select,dm8,root,alter,达梦
来源: https://blog.csdn.net/qq_41239465/article/details/122456241

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有