达梦8安装操作文档

安装, 实例创建、 参数修改、 表空间创建、 用户、 角色权限、 表、 约束、 导入脚本数
据, 索引、 视图、 物理备份、 物理还原与恢复、 逻辑导入导出、 DM 作业, ODBC
REPAIR ARCHIVELOG DATABASE '/opt/dmdbms/data/DAMENG/dm.ini'

#达梦数据库安装

#关闭防火墙

systemctl status firewalld

systemctl stop firewalld

systemctl disable firewalld

groupadd dinstall

useradd -g dinstall dmdba

passwd dmdba

mkdir -p /dm8

chown dmdba:dinstall -R /dm8

vi /etc/security/limits.conf

dmdba soft nofile 65536

dmdba hard nofile 65536

#临时生效:

limit -n 65536

#问题: /tmp 分区大小不足

mkdir -p /opt/tmp

chown dmdba:dinstall /opt/tmp -R

su - dmdba

vi .bash_profile

export DM_INSTALL_TMPDIR=/opt/tmp

. .bash_profile

cd /mnt

 ./DMInstall.bin

#软件安装

#挂载安装文件

mount -o loop /opt/dm8_20220701_x86_rh6_64_ent/ dm8_20220701_x86_rh6_64_ent_8.1.2.128.iso /mnt

mount: /mnt: WARNING: source write-protected, mounted read-only.

#设置图形化界面:

xhost +

access control disabled, clients can connect from any host

echo $DISPLAY

:0.0

su - dmdba

export DISPLAY=:0.0

xhost +

access control disabled, clients can connect from any host

管理重做日志?
Alter database add logfile ‘XXX’ size xx;–添加联机日志
Alter database resize logfile ‘XXX’ to xx; --修改联机日志大小
Alter database rename logfile ‘XXX’ to xx; --迁移联机日志

参数修改方法:
(1) SQL 语句
alter system set ‘参数名’ =参数值 spfile|memory|both;

SQL> select name, value,type from v$parameter t where t.name like
'COMPATIBLE_MODE';

--达梦数据库在 MOUNT 状态下开归档
select arch_mode from SYS."V$DATABASE";
select * from SYS."V$DM_ARCH_INI";
1 SQL开启归档
alter database mount;
alter database ARCHIVELOG;
alter database add ARCHIVELOG 'type=local, dest=/dm8/arch,
file_size=64,space_limit=10240';
alter database open;
3 SQL关闭归档
alter database mount;
alter database noARCHIVELOG;
alter database delete ARCHIVELOG 'type=local, dest=/dm8/arch,
file_size=64,space_limit=10240';
alter database open;

#创建用户、授权

创建用户:

用户命名规则: 以字母开头, a-z,0-9,$#_, 长度不超过 128 个字符

存储位置: 表空间, 如果不指定表空间, 默认表空间就是 main

权限: 系统权限、 对象权限、 角色

密码策略:PWD_POLICY

资源限制: 密码过期、 账户锁定等

创建 TEST 用户, 密码为 Dameng123, 默认表空间为 TEST。 用户拥有创建表、 创建视图的权

限。

