达梦DCA认证考题 考前复习

1.安装达梦8(必考)

1.1 达梦8版本介绍

1.1.1 开发版

开发版与企业版功能相同,平时工作使用开发版即可,授权期限为一年

1.1.2 企业版

支持集群特性,需要购买授权码

1.1.3 标准版

不支持集群特性

1.1.4 安全版

增加了访问控制等安全特性,用于SM机上

1.2 安装前确认

1.2.1 查看CPU信息

使用以下两个命令查看CPU相关信息,并选择对应的达梦版本进行下载安装

lscpu

cat /proc/cpuinfo

1.2.2 查看操作系统信息

注意:内核版本需要在2.6以上,否则在安装过程中会报错

cat /proc/version

uname -a

uname -r

1.2.3 查看glibc版本

glibc需要在2.3以上,否则在安装过程中会报错

ldd --version

rpm -qa|grep glibc

例如拿着银河麒麟10版本的达梦,去银河麒麟4的操作系统上安装,会报错,解决方案有两种

  1. 升级操作系统
  2. 去达梦官网上下载支持低版本操作系统的安装包

1.2.4 查看gcc版本

安装odbc的时候,需要gcc包依赖,没有安装的话需要进行安装

gcc --version

rpm -qa|grep gcc

1.2.5 查看磁盘容量

至少需要20G,推荐给25G以上

如果tmp容量小于1G,使用以下命令扩容

# 使用root用户执行

mount -o remount,size=2G /tmp

1.2.6 查看内存

推荐3G以上,Swap正常分区即可,银河麒麟比较吃内存,建议多给点

free -m

cat /proc/meminfo

lsmem

1.3 安装规划

1.3.1 创建用户组

# 创建用户组

groupadd dinstall

1.3.2 创建用户

# 创建用户

useradd -g dinstall dmdba

# 创建完成后使用以下命令查看是否成功

id dmdba

# 设置密码

echo "Dameng123"|passwd --stdin dmdba

麒麟操作系统密码要求大小写、特殊字符、数字必须满足三个条件,且字符长度不少于8个。

1.3.3 创建安装目录

# 创建达梦安装路径

mkdir /dm8

# 更改文件夹的所属用户组、所属用户

chown –R dmdba:dinstall /dm8

chmod –R 755 /dm8

# 查看是否更改成功

ll -ld /dm8

1.3.4 设置最大可打开文件数limits.conf

查看最大可打开文件数,如果是CentOS的话,默认是比较小的,可能会导致安装过程中报错,所以这边我们提前查看并设置

# 查看最大可打开文件数

ulimit -a

# 临时设置(当前会话生效)

ulimit -n 20480

# 永久设置,需要用root用户操作

vim /etc/security/limits.conf

dmdba soft nproc 10240

dmdba hard nproc 10240

dmdba soft nofile 65536

dmdba hard nofile 65536

dmdba soft stack 65536

dmdba hard stack 65536

dmdba soft fsize unlimited

dmdba hard fsize unlimited

dmdba soft core unlimited

dmdba hard core unlimited

dmdba soft data unlimited

dmdba hard data unlimited

1.3.5 设置sysctl.conf

编辑/etc/sysctl.conf文件,添加以下内容:

vm.overcommit_memory = 0

#使配置生效

sysctl -p

1.4 挂载镜像文件

将下载的iso镜像文件上传到服务器上后,进行挂载操作(考试的时候,可能已经挂载,直接安装即可)

# 挂载镜像 mount /镜像地址 /挂载的目标路径

mount -o loop /root/dm8_20240527_x86_kylin10_64.iso /mnt

# 切换到dmdba用户下

su - dmdba

# 查看挂载目录

cd /mnt

ll

1.5 开始安装

1.5.1 图形化界面安装
1.5.1.1 设置DISPLAY值

# 登陆到服务器上后,打开命令行(root用户)

xhost +

注意:

##如果Xhost+失败如下:

解决办法如下:

修改/etc/ssh/sshd_config文件下X11Forwarding 为yes,X11UseLocalhost 为no,重启sshd服务即可。

# 切换到dmdba用户

su - dmdba

# 查看DISPLAY值

echo $DISPLAY

# 设置DISPLAY值(具体以考试环境查询出来的值为准)

export DISPLAY=:0.0

1.5.1.2 执行安装程序

# 进入到挂载目录

cd /mnt/

# 执行安装程序

[dmdba@dmtest mnt]$ ./DMInstall.bin

启动时出现如下报错:

解决办法:

修改/usr/share/themes/kylin-black-theme/gtk-2.0/gtkrc文件,注释掉以下内容:

#include "apps/caja.rc"

Root用户执行以上脚本。

初始化实例界面如下,可退出稍后再创建。

1.5.2 命令行形式安装

[dmdba@dmtest mnt]$ ./DMInstall.bin -i

默认21,中国时区,直接回车。

安装类型默认1,典型安装。

1.5.3 静默安装方式(了解)

配置XML文件,适用于一键安装的场景,具体参看达梦安装手册

1.6 创建数据库及数据库实例管理

1.6.1 图像化方式

#编辑环境变量

[dmdba@dmtest mnt]$ vi ~/.bash_profile

# Source /root/.bashrc if user has one

[ -f ~/.bashrc ] && . ~/.bashrc

export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/dm8/dmdbms/bin"

export DM_HOME="/dm8/dmdbms"

export PATH=$DM_HOME/bin: $DM_HOME/tool:$PATH

[dmdba@dmtest mnt]$ source ~/.bash_profile   #立即生效

# 打开数据库配置助手

[dmdba@dmtest mnt]$ dbca.sh

以下参数都是在数据库创建时设定,后续无法修改

1.6.2 命令行方式

# 进入到目录

cd /dm8/dmdbms/bin

# 初始化数据库

./dminit path=/dm8/dmdbms/data db_name=DAMENG instance_name=DMSERVER port_num=5236 page_size=16 SYSDBA_PWD=Dameng123

注意:这边如果报错的话,大部分是目录权限导致的,需要重新执行步骤1.3.3 创建安装目录。

1.7 注册数据库服务,开机自启(考试非必须)

1.7.1 命令行方式

# 进入到目录,root用户执行

cd /dm8/script/

#执行注册数据库服务

./dm_service_installer.sh -t dmserver -p 服务名后缀(前缀是定死的,后缀一般为数据库实例名称) -dm_ini /dm8/dmdbms/data/DAMENG/dm.ini

[root@dmtest root]# ./dm_service_installer.sh -t dmserver -p DAMENG -dm_ini /dm8/dmdbms/data/DAMENG/dm.ini

Created symlink /etc/systemd/system/multi-user.target.wants/DmServiceDAMENG.service → /usr/lib/systemd/system/DmServiceDAMENG.service.

创建服务(DmServiceDAMENG)完成

# 取消注册服务

