IP | 192.168.15.162 |
---|---|
虚拟机名 | Kylin-Server-10-SP2-x86-Release-Build09-20210524 |
系统版本 | Kylin-Server-10-SP2-x86-Release-Build09-20210524 |
数据库版本 | dm8_20230104_x86_rh6_64.iso |
用户名/密码 | root、dmdba/1qaz@WSX3edc |
操作机 | 192.168.14.68 |
用户在安装 DM 前,需要检查当前操作系统的相关信息,确认 DM 安装程序与当前操作系统匹配,以保证 DM 能够正确安装和运行。用户可以使用以下命令检查操作系统基本信息。
getconf LONG_BIT
#64
lsb_release -a
#-bash: lsb_release:未找到命令
cat /etc/issue
#Authorized users only. All activities may be monitored and reported.
uname -a
#Linux kylin-v10 4.19.90-24.4.v2101.ky10.x86_64 #1 SMP Mon May 24 12:14:55 CST 2021 x86_64 x86_64 x86_64 GNU/Linux
free -h total used free shared buff/cache available Mem: 14Gi 298Mi 13Gi 12Mi 428Mi 13Gi Swap: 7.9Gi 0B 7.9Gi
#达梦安装是要占用/tmp空间,注意/tmp挂载点空间大小,尽量保证在2G以上
df -Ph
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 7.2G 0 7.2G 0% /dev
tmpfs 7.3G 0 7.3G 0% /dev/shm
tmpfs 7.3G 9.2M 7.2G 1% /run
tmpfs 7.3G 0 7.3G 0% /sys/fs/cgroup
/dev/mapper/klas-root 92G 14G 79G 15% /
tmpfs 7.3G 36K 7.3G 1% /tmp
/dev/sda1 1014M 211M 804M 21% /boot
tmpfs 1.5G 0 1.5G 0% /run/user/993
tmpfs 1.5G 0 1.5G 0% /run/user/0
/dev/loop0 972M 972M 0 100% /media/cdrom
systemctl status firewalld.service systemctl status NetworkManager
getenforce Disabled
id dmdba
#id: “dmdba”:无此用户
groupadd dinstall
useradd -g dinstall dmdba
id dmdba
#用户id=1000(dmdba) 组id=1000(dinstall) 组=1000(dinstall)
echo '1qaz@WSX3edc' | passwd --stdin dmdba &> /dev/null
mkdir /dm8
chown -R dmdba:dinstall /dm8/
ll /
#总用量 20
#drwxr-xr-x 2 dmdba dinstall 6 7月 31 10:23 dm8
su - dmdba
vim .bash_profile
export DM_HOME=/dm8
export PATH=$PATH:$DM_HOME/bin:$DM_HOME/tool
source !$
echo $DM_HOME
#/dm8
echo $PATH
/home/dmdba/.local/bin:/home/dmdba/bin:/home/dmdba/.local/bin:/home/dmdba/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/dm8/bin:/dm8/tool
mount -o loop /software/dm8/dm8_20230104_x86_rh6_64.iso /mnt
cd /mnt
ll
#总用量 994760
#-r-xr-xr-x 1 root root 2997373 1月 4 2023 'DM8 Install.pdf'
#-r-xr-xr-x 1 root root 1015636167 1月 4 2023 DMInstall.bin
su - dmdba
cd /mnt/
ll
#总用量 994760
#-r-xr-xr-x 1 root root 2997373 1月 4 2023 'DM8 Install.pdf'
#-r-xr-xr-x 1 root root 1015636167 1月 4 2023 DMInstall.bin
#调用图形化安装
export DISPLAY=192.168.14.68:0.0
#安装数据库软件
./DMInstall.bin
#创建实例
dbca.sh
#DM管理工具(类似于PL/SQL)
manager
以ini 结尾的文件
ll /dm8/data/DAMENG/*.ini -rw-r--r-- 1 dmdba dinstall 67064 7月 31 11:10 /dm8/data/DAMENG/dm.ini -rw-r--r-- 1 dmdba dinstall 686 7月 31 11:07 /dm8/data/DAMENG/sqllog.ini
控制文件是一个二进制文件,以ctl 结尾
ll /dm8/data/DAMENG/*.ctl
-rw-r--r-- 1 dmdba dinstall 6656 7月 31 11:12 /dm8/data/DAMENG/dm.ctl
cat /dm8/data/DAMENG/dm.ini | grep ctl
#file location of dm.ctl
CTL_PATH = /dm8/data/DAMENG/dm.ctl #ctl file path
CTL_BAK_PATH = /dm8/data/DAMENG/ctl_bak #dm.ctl backup path
CTL_BAK_NUM = 10 #backup number of dm.ctl, allowed to keep one more backup file besides specified number.
USE_PLN_POOL = 1 #Query Plan Reuse Mode, 0: Forbidden; 1:strictly reuse, 2:parsing reuse, 3:mixed parsing reuse
DSC_N_CTLS = 132096 #Number Of LBS/GBS ctls
DSC_RESERVE_PERCENT = 0.080 #Start ctl reserve percent
ll /dm8/data/DAMENG/ctl_bak/*.ctl
-rw-r--r-- 1 dmdba dinstall 5632 7月 31 11:07 /dm8/data/DAMENG/ctl_bak/dm_20230731110755_122648.ctl
-rw-r--r-- 1 dmdba dinstall 5632 7月 31 11:08 /dm8/data/DAMENG/ctl_bak/dm_20230731110848_130139.ctl
-rw-r--r-- 1 dmdba dinstall 5632 7月 31 11:11 /dm8/data/DAMENG/ctl_bak/dm_20230731111123_424335.ctl
-rw-r--r-- 1 dmdba dinstall 5632 7月 31 11:12 /dm8/data/DAMENG/ctl_bak/dm_20230731111221_872247.ctl
-rw-r--r-- 1 dmdba dinstall 5632 7月 31 11:12 /dm8/data/DAMENG/ctl_bak/dm_20230731111221_873551.ctl
-rw-r--r-- 1 dmdba dinstall 6144 7月 31 11:12 /dm8/data/DAMENG/ctl_bak/dm_20230731111221_877010.ctl
-rw-r--r-- 1 dmdba dinstall 6144 7月 31 11:12 /dm8/data/DAMENG/ctl_bak/dm_20230731111221_879357.ctl
-rw-r--r-- 1 dmdba dinstall 6144 7月 31 11:12 /dm8/data/DAMENG/ctl_bak/dm_20230731111222_475336.ctl
-rw-r--r-- 1 dmdba dinstall 6144 7月 31 11:12 /dm8/data/DAMENG/ctl_bak/dm_20230731111222_477500.ctl
-rw-r--r-- 1 dmdba dinstall 6656 7月 31 11:12 /dm8/data/DAMENG/ctl_bak/dm_20230731111222_480426.ctl
-rw-r--r-- 1 dmdba dinstall 6656 7月 31 11:12 /dm8/data/DAMENG/ctl_bak/dm_20230731111222_484390.ctl
#查看控制文件的内容:
dmctlcvt type=1 src=/dm8/data/DAMENG/dm.ctl dest=/tmp/dmctl.txt
#DMCTLCVT V8
#convert ctl to txt success!
cat /tmp/dmctl.txt
数据文件的超始大小:ntfs
最小值4096*页大小32M 64M 4096 个页
8K 16k一个表空间中的数据文件总数不超过256 个。
ll /dm8/data/DAMENG/*.DBF -rw-r--r-- 1 dmdba dinstall 157286400 7月 31 11:13 /dm8/data/DAMENG/BOOKSHOP.DBF -rw-r--r-- 1 dmdba dinstall 134217728 7月 31 11:12 /dm8/data/DAMENG/DMHR.DBF -rw-r--r-- 1 dmdba dinstall 134217728 7月 31 11:14 /dm8/data/DAMENG/MAIN.DBF -rw-r--r-- 1 dmdba dinstall 134217728 7月 31 11:38 /dm8/data/DAMENG/ROLL.DBF -rw-r--r-- 1 dmdba dinstall 77594624 7月 31 11:41 /dm8/data/DAMENG/SYSTEM.DBF -rw-r--r-- 1 dmdba dinstall 1073741824 7月 31 11:11 /dm8/data/DAMENG/TEMP.DBF
以数据库名+流水号(01/02/03).log 结尾的文件
重做日志文件,用来保存redo 日导,redo 日志默认两个,循环使用,
不断覆盖,联机日志由系统自动切换,不能手工切换,联机日志过小,
会造成日志频繁切换,过大浪费磁盘空间。重做日志文件只能改大,不能改小。
只能增加,不能删除。
--增加重做日志
alter database add logfile '/dm8/data/DAMENG/DAMENG04.log' size 256;
--更改redo log日志大小
alter database resize logfile '/dm8/data/DAMENG/DAMENG04.log' to 512;
归档是指对redo 日志的归档,我们可以利用归档日志文件,将系统
恢复到故障发生的前一刻,也可以还原到指定的时间点,如果没有归
档日志文件,则只能利用备文件进行恢复。
--归档开启状态
select arch_mode from v$database;
行号 ARCH_MODE
---------- ---------
1 N
--归档参数文件:dmarch.ini
Select * from v$dm_arch_ini;
以bak 为扩展名的文件,如果备份集,则是一个文件夹包含(bak 文
件---备份数据文件,meta 文件----备份集的元数据文件)两个文件。
跟踪日志文件记录了系统各会话执行的sql 语句,错误信息,主
要错误和性能问题,启动跟踪日志,对系统性能有较大的影响,所以
默认情况下跟踪日志是关闭的。
DM.INI SVR_LOG 参数为 1 打开了跟踪日志
0 关闭了跟踪日志
show parameter SVR_LOG
行号 PARA_NAME PARA_VALUE
---------- ------------ ----------
1 SVR_LOG_NAME SLOG_ALL
2 SVR_LOG 0
记录了数据库运行期间的关键事件,如启动,关闭,内存申请失败,io 错误等一些致命的错误,DM_HOME/log 目录下,
文件命名格式为:
DM_实例名_日期。
DM:SP_SET_PARA_VALUES(SCOPE,PARA_NAME,PARA_VALUE);
Scope:
1:动态参数
2:静态参数
DM 的参数类型:
SYS/SESSIOIN:动态参数,同时修改内存和配置文件
Read only:在数据库运行时,不能修改
In file:静态参数,修改配置文件,重启实例服务生效。
select para_name,para_value, para_type from v$dm_ini where para_name like '%BUFFER%';
PARA_NAME PARA_VALUE PARA_TYPE
HUGE_BUFFER 80 IN FILE
HUGE_BUFFER_POOLS 4 IN FILE
BUFFER 4000 IN FILE
BUFFER_POOLS 13 IN FILE
BUFFER_MODE 0 IN FILE
MAX_BUFFER 4000 IN FILE
BUFFER_FAST_RELEASE 1 SYS
sp_set_para_value(2,'BUFFER', 1024);
sp_set_para_value(2,'MAX_BUFFER', 1024);
--Sp_set_para_value :修改整型参数
--Sp_set_para_string_value:修改字符串类型
--Sp_set_para_double_value:修改浮点型
--利用控制台工具(console)来修改参数。
表空间是由一个或多个数据文件构成的,表空间是数据库容器,存放数据库中的数据对象(表,索引等)
达梦默认的系统表空间:
System:数据字典和全局的系统数据
Roll:存入了数据库运行过程中产生的回滚记录
Temp:临时表空间
Main:存放对象数据的表空间,创建对象的时候,不指定表空间,就是存放在该表空间中。大表空间下的main:huge 表空间。
select tablespace_name,status from user_tablespaces;
select tablespace_name,status from dba_tablespaces;
select * from dba_tablespaces;
--查看到表空间数据文件
select tablespace_name, file_name, file_id, status, bytes/1024/1024 MB, maxbytes/1024/1024 MB from dba_data_files;
TABLESPACE_NAME FILE_NAME FILE_ID STATUS MB MB
MAIN /dm8/data/DAMENG/MAIN.DBF 0 AVAILABLE 128 16777215
BOOKSHOP /dm8/data/DAMENG/BOOKSHOP.DBF 0 AVAILABLE 150 16777215
SYSTEM /dm8/data/DAMENG/SYSTEM.DBF 0 AVAILABLE 74 16777215
DMHR /dm8/data/DAMENG/DMHR.DBF 0 AVAILABLE 128 16777215
TEMP /dm8/data/DAMENG/TEMP.DBF 0 AVAILABLE 1024 16777215
ROLL /dm8/data/DAMENG/ROLL.DBF 0 AVAILABLE 128 16777215
--图形界面创建表空间:注意表空间名字大写
create tablespace "TEST" datafile '/dm8/data/DAMENG/TEST_01.DBF' size 32 autoextend on next 1 maxsize 10240 CACHE = NORMAL;
1、联机状态: status=0
2、脱机状态:stats=1,表空间的数据不能访问。
注意:system, roll, temp,不能offline;
select tablespace_name,status from dba_tablespaces;
TABLESPACE_NAME STATUS
SYSTEM 0
ROLL 0
TEMP 0
MAIN 0
BOOKSHOP 0
DMHR 0
TEST 0
MAIN NULL
Alter tablespace TEST offline;
Alter tablespace TEST online;
创建大表空间,数据导出,数据导入。
Resize 数据文件大小
增加数据文件
--查看到表空间数据文件
select file_name, file_id, status, tablespace_name, bytes/1024/1024 from dba_data_files;
FILE_NAME FILE_ID STATUS TABLESPACE_NAME BYTES/1024/1024
/dm8/data/DAMENG/MAIN.DBF 0 AVAILABLE MAIN 128
/dm8/data/DAMENG/BOOKSHOP.DBF 0 AVAILABLE BOOKSHOP 150
/dm8/data/DAMENG/SYSTEM.DBF 0 AVAILABLE SYSTEM 74
/dm8/data/DAMENG/TEST_01.DBF 0 AVAILABLE TEST 32
/dm8/data/DAMENG/DMHR.DBF 0 AVAILABLE DMHR 128
/dm8/data/DAMENG/TEMP.DBF 0 AVAILABLE TEMP 1024
/dm8/data/DAMENG/ROLL.DBF 0 AVAILABLE ROLL 128
--增加数据文件的命令:
alter tablespace "TEST" add datafile '/dm8/data/DAMENG/TEST_02.DBF' size 32 autoextend on next 1 maxsize 10240;
--再次查询确认
select file_name, file_id, status, tablespace_name, bytes/1024/1024 from dba_data_files;
FILE_NAME FILE_ID STATUS TABLESPACE_NAME BYTES/1024/1024
/dm8/data/DAMENG/BOOKSHOP.DBF 0 AVAILABLE BOOKSHOP 150
/dm8/data/DAMENG/DMHR.DBF 0 AVAILABLE DMHR 128
/dm8/data/DAMENG/MAIN.DBF 0 AVAILABLE MAIN 128
/dm8/data/DAMENG/ROLL.DBF 0 AVAILABLE ROLL 128
/dm8/data/DAMENG/SYSTEM.DBF 0 AVAILABLE SYSTEM 74
/dm8/data/DAMENG/TEMP.DBF 0 AVAILABLE TEMP 1024
/dm8/data/DAMENG/TEST_01.DBF 0 AVAILABLE TEST 32
/dm8/data/DAMENG/TEST_02.DBF 1 AVAILABLE TEST 32
--1)表空间offline;
alter tablespace TEST offline;
--2)修改表空间存储位置
alter tablespace TEST rename datafile '/dm8/data/DAMENG/TEST_01.DBF' TO '/dm8/TEST_01.DBF';
--alter database move datafile '/dm8/data/DAMENG/TEST_01.DBF' to '/dm8/TEST_01.DBF';
--3)表空间online;
alter tablespace TEST online;
select tablespace_name,status,cache from dba_tablespaces;
alter tablespace "TEST02" cache = "KEEP";
select para_name,para_value,PARA_TYPE from v$dm_ini where para_name like '%TEMP%';
PARA_NAME PARA_VALUE PARA_TYPE
TEMP_PATH /dm8/data/DAMENG READ ONLY
TEMP_SIZE 1024 IN FILE
TEMP_SPACE_LIMIT 102400 SYS
--临时表空间不足的时候
--修改temp_size 的值:
sp_set_para_value(2,'TEMP_SIZE',2000);
--命令行重启实例
--/dm8/data/DAMENG/TEMP.DBF 文件的大小会一起改变。
DmServiceDAMENG restart
--Stopping DmServiceDAMENG: [ OK ]
--Starting DmServiceDAMENG: [ OK ]
--再次查询确认
select para_name,para_value,PARA_TYPE from v$dm_ini where para_name like '%TEMP%';
PARA_NAME PARA_VALUE PARA_TYPE
TEMP_PATH /dm8/data/DAMENG READ ONLY
TEMP_SIZE 2000 IN FILE
TEMP_SPACE_LIMIT 102400 SYS
select file_name, file_id, status, tablespace_name, bytes/1024/1024 from dba_data_files;
FILE_NAME FILE_ID STATUS TABLESPACE_NAME BYTES/1024/1024
/dm8/data/DAMENG/TEMP.DBF 0 AVAILABLE TEMP 2000
--如果先修改temp.dbf 则还需要修改TEMP_SIZE 的值。
alter tablespace temp resize datafile ‘/dm8/data/DAMENG/TEMP.DBF’ TO 2000;
sp_set_para_value(2,'TEMP_SIZE',128);
修改参数:
DM:SP_SET_PARA_VALUES(SCOPE,PARA_NAME,PARA_VALUE);
Scope:
1:动态参数
2:静态参数
DM 的参数类型:
SYS/SESSIOIN:动态参数,同时修改内存和配置文件
Read only:在数据库运行时,不能修改
In file:静态参数,修改配置文件,重启实例服务生效。
相关参数:undo_retention
--roll 表空间不足
select file_name, file_id, status, tablespace_name, bytes/1024/1024 from dba_data_files;
FILE_NAME FILE_ID STATUS TABLESPACE_NAME BYTES/1024/1024
/dm8/data/DAMENG/ROLL.DBF 0 AVAILABLE ROLL 128
alter tablespace ROLL resize datafile '/dm8/data/DAMENG/ROLL.DBF' TO 256;
--再次查询确认
select file_name, file_id, status, tablespace_name, bytes/1024/1024 from dba_data_files;
FILE_NAME FILE_ID STATUS TABLESPACE_NAME BYTES/1024/1024
/dm8/data/DAMENG/ROLL.DBF 0 AVAILABLE ROLL 256
删除表空间,不能删除已经使用的表空间,即使是该表空间处于脱机状态)
drop tablespace test;
在DM 数据库中用户管理主要涉及到三块,用户,权限,角色
权限:执行特定类型sql 或是访问其他模式对象的权利
系统权限:数据库对象的创建,删除,修改等等。DDL
对象权限:对数据对象的数据的操作权限。DML数据库预定义用户(系统用户)
Sysdba:系统管理员
Sys:不能用于用户登录,是系统内置用户
Syssso:安全用户
Sysauditor:审计用户
Sysdbo:系统操作员(安全版才有)企业版三权分立
Sysdba:系统管理员
Syssso:安全用户
Sysauditor:审计用户安全版四权分立
Sysdba:系统管理员
Syssso:安全用户
Sysauditor:审计用户
Sysdbo:系统操作员角色:一组权限的集合
达梦8预定的角色:DBA、PUBLIC、RESOURCE、SOI、VTI
名字:字母开头,a_z ,0-9,$#_
位置:对应的表空间
密码:口令策略
0:无策略
1:禁止与用户名相同
2:口令长度不小于9
4:至少包含一个大写字母
8:至少包含一个数字
16:至少包含一个标点符号(英文状态下输入,除空格和“”)
口令可以单独使用,也可组合使用,比如:要求口令策略禁止用户相
同,并且口令长度不小于9)
口令可以单独使用,也可组合使用,比如:要求口令策略禁止用户相
同,并且口令长度不小于9)Sp_set_para_value();
在达梦中创建一个用户,达梦就会给你创建一个同名的模式。
注意用户名大写
create user "TEST" identified by "dameng123" password_policy 0
default tablespace "TEST"
default index tablespace "TEST";
grant "PUBLIC","RESOURCE","SOI","VTI" to "TEST";
grant CREATE TABLE,CREATE VIEW,REFERENCES TABLE
--,GRANT ANY TABLE,CREATE ANY VIEW
to "TEST";
grant SELECT,INSERT,DELETE,UPDATE,REFERENCES,SELECT FOR DUMP on "DMHR"."EMPLOYEE" to "TEST";
相关的数据字典:
Dba_sys_privs, dba_role_privs, dba_tab_privs,
user_sys_privs, user_role_privs;
DBA_USERS SYSUSERS
--查看用户角色
select grantee,granted_role from dba_role_privs where grantee='TEST'
GRANTEE GRANTED_ROLE
TEST RESOURCE
TEST PUBLIC
TEST VTI
TEST SOI
--查看用户权限
select * from dba_sys_privs where grantee='TEST';
GRANTEE PRIVILEGE ADMIN_OPTION
TEST CREATE TABLE NO
TEST CREATE VIEW NO
TEST REFERENCES TABLE NO
TEST CREATE SESSION NO
--查看用户对象权限
select * from dba_tab_privs where grantee='TEST';
GRANTEE OWNER TABLE_NAME GRANTOR PRIVILEGE GRANTABLE HIERARCHY
TEST DMHR EMPLOYEE SYSDBA SELECT FOR DUMP NO NO
TEST DMHR EMPLOYEE SYSDBA SELECT NO NO
TEST DMHR EMPLOYEE SYSDBA INSERT NO NO
TEST DMHR EMPLOYEE SYSDBA DELETE NO NO
TEST DMHR EMPLOYEE SYSDBA UPDATE NO NO
TEST DMHR EMPLOYEE SYSDBA REFERENCES NO NO
--查看用户的所有信息及资源限制信息
select * from dba_users where username='TEST';
USERNAME USER_ID PASSWORD ACCOUNT_STATUS LOCK_DATE EXPIRY_DATE DEFAULT_TABLESPACE DEFAULT_INDEX_TABLESPACE TEMPORARY_TABLESPACE CREATED PROFILE INITIAL_RSRC_CONSUMER_GROUP EXTERNAL_NAME PASSWORD_VERSIONS EDITIONS_ENABLED AUTHENTICATION_TYPE NOWDATE
TEST 50331748 NULL OPEN NULL NULL TEST TEST TEMP 2023-07-31 15:30:03.321506 /dm8/data/DAMENG/TEST_01.DBF NULL NULL 0 Y NDCT_DB_AUTHENT 2023-07-31 15:41:26
select * from sysusers where id='50331748';
ID PASSWORD AUTHENT_TYPE SESS_PER_USER CONN_IDLE_TIME FAILED_NUM LIFE_TIME REUSE_TIME REUSE_MAX LOCK_TIME GRACE_TIME LOCKED_STATUS LASTEST_LOCKED PWD_POLICY RN_FLAG ALLOW_ADDR NOT_ALLOW_ADDR ALLOW_DT NOT_ALLOW_DT LAST_LOGIN_DTID LAST_LOGIN_IP FAILED_ATTEMPS ENCRYPT_KEY
50331748 39A8BE23C9B67E4C7D3AB64E52F27512B9E14590C3B63BC7C303ABD90729D1461C5B9BA1EC06963D7B2875E345061B13C58AB507467C8D4B98C913BA44096CA6 1 0 0 3 0 0 0 1 10 2 NULL 0 0 NULL NULL 0 NULL
create role "KFROLE";
grant "PUBLIC","SOI","SVI","VTI" to "KFROLE";
grant CREATE TABLE,CREATE VIEW to "KFROLE";
grant SELECT("EMPLOYEE_ID"),INSERT("EMPLOYEE_ID"),UPDATE("EMPLOYEE_ID"),REFERENCES("EMPLOYEE_ID") on "DMHR"."EMPLOYEE" to "KFROLE";
grant SELECT("HIRE_DATE"),INSERT("HIRE_DATE"),UPDATE("HIRE_DATE"),REFERENCES("HIRE_DATE") on "DMHR"."EMPLOYEE" to "KFROLE";
grant SELECT("EMPLOYEE_NAME"),INSERT("EMPLOYEE_NAME"),UPDATE("EMPLOYEE_NAME"),REFERENCES("EMPLOYEE_NAME") on "DMHR"."EMPLOYEE" to "KFROLE";
Drop user test;
Drop user test cascade;-----慎重,最好先备份
Drop role kfrole;
角色的禁用和启用1:启用0 禁用SP_SET_ROLE('ROLE1',1);
用户-表空间--模式---角色---系统权限---对象权限之间的关系。
--选择全列
select * from dmhr."DEPARTMENT";
--操作符的优先级
-- + - * /
--乘除的优先级高于加减
--同一优先级运算符从左向右执行
--括号内的运算先执行
--使用数学运算
select t.employee_name,salary,salary+1000 from dmhr.employee t;
EMPLOYEE_NAME SALARY SALARY+1000
马学铭 30000 31000
程擎武 9000 10000
--列的别名
select t.employee_name,salary,salary+1000 as updates from dmhr.employee t;
--as可省略
select t.employee_name,salary,salary+1000 updates from dmhr.employee t;
EMPLOYEE_NAME SALARY UPDATES
马学铭 30000 31000
程擎武 9000 10000
--删除重复行
select distinct department_id from dmhr.employee;
数据库备份就是制作数据库的“副本”
防止数据库丢失数据
在数据丢失后重建数据库完全备份:是指一个备份包含指定数据库或表空间的所有数据
增量备份:是指在一次全备份或上一次增量备份后,每次的备份只需备份与前一次相比增加或者修改的部分。备份的方式:物理备份和逻辑备份
备份的介质:磁盘,磁带,光盘
集群:数据守护,dsc(rac)
也支持第三方的备份软件:爱数,鼎甲
DMAP 服务是打开的,数据库实例是关闭的。
#命令行备份全库
dmrman
dmrman V8
RMAN> backup database '/dm8/data/DAMENG/dm.ini';
backup database '/dm8/data/DAMENG/dm.ini';
file dm.key not found, use default license!
Database mode = 0, oguid = 0
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
EP[0]'s cur_lsn[178773], file_lsn[178773]
Processing backupset /dm8/data/DAMENG/bak/DB_DAMENG_FULL_20230801_121555_196971
[Percent:100.00%][Speed:0.00M/s][Cost:00:00:02][Remaining:00:00:00]
backup successfully!
time used: 00:00:03.254
RMAN>
#查看特定的备份集的信息,每次只显示一个备份集
RMAN> show backupset '/dm8/backup/FULLBAK';
show backupset '/dm8/backup/FULLBAK';
<backupset [DEVICE TYPE:DISK, BACKUP_PATH: /dm8/backup/FULLBAK] info start ..........>
<DB INFO>
system path: /dm8/data/DAMENG
pmnt_magic: 1410491462
src_db_magic: 1757221190
db_magic: 1757221190
dsc node: 1
sys mode: 0
page check: 0
rlog encrypt: 0
rlog encrypt id: 0
external cipher[id/name]: 0/
external hash[id/name]: 0/
length in char: 0
use new hash: 1
page size: 8KB
extent size: 16
case sensitive: 1
log page size: 512B
unicode_flag/charset: 0
data version: 0x7000C
sys version: V8
pseg version: 0x7000B
enable policy: 0
archive flag: 1
blank_pad_mode: 0
crc_check: TRUE
page_enc_slice_size: 4096
char_fix_storage: 0
sql_log_forbid: 0
secur_flag: 2
db_enc_extend_size: 0
page_check_hash_size: 0
dpc_magic: 0
<META INFO>
backupset sig: BA
backupset version: 0x400A
backupset sub-version: 0x6
database name: DAMENG
backup name: FULLBAK
backupset description:
n_magic: 0x7AB33E4B
parent n_magic: 0xFFFFFFFF
meta file size : 108032
compressed level: 0
encrypt type: 0
parallel num: 1
backup range: database
mpp_timestamp: 1690863052
with_huge: TRUE
backupset_type: NORMAL
mpp_flag: FALSE
backup level: offline
backup type: full
without log: FALSE
without mirror: FALSE
end_lsn: 178773
max_trxid: 167227
base begin_lsn: -1
base end_lsn: -1
base n_magic: 0xFFFFFFFF
for gap: FALSE
from lsn: 0
base name:
base backupset:
backup time: 2023-08-01 12:10:55
min exec ver: 0x08010227
min dct ver: 4
pkg size: 0x04000000
bak_magic: 0
l_term_id: 0
term_id: 0
c_seqno: 39268
c_lsn: 178773
<EP INFO>
EP[0]:
begin_pkg_seq: 39268
begin_lsn: 178773
end_pkg_seq: 39268
end_lsn: 178773
<FILE INFO>
backupset directory: /dm8/backup/FULLBAK
backupset name: FULLBAK
backup data file num: 7
backup piece num: 1
backup huge file num: 0
<backup_piece_list>
$file_seq |$size(KB) |$pos_desc |$content_type
0 |15488 |FULLBAK.bak |DATA
<data_file_list>
$file_seq |$group_id |$group_name |$file_id |$file_path |$mirror_path |$file_len |$copy_num |$size_flag|asm_mirror|asm_striping
1 |0 |SYSTEM |0 |/dm8/data/DAMENG/SYSTEM.DBF | |77594624 |0 |0 |1 |0
2 |1 |ROLL |0 |/dm8/data/DAMENG/ROLL.DBF | |268435456 |0 |0 |1 |0
3 |4 |MAIN |0 |/dm8/data/DAMENG/MAIN.DBF | |134217728 |0 |0 |1 |0
4 |5 |BOOKSHOP |0 |/dm8/data/DAMENG/BOOKSHOP.DBF | |157286400 |0 |0 |1 |0
5 |6 |DMHR |0 |/dm8/data/DAMENG/DMHR.DBF | |134217728 |0 |0 |1 |0
6 |8 |TEST |0 |/dm8/data/DAMENG/TEST_01.DBF | |33554432 |0 |0 |1 |0
7 |8 |TEST |1 |/dm8/data/DAMENG/TEST_02.DBF | |33554432 |0 |0 |1 |0
<arch_file_list>
$file_seq |$dsc_seq |$file_path |$file_len |$begin_seqno |$begin_lsn |$end_seqno |$end_lsn
<huge_file_list>
$group_id |$schema_id|$table_id |$column_id|$file_id |$file_len |$path
<backupset [DEVICE TYPE:DISK, BACKUP_PATH: /dm8/backup/FULLBAK] info end .>
show backupsets successfully.
time used: 18.397(ms)
RMAN>
DMAP 服务是打开的,数据库实例也是打开的,数据库是归档模式。
达梦归档介绍:
本地归档:
远程归档:DMDSC 集群
实时归档:实时数据守护
即时归档:读写分离
异步归档:定时发送
导入导出(dexp dimp) oracle exp imp impdp expdp
分四级别:分别独立,互斥,不能同时存在
数据库级别:导出或导入整个数据库中的所有对象
用户:导出或导入一个或多个用户所拥有的所有对象
模式:导出或导入一个或多个模式下的所有对象
表级:导出或导入一个或多个指定表或表分区。
案例:将5236 的实例全库导出,导入到5239 实例中。
dexp help
dexp V8
version: 03134283968-20230103-178822-20033
格式: ./dexp KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)例程: ./dexp SYSDBA/SYSDBA GRANTS=Y TABLES=(SYSDBA.TAB1,SYSDBA.TAB2,SYSDBA.TAB3)
USERID 必须是命令行中的第一个参数
关键字 说明(默认值)
USERID 用户名/口令 格式:{<username>[/<password>] | /}[@<connect_identifier>][] [<os_auth>]
<connect_identifier> : [<svc_name> | host[:port] | <unixsocket_file>]
<option> : #{<exetend_option>=<value>[,<extend_option>=<value>]...}
--此行外层{}是为了封装参数之用,书写时需要保留
<os_auth> : AS {SYSDBA|SYSSSO|SYSAUDITOR|USERS|AUTO}
FILE 导出文件 (dexp.dmp)
DIRECTORY 导出文件所在目录
FULL 整库导出 (N)
OWNER 以用户方式导出 格式 (user1,user2,...)
SCHEMAS 以模式方式导出 格式 (schema1,schema2,...)
TABLES 以表方式导出 格式 (table1,table2,...)
FUZZY_MATCH TABLES选项是否支持模糊匹配 (N)
QUERY 用于导出表的子集的select 子句
PARALLEL 用于指定导出的过程中所使用的线程数目
TABLE_PARALLEL 用于指定导出的过程中表内的并发线程数目,MPP模式下会转换成单线程
TABLE_POOL 用于指定表的缓冲区个数
EXCLUDE 忽略指定的对象
格式 EXCLUDE=(CONSTRAINTS,INDEXES,ROWS,TRIGGERS,GRANTS) or
EXCLUDE=TABLES:table1,table2 or
EXCLUDE=SCHEMAS:sch1,sch2
INCLUDE 包含指定的对象
格式 INCLUDE=(CONSTRAINTS,INDEXES,ROWS,TRIGGERS,GRANTS) or
INCLUDE=TABLES:table1,table2
CONSTRAINTS 导出约束 (Y)
TABLESPACE 导出对象带有表空间 (N)
GRANTS 导出权限 (Y)
INDEXES 导出索引 (Y)
TRIGGERS 导出触发器 (Y)
ROWS 导出数据行 (Y)
LOG 屏幕输出的日志文件
NOLOGFILE 不使用日志文件(N)
NOLOG 屏幕上不显示日志信息(N)
LOG_WRITE 日志信息实时写入文件: 是(Y),否(N)
DUMMY 交互信息处理: 打印(P), 所有交互都按YES处理(Y),NO(N)
PARFILE 参数文件名
FEEDBACK 每 x 行显示进度 (0)
COMPRESS 导出数据是否压缩 (N)
ENCRYPT 导出数据是否加密 (N)
ENCRYPT_PASSWORD 导出数据的加密密钥
ENCRYPT_NAME 加密算法的名称
FILESIZE 每个转储文件的最大大小
FILENUM 一个模板可以生成的文件数
DROP 导出后删除原表,但不级联删除 (N)
DESCRIBE 导出数据文件的描述信息,记录在数据文件中
COL_DEFAULT_SEPARATE 是否单独导出列默认值 (Y)
WITH_UR 是否允许脏读 (N)
SIMPLE_LOG 是否使用简要日志 (N)
HELP 打印帮助信息
mkdir /dm8/backup/dexp -p
dexp userid=sysdba/dameng123 directory=/dm8/backup/dexp file=full_20230801.dmp log=full_20230801.log full=y
#dexp "SYSDBA"/"******"@LOCALHOST:5236 DIRECTORY=/dm8/backp/dexp FILE=imp_exp.dmp TABLES="\"TEST\""."\"EMP\"" TABLESPACE=N DROP=N LOG=exp_2021_11_03_16_38_20.log LOG_WRITE=N
dexp userid=sysdba/dameng123 directory=/dm8/backup/dexp file=exp_table_20230801.dmp log=exp_table_20230801.log TABLES="\"DMHR\""."\"EMPLOYEE\"" TABLESPACE=N DROP=N LOG_WRITE=N
#dexp "SYSDBA"/"******"@LOCALHOST:5236 DIRECTORY=/dm8/backup/TESTBAK FILE=imp_exp.dmp SCHEMAS="\"TEST\"" TABLESPACE=N DROP=N LOG=exp_2021_11_03_16_40_15.log LOG_WRITE=N
dexp userid=sysdba/dameng123 directory=/dm8/backup/dexp file=exp_SCHEMAS_DMHR_20230801.dmp log=exp_SCHEMAS_DMHR_20230801.log SCHEMAS=DMHR TABLESPACE=N DROP=N LOG_WRITE=N
#dexp "SYSDBA"/"******"@LOCALHOST:5236 DIRECTORY=/dm8/backup/TESTBAK FILE=imp_exp.dmp OWNER=("TEST") TABLESPACE=N DROP=N LOG=exp_2021_11_03_16_41_27.log LOG_WRITE=N
dexp userid=sysdba/dameng123 directory=/dm8/backup/dexp file=exp_OWNER_DMHR_20230801.dmp log=exp_OWNER_DMHR_20230801.log OWNER=SYSDBA TABLESPACE=N DROP=N LOG_WRITE=N
dimp help
dimp V8
version: 03134283968-20230103-178822-20033
格式: ./dimp KEYWORD=value 或 KEYWORD=(value1,value2,...,vlaueN)例程: ./dimp SYSDBA/SYSDBA IGNORE=Y ROWS=Y FULL=Y
USERID 必须是命令行中的第一个参数
关键字 说明(默认值)
USERID 用户名/口令 格式:{<username>[/<password>] | /}[@<connect_identifier>][] [<os_auth>]
<connect_identifier> : [<svc_name> | host[:port] | <unixsocket_file>]
<option> : #{<exetend_option>=<value>[,<extend_option>=<value>]...}
--此行外层{}是为了封装参数之用,书写时需要保留
<os_auth> : AS {SYSDBA|SYSSSO|SYSAUDITOR|USERS|AUTO}
FILE 导入文件名称 (dexp.dmp)
DIRECTORY 导入文件所在目录
FULL 整库导入 (N)
OWNER 以用户方式导入 格式 (user1,user2,...)
SCHEMAS 以模式方式导入 格式 (schema1,schema2,...)
TABLES 以表名方式导入 格式(table1,table2,...)
PARALLEL 用于指定导入的过程中所使用的线程数目
TABLE_PARALLEL 用于指定导入的过程中每个表所使用的子线程数目,在FAST_LOAD为Y时有效
IGNORE 忽略创建错误 (N)
TABLE_EXISTS_ACTION 需要的导入表在目标库中存在时采取的操作[SKIP | APPEND | TRUNCATE | REPLACE | TRUNCATE_CASCADE]
FAST_LOAD 是否使用dmfldr来导数据(N)
FLDR_ORDER 使用dmfldr是否需要严格按顺序来导数据(Y)
COMMIT_ROWS 批量提交的行数(5000)
EXCLUDE 忽略指定的对象 格式
格式 EXCLUDE=(CONSTRAINTS,INDEXES,ROWS,TRIGGERS,GRANTS)
GRANTS 导入权限 (Y)
CONSTRAINTS 导入约束 (Y)
INDEXES 导入索引 (Y)
TRIGGERS 导入触发器 (Y)
ROWS 导入数据行 (Y)
LOG 指定日志文件
NOLOGFILE 不使用日志文件(N)
NOLOG 屏幕上不显示日志信息(N)
LOG_WRITE 日志信息实时写入文件(N): 是(Y),否(N)
DUMMY 交互信息处理(P): 打印(P), 所有交互都按YES处理(Y),NO(N)
PARFILE 参数文件名
FEEDBACK 每 x 行显示进度 (0)
COMPILE 编译过程, 程序包和函数... (Y)
INDEXFILE 将表的索引/约束信息写入指定的文件
INDEXFIRST 导入时先建索引(N)
REMAP_SCHEMA 格式(SOURCE_SCHEMA:TARGET_SCHEMA)
将SOURCE_SCHEMA中的数据导入到TARGET_SCHEMA中
ENCRYPT_PASSWORD 数据的加密密钥
ENCRYPT_NAME 加密算法的名称
SHOW/DESCRIBE 打印出指定文件的信息(N)
TASK_THREAD_NUMBER 用于设置dmfldr处理用户数据的线程数目
BUFFER_NODE_SIZE 用于设置dmfldr读入文件缓冲区大小
TASK_SEND_NODE_NUMBER 用于设置dmfldr发送节点个数[16,65535]
LOB_NOT_FAST_LOAD 如果一个表含有大字段,那么不使用dmfldr,因为dmfldr是一行一行提交的(N)
PRIMARY_CONFLICT 主键冲突的处理方式[IGNORE|OVERWRITE|OVERWRITE2],默认报错
TABLE_FIRST 是否先导入表(N):是(Y),否(N)
SHOW_SERVER_INFO 是否打印服务器信息(N):是(Y),否(N)
IGNORE_INIT_PARA 忽略建库参数差异(0): CASE_SENSITIVE(1),LENGTH_IN_CHAR(2)
AUTO_FREE_KEY 导入数据完成后, 是否释放密钥(N):是(Y), 否(N)
REMAP_TABLE 格式(SOURCE_SCHEMA.SOURCE_TABLE:TARGET_TABLE)
将SOURCE_TABLE中的数据导入到TARGET_TABLE中
REMAP_TABLESPACE 格式(SOURCE_TABLESPACE:TARGET_TABLESPACE)
将SOURCE_TABLESPACE表空间映射到TARGET_TABLESPACE表空间中
SIMPLE_LOG 是否使用简要日志 (N)
HELP 打印帮助信息
#dimp sysdba/SYSDBA@localhost:5239 file=/dm8/backup/dexp/dexp01.dmp log=/dm8/backup/dexp/dimp01.log
dimp sysdba/dameng123 file=/dm8/backup/dexp/full_20230801.dmp log=/dm8/backup/dexp/imp_full_20230801.log
1)按用户来导入
2)按模式来导入
3)按表来导入
#/dm8/bin/dimp SYSDBA/SYSDBA@LOCALHOST:5239 DIRECTORY=/dm8/data/TESTBAK FILE=imp_exp.dmp IGNORE=N REMAP_SCHEMA="TEST":"T5239" LOG=imp_2021_11_03_16_45_54.log
dimp sysdba/dameng123@LOCALHOST:5236 DIRECTORY=/dm8/backup/dexp FILE=full_20230801.dmp IGNORE=N REMAP_SCHEMA="DMHR":"DMHRTEST" LOG=imp_DMHRTEST_20230801.log
作业:定时任务,定时去执行一组任务
前提是首先需要创建代理环境
A) 新建作业
B) 新建作业步骤
C)新建作业调度
call SP_CREATE_JOB('JOB1',1,0,'',0,0,'',0,'');
call SP_JOB_CONFIG_START('JOB1');
call SP_ADD_JOB_STEP('JOB1', 'S1', 6, '01000000/dm8/data/DAMENG/bak', 0, 0, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('JOB1', 'S2', 1, 2, 1, 127, 0, '02:00:00', NULL, '2023-07-31 16:13:53', NULL, '');
call SP_JOB_CONFIG_COMMIT('JOB1');
D)查询作业
select * from sysjob.sysjobs;
ID NAME ENABLE USERNAME CREATETIME MODIFYTIME ENABLE_EMAIL EMAIL_OPERID EMAIL_TYPE ENABLE_NETSEND NETSEND_OPERID NETSEND_TYPE VALID DESCRIBE SYS_FLAG EP_SEQNO
1690791386 JOB1 1 SYSDBA 2023-07-31 16:16:25 0 -1 0 0 -1 0 Y 0 0
--select * from sysjob.sysjobschedules;
--select * from sysjob.sysjobsteps;
call SP_CREATE_JOB('JOB2',1,0,'',0,0,'',0,'');
call SP_JOB_CONFIG_START('JOB2');
call SP_ADD_JOB_STEP('JOB2', 'S1', 3, '', 0, 0, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('JOB2', 'S2', 1, 2, 1, 20, 0, '01:00:00', NULL, '2023-07-31 16:18:20', NULL, '');
call SP_JOB_CONFIG_COMMIT('JOB2');
达梦支持的语言:C C++ java python php perl .net
linux 环境中配置ODBC(以root 来配置)
rpm -aq | grep gcc
#libgcc-7.3.0-20190804.35.p02.ky10.x86_64
#gcc-7.3.0-20190804.35.p02.ky10.x86_64
tar -xzvf unixODBC-2.3.0.tar.gz
cd unixODBC-2.3.0
./configure --enable-gui=no
make && make install
odbc_config --version
#2.3.7
odbcinst -j unixODBC 2.3.7 DRIVERS............: /etc/odbcinst.ini SYSTEM DATA SOURCES: /etc/odbc.ini FILE DATA SOURCES..: /etc/ODBCDataSources USER DATA SOURCES..: /root/.odbc.ini SQLULEN Size.......: 8 SQLLEN Size........: 8 SQLSETPOSIROW Size.: 8
cat /etc/odbc.ini
[dm8]
Description = DM ODBC DSND
Driver = DM8 ODBC DRIVER
SERVER = localhost
UID = SYSDBA
PWD = dameng123
TCP_PORT = 5236
ll /dm8/bin/libdodbc.so
#-rwxr-xr-x 1 dmdba dinstall 196529 7月 31 10:32 /dm8/bin/libdodbc.so
cat /etc/odbcinst.ini
#添加以下字符,内容跟/etc/odbc.ini文件相对应
[DM8 ODBC DRIVER]
Description = ODBC DRIVER FOR DM8
DRIVER = /dm8/bin/libdodbc.so
su - dmdba
isql dm8
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
SQL> select * from v$database;
+---------------------------------------------------------------------------------------------------------------------------------+--------------------+----------+--------------------+--------+------+---------------------+---------------------+------------+------------+---------------------+--------------------+
| NAME | CREATE_TIME | ARCH_MODE| LAST_CKPT_TIME | STATUS$| ROLE$| MAX_SIZE | TOTAL_SIZE | DSC_NODES | OPEN_COUNT | STARTUP_COUNT | LAST_STARTUP_TIME |
+---------------------------------------------------------------------------------------------------------------------------------+--------------------+----------+--------------------+--------+------+---------------------+---------------------+------------+------------+---------------------+--------------------+
| DAMENG | 2023-07-31 11:07:55| N | 2023-07-31 16:04:48| 4 | 0 | 0 | 325632 | 1 | 5 | 4 | 2023-07-31 15:07:48|
+---------------------------------------------------------------------------------------------------------------------------------+--------------------+----------+--------------------+--------+------+---------------------+---------------------+------------+------------+---------------------+--------------------+
SQLRowCount returns 1
1 rows fetched
考试环境:
操作系统:麒麟v10
数据库DM8
每人一台云主机,用vnc 去连接云主机,进行考试。
考试时间:2 小时,考试分数:总分100(95 实操+5 分博文),70过。内部员工90 分过。考试内容:
安装数据库软件---创建实例---启停实例---表空间创建、管理----用户创
建、管理----权限管理(系统权限+对象权限)---角色创建管理---表的
创建和管理---数据导入---开归档---物理备份----逻辑备份----还原操作
---修改配置参数-----创建作业-----视图-----索引---- ODBC 配置---DMSQL
考试机器默认是可以粘贴复制文字的,命令粘贴复制可极大节约考试时间。但是有时候可能无法复制,在终端使用以下命令修复,在windows中选中文字,Ctrl+C,在linux中按中键粘贴。
vncconfig -nowin&
主要是银河麒麟操作系统初始分辨率较低,可进入终端通过命令行修改,如修改成1920X1200 60帧输入:
xrandr -s 1920x1200_60
文章
阅读量
获赞