用户口令最长为 48 字节,创建用户语句中的 PASSWORD POLICY 子句用来指定该用
户的口令策略, 如果没有指定, 则使用系统默认口令策略(由参数 PWD_POLICY 指定), 系
统支持的口令策略有:
0 无限制。但总长度不得超过 48 个字节
1 禁止与用户名相同
2 口令长度需大于等于 INI 参数 PWD_MIN_LEN 设置的值
4 至少包含一个大写字母(A-Z
8 至少包含一个数字(0-9
16 至少包含一个标点符号(英文输入法状态下,除和空格外的所有符号)
口令策略可单独应用,也可组合应用。组合应用时,如需要应用策略 2 4,则设置 口
令策略为 2+4=6 即可。
系统口令策略的修改:
select * from SYS."V$PARAMETER" t where name ='PWD_POLICY';
alter system set 'PWD_POLICY' =31 BOTH;

create tablespace "TEST" datafile '/dm8/data/DAMENG/TEST01.DBF' size 32

CACHE = NORMAL;

create user "TEST" identified by "Dameng123" password_policy 0

default tablespace "TEST";

grant "PUBLIC","SOI","VTI" to "TEST";

grant CREATE TABLE,CREATE VIEW to "TEST";

查看 test 用户被授予的系统权限

select * from dba_sys_privs where GRANTEE='TEST';

grant select on DMHR.DEPARTMENT to TEST;

grant select on DMHR.EMPLOYEE to TEST;

create table t1 as select depart_name,manager_id from dmhr.departemt;

#7.3 创建角色

角色就是一组权限的集合, 使用角色可以方便权限管理。 角色可以被授予给角色, 也可以被

授予给用户。

create role "R1";

grant "RESOURCE" to "R1";

grant CREATE TABLE,CREATE INDEX to "R1";

grant UPDATE("PHONE_NUM") on "DMHR"."EMPLOYEE" to "R1";grant SELECT on "DMHR"."DEPARTMENT" to "R1";

grant UPDATE("EMAIL") on "DMHR"."EMPLOYEE" to "R1";

grant SELECT on "DMHR"."EMPLOYEE" to "R1";

查询被授予对象权限:

SELECT * FROM SYS.DBA_TAB_PRIVS WHERE

DBA_TAB_PRIVS.GRANTEE='R1';

查询被授予到列级的对象对象权限:

select * from SYS.DBA_COL_PRIVS WHERE

DBA_COL_PRIVS.GRANTEE='R1';

查询被授予的角色:

select * from DBA_ROLE_PRIVS where grantee='R1';

回收 R1 角色创建索引的权限

revoke CREATE INDEX from "R1";

回收 R1 角色查看 DMHR.DEPARTMENT 表的权限; 回收 R1 角色更新 DMHR.EMPLOYEE.EMAIL

表的权限。

7.4 修改用户

修改用户密码

alter user "TEST" identified by "dameng123";

修改用户默认表空间

alter user "TEST" default tablespace "MAIN";

锁定/解锁用户

alter user test account lock;

alter user test account UNLOCK;

修改用户权限

grant "R1" to "TEST";

#创建表空间

创建表空间 TEST, 数据文件/dm8/data/DAMENG/TEST01.DBF,初始文件大小为 50M,开

启自动扩展, 每次扩展 1M,最大可扩展到 1G.

create tablespace "TEST" datafile '/dm8/data/DAMENG/TEST01.DBF' size 32 autoextend on next

1 maxsize 1024 ;

创建表空间 TBS,数据文件存放路径/dm8/data/DAMENG,包含两个数据文件,分别为

TBS01.DBF 和 TBS02.DB, 每个数据文件的初始大小为 100M,开启自动扩展, 每次扩展 2M,最

大可扩充到 10G.

create tablespace "TBS" datafile '/dm8/data/DAMENG/TBS01.DBF' size 100

autoextend on next 2 maxsize 10240, '/dm8/data/DAMENG/TBS02.DBF' size 100

autoextend on next 2 maxsize 10240 CACHE = NORMAL;

打开数据文件的自动扩展:

alter tablespace tbs datafile
MAXSIZE
10240;

'/dm8/data/TBS/TBS01.DBF' AUTOEXTEND on NEXT 4

数据文件的迁移:
alter tablespace tbs offline;
alter tablespace tbs RENAME DATAFILE 'TBS01.DBF' TO '/dm8/data/TBS/TBS01.DBF';
alter tablespace tbs RENAME DATAFILE 'TBS02.DBF' TO '/dm8/data/TBS/TBS02.DBF';
alter tablespace tbs online;

#创建约束

获取表结构信息

select SYS.DBMS_METADATA.get_ddl('TABLE','TEST1','TEST')

from dual;

---唯一约束

创建唯一约束, 会自动创建唯一索引, 唯一约束会忽视 null, null 什么都不是。

create table "TEST"."TEST2"

(

"ID" INT,

"NAME" VARCHAR(30)

) s

torage(initial 1, next 1, minextents 1, fillfactor 0)

; a

lter table "TEST"."TEST2" add unique("NAME");

---主键约束

主键约束=非空+唯一约束, 一个表只能有 1 个主键。

create table "TEST"."TEST3"

(

"ID" INT,

"NAME" VARCHAR(50)

) s

torage(initial 1, next 1, minextents 1, fillfactor 0, on

"TEST")

;alter table "TEST"."TEST3" add constraint primary key("NAME");

---外键约束

create table "TEST"."TEST4"

(

"ID" INT not null ,

"NAME" VARCHAR(50),

primary key("ID")

) s

torage(initial 1, next 1, minextents 1, fillfactor 0)

; alter table "TEST"."TEST4" add constraint foreign key("NAME") references

"TEST"."TEST3"("NAME");

---检查约束

create table "TEST"."TEST5"

(

"ID" NUMBER(10, 3)

) s

torage(initial 1, next 1, minextents 1, fillfactor 0)

; a

lter table "TEST"."TEST5" add check(id > 8);

#修改表

(2) 修改表

增加列

alter table "TEST"."TEST1" add column("NAME" VARCHAR(50));

删除列

alter table "TEST"."TEST1" drop column "NAME";

对表进行重命名

alter table test.TEST8 rename to test1;

对列进行重命名

alter table test.test1 RENAME COLUMN name to name2;

修改列的数据类型

alter table "TEST"."TEST1" modify "NAME2" VARCHAR2(50);

(3) 删除表

drop table "TEST"."TEST5" restrict;

DM 视图: 简单视图、 复杂视图、 物化视图

视图就是查询语句, 一个虚拟表, 没有真实数据。

创建视图的语法:

Create view **** as select ****;

Create or replace view **** as select ****;

创建视图create view test.view_data as

select

a.employee_name,a.salary,a.department_id,b.department_name

from dmhr.employee a ,dmhr.DEPARTMENT b

where a.DEPARTMENT_ID=B.DEPARTMENT_ID

and a.DEPARTMENT_ID=101;

删除视图

drop view "TEST"."VIEW_DATA" restrict;

1) 表空间不足

---添加数据文件

alter tablespace "TEST" add datafile '/dm8/data/DAMENG/TEST02.DBF' size

32 autoextend on next 1 maxsize 1024;

---resize 数据文件大小

alter tablespace "TEST" resize datafile 'TEST01.DBF' to 100;

2)表空间迁移