./dm_service_uninstaller.sh -n 服务名称

./dm_service_uninstaller.sh -n DmServiceDAMENG

1.7.2 图形化方式

# 查看DISPLAY值,如果没有则需要按照1.5.1.1 设置DISPLAY值

echo $DISPLAY

# 打开配置助手

su - dmdba

$ dbca.sh

上面图片非本次搭建实例信息,仅供参考。

查看达梦进程

1.8 卸载达梦数据库

1.8.1 图形化卸载

# 进入到达梦根目录(root用户执行,如果是dmdba用户执行,到最后会弹出以root用户执行命令的窗口)

./uninstall.sh

卸载完成后,还会剩下几个目录,如果再次安装还是选择这个目录的话,需要在安装前手动删除这几个目录

1.8.2 命令行方式卸载

# 进入到达梦根目录

./uninstall.sh -i

删除完成后,达梦根目录下还有一个log目录需要手动删除

2.数据库连接(必考)

2.1 使用命令行连接

2.1.1 使用disql连接

# 进入到bin目录

cd /dm8/dmdbms/bin

# 使用disql连接,本地连接可省略ip

./disql SYSDBA/Dameng123:5236

# 连接远程服务器需要加上ip

./disql SYSDBA/Dameng123@192.192.103.130:5236

2.1.2 使用conn连接

如果已经登陆到数据库中,可以直接使用conn命令进行连接到其他数据库

# 连接本机,ip可省略

SQL> conn SYSDBA/Dameng123@:5237

# 加上ip地址

SQL> conn SYSDBA/Dameng123@192.168.31.124:5237

2.2 使用图形化工具连接

2.2.1 图形化界面开启语法提示

cd /dm8/dmdbms/tool/

./manager

3.参数配置(必考)

3.1 参数类型

对应到Oracle的Scope

  1. both:既修改内存中的值,也修改配置文件中的值,重启不重启都一样生效
  2. spfile:只修改配置文件中的值,重启数据库生效
  3. memory:只修改内存中的值,重启数据库后恢复设置前的样子

达梦根据参数类型可分为,静态参数和动态参数两种,这两种均支持通过系统函数、SQL命令进行修改。

静态参数:只能修改配置文件中的值,对内存中的值不进行修改,所以静态参数修改后使其生效的话,需要对数据库进行重启。

动态参数:既能修改内存中的值,也能修改配置文件中的值,所以动态参数修改后是立即生效的。

3.1.1 READ ONLY

只读参数,不能通过系统函数、SQL命令达到修改参数的目的,只能从dm.ini配置文件中进行修改。

3.1.2 SYS

静态参数,可以通过系统函数、SQL命令达到修改参数的目的。

3.1.3 IN FILE

动态参数(系统级),可以通过系统函数、SQL命令达到修改参数的目的。

3.1.4 SESSION

动态参数(会话级),可以通过系统函数、SQL命令达到修改参数的目的,可针对某个会话进行修改,便于调试(不然要应用到整个线上系统,一旦出错,影响面就广了)。

3.2 参数修改方式

3.2.1 使用dm.ini修改

# 直接编辑文件修改即可

vim /dm8/dmdbms/data/DAMENG/dm.ini

3.2.2 使用图形化修改

不修改内存中的值,修改的是配置文件中的值,需要重启后生效

cd /dm8/dmdbms/tool

./console

修改完成后,需要保存。

3.2.3 SQL语句修改

# 后面跟的是参数范围

alter system set '参数名'='参数值' both | spfile | memory;

3.2.3.1 例子

--修改兼容参数

# 查询兼容参数类型

select name,value,sys_value,file_value,type,description from v$parameter where name = 'COMPATIBLE_MODE';

# 修改兼容参数类型

alter system set 'COMPATIBLE_MODE'=2 spfile;

--修改UNDO_RETENTION

select name,value,sys_value,file_value,type,description from v$parameter where name = 'UNDO_RETENTION';

alter system set 'UNDO_RETENTION'=180 both;

--修改LIST_TABLE

select name,value,sys_value,file_value,type,description from v$parameter where name = 'LIST_TABLE';

alter session set 'LIST_TABLE'=1;

通过list_Table参数来进行控制,默认参数是0,表示普通表。1表示堆表。

3.2.4 系统函数修改

查看可以使用的系统函数

select name,id from v$ifun t where name like '%SP_SET%_PARA%';

查看系统函数的参数类型

select * from v$ifun_arg t where id=584;

3.2.4.1 例子

修改double类型的参数值,UNDO_RETENTION参数

sp_set_para_double_value(1,'UNDO_RETENTION',90);

3.3 开启其他数据库兼容模式

3.3.1 查看当前兼容模式

SQL> select PARA_NAME,PARA_VALUE from v$dm_ini where para_name='COMPATIBLE_MODE';

行号     PARA_NAME       PARA_VALUE

---------- --------------- ----------

1          COMPATIBLE_MODE 0

已用时间: 5.284(毫秒). 执行号:602。

默认为0,表示不兼容。

3.3.2 修改兼容模式

--使用 sp_set_para_value 函数设置

sp_set_para_value(2,'COMPATIBLE_MODE',2);

修改为oracle兼容模式,重启实例生效。

#注意:SP_SET_PARA_VALUE(scope,para_name,para_value);

scope:表示范围,有两个取值,1表示动态参数,2表示静态参数;(由上面可知数据库兼容模式是静态参数);

para_name:表示要修改的参数名称

para_value:表示要修改的值

--使用 ALTER SYSTEM 命令设置

#修改静态文件,这个修改完需要重启才能生效

ALTER SYSTEM SET 'COMPATIBLE_MODE' = 2 SPFILE;

--使用控制台设置

模式编号

模式名称

0

None

1

SQL92

2

Oracle

3

MS SQL Server

4

MySQL

5

DM6

6

Teradata

7

PG

4.数据缓冲区(不考,但是会涉及到改相关参数)

考试的时候可能会让你修改数据缓冲区大小,没有特殊指明的话就是修改Normal缓冲区的大小,参数对应的是BUFFER。

Normal对应参数BUFFER、Fast对应参数为FAST_POOL_PAGES、Recycle对应参数为RECYCLE、Keep对应参数为KEEP。

数据缓冲区中各缓冲区的大小,由DM.INI文件控制。

NORMAL缓冲区主要是提供给系统处理的一些数据页,没有特定指定缓冲区的情况下,默认缓冲区为NORMAL;

KEEP的特性是对缓冲区中的数据页很少或几乎不怎么淘汰出去,主要针对用户的应用是否需要经常处在内存当中,如果是这种情况,可以指定缓冲区为KEEP。

用户可以在创建表空间或修改表空间时,指定表空间属于NORMAL或KEEP缓冲区。

RECYCLE缓冲区供临时表空间使用,FAST缓冲区根据用户指定的FAST_POOL_PAGES大小由系统自动进行管理,用户不能指定使用RECYCLE和FAST缓冲区的表或表空间。

