达梦数据库DCA注意事项

达梦数据库DCA认证注意事项

第一章:DM8企业版安装

安装过程中调用安装界面如果出不来怎么办?
Root用户下执行xhost +
Echo $DISPLAY
回显xxx
如果报错,把该窗口关闭重新打开一个控制台。
切换dmdba用户下,执行export DISPALY=:xxx

注意:该设置只适合当前窗口。

第二章:创建数据库实例

1.数据库配置助手创建数据库

[dmdba@localhost tool]$dbca.sh启动dbca.sh启动达梦数据库配置助手创建数据库实例:
注:如果不能正常启动界面,参考安装数据库部分。
簇大小、页大小、字符串大小写、字符集等一旦指定,数据库创建完成将无法更改。

2.命令行方式创建数据库

在[dmdba@localhost bin]$该目录下执行./dminit创建数据库,使用./dminit path=/
执行dminit path=/dm8/data db_name=DM01 instance_name=DMSVR01 port_num=5237。

3.注册数据库

dbca.sh方式创建数据库实例不需再注册数据库服务,命令行方式创建的数据库需要注册数据库,通过dbca.sh数据库配置助手来注册数据库服务。

4.删除数据库

通过dbca.sh数据库配置助手删除数据库
需要先关闭数据库再进行删除。

第三章:数据库的启动、连接和关闭

查看数据库服务状态
使用dmservice.sh查看DM服务,注册数据库服务成功后,会在DM服务查看器中显示正在运行。

root用户下:
systemctl status DmServiceDMSERVER.service
dmdba用户下:
DmServiceDMSERVER status

1.启动数据库

root用户:
root用户启动达梦服务查看器,dmdba用户可以打开,但没有操作权限。
或者命令行执行systemctl start DmServiceDMSERVER.service
dmdba用户:
DmServiceDMSERVER start

2.连接数据库

disql工具
disql sysdba/Dameng123
DM管理工具manager

3.关闭数据库

root用户:命令行执行systemctl stop DmServiceDMSERVER.service
dmdba用户:
DmServiceDMSERVER start

数据库状态切换
数据库有四种状态,mount(配置)、open(打开)、suspend(挂起)、shutdown(关闭)四种状态,其中Mount 和 open 可以相互转换,suspend 和 open 可以相互转换。mount 和 suspend 不能相互切换。
mount状态和open状态的转换:
DmService 命令可以将数据库启动到 mount 状态 [dmdba@DCA02 bin]$ ./DmServiceDMSERVER start mount
先连接数据库,查看实例状态select status$ from v$instance;
mount状态可以直接转换到open状态,alter database open;

suspend状态和open状态的转换:
-DM管理工具切换数据库状态:

第四章:客户端管理

dmdba@DCA02 tool]$ ./manager 如果报下面权限不够的错误,说明之前使用 root 打开过 DM 管理工具,此时需要将 tool 文 件夹的所属用户和所属组都改为 dmdba:dinstall。
如果出现大段的报错,无法打开 DM 管理工具,一般是图形化界面没有设置好。
达梦数据库DCA注意事项

DM 控制台工具(脱机工具) 可以修改数据库配置参数文件(dm.ini),修改参数需要重启数据库才能生效 可以对数据库备份和还原(冷备),等同于 DMRMAN 工具。

控制台工具:

[dmdba@DCA02 tool]$ ./console
达梦数据库DCA注意事项

DM数据迁移工具:

[dmdba@DCA02 tool]$ ./dts
达梦数据库DCA注意事项

DM 性能监视工具:

[dmdba@DCA02 tool]$ ./monitor
达梦数据库DCA注意事项

审计工具:

[dmdba@DCA02 tool]$ ./analyzer
达梦数据库DCA注意事项

第五章:DMSQL

SQL 分类
DML:数据操纵语言:SELECT、INSERT、UPDATE、DELETE
DDL:数据定义语言:CREATE、DROP、TRUNCATE、ALTER
TCL:事务控制语言:ROLLBACK、COMMIT、SAVEPOINT
DCL:权限控制语言:GRANT、REVOKE

第六章:DM的体系结构

达梦数据库DCA注意事项

1.DM 存储结构

数据文件、联机日志文件、控制文件、参数文件是必备的,缺一不可。

2.归档日志文件

数据库开启归档之后,会产生归档日志文件。

3.备份文件

数据备份产生的文件。

4.跟踪日志文件

安装目录 log 下面数据库运行时产生的日志文件。

5.参数文件 dm.ini(文本文件)