alter tablespace "TEST" offline;

修改数据文件的路径

alter tablespace "TEST" rename datafile

'/dm8/data/DAMENG/TEST01.DBF' to '/dm8/TEST01.DBF';

修改 TEST 表空间状态为联机

alter tablespace "TEST" online;

( 3) 修改 TEMP 表空间大小

将 TEMP 表空间的大小修改为 100M.

sp_set_para_value(2,'TEMP_SIZE',100);

( 4) 表空间删除

drop tablespace "TEST";

#创建表、索引、触发器

8.4.1 创建索引

create index "DMHR"."IND_EMP_NAME" on

"DMHR"."EMPLOYEE"("EMPLOYEE_NAME") ;8.4.2 维护索引

重建索引:

ALTER INDEX DMHR.IND_EMP_NAME REBUILD;

删除索引:

drop index "DMHR"."IND_EMP_NAME";

注意: 在业务高峰期, 不要新建、 重建、 删除索引。

#创建约束

#修改参数

alter system set 'COMPATIBLE_MODE'=2 spfile;

#修改数据库密码策略

设置系统默认口令策略。

0: 无策略;

1: 禁止与用户名相同;

2: 口令长度不小于 9;

4: 至少包含一个大写字母(

A-Z) ;

8 : 至少包含 一个数字(0-9) ;