alter system set 'BUFFER'=2000 spfile;

5.表空间管理(必考)

5.1 表空间类型

SYSTEM:系统表空间,存放的是数据字典信息,包含表定义、视图定义、用户权限等

ROLL:回滚表空间,存放undo信息。INSERT、UPDATE、DELETE都会产生undo信息

MAIN:用户默认表空间,创建用户时,没有指定表空间,则使用MAIN表空间

TEMP:临时表空间,用于存放临时表数据、索引、大量数据排序等产生的数据

HMAN:HUGE表(列存储表)的默认表空间

考试会让你修改temp表空间,需要修改temp_size

alter system set 'TEMP_SIZE'=64 spfile;(需要重启实例)

5.2 操作表空间

5.2.1 命令行方式

--查看表空间

select * from dba_tablespaces;

select * from dba_data_files;

--查看表空间使用情况

SELECT F.TABLESPACE_NAME,

       (T.TOTAL_SPACE - F.FREE_SPACE) / 1024 "USED (GB)",

       F.FREE_SPACE / 1024 "FREE (GB)",

       T.TOTAL_SPACE / 1024  "TOTAL(GB)",

       (ROUND((F.FREE_SPACE / T.TOTAL_SPACE) * 100)) ||  '% ' PER_FREE

  FROM (SELECT TABLESPACE_NAME,

               ROUND(SUM(BLOCKS *

                         (SELECT PARA_VALUE / 1024

                            FROM V$DM_INI

                           WHERE PARA_NAME = 'GLOBAL_PAGE_SIZE') / 1024)) FREE_SPACE

          FROM DBA_FREE_SPACE

         GROUP BY TABLESPACE_NAME) F,

       (SELECT TABLESPACE_NAME, ROUND(SUM(BYTES / 1048576)) TOTAL_SPACE

          FROM DBA_DATA_FILES

         GROUP BY TABLESPACE_NAME) T

 WHERE F.TABLESPACE_NAME = T.TABLESPACE_NAME;

--创建表空间

create tablespace 表空间名 datafile '数据文件路径' SIZE 数据文件大小(单位为mb);

create tablespace DMTBS datafile 'testtbs01.dbf' SIZE 64;

或者

create tablespace DMTBS datafile '/dm8/dmdbms/data/DAMENG/testtbs01.dbf' size 64 autoextend on next 5 maxsize 10240, '/dm8/dmdbms/data/DAMENG/testtbs02.dbf' size 64 autoextend on next 5 maxsize 10240;

# 查询页大小的4096倍,并换算成MB

select page*4096/1024/1024;

--修改表空间大小

# 修改表空间大小

alter tablespace 表空间名 resize datafile '数据文件路径' to 数据文件大小(单位为mb);

alter tablespace testtbs resize datafile 'testtbs01.dbf' to 100;

可以减小或者增大表空间大小。

# 修改表空间开启自动增长,增长步长,最大表空间

alter tablespace 表空间名 datafile '数据文件路径' autoextend on next 增长步长 maxsize 文件最大值

alter tablespace testtbs datafile '/dm8/dmdbms/data/DAMENG/testtbs01.dbf' autoextend on next 2 maxsize 10240;

--删除表空间

用户自定义的表空间可以删除和脱机,系统定义的表空间不能脱机和删除

删除后表空间下的数据文件也会级联删除,删除表空间时保证其上表已删除。

drop tablesapce 表空间名;

drop tablespace testtbs;

增加表空间下的数据文件

alter tablespace 表空间名 add datafile '数据文件路径' size 数据文件大小(单位为mb);

alter tablespace testtbs add datafile ' /dm8/dmdbms/data/DAMENG/testtbs02.DBF' size 64;

修改表空间名称

alter tablespace 修改前表空间名 rename to 修改后表空间名;

alter tablespace testtbs rename to dmtbs;

5.2.2 图形化界面

cd /dm8/dmdbms/tool/

./manager

注意:使用manager工具创建表空间时表空间名必须大写,否则sql命令行无法识别。

5.3 表空间迁移

迁移时注意:新的表空间路径,必须是由安装数据库的用户进行创建,或者把这个文件夹授予数据库安装用户读写权限,否则会因权限问题报数据库文件路径错误。

# 先将表空间离线

alter tablespace 表空间名 offline;

# 重命名数据文件名,并迁移

alter tablespace 表空间名 rename datafile '重命名的数据文件名' to '路径';

# 将表空间上线

alter tablespace 表空间名 online;

# 务必注意,后面的文件夹路径必须是由安装数据库的用户创建的,否则会因权限问题报数据库文件路径错误

alter tablespace dmtest offline;

alter tablespace dmtbs rename datafile 'dmtbs.dbf' to '/dm8/dmdbms/data/DAMENG/dmtbs01.dbf';

alter tablespace dmtbs online;

5.4 temp表空间(考点)

查询temp表空间参数,达梦数据库启动的时候会根据这几个参数来创建或重建temp表空间

select name,value,type from v$parameter where name like 'TEMP%';

TEMP_PATH:temp表空间的路径,只能手工修改dm.ini 文件,无法通过SQL语句来修改

TEMP_SIZE:temp表空间的初始值,单位为MB

TEMP_SPACE_LIMIT:temp表空间的空间限制,默认值为0,表示不限制

注:TEMP_SPACE_LIMIT 一定要大于等于TEMP_SIZE

# 调整temp表空间初始值大小

alter system set 'TEMP_SIZE'=100 spfile;

或者

SP_SET_PARA_VALUE(2,'TEMP_SIZE',           2048);

# 参数文件更改已生效

cat /dm8/dmdbms/data/DAMENG/dm.ini |grep TEMP_SIZE

数据库内查看更改未生效,需要重启实例,如下

SQL> select name,value,type from v$parameter where name like 'TEMP%';

重启完,检查更改已生效。

--修改TEMP_SPACE_LIMIT 动态值TEMP_SPACE_LIMIT

SP_SET_PARA_VALUE(2,'TEMP_SPACE_LIMIT', 8888);

--增大临时表空间大小

Alter tablespace temp add datafile ‘/dm8/dmdbms/data/DAMENG/temp02.dbf’ size 64 autoextend on next 5 maxsize 10240;

6.重做日志文件(必考)

重做日志:用于记录redo信息,重做日志默认为256M,数据库中的增、删、改操作都会记录redo和undo信息

redo信息写入联机日志文件,undo写入roll表空间对应的数据文件中

6.1 重做日志命令行方式

--查看联机日志

## 当前正在使用的联机日志

select * from v$rlog;

select * from v$rlogfile;

--创建联机日志、修改联机日志大小(达梦只支持往大了改)

alter database add logfile '日志名称' size 日志大小(单位MB);

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

alter database resize logfile '日志路径' to 日志大小(单位MB);