记录了数据库初始化相关参数、包含实例名、端口号、控制文件路径、控制文件的 备份路径,默认数据库备份路径、主内存池、数据库缓冲区、排序区、HASH 区等相 关参数等。

6.数据缓冲区

缓冲区:数据缓冲区、重做日志缓冲区、sql 缓冲区、数据字典缓冲区。
缓存的是数据页,分别是 NORMAL、KEEP、FAST 和 RECYCLE 四种。 对应表空间属性:NORMAL,正常淘汰,对应参数 BUFFER,一般来说,OLTP 占用内存 40- 60%,OLAP 系统占用内存 60-80% KEEP:在内存中较久保存 FAST 和 RECYCLE,系统指定,RECYCLE 用于临时表空间 MULTI_PAGE_GET_NUM:读多页,大数据读时可以开启。

7.重做日志缓冲区

用来存放 redo 信息,单位是页,如果事务操作多,OLTP 建议调大。 select * from v$dm_ini t where t.para_name like ‘%RLOG_BUF_SIZE%’; 查询数据库页大小:

8.SQL缓冲区

用来缓存 sql 语句,执行计划、sql 结果集。

第七章:表空间管理

1.DM8常用表空间:

SYSTEM、ROLL、MAIN、TEMP、HMAIN

2.SYSTEM 系统表空间:

存放数据字典信息(表定义、表结构、其他对象的定义、权 限信息)

3.ROLL 表空间:

回滚表空间,存放回滚信息。相当于 ORACLE 的 UNDO。 达梦中 ROLL 表空间只能有一个,可以对 ROLL 表空间添加数据文件,但不能新 增 ROLL 表空间。 UNDO_RETENTION:回滚段的保留时间,单位为秒 sp_set_para_double_value(1, ‘UNDO_RETENTION’, 600);

4.TEMP 表空间:

临时表空间,用来存放临时表、大量的排序可能占用临时表空间 select * from v$dm_ini t where t.PARA_NAME like ‘%TEMP%’;TEMP_SIZE:临时表空间的初始大小 TEMP_SPACE_LIMIT:临时表空间限制的最大值,为 0 表示不限制,建议生成环 境修改。 sp_set_para_value(1, ‘TEMP_SPACE_LIMIT’, 1024);

5.MAIN 表空间:

用户默认表空间,创建用户时,如果没有指定用户的默认表空间, 则使用 MAIN 表空间,相当于 ORACL 的 USERS 表空间。

6.HMAIN 表空间:

是 HUGE 表的默认表空间。 五个表空间不能删除,MAIN 和 HMAIN 可以脱机,其他不能脱机。

7.创建表空间

create tablespace “TBS”datafile ‘/dm8/data/DAMENG/TBS01.DBF’size 32;

8.修改数据文件大小:

alter tablespace tbs resize datafile ‘TBS01.dbf’ to 128;

9.设置自动扩展:

alter tablespace tbs datafile ‘TBS01.dbf’ autoextend on next 1 maxsize 10240; 关闭自动扩展:alter TABLESPACE tbs DATAFILE ‘TBS02.dbf’ AUTOEXTEND off;

10.增加一个数据文件:

alter tablespace tbs add datafile ‘TBS02.dbf’ size 128;

11.管理重做日志文件:

Redo 联机日志,记录 DML 插入、修改、删除动作所更新的数据页信息。 联机日志默认两个,循环使用,数据库创建之初,联机都为空,随着数据库的运行,redo 记 录被数据的数据,空间会不断占用,数据会覆盖。
alter database add logfile ‘DAMENG03.log’ size 128;

12.删除空的表空间:

drop TABLESPACE tbs;

13.管理数据文件

DM 表空间的数据文件只能增加、增大、不能减少,也不能单独删除某个数据文件、只能删 除整个表空间。表空间有数据时不能直接删除。

第八章:用户和权限管理

用户管理

DM 普通版本默认三权分立,默认创建如下用户: SYSDBA:数据库管理员 SYSAUDITOR:数据库审计员,设置数据库审计功能 SYSSSO:数据库安全员 SYS:内置用户,不能直接登录 安全版本会增加 SYSDBO(安全操作员) 系统支持的口令策略有: 0 无策略 1 禁止与用户名相同 2 口令长度不小于 9 4 至少包含一个大写字母(A-Z) 8 至少包含一个数字(0-9) 16 至少包含一个标点符号(英文输入法状态下,除“和空格外的所有符号)
对于同时满足的条件就累加

1.密码策略

