其他分享
首页 > 其他分享> > 达梦备考笔记

达梦备考笔记

作者:互联网

达梦培训

安装出现的问题

(1)安装目录内存过小

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

在这里插入图片描述

在这里插入图片描述

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

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

[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

(一)安装步骤

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命令

(三)命令行安装

(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

(五)客户端工具

image-20220108144647836

(1)DM 管理工具启

./manager

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

./console

image-20211221092413668

第三方打开客户端

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

image-20220104105241396

达梦数据库-示例库

image-20220104152750084

(六)表空间管理

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)在表空间创建表

//创建表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)管理重做日志文件

//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;
//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)数据库归档管理

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;

(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;

(十)表的约束

非空约束
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 ;

(十二)管理索引

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;

(十三)导入脚本数据

image-20220110194528818

image-20220110194609613

image-20220110194641577

(十四)联机备份与还原

《联机备份》

image-20220110204853579

//1.查看备份地址
select * from v$parameter t where name in ('BAK_USE_AP','BAK_PATH');
image-20220110210400653

14.1全量备份

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校验备份集

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文件代表一个表空间)

15.1.1用dmrman还原

15.2全库的还原与恢复

image-20220111202024085

15.2.1数据库的还原
15.2.2容易出现的错误

image-20220111205829076

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

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

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

image-20220111151805007

16.2.1《方法二》:用conlose工具备份
image-20220111155656583
16.2.2点击新建备份
image-20220111155527231

(十七)配置本地归档

image-20220111211722146

(十八)逻辑备份

image-20220111232734108

image-20220111232803018

image-20220111232827681

image-20220111232852611

image-20220111232905889

(十九)作业管理

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

image-20220111235121786

image-20220111235139073

19.2创建作业

19.2.1全量备份

image-20220111235226953

image-20220111235236776

image-20220111235245513

image-20220111235255401

19.2.2增量备份

增量备份:

image-20220112000247708

image-20220112000257611

19.4容易遇到的问题

image-20220112001250767

(二十)ODBC配置

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

20.1ODBC 的安装:

image-20220112095249019

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