alter database resize logfile '/dm8/dmdbms/data/DAMENG/DAMENG03.log' to 300;

6.2 重做日志迁移

# 将数据库状态设置为mount状态

alter database mount;

alter database rename logfile '原日志路径' to '迁移到的日志路径';

# 将数据库状态设置为open状态

alter database open;

需要提前创建redo新的路径。

alter database mount;

alter database rename logfile '/dm8/dmdbms/data/DAMENG/DAMENG01.log' to '/dm8/dmdbms/data/DAMENG/redo/DAMENG01.log';

alter database rename logfile '/dm8/dmdbms/data/DAMENG/DAMENG02.log' to '/dm8/dmdbms/data/DAMENG/redo/DAMENG02.log';

alter database rename logfile '/dm8/dmdbms/data/DAMENG/DAMENG03.log' to '/dm8/dmdbms/data/DAMENG/redo/DAMENG03.log';

alter database open;

6.3 重做日志图形化方式

7.归档管理(必考)

归档是对REDO的归档,备份归档是为了防止数据丢失,利用归档文件可以恢复数据库里的数据。

7.1 开启归档

7.1.1 命令行方式

--开启归档

# 将数据库状态设置为mount

alter database mount;

# 打开归档

alter database archivelog;

# 归档配置,配置归档路径,归档文件大小(超过就新建一个文件),归档文件总的大小(超过限制,就会删除老的)

alter database add archivelog 'type=local,dest=/dm8/arch,file_size=64,space_limit=20480';

# 将数据库状态设置为open

alter database open;

# 查询归档状态

select arch_mode from v$database;

# 查看归档文件

select * from SYS."V$ARCH_FILE";

# 查询归档配置

select * from v$dm_arch_ini;

--关闭归档

alter database mount;

# 关闭归档

alter database noarchivelog;

# 删除归档文件

alter database delete archivelog 'type=local,dest=/dm8/arch';

# 将数据库状态设置为open

alter database open;

# 查询归档状态

select arch_mode from v$database;

7.1.2 图形化方式

关闭归档,需要先把数据库置于配置(mount)状态

7.2 修改配置文件

# 查看归档状态是否开启,0关闭、1开启

cat /dm8/dmdbms/data/DAMENG/dm.ini|grep ARCH_INI

# 修改归档配置

数据库需要更改到mount状态下配置。

8.用户角色权限(必考)

8.1 用户管理

8.1.1 用户类型

SYS:内置用户,不能直接登陆

SYSDBA:系统管理员,拥有DBA角色(除了安全、审计其他都管)

SYSAUDITOR:系统审计管理员

SYSSSO:系统安全管理员

SYSDBO:系统安全操作员(达梦安全版才有)

8.1.2 创建用户
8.1.2.1 命令行方式

create user 用户名 identified by 密码 default tablespace 表空间名;

create user TEST identified by Dmeng123 default tablespace DMTBS;

设置密码的时候,需要查询下密码策略是什么

select * from v$parameter where name = 'PWD_POLICY';

如果想调整密码策略

alter system set 'PWD_POLICY' = 下图策略相加 both;

调整密码错误次数参数,默认输错3次后锁定账号,并且1分钟后自动解锁

# 将密码输错锁定次数改为5次,锁定时间为3分钟

alter user 用户名 limit FAILED_LOGIN_ATTEMPS 5,PASSWORD_LOCK_TIME 3;

手动锁定或解锁账号

# 手动解锁

alter user 用户名 account unlock;

# 手动锁定

alter user 用户名 account lock;

# 查看用户资源限制,例如最大并发数

select * from dba_users a,sysusers b where a.user_id = b.id;

##注意创建用户名必须大写!!

8.1.2.1 图形化方式

8.1.3 查询指定用户所有用的权限

select * from DBA_SYS_PRIVS where grantee = '用户名';

select * from dba_tab_privs where grantee = '用户名';

select * from dba_role_privs where grantee = '用户名';

select * from dba_col_privs where grantee = '用户名';

##用户名要大写

8.2 角色管理

8.2.1 角色类型

DBA:系统管理员角色,拥有除审核、安全外的所有权限

RESOURCE:具有在当前用户模式下定义对象的权限,例如create table等

PUBLIC:具有在当前用户模式下数据操作的权限,例如insert table等

SOI:系统表(SYS为前缀)的访问权限

SVI:系统视图(VSYS为前缀)的视图权限

VTI:动态视图(V为 前 缀 , 存 在 于 V 为前缀,存在于V为前缀,存在于Vdynamic_tables中的视图)的访问权限

--创建角色,并授予角色权限

create role 角色名;

grant 权限 to 角色名;

create role r1;

grant create table,create view,create index to r1;

--赋予用户角色

grant 角色名 to 用户名;

grant r1 to dmtest;

8.3 权限管理

设置指定用户最大并发量

# 设置用户名为dmtest的用户,最大连接数为3

alter user dmtest limit SESSION_PER_USER 3;

多余3个连接会报错

设置可以赋予其他用户在非当前用户模式下创建对象权限

select * from v$parameter where name = 'ENABLE_DDL_ANY_PRIV';

# 开启参数

alter system set 'ENABLE_DDL_ANY_PRIV'=1 both;

# 进行授权

grant create any table to hrtest;

8.3.1 添加查询权限
8.3.1.1 命令行方式

grant select on 模式名.表名 to 用户名;

grant select on dmhr.department to dmtest;

8.3.2 添加修改、删除权限

授予修改、删除权限

grant update on 模式名.表名 to 用户名;

grant delete on 模式名.表名 to 用户名;

8.3.3 回收权限
8.3.3.1 命令行方式

revoke 角色名 from 用户名;

revoke 具体权限 from 用户名;

revoke r1 from dmtest;

revoke create table from dmtest;

8.3.3.2 图形化方式

参数步骤 8.1.2.1 图形化方式实现

8.4 小结(了解)

  1. 系统权限

CREATE TABLE、INDEX、VIEW,CREATE user等

  1. 对象权限

对某张表的查询、修改、删除、插入权限,也可以是某个存储过程的执行权限

  1. 权限转授

系统权限转授,with admin option

对象权限转授,with grant option

grant select on sysdba.t_test to dmtest with grant option;

  1. 回收权限注意

如果回收的角色,带有转授权限,那么需要加关键字,对其转授出去的角色一并级联回收。

revoke select on sysdba.t_test from hrtest CASCADE;

9.模式对象管理(必考)

9.1 模式概念

  • 什么是模式:

模式是一个特定的对象集合,在概念上可将其看作是包含表、视图、索引等若干对象的对象集。

  • 什么是模式对象:

表、视图、约束、索引、序列、触发器、存储过程/函数、包、同义词、类、域。

  • 模式与用户的关系

当系统建立一个用户时,会自动生成一个对应的模式,用户和模式是一对多的关系(Oracle是一对一)。