创建用户时要指定密码,用户密码策略由系统参数 PWD_POLICY.
SQL> select para_name,para_type,para_value,description from v$dm_ini where para_name=‘PWD_POLICY’; 查看密码策略。
修改系统口令策略:SQL> sp_set_para_value(1,‘PWD_POLICY’,14);修改后的策略只针对新用户有用。
查看用户口令策略:SQL> select username,user_id,PASSWORD_VERSIONS from dba_users;

2.创建用户

SQL> create user user1 identified by Dameng123;

3.用户的锁定与解锁

当用户尝试登录,密码错误超过限制的尝试失败次数,用户会被自动锁定。
可以手动锁定和解锁:

4.锁定

SQL> alter user user1 account lock;

5.解锁

alter user user1 account unlock;

6.修改用户的资源限制

(例如当密码错误超过 5 次时,锁定 10 分钟)SQL> alter user user1 limit failed_login_attemps 5,password_lock_time 10;

7.修改user1用户默认表空间为TBS、默认索引表空间为tbsidx:

SQL> alter user user1 default tablespace tbs default index tablespace tbsidx;

8.用户删除

使用具有删除用户(DROPUSER)权限的用户删除其他用户,在删除前要保证用户里对象为空。
drop user user2;

权限管理

系统权限:

create table; alter database; create tablespace; alter tablespace; drop tablespace; create user; create view; create procedure; create role; create schema;

授予系统权限:

grant CREATE TABLE to USER1;

撤销系统权限:

revoke

授予对象权限

grant SELECT on DMHR CITY to USER1; 撤销:revoke

权限的查看:

系统权限(数据库权限)查看 DBA_SYS_PRIVS select * from dba_sys_privs;
对象权限查看 DBA_TAB_PRIVS select * from dba_tab_privs;
角色权限查看 DBA_ROLE_PRIVS select * from dba_role_privs;
1.对象权限的赋予和回收:可以赋给用户或角色
2.将dmhr.employee的查看权限赋予user1:(sysdba用户)SQL> grant select on dmhr.employee to user1;
从user1就可以查看dmhr.employee:SQL> select count(*) from dmhr.employee;
但user1不能查看dmhr.department,没有该权限,没有赋予
3.回收user1权限:从sysdba用户,revoke select on dmhr.employee from user1;
4.查询某张表的某些字段,可以赋给用户或角色
sysdba:SQL> grant select(employee_id,employee_name,salary) on dmhr.employee to user1;
user1: 不能查询整个表:但是可以查询employee_id,employee_name,SQL> select employee_id,employee_name,salary from dmhr.employee limit 5;
如果想查询dmhr.employee中的其他列,也没有查询权限。

角色管理

1.查看角色信息:

select * from dba_roles;
默认每种类型的管理员拥有五个角色(DBA、PUBLIC、RESOURCE、SOI、VTI)
DBA:管理员角色,拥有几乎所有的权限。
RESOURCE:拥有创建表、创建视图等对数据库操作的权限,但没有创建用户的权限。
PUBLIC:拥有数据操作权限(增删改查)。
SOI:拥有查询系统表(sys 开头的)
VTI:拥有动态视图(v$开头的查询权限)。
select * from DBA_SYS_PRIVS t where t.GRANTEE=‘PUBLIC’;
select * from DBA_SYS_PRIVS t where t.GRANTEE=‘RESOURCE’;
select * from DBA_TAB_PRIVS t where t.GRANTEE=‘VTI’;
select * from DBA_TAB_PRIVS t where t.GRANTEE=‘SOI’;

2.新建角色:

创建角色role1,并将create table权限赋给user1:(在SYSDBA用户)
create role R1;
grant create table to role1;
grant role1 to user1;
登录user1,并创建表,因为赋予了user1创建表的角色。

3.回收权限:

回收user1的role1的权限,user1不能创建表(在SYSDBA用户)
SQL> revoke role1 from user1;
假如 user1 即拥有角色 role1,也拥有创建表 create table 的权限,此时回收 user1 的 create table 的权限,问 user1 是否还能创建表。
回收user1的create table的权限,但是角色role1的权限并没有禁用,因此还可以创建表。

4.查看role1的权限:

select * from DBA_SYS_PRIVS t where t.GRANTEE=‘ROLE1’;

5.角色的启用和禁用:

禁用:SQL> sp_set_role(‘ROLE1’,0); 此时user1没有查询权限
启用:SQL> sp_set_role(‘ROLE1’,1);

第九章:模式管理

模式是一个特定的对象集合,可看作包含表、视图、索引等若干对象的对象集。
模式对象:表、视图、约束、索引等。
系统建立一个用户时,会自动生成一个模式,一个模式只能归属于一个用户,一个用户可以对应多个模式。
一个模式仅能归属于一个用户,而一个用户可以包含多个模式。 模式是一组对象的集合,使用模式可以使不同业务隔离。

