1 数据库安装
1.1 创建用户组、用户
- 创建组:groupadd dinstall; 删除用户组:groupdel dinstall;
- 创建用户:useradd -g dinstall –m –d /home/dmdba –s /bin/bash dmdba;
语法:-g:指定用户所属的群组;-d:指定用户登入时的主目录;-s:指定用户登入后所使用的shell;-m:自动建立用户的登入目录。
创建完成后使用 id dmdba 命令查看是否成功
- 设置密码(不少于8个字符+包含3个字符类型):passwd dmdba。(请记住密码)
1.2 创建安装目录(root登录)
- #考试时根据要求来创建 :mkdir /dm8 ;#练习时若想删除执行 rm -rf /dm8。
- 更改文件夹的所属用户组、所属用户:chown dmdba:dinstall /dm8;
语法:
useradd [-d home] [-s shell] [-c comment] [-m [-k template]] [-f inactive] [-e expire ] [-p passwd] [-r] name
主要参数含义:
-d:指定用户登入时的主目录,替换系统默认值/home/<用户名>
-g:指定用户所属的群组。值可以使组名也可以是GID。用户组必须已经存在的,默认值为100,即users。
-m:自动建立用户的登入目录。
-u:指定用户ID号。该值在系统中必须是唯一的。0~499默认是保留给系统用户账号使用的,所以该值必须大于499。
-s:指定用户登入后所使用的shell。默认值为/bin/bash。
1.3 设置最大可打开文件数(root登录)
- 查看最大可打开文件数:ulimit –a
- #临时设置,仅对当前会话生效 :ulimit -n 65536
1.4 挂载镜像文件(root登录,选做)
- 使用root用户到opt目录下挂载dm8_setup.iso镜像文件
mkdir /mnt/dm
#挂载镜像 mount /镜像地址 /挂载的目标路径
mount /opt/dm8_XXX.iso /mnt/dm
- 切换到新建的dmdba用户下,看到DMInstall.bin为绿色,代表可执行,白色则代表需要增加执行权限:chmod +x DMInstall.bin(root用户)
1.5 临时文件夹空间小解决(root登录,选做)
Df –h 查看磁盘文件系统,如果确认/tmp目录的空间大小小于2G,则一定要先进行临时文件夹空间的扩大操作:
方法1:指定临时文件夹:export DM_INSTALL_TMPDIR=/home/dmdba/tmp/;
方法2:临时扩大:mount -o remount,size=3G /tmp
1.6 图形化界面安装
1.6.1 设置DISPLAY值
- root用户:
xhost +
查看DISPLAY值
echo $DISPLAY
- dmdba用户:su – dmdba
查看DISPLAY值
echo $DISPLAY
设置DISPLAY值(具体以考试环境查询出来的值为准)
export DISPLAY=:0.0
1.6.2 图形化安装
执行安装程序,进入到挂载目录
cd /mnt/dm
./DMInstall.bin
单独创建实例:注意设置页的大小,影响后期表空间初始大小配置。
#进入到dm工具包目录
cd /dm8/tool
#打开数据库配置助手
./dbca.sh
1.6.3 备考心得
考试时如果第一次安装数据库失败,不要慌,卸载数据库重新来一次!
图形化卸载:
DM安装目录下执行./uninstall.sh卸载DM数据库;
静默卸载:
DM安装目录下执行./uninstall.sh -i卸载DM数据库;
2 数据库服务管理
2.1 图形化界面-服务查看器启动(root用户)
进入tool目录,执行:./dmservice.sh。
2.2 systemctl服务方式管理
systemctl start|restart|status|stop|enable|disable DmServiceDMSERVER
DmService:达梦数据库前缀名;DMSERVER:安装的数据库服务名。
2.3 数据库状态管理
Shutdown(关闭状态)–> Mount(配置状态)–> Open(打开状态)
- 图形化管理:Manager,数据库右击-管理服务器-系统管理
- Sql管理:
alter database mount;
alter database open;
alter database suspend;
3 数据库连接:
3.1 Manager图形化工具
进入tool目录,执行 ./manager
注意:进入配置页面-编辑器-启动 SQL语法检查;SQL输入助手;对象定义提示。
管理工具下,为对象名添加双引号配置去除,一定注意大小写。
设置连接串:/etc/dm_svc.conf
3.2 使用disql连接
Bin目录下,执行:./disql SYSDBA/Dameng123:5236
4 参数配置:
1)只读参数(read_only),只能通过修改dm.ini修改配置文件file_value的值,需重启数据库。
2)静态参数(in_file)可以通过调sql语句和函数来对参数文件file_value进行修改,需重启数据库才能生效。
3)动态参数(sys、session)在数据库运行期间既可以修改内存sys_value中的值,也可以修改参数文件file_value中的值。
#如果不指定则默认修改的是memory
alter system set ‘UNDO_RETENTION’=180 both|memory;
4.1 使用alter system set 语句
alter system set '参数名'='参数值' both | spfile | memory;
如果不指定则默认修改的是memory。
- both:既修改内存中的值,也修改配置文件中的值,重启不重启都一样生效;
- spfile:只修改配置文件中的值,重启数据库生效;
- memory:只修改内存中的值,重启数据库后恢复设置前的样子。
通过图形化工具可查看参数值对应含义;
建库参数表
select * from v$dm_ini;
select * from v$parameter;
select * from SYS."V$PARAMETER" t WHERE name in ='BUFFER';
- 数据库兼容性参数(COMPATIBLE_MODE,静态参数)
0:不兼容;1:兼容SQL92标准;2:部分兼容ORACLE;3:部分兼容MS SQL SERVER;4:部分兼容MYSQL;5:兼容DM6;6:部分兼容TERADATA。
alter system set 'COMPATIBLE_MODE'=2 spfile;
- 默认创建的索引组织表的主键控制参数(LIST_TABLE,会话级动态参数)
为1建表可以指定主键,为0则指定主键无用。
- 数据缓冲区参数:BUFFER包含normal、fast、recycle、keep,由INI配置中的BUFFER、FAST_POOL_PAGES、RECYCLE、KEEP确定大小。
alter system set 'BUFFER'=500 spfile;
- 重做日志缓冲区参数(RLOG_BUF_SIZE)
- sql缓存区参数(CACHE_POOL_SIZE)
- 计划重用参数(USE_PLN_POOL,为0时禁止计划重用,1表示启动)
- 结果集缓存启用参数(RS_CAN_CACHE,0是不启用)
- 字典缓冲区参数(DICT_BUF_SIZE)
- 内存池参数:
a) MEMORY_POOL:初始大小
b) MEMORY_EXTENT_SIZE:扩展大小
c) MEMORY_TARGET:目标大小
d) MEMORY_N_POOL:共享内存池个数,默认为1,高并发时可设置多个。
e) MAX_OS_MEMORY:内存占用操作系统内存的比例,默认100,建议调整到80-90%。
- 用户密码策略参数(PWD_POLICY)只能通过函数或SQL语句修改;
a) 0无策略
b) 1禁止与用户名相同
c) 2口令长度需大于等于INI 参数PWD_MIN_LEN (默认为9)设置的值
d) 4至少包含一个大写字母(A-Z)
e) 8至少包含一个数字(0-9)
f) 16至少包含一个标点符号(英文输入法状态下,除“和空格外的所有符号)
组合应用时,如需要应用策略2和4,则设置口令策略为2+4=6即可。
alter SYSTEM set 'PWD_POLICY' = 15 BOTH;
- 修改回滚段的保留时长:UNDO_RETENTION
alter system set 'UNDO_RETENTION'=180 both;
- 修改临时表空间的初始大小(单位是M)
alter system set 'TEMP_SIZE'=100 spfile;
4.2 使用console工具
修改的是配置文件参数—需要重启数据库才能生效,一定不能用root启动。
核心转储错误是图形界面配置错误。
5 表空间管理:
5.1 图形化管理(Manager)
注意:如果页大小是8K,最小值将不低于32M;
alter tablespace XX resize DATAFILE 'TBS01.DBF' TO 128;
5.2 命令行
select * from v$tablespace;
select * from v$datafile;
- 创建表空间:create tablespace 表空间名 datafile '数据文件路径' SIZE 数据文件大小(单位为mb);
- 修改表空间大小:alter tablespace 表空间名 resize datafile '数据文件路径' to 数据文件大小(单位为mb);
- 修改表空间开启自动增长,增长步长,最大表空间
alter tablespace 表空间名 datafile '数据文件路径' autoextend on next 增长步长 maxsize 文件最大值;
- 删除表空间(一定先脱机再删除):
脱机:alter tablespace tbs offline;
删除:drop tablesapce 表空间名;
- 增加表空间下的数据文件
alter tablespace 表空间名 add datafile '数据文件路径' size 数据文件大小(单位为mb);
- 修改表空间名称
alter tablespace 修改前表空间名 rename to 修改后表空间名;
5.3 表空间迁移
- 表空间脱机:
- 指定要迁移的文件和迁移路径:
alter tablespace 表空间名 rename datafile '重命名的数据文件名' to '路径';
- 表空间联机:alter tablespace 表空间名 online。
6 重做日志文件
6.1 图形化方式:
数据库右击-管理服务器-日志文件(修改大小和增加联机日志文件)
6.2 命令行
- 查看当前正在使用的联机日志
select * from v$rlog;
select * from v$logfile;
- 创建连接日志、修改连接日志大小
alter database add logfile '日志名称' size 日志大小(单位MB);
alter database resize logfile '日志路径' to 日志大小(单位MB);
6.3 重做日志迁移
- 将数据库状态设置为mount状态:alter database mount;
- 联机日志迁移:alter database rename logfile '原日志路径' to '迁移到的日志路径';
- 将数据库状态设置为open状态:alter database open;
7 归档管理
7.1 图形化管理:
Manager,数据库右击-管理服务器-系统管理/归档配置
先mount。
归档路径一般位于安装目录下:./arch
8 用户、角色、权限管理
8.1 图形化管理:
8.2 用户管理-命令行
- 创建用户:
create user 用户名 identified by 密码 default tablespace 表空间名;
- 用户锁定和解锁:
alter user hr ACCOUNT UNLOCK;
alter user hr ACCOUNT LOCK;
- 修改用户的默认表空间:
alter user hr DEFAULT TABLESPACE dmtbs;
- 修改用户密码:
alter user hr IDENTIFIED by "Dameng@123";
- 删除用户:
drop user if EXISTS hr;
- 用户资源限制
alter user hr LIMIT FAILED_LOGIN_ATTEMPS 5, PASSWORD_LOCK_TIME 3;
LIMIT FAILED_LOGIN_ATTEMP 最大连接数;
PASSWORD_LOCK_TIME 密码错误锁定测试
PASSWORD_LIFE_TIME 密码锁定解锁时间
8.3 角色管理-命令行
- 创建角色
create role r1;
- 给角色配置权限
grant create table to r1;
- 将角色配置给用户
grant r1 to hrtest;
- 角色禁用和启用
sp_set_role('R1',0)禁用后角色权限将不在生效。
8.4 权限管理-命令行
- 创建权限
grant select on 模式名.表名 to 用户名;
如果要赋予修改、删除权限,不能只授予修改、删除权限,还要授予查询权限
- 回收权限
revoke 角色名 from 用户名; revoke 具体权限 from 用户名;
9 模式对象管理
- 创建模式
create schema 模式名 authorization 用户名;
grant create schema to 用户名;
- 切换模式
SET SCHEMA DAMENG;(仅对当前会话生效);
- 删除模式
drop SCHEMA IF EXISTS HRTEST01;
drop SCHEMA IF EXISTS HRTEST01 CASCADE; --级联删除模式下对象,生产环境慎用。
10 管理表
10.1 图形化管理:
客户端操作区分大小写,建议统一使用大写
10.2 数据导入(必考):
Disql执行:start sql文件路径
客户端执行(绝对路径的sql文件):
`/dm8/backup/dts/t_department.sql commit;
10.3 约束:
外键约束(外键引用两一张表的主键或者唯一键);
10.4 索引:
create index idx_表名_字段名 ON 表名 (字段名,字段名);
10.5 视图:
create or replace view 视图名称 as select * from aaa where age > 10;
11 备份与还原
checkpoint(100); --执行完全检查点,解决刚开归档备份,报错归档日志不连续的问题
11.1 物理备份
11.1.1 联机备份(热备)
必须打开归档,备份前执行完全检查点。
全量备份:/backup/full
增量备份:/backup/
备份还原两个重要参数:
BAK_PATH:DM默认的备份路径,生成环境不要和源库数据文件放在同一磁盘上。避免磁盘损坏,数据文件和备份文件同时损坏的情况。
BAK_USE_AP:备份还原策略,默认使用DMAP辅助进程。
select * from v$parameter t where name in ('BAK_PATH', 'BAK_USE_AP');
如果备份在指定目录下,需要手动添加目录才能看到备份的内容。
11.1.2 脱机备份(冷备)
数据库关闭状态下的备份
Tool目录下./console 图形化管理
11.1.3 命令行-库级还原与恢复
bin 目录下:./dmrman 启动
- 数据库的还原
restore database '/dm8/data/DM/dm.ini' from backupset '/dm8/backup/full/ONLINEBAK_02'
- 数据库的恢复
recover database '/dm8/data/DM/dm.ini' with archivedir '/dm8/arch';
- 更新数据库魔数
recover database '/dm8/data/DM/dm.ini' update db_magic;
11.1.4 图形管理工具-库级还原与恢复
11.1.4.1 冷备还原与恢复:
- 数据库的还原;
- 数据库的恢复;恢复到最新,使用归档恢复。(脱机备份的不需要此步)
- 数据库更新魔数值。
11.1.4.2 热备还原与恢复:
- 数据库的还原。
11.1.5 备考心得
- 在进行故障模拟时,一定要先查看故障模拟的脚本是什么,如果觉得不好还原恢复,建议不进行故障模拟。由于实操考试的特殊性,如果数据库无法正常还原恢复,将记0分。
- 如果要进行故障模拟,一定要先再次备份,包括热备和冷备,为还原和恢复做准备。
- 对于重要文件丢失的故障模拟,在恢复时,如果遇到问题,可以新试着采用命令行的方式进行恢复还原,如下:
- restore database to 控制文件目录 from backupset 备份文件;
- restore database to 控制文件目录overwrite from backupset 备份文件;
11.2 逻辑备份
11.2.1 命令行方式
在dm8/bin目录下
全库:
导出: ./dexp userid=sysdba/Dameng123:5238 directory=/dm8/backup/dexp file=full.dmp log=full.log full=y
导入: ./dimp userid=sysdba/Dameng123:5238 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
导入: ./dimp SYSDBA/SYSDBA@192.168.109.22:5237 file=/home/dmdba/dmdbms/data/dexp_user/ dexp_user.dmp log=dimp_user.log owner=ttt directory=/ home/dmdba/dmdbms/data/dimp_user
模式:
导出: dexp userid=sysdba/Dameng123:5236 directory=/dm8/backup/dexp file=DMHR.dmp log=DMHR.log schemas=DMHR
导入: dimp userid=sysdba/Dameng123:5238 directory=/dm8/backup/dexp file=DMHR.dmp log=impDMHR.log REMAP_SCHEMA=DMHR:DMTEST
11.2.2 DM管理工具
12 作业管理
- 第一步:图形化界面-创建代理环境:
- 第二步:图形化界面-新建作业:
JOB运行和日志 查看
--查看job
select * from sysjob.sysjobs;
--运行job
SP_DBMS_JOB_RUN(1684329919);
--查看job运行日志
select * from SYSJOB.SYSJOBHISTORIES2;
13 ODBC配置(ROOT用户)
- 解压ODBC,没有这个tar包的话需要上传到这个目录下
tar -zxvf /opt/unixODBC-2.3.0.tar.gz
- 进入到odbc目录进行源码安装
cd unixODBC-2.3.0
第一步,配置:./configure
第二步,编辑:make
第三步,安装:make install
注:configure时可以使用--prefix参数指定安装路径,不指定使用默认安装路径/usr/local
- 修改两个配置文件odbc.ini、vim odbcinst.ini
a) 查看配置文件命令:odbcinst –j,获取配置文件的路径。
b) 进入配置文件目录:cd /usr/local/etc/
c) 修改:vim odbc.ini
[DM8]#这是连接名
Description = DM ODBC DSN
Driver = DM8 ODBC DRIVER
SERVER = localhost
UID = SYSDBA
PWD = SYSDBA
TCP_PORT = 5236
d) 修改:vim odbcinst.ini
[DM8 ODBC DRIVER] #和上面的Driver保持一致
Description = ODBC DRIVER FOR DM8
Driver = /dm8/bin/libdodbc.so#dm8安装目录的bin目录下
- 切换到dmdba用户,进行登陆即可
su – dmdba
isql dm8 –v
- Linux-Vim命令小技巧:
Vim 命令模式下,点击i进入编辑模式;
编辑模式下,点击ESC进入命令模式;
:wq – 保存并退出。
- 备考心得:
安装ODBC的最重要的是,配置文件的修改,一定要明白每个参数的含义,正确的配置。