9.2 创建模式

注意:如果在disql中执行此语句,空行后需要加上/再回车,注意模式名必须大写。

# 创建模式前需要授予用户创建模式的权限

# 创建模式

create schema 模式名 authorization 用户名;

/

# 授予用户创建模式权限

grant create schema to 用户名;

9.3 查询模式

查询系统中所有模式

select name,TYPE$ from SYSOBJECTS a where a."TYPE$" = 'SCH';

查询模式和所属用户

select a.id scheid, a.name schename, b.id userid, b.name username

from SYS.SYSOBJECTS a, SYS.SYSOBJECTS b

where a."TYPE$" = 'SCH' and a.pid = b.id;

查询当前模式

select sys_context('USERENV','CURRENT_SCHEMA');

查询当前用户,两种都可以

select user;

select sys_context('USERENV','CURRENT_USER');

9.4 切换模式

注意:这个切换只对当前会话生效,咨询过老师,目前没有方法可以设置永久生效

set schema 模式名;

10.表管理(必考 建表、加约束)

表名是区分大小写的

10.1 创建表

普通用户创建表前,需要有在自己模式下操作和创建对象的权限,赋予权限如下:

grant PUBLIC,RESOURCE to dmtest;   #RESOURCE角色名必须大写

--建表

create table dmtest.t1 (

      pid int,

      pname varchar(10),

      logtime datetime DEFAULT sysdate,

      sex bit

) tablespace dmtbs;

--从别的表复制

# 只复制表结构(不带约束信息)

create table t2 as select * from dmhr.city where 1=0;

# 复制表结构+表数据

create table t3 as select * from dmhr.city;

create table t4 like dmhr.city;

10.2 调整字段

# 添加字段

alter table dmtest.t1 add email varchar(20);

# 修改字段

alter table dmtest.t1 modify email varchar(30);

# 删除字段

alter table dmtest.t1 drop email;

10.3 约束

10.3.1 约束类型

NOT NULL:非空约束

UNIQUE:唯一约束,可以为空,简写为UK_表名_字段名

PRIMARY KEY:主键约束(唯一约束+非空约束),简写为PK_表名_字段名

FOREIGN KEY:外键引用约束,引用的是另一张表(父表)的主键或唯一键。简写为FK_表名_字段名

CHECK:检验约束,用户校验数据的准确性,简写为CK_表名_字段名

主键约束和唯一约束的区别:一张表只能有一个主键,但是可以有多个唯一约束。

10.3.2 添加约束

注意:字段如果为小写需要小写并且加上双引号,字段为大写不需要加双引号

# 添加主键约束

alter table dmtest.t1 add CONSTRAINT pk_t1_pid PRIMARY key(PID);

# 添加外键约束,注意REFERENCES表里的字段必须是主键或者是添加了唯一索引的字段

alter table dmtest.t11 add CONSTRAINT fk_t11_pid FOREIGN key(PID) REFERENCES dmtest.t1(PID);

# 添加校验约束

alter table dmtest.t11 add CONSTRAINT ck_t11_salary CHECK (SALARY>=3000);

10.3.3 禁用和启用约束
10.3.3.1 禁用

alter table 模式名.表名 disable constraint "约束名"

10.3.3.2 启用

alter table 模式名.表名 enable constraint "约束名"

10.3.4 删除约束

删除主键和外键

alter table 表名 drop primary key;
alter table 从表名 drop foreign key fk_xx_xx;

10.3.5 图形化点开约束报错解决方案

如果说点击约束,出现下图报错

解决方案如下

10.4 索引管理

10.4.1 创建索引

create index idx_表名_字段名 ON 表名 (字段名,字段名);

10.5 示例

--创建表

create table majors (major_id int primary key ,major_name varchar(50),department_name varchar(50));

create table courses(course_id int primary key,course_name varchar(50) not null,major_id int,teacher_name varchar(50));

create table students(student_id int primary key,student_name varchar(20) not null,student_sex varchar(6),student_birth date not null, student_addr varchar(100),student_major int);

--创建外键

alter table courses add constraint fk_course_major foreign key(major_id) references majors(major_id);

alter table students add constraint fk_student_major foreign key(student_major) references majors(major_id);

其中,major_id为courses表的外键,参照列为majors表的major_id列;student_major为students表的外键,参照列为majors表的major_id列;

11.视图管理(必考)

create or replace view 视图名称 as select * from aaa where age > 10;

12.备份与还原(考冷备备份恢复)

  1. 物理备份
  • 完全备份

包含指定数据库和表空间所有数据

  • 增量备份

基于一次完全备份或上一次增量备份后,往后每次备份只备份与前一次相比有差异的的数据文件

  1. 逻辑备份
  2. 冷备

数据库停止运行时的备份

  1. 热备

数据库启动状态下的备份

12.1逻辑导出

12.1.1 全库导出

dexp在达梦的bin目录下

注意需要先创建导出目录,而且导出用户和导入系统用户都使用dmdba

dexp userid=sysdba/Dameng123:5236 directory=/dm8/backup/dexp file=full.dmp log=full.log full=y

12.1.2 按用户导出

dexp userid=sysdba/Dameng123:5236 directory=/dm8/backup/dexp file=dmtest.dmp log=dmtest.log owner=dmtest

12.1.3 按模式导出

dexp userid=sysdba/Dameng123:5236 directory=/dm8/backup/dexp file=dmtest.dmp log=dmtest.log schemas=dmtest

12.1.4 按表导出

dexp userid=sysdba/Dameng123:5236 directory=/dm8/backup/dexp file=dmtest.dmp log=dmtest.log tables=dmtest.employee,dmtest.city

12.2逻辑导入

12.2.1 全库导入

dimp userid=sysdba/Dameng123:5236 FILE=full.dmp DIRECTORY=/dm8/backup/dexp LOG=dameng_full.log FULL=Y

12.2.2 按用户导入

dimp userid=sysdba/Dameng123:5236 FILE=dmtest.dmp DIRECTORY=/dm8/backup/dexp LOG=dmtest.log owner=dmtest

12.2.3 按schema导入

dimp userid=sysdba/Dameng123:5236 FILE=dmtest.dmp DIRECTORY=/dm8/backup/dexp LOG=dmtest.log schemas=dmtest

12.2.4 按表导入

dimp userid=sysdba/Dameng123:5236 FILE=dmtest.dmp DIRECTORY=/dm8/backup/dexp LOG=dmtest.log tables=dmtest.employee

12.3 导入sql文件

12.3.1 命令方式

以达梦自带的模版schema为例,执行脚本,注意脚本的第一行是中文注释,建议执行时删除。

SQL> start /dm8/dmdbms/samples/instance_script/bookshop/GBK/1-CREATESCHEMA.sql

或者

`在键盘左上角

SQL>`/dm8/dmdbms/samples/instance_script/bookshop/GBK/1-CREATESCHEMA.sql