创建模式:

create SCHEMA sche1 AUTHORIZATION hrtest;

模式下创建表:

create table sche1.t_test(id int, name varchar(20));
查询数据库中所有模式信息:
select * from SYSOBJECTS t where t.type = ′ S C H ′ ; 查 询 模 式 归 属 于 哪 个 用 户 : s e l e c t a . n a m e , a . t y p e ='SCH'; 查询模式归属于哪个用户: select a.name, a.type =′SCH′;查询模式归属于哪个用户:selecta.name,a.type, b.name, b.type$ from SYSOBJECTS a, SYSOBJECTS b where a.type$=‘SCH’ and a.pid= b.id;

第十章:表和约束管理

表管理

表分为用户表和系统表
表数据存储在表空间中,如果不指定,存储在默认表空间。行数据:MAIN,列数据:HMAIN。
1.新建表
命令行:SQL> create table emp (empid int,empname varchar(100),deptid int) tablespace tbs;
2.在表中增加或移除字段:
增加列:SQL> alter table test add column birthday bit;(向test表中增加一个名为birthday的字段)
将列删除:alter table test drop birthday;
3.删除表:drop table test;

约束管理

常见的约束类型:NOT NULL(非空) UNIQUE(唯一) PRIMARY KEY(主键) FOREIGN KEY(外键)表名需要增加模式名 CHECK(校验)
1.创建主键约束:SQL> alter table emp add constraint PK_emp_empid primary key(empid);
2.删除主键:如果该主键被引用为外键,则无法直接删除,需要使用 cascade 级联删除。alter table dept drop constraint PK_DEPT_DEPTID cascade;
3.设置非空约束:SQL> alter table emp modify empname not null;
4.设置外键:
SQL> create table dept(deptid int primary key,department_name varchar(100)) STORAGE(on tbs);
SQL> alter table emp add constraint fK_emp_deptid foreign key(deptid) references dept(deptid);
5.创键外键后删除dept表删除失败,因为emp表引用了dept表的相关信息
删除表时,如果该表的字段被别的表引用做外键约束,则不能被直接删除。 使用 cascade 可以删除,同时会级联删除外键约束。
用的外键需要是被引用的表的主键,否则无法创建外键。这里emp表外键是deptid为dept表的主键,因此可以设置外键。
6.外键的禁用和启用:
alter table emp disable constraint fK_emp_deptid;
alter table emp enable constraint fK_emp_deptid;
check约束
SQL> alter table test add column age int;
SQL> alter table test add constraint CH_emp_age check(age>=6);
删除约束alter table test drop constraint CH_emp_age check(age>=6);

SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:

TYPE ASCII HTML
Single backticks 'Isn't this fun?' ‘Isn’t this fun?’
Quotes "Isn't this fun?" “Isn’t this fun?”
Dashes -- is en-dash, --- is em-dash – is en-dash, — is em-dash

第十一章:索引和视图管理

索引管理

索引是一种独立的数据库对象,通过指针加速查询速度,通过快速定位数据的方法减少磁盘IO,索引和表相互独立,服务器自动关使用和维护索引。
索引:创建索引的目的加快查询。从大表中查询少量的数据的时候,我们可以创建索引。 索引的缺点:使表的 DML 操作变慢。 在业务繁忙期间不建议创建索引,也不建议收集统计信息。
1.创建索引:
在user1.emp的employee_id字段上创建索引,如果表为空的话不能创建索引。
SQL> create index user1.ix_emp_name on user1.emp(employee_id);
2.查询索引:
查询所有索引:SQL> desc dba_indexes;
查询某个用户下的所有索引:SQL> select owner,index_name from dba_indexes where owner=‘USER1’;
查询索引建在哪个列上:select * from SYS.USER_IND_COLUMNS;

数据字典和动态性能视图