16: 至少包含一个标点符 号(英文输入法状态下, 除―和空格外的所有符 号; 若为其他数字, 则表示配

置值的和, 如 3 =1+2,表示同时启用第 1 项和第 2 项策略。 当 COMPATIBLE_MODE=1 时,

PWD_POLICY 的实 际值均为 0

修改数据库密码策略为禁止与用户名相同并且口令长度不小于 9

修改方法一:

sp_set_para_value(1,'PWD_POLICY',3);

修改方法二:

alter system set 'PWD_POLICY'=3 both;

#添加重做日志

添加重做日志文件:

alter database add logfile '/dm8/data/DAMENG/DAMENG03.log' size 300;

修改重做日志文件大小:

alter database RESIZE logfile '/dm8/data/DAMENG/DAMENG01.log' to 300;

alter database RESIZE logfile '/dm8/data/DAMENG/DAMENG02.log' to 300;

注意: 重做日志文件可以增加, 但是不能删除; 重做日志文件可以扩大, 但是不能缩小

#导入数据

通过脚本文件将数据批量导入到数据库的表中

Start /home/dmdba/test2.sql

或者

`/home/dmdba/test2.sql

创建视图

create or REPLACE view v_empnum
as
select b.DEPARTMENT_NAME, a.department_id, count(*) empnum
from t_emp a, t_dept b
61
where a.department_id = b.DEPARTMENT_ID
group by b.DEPARTMENT_NAME, a.department_id
having count(*) >=25;

#备份还原

脱机备份
脱机备份可以使用 dmrman(命令行)、 console DM 控制台工具(图形化)
RMAN> backup database '/dm8/data/DAMENG/dm.ini' to DMFULLBAK03
backupset '/dm8/backup/full/DMFULLBAK03';
backup database '/dm8/data/DAMENG/dm.ini' to DMFULLBAK03 backupset
'/dm8/backup/full/DMFULLBAK03';
file dm.key not found, use default license!
Database mode = 0, oguid = 0
Normal of FAST

64
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
EP[0]'s cur_lsn[6245573], file_lsn[6245573]
Processing backupset /dm8/backup/full/DMFULLBAK03
[Percent:100.00%][Speed:0.00M/s][Cost:00:00:02][Remaining:00:00:00]
backup successfully!

联机备份需要数据库开启归档。
backup database;
backup database INCREMENT;
backup database to DMFULLBAK01 BACKUPSET '/dm8/backup/full/DMFULLBAK01';
select * from SYS."V$BACKUPSET";
select * from SYS."V$IFUN" t where t.name like '%BAKSET%';
SF_BAKSET_BACKUP_DIR_ADD('DISK','/dm8/backup/full/');
SF_BAKSET_BACKUP_DIR_ADD('DISK','/dm8/backup/incr/');
65
backup tablespace dmtbs;
backup tablespace dmtbs INCREMENT to DMTBSINCR01 BACKUPSET
'/dm8/backup/incr/DMTBSINCR01';
backup table dmtest.T_EMP;
backup ARCHIVE LOG all;

逻辑备份

全库导出:
dexp userid=sysdba/Dameng123:5238 directory=/dm8/backup/dexp file=full.dmp log=full.log
full=y

按用户导出:
按模式导出:

dexp

userid=sysdba/Dameng123:5238

directory=/dm8/backup/dexp

file=dmtest.dmp

log=dmtest.log schemas=DMTEST

按表导出:
[dmdba@KylinDCA04

dexp]$

dexp

userid=sysdba/Dameng123:5238

directory=/dm8/backup/dexp file=dmtest_emp.dmp log=dmtest_emp.log tables=DMTEST.T_EMP
全库导入:
dimp userid=sysdba/Dameng123 directory=/dm8/backup/dexp file=full.dmp log=impfull.log
full=y

DMTEST 模式下 T_EMP 表导入到 HRTEST 用户下:
[dmdba@KylinDCA04 dexp]$ dimp userid=hrtest/Dameng123@127.0.0.1:5238
directory=/dm8/backup/dexp file=dmtest_emp.dmp log=dmtest_emp.log tables=DMTEST.T_EMP
remap_schema=DMTEST:HRTEST

insert into DMTEST.V_DEPT(V_DEPT.DEPARTMENT_ID,
V_DEPT.DEPARTMENT_NAME)
values( 888888, 'aaaa');

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值