在执行插入表数据脚本时,命令行默认语言环境非中文会导致乱码,建议使用图形方式manager执行数据插入脚本。

12.3.2 manager图形方式

12.2 物理备份

12.2.1 联机备份(开启归档)

--准备工作

方式一、联机配置归档

##修改数据库为 Mount 状态

ALTER  DATABASE  MOUNT;

##开启归档模式

ALTER  DATABASE  ARCHIVELOG;

##配置本地归档

ALTER DATABASE ADD ARCHIVELOG 'DEST = /dm8/arch, TYPE = local,FILE_SIZE = 1024, SPACE_LIMIT = 20480';

##修改数据库为 Open 状态

ALTER  DATABASE  OPEN;

方式二:手动配置归档

##关闭数据库

##在 dm.ini 所在目录,创建 dmarch.ini 文件。dmarch.ini 文件内容如下:

[ARCHIVE_LOCAL1]

ARCH_TYPE = LOCAL

ARCH_DEST = /dm8/arch

ARCH_FILE_SIZE = 1024

ARCH_SPACE_LIMIT = 20480

##编辑 dm.ini 文件,设置参数ARCH_INI=1

##启动数据库实例,数据库已运行于归档模式。

12.2.1.1 命令行方式

可以使用默认备份路径,也可以备份时指定自定义目录

--查看备份路径

cat /dm8/dmdbms/data/DAMENG/dm.ini | grep BAK_PATH

  1. 全库备份

--全库备份到默认路径下

SQL> backup database;

--全库备份到指定路径下(备份名为FULL_BACK),/dm8/backup/FULL_BACK为备份目录

SQL> backup database full to FULL_BACK backupset '/dm8/backup/FULL_BACK';

--基于默认基础备份集的增量备份,并备份到指定目录,to incrbak01设置备份名

backup database increment to incrbak01 backupset '/dm8/backup/ FULL_BACK /incrbak01';

--基于指定备份集来进行增量备份

backup database increment with BACKUPDIR '/dm8/backup/FULL_BACK' to incrbak02 backupset '/dm8/backup/incr/incrbak02';

  1. 表空间备份命令

--默认备份路径备份单个表空间

BACKUP TABLESPACE MAIN BACKUPSET 'ts_bak_01';

--自定义路径备份单个表空间

backup tablespace dmtest backupset '/dm8/hotback/dmtesttbsback';

--增量备份

BACKUP TABLESPACE MAIN INCREMENT BACKUPSET 'ts_increment_bak_01';

--基于ts_full_bak_01指定全备份的增量备份

#默认备份路径

BACKUP TABLESPACE MAIN INCREMENT BASE ON BACKUPSET'ts_bak_01' BACKUPSET  'ts_increment_bak_01'

#自定义备份路径

backup tablespace dmtest increment base on backupset '/dm8/hotback/dmtesttbsback' backupset '/dm8/hotback/dmtesttbs_inc_back';

--基于指定增量备份ts_increment_bak_01的增量备份

backup tablespace main increment base on backupset 'ts_increment_bak_01' backupset 'ts_increment_bak_02';

  1. 表备份命令

与备份数据库与表空间不同,备份表不需要服务器配置归档

--默认备份路径表备份

BACKUP TABLE TAB_01 BACKUPSET 'tab_bak_01';

--自定义路径备份表

backup table dmhr.employee backupset '/dm8/hotback/dmhr_employee_back';

  1. 归档备份

--备份全部归档

BACKUP ARCHIVE LOG ALL BACKUPSET 'arch_bak_01';

12.2.1.2 图形化方式

--库备份

如果备份在指定目录下,需要手动添加目录才能看到备份的内容

表空间备份、表备份、归档备份同理,如上操作。

12.2.1.3 定时备份

(1)右击管理工具-【代理】-【作业】-【新建作业】。

(2)出现如下图所示界面,在作业名称和作业描述中填写备份名称和描述。

(3)在作业步骤中选择具体的备份方式,如下图所示。

(4)在作业调度中设置具体的备份频率,如下图所示。

(5)手动执行作业,如下图所示。

(5)选中对象,点击确定,开始执行。

(6)定时备份日志查看,如下图所示

查看对应的备份集,如下

12.2.2 脱机备份(DMRMAN)

关闭数据库

[dmdba@dmtest incr]$ DmServiceDMSERVER stop

12.2.2.1 命令行方式

--全库备份

[dmdba@dmtest ~]$ dmrman

RMAN> backup database '/dm8/dmdbms/data/DAMENG/dm.ini' full backupset '/dm8/bak20240823';

--增量备份

backup database '/dm8/dmdbms/data/DAMENG/dm.ini' increment with backupdir '/dm8/' backupset '/dm8/dmrman_db_increment_bak_02';

--备份归档

backup archive log all database '/dm8/dmdbms/data/DAMENG/dm.ini'  backupset '/dm8/dmrman_arch_bak_01';

--查看指定备份集信息

RMAN> show backupset '/dm8/bak20240823';

--校验备份集

RMAN> check backupset '/dm8/bak20240823';

--删除指定备份集

RMAN> remove backupset '/dm8/bak20240823';

        1. 图形化方式

(1)下图为 console 工具的主页面,点击【新建备份】设置备份选项。

(2)点击【新建备份】后的界面显示如下,【选择项】中的【常规】可选择备份的对象(库备份或归档备份)、备份名、备份集目录、是否对备份集大小进行限制以及备份类型等等。

(3)【选择项】中的【高级】可设置备份集的具体属性信息,例如是否进行备份压缩、是否备份日志、加密类型、加密密码、介质类型、介质参数等等。

(4)出现以下报错是因为没有停止数据库服务,冷备必须关闭数据库。

关闭数据库实例,备份成功,如下

[dmdba@dmtest ]$ DmServiceDMSERVER stop

        1. 备份管理

(1)在备份还原管理页面中,【指定搜索目录】选择备份集存储的目录,点击【获取备份】按钮,即可获取备份集列表。

(2)点击【获取备份】按钮后可以获取到指定搜索目录下的所有备份集,并显示在备份集列表中。选择要查看的备份集,点击【属性】按钮。

(3)点击【属性】按钮后打开备份属性对话框,可查看备份属性。【选择项】中的【常规】可查看备份集的组 ID 和备份集 ID。

(4)【选择项】中的【元信息】主要显示备份集本身相关的信息如备份是否为联机备份、备份的范围、备份的加密信息以及备份的压缩信息等。

(5)【选择项】中的【节点信息】显示系统中各节点开始/结束 LSN 以及开始/结束日志包序号。单库只有一个节点,集群系统中会有多个节点。

(6)【选择项】中的【文件信息】显示备份集的所有数据文件和备份片信息。

(7)【选择项】中的【数据库信息】显示数据库的具体信息。