数据字典
数据字典(数据存放在 SYSTEM 表空间中,包含表、索引等对象的定义,用户、权限、 角色等):
USER_* 用户所拥有的对象信息
ALL_* 用户能访问的对象信息
DBA_* 整个数据库中的对象信息
SYS* 开头的系统表
⚫ 动态性能视图
V 开 头 的 为 动 态 视 图 , 存 放 在 内 存 中 。 缓 冲 池 动 态 性 能 表 , 用 来 记 录 除 循 环 使 用 缓 冲 池 外 的 缓 冲 池 控 制 页 结 构 的 信 息 S E L E C T ∗ F R O M V 开头的为动态视图,存放在内存中。 缓冲池动态性能表,用来记录除循环使用缓冲池外的缓冲池控制页结构的信息 SELECT * FROM V 开头的为动态视图,存放在内存中。缓冲池动态性能表,用来记录除循环使用缓冲池外的缓冲池控制页结构的信息SELECT∗FROMVBUFFERPOOL;
显示数据文件信息
SELECT * FROM V D A T A F I L E ; 显 示 当 前 进 程 信 息 S E L E C T ∗ F R O M V DATAFILE; 显示当前进程信息 S ELECT * FROM V DATAFILE;显示当前进程信息SELECT∗FROMVPROCESS;
显示当前线程信息
SELECT * FROM V T H R E A D S ; 显 示 当 前 会 话 信 息 : V THREADS; 显示当前会话信息: V THREADS;显示当前会话信息:Vsession
显示数据库中锁的信息:v l o c k 历 史 s q l 查 询 : v lock 历史 sql 查询: v lock历史sql查询:vsql_history
显示数据库中事务信息:
V$TRX

从用户角度视图从一个特定的角度查看数据库中的数据,视图是虚拟的表,视图是基于表的,实际的数据在表中。视图分为简单视图和复杂视图,这里涉及到简单视图。
从数据库系统内部角度一个视图是由SELECT语句组成(简单视图)的查询定义的虚拟表。

DM 视图包含:简单视图、复杂视图、物化视图。

1.创建视图:
create view DMHR.V1 as select * from DMHR.CITY;
2.修改视图:
create or replace view DMHR.V1 as select DMHR.CITY.CITY_ID, DMHR.CITY.CITY_NAME from DMHR.CITY;
3.删除视图:
drop view DMHR.V1;

第十二章:数据库的备份还原

备份还原基本概念

物理备份还原:物理还原和恢复可以利用归档恢复到最新的时间点(完全恢复), 也可以恢复到指定时间点或指定 LSN(不完全恢复)。
逻辑备份还原(dexp&dimp 工具导入导出):只能恢复到导出的那一刻。 物理备份分冷备和热备(热备要开启归档)。

全量备份和增量备份

脱机备份与还原数据库 DMRMAN 是脱机备份命令行工具(与 ORACLE 的 RMAN 不同) 不指定备份集默认使用系统参数 BAK_PATH 指定: dmrman> backup database ‘/dm8/data/DAMENG/dm.ini’;

数据库备份环境参考:
https://blog.csdn.net/zfang9528/article/details/106202926

第十三章:作业管理

DM 作业管理

可以调用存储过程 SP_INIT_JOB_SYS(1)创建代理环境; 也可以调用图像化界面创建代理环境,创建代理环境后,系统会自动创建 SYSJOB 模 式(该模式包含 JOB 相关的系统包及 DBA_JOBS 视图) 。
DM 兼容 ORACLE 的 dbms_job, dbms_scheduler 系统包,用法相同。 图形化界面创建 JOB:

第十四章:DM8开发

DM 支持开发语言的种类 DM 支持 ODBC、JDBC、PHP、DCI 等,详细参考《DM8 程序员手册》。 dbms_logmnr 系统包可以实现数据挖掘的功能。

DM8 JDBC 配置
// 定义 DM JDBC 驱动串
String jdbcString = “dm.jdbc.driver.DmDriver”; // 定义 DM URL 连接串
String urlString = “jdbc:dm://localhost:5236”;
ODBC 配置: ODBC 安装三部曲:
[root@DCA02 opt]# tar -xvf unixODBC-2.3.0.tar.gz
[root@DCA02 opt]# cd unixODBC-2.3.0/
[root@DCA02 unixODBC-2.3.0]# ./configure
[root@DCA02 unixODBC-2.3.0]# make
[root@DCA02 unixODBC-2.3.0]# make install
配置 ODBC 配置文件:
[root@DCA02 unixODBC-2.3.0]# odbcinst -j unixODBC 2.3.0 DRIVERS…: /usr/local/etc/odbcinst.ini SYSTEM DATA SOURCES: /usr/local/etc/odbc.ini

配置文件内容:
[root@DCA02 etc]# cat odbc.ini
[DM8]
Description = DM ODBC DSN
Driver = DM8 ODBC DRIVER
SERVER = localhost
UID = SYSDBA
PWD = dameng123

上一篇:上一篇了解的事务的失效问题,本篇讨论事务的传播机制


下一篇:上一篇了解的事务的失效问题,本篇讨论事务的传播机制