达梦备考笔记
作者:互联网
达梦培训
-
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;
- PWD_POLICY 参数指定系统的口令策略,默认为 2;
(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 配置等。
标签:备份,笔记,数据库,备考,select,dm8,root,alter,达梦 来源: https://blog.csdn.net/qq_41239465/article/details/122456241