12.2.3 物理备份的还原
12.2.3.1 数据库还原与恢复
12.2.3.1.1 数据还原

使用 RESTORE 命令完成脱机还原操作,在还原语句中指定库级备份集,可以是脱机库级备份集,也可以是联机库级备份集。

注意:

通过 RESTORE 命令还原后的数据库不可用,需进一步执行 RECOVER 命令,将数据库恢复到备份结束时的状态。

--以联机数据库备份说明使用 DMRMAN 如何执行数据库还原操作(本次采用异机恢复方式):

##联机备份数据库,保证数据库运行在归档模式及 OPEN 状态;

SQL> BACKUP DATABASE BACKUPSET '/dm8/hotback/db_full_bak_for_restore';

##准备目标库。还原目标库可以是已经存在的数据库,也可使用 dminit 工具初始化一个新库。如下所示:

./dminit path=/dm8/dmdbms/data db_name=DAMENG_BAK

##校验备份,校验待还原备份集的合法性。校验备份有两种方式,联机和脱机,此处使用脱机校验;

RMAN> CHECK BACKUPSET '/dm8/hotback/db_full_bak_for_restore';

##还原数据库。启动 DMRMAN,输入以下命令:

RMAN> restore database '/dm8/dmdbms/data/DAMENG_BAK/dm.ini' from backupset '/dm8/hotback/db_full_bak_for_restore';

12.2.3.1.2 数据恢复

使用 RECOVER 命令完成数据库恢复工作,可以是基于备份集的恢复工作,也可以是使用本地归档日志的恢复工作。数据库恢复是指重做 REDO 日志,有两种方式:从备份集恢复,即重做备份集中的 REDO 日志;或从归档恢复,即重做归档中的 REDO 日志。

方式一:从备份集恢复

##执行还原数据库的命令之后,可以直接执行恢复数据库的命令,如下:

RMAN> recover database '/dm8/dmdbms/data/DAMENG_BAK/dm.ini' from backupset '/dm8/hotback/db_full_bak_for_restore';

方式二:从归档恢复

##通过使用 WITH ARCHIVEDIR 关键字进行归档恢复,如下:

RMAN>RECOVER DATABASE '/dm8/dmdbms/data/DAMENG_BAK/dm.ini' WITH ARCHIVEDIR '/dm8/arch';

#可以恢复到指定时间点

RECOVER DATABASE '/dm8/dmdbms/data/DAMENG_BAK/dm.ini' WITH ARCHIVEDIR '/dm8/arch' until time ‘2024-08-26 10:10:00’;

注意,如果/dm8/arch恢复时提示归档缺失,需要将缺失的归档文件恢复到该目录下

restore archive log from backupset ‘备份集路径’ to archivedir ‘归档路径’ overwrite 2; #overwrite 2表示覆盖已有的归档。

12.2.3.1.3 数据库更新

数据库更新是指更新数据库的 DB_MAGIC,并将数据库调整为可正常工作状态,与数据库恢复一样使用 RECOVER 命令完成。数据库更新发生在重做 REDO 日志恢复数据库后。

RMAN>RECOVER DATABASE '/dm8/dmdbms/data/DAMENG_BAK/dm.ini' UPDATE DB_MAGIC;

12.2.3.1.4 启动新数据库

注意:如果在同一台主机上恢复的新实例,需要修改dm.ini下的PORT_NUM端口号。

[dmdba@dmtest DAMENG_BAK]$ nohup /dm8/dmdbms/bin/dmserver /dm8/dmdbms/data/DAMENG_BAK/dm.ini -noconsole &

##连接密码同源库一样

如上图所示,从归档recover恢复到源库的最新数据。

12.2.3.2 表空间还原与恢复
12.2.3.2.1 表空间还原

使用 RESTORE 命令完成表空间的脱机还原,还原的备份集可以是联机或脱机生成的库备份集,也可以是联机生成的表空间备份集。脱机表空间还原仅涉及表空间数据文件的重建与数据页的拷贝。不需要事先设置目标表空间为 OFFLINE 状态。

表空间还原后,表空间状态被置为 RES_OFFLINE,并设置数据标记 FIL_TS_RECV_STATE_RESTORED,表示经过还原但数据不完整。表空间还原命令如下:

RMAN>RESTORE DATABASE '/dm8/dmdbms/data/DAMENG/dm.ini' TABLESPACE  DMTEST FROM BACKUPSET '/dm8/hotback/db_full_bak_for_restore';

注意:

表空间还原的目标库只能是备份集产生的源库,否则将报错。

12.2.3.2.2 表空间恢复

表空间恢复通过重做 REDO 日志,以将数据更新到一致状态。由于日志重做过程中,修改好的数据页首先存入缓冲区,缓冲区分批次将修改好的数据页写入磁盘,如果在此过程中发生异常中断,可能导致缓冲区中的数据页无法写入磁盘,造成数据的不一致,数据库启动时校验失败,所以表空间恢复过程中不允许异常中断。

恢复完成后,表空间状态置为 ONLINE,并设置数据标记为 FIL_TS_RECV_STAT_RECOVERED,表示数据已恢复到一致状态。恢复表空间命令如下:

RMAN>RECOVER DATABASE '/dm8/dmdbms/data/DAMENG/dm.ini' TABLESPACE  DMTEST;

12.2.3.3 归档恢复与还原
12.2.3.3.1 归档还原

使用 RESTORE 命令完成脱机还原归档操作,在还原语句中指定归档备份集。备份集可以是脱机归档备份集,也可以是联机归档备份集。归档还原的命令如下:

##还原归档。启动 DMRMAN,设置 OVERWRITE 为 2,如果归档文件已存在,会报错。

##1、指定还原的目标归档日志目录:

RMAN>RESTORE ARCHIVE LOG FROM BACKUPSET '/dm8/hotback/db_full_bak_for_restore' TO ARCHIVEDIR'/dm8/arch' OVERWRITE 2;

注意,此方法还原需要有归档备份集。

##2、指定还原目标库的 dm.ini 文件路径:

RMAN>RESTORE ARCHIVE LOG FROM BACKUPSET '/dm8/hotback/db_full_bak_for_restore' TO  DATABASE '/dm8/dmdbms/data/DAMENG_BAK/dm.ini' OVERWRITE 2;

12.2.3.3.2归档修复

使用 REPAIR 命令完成指定数据库的归档修复,归档修复会对目标库 dmarch.ini 中配置的所有本地归档日志目录执行修复。若目标库没有配置本地归档,则不执行修复。执行修复时,目标库一定不能处于运行状态。一般建议在数据库故障后,应立即执行归档修复,否则后续还原恢复将会导致联机日志中未刷入本地归档的 REDO 日志中而丢失,届时再利用本地归档恢复将无法恢复到故障前的最新状态。归档恢复的命令如下:

##单机环境下,确保目标库已经停止工作后,执行归档修复;

RMAN> REPAIR ARCHIVELOG DATABASE '/dm8/dmdbms/data/DAMENG_BAK/dm.ini';

##DSC 环境下,需要每个节点停止工作后,每个节点独立执行修复操作;

##对于两节点 DSC01、DSC02 执行修复如下:

RMAN> REPAIR ARCHIVELOG DATABASE '/dm8/dmdbms/dsc/dm01.ini';

RMAN> REPAIR ARCHIVELOG DATABASE '/dm8/dmdbms/dsc/dm02.ini'

12.2.3.4 控制台工具还原数据库
12.2.3.4.1验证物理备份文件有效性

在数据库安装目录下 bin 目录中启动 DMRMAN 工具进行备份集校验。

./dmrman
RMAN> check backupset '/dm8/hotback/Dmserver_full_back_20240826';
RMAN> check backupset '/dm8/hotback/Dmserver_archivelog_bak_20240826';

12.2.3.4.1启动控制台工具

[dmdba@dmtest ]$ cd /dm8/dmdbms/tool

[dmdba@dmtest tool]$ ./console

12.2.3.4.2 指定备份文件

配置备份路径,获取备份文件。

12.2.3.4.3 数据库还原

选择备份文件集,并点击【还原】,指定还原实例的 dm.ini 文件,并点击确定,如下图:

12.2.3.4.4 数据库恢复

点击【恢复】,并选择对应数据库实例的 dm.ini 文件后确定,如下图:

12.2.3.4.5 更新db_magic

点击【更新 db_magic】,如下图:

12.2.3.4.6 启动实例

13.作业管理(必考)

13.1 创建代理环境

--命令行方式创建代理环境

SP_INIT_JOB_SYS(1);

--图形化方式创建代理环境

13.2 新建作业

--创建数据库全备作业

--创建数据库增量备份作业

注意:/dm8/backup目录下要有基础备份,首先运行一个全备,再创建增量备份任务,否则报错:备份基目录不能为空。

--运行增量备份

执行结果如下图:

系统备份目录下新增增量备份目录,如下

14.ODBC配置(必考)

--解压ODBC,没有这个tar包的话需要上传到这个目录下

 tar -zxvf /opt/unixODBC-2.3.12.tar.gz

--进入到odbc目录进行源码安装

cd unixODBC-2.3.12

./configure

make

make install

默认文件安装在/usr/local,odbcinst file安装在/etc下;可以通过prefix指定安装目录(前提创建好目录),odbcinst file在prefix目录的etc下,也可以指定odbcinst file目录--sysconfdir=/etc

--查看配置文件路径

[root@dmtest bin]# odbcinst -j

unixODBC 2.3.12

DRIVERS............: /usr/local/etc/odbcinst.ini

SYSTEM DATA SOURCES: /usr/local/etc/odbc.ini

FILE DATA SOURCES..: /usr/local/etc/ODBCDataSources

USER DATA SOURCES..: /root/.odbc.ini

SQLULEN Size.......: 8

SQLLEN Size........: 8

SQLSETPOSIROW Size.: 8

--修改配置文件

cd /usr/local/etc/

[root@dmtest unixODBC-2.3.12]# vim odbc.ini

[DM8]  #这个按要求改

Description = DM ODBC DSN

Driver = DM8 ODBC DRIVER   #要和odbcinst.ini对应

SERVER = localhost

UID = SYSDBA

PWD = Dameng123

TCP_PORT = 5236

[root@dmtest unixODBC-2.3.12]# vim odbcinst.ini

[DM8 ODBC DRIVER]   #这块要和odbc.ini对应

Description = ODBC DRIVER FOR DM8

Driver = /dm8/dmdbms/bin/libdodbc.so

切换到dmdba用户,进行登陆即可

[root@dmtest unixODBC-2.3.12]# su -dmdba

[dmdba@dmtest ~]$ isql dm8 -v

15.审计配置

15.1 开启审计

在manager工具或disql工具使用SYSAUDITOR用户登录进入数据库。
SP_SET_ENABLE_AUDIT (1);           ######打开审计

SP_SET_ENABLE_AUDIT (0);           ######关闭审计

开启审计后,在数据文件目录下生成一个AUDIT+实例名日期的审计文件,即证明数据库审计功能开启成功:

15.2 审计设置

审计级别说明

  1. 系统级  系统的启动与关闭,此级别的审计无法也无需由用户进行设置,只要审计开关打开就会自动生成对应审计记录
  2. 语句级  导致影响特定类型数据库对象的特殊SQL或语句组的审计。如AUDIT TABLE 将审计CREATE TABLE、ALTER TABLE和DROP TABLE等语句
  3. 对象级  审计作用在特殊对象上的语句。如test表上的INSERT语句

日志开启之后,要为需要进行审计的用户设置审计。设置审计是按用户进行的,SYSDBA权限较大,发送敏感操作的可能行较高,所以,SYSDBA一般都要设置审计,以SYSDBA为例。

可以按语句类型设置审计条件,可以选择所有、成功、失败的操作。

  1. 审计SYSDBA的登陆操作

2、审计SYSDBA对表进行的所有操作

也可以使用语句方式进行审计操作

SP_AUDIT_STMT('CONNECT', 'SYSDBA', 'ALL');

SP_AUDIT_STMT('TABLE', 'SYSDBA', 'ALL');

15.3 查看审计记录

查看审计记录的方式有两种,一种是通过DM审计分析工具analyzer查看,一种是查询动态视图V$AUDITRECORDS的结果集查看。

通过审计分析工具查看

进入安装路径下的tool目录下运行analyzer

[dmdba@dmtest DAMENG]$ cd /dm8/dmdbms/tool/

[dmdba@dmtest tool]$ ./analyzer

使用SYSAUDITOR用户连接实例

双击审计日志查看器

点击添加文件

找到数据库文件目录下的审计日志,点击确定

就可以查看到审计记录,记录了用户ID、用户名、IP地址、操作时间等信息。

图形方式查看审计日志不会自动刷新,需要重新选择日志文件打开查看。

通过查询动态视图V$AUDITRECORDS的结果集查看审计记录,可以查看到和审计分析工具一样的结果

select * from V$AUDITRECORDS;

附录:

  1. 麒麟v10配置本地yum源
1.1 进入本地yum目录

cd /etc/yum.repos.d

1.2 备份kylin_x64.repo文件

cp kylin_x86_64.repo kylin_x86_64.repo.bak

1.3 创建新的kylin_x64.repo文件

vi kylin_x86_64.repo,添加如下内容

###Kylin Linux Advanced Server 10 - os repo###

[kylin_x64.repo]

name=kylin_x64.repo

baseurl=file:///run/media/root/Kylin-Server-10

enabled=1

gpgcheck=0

1.4 使yum源生效

yum clean all

yum makecache

yum list

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

king_harry

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值