DM数据库的一些实操总结

        文章内容主要为一些之前经常接触的零碎操作,正好最近DCA考试也需要考验此项技能,借由这个时机在此一并讲出。

1、安装前的杂论

  1. 查看cpu架构:
  2. 查看cpu信息:
    #查看CPU信息,以下均可
    [dmdba@DW-M1 ~]$ lscpu  
    [dmdba@DW-M1 ~]$ cat /proc/cpuinfo

    DM数据库的一些实操总结_第1张图片DM数据库的一些实操总结_第2张图片
    安装DM数据库之前,应该先查看自己CPU的架构与类型,选好正确的版本。

  3. 查看操作系统与其他信息
    [dmdba@DW-M1 ~]cat /proc/version #查看操作系统版本
    [dmdba@DW-M1 ~]ldd --version #查看ldd版本
    [dmdba@DW-M1 ~]gcc --version #查看gcc版本,安装DM前建议预先安装UnixODBC 组件 gcc 包
    

    DM数据库的一些实操总结_第3张图片

  4. 查看内存信息
    [dmdba@DW-M1 ~]$ free -m #查看内存,虚拟机环境推荐1G以上,银河麒麟推荐3G
    [dmdba@DW-M1 ~]$ cat /proc/meminfo

    DM数据库的一些实操总结_第4张图片

  5. 查看磁盘信息
    [dmdba@DW-M1 ~]$ df -h #虚拟机大致分配25G以上

    DM数据库的一些实操总结_第5张图片

    如果要查看临时目录,只要在后面加上/tmp,对于DM数据库安装,如果 tmp 目录不足,安装会失败,可以指定 DM_INSTALL_TMP 参数指定到其他目录下,详见《安装手册》:

  6. 关闭防火墙
    #如果有远程访问数据库的要求,需要设置防火墙和 selinux 策略。
    [dmdba@DW-M1 ~]$ systemctl status firewalld #查看防火墙信息
    [dmdba@DW-M1 ~]$ systemctl stop firewalld #关闭防火墙

    如果是生产环境而不能关闭防火墙,可以开放数据库的对应端口:

    [dmdba@DW-M1 ~]$ firewall-cmd --add-port=5236/tcp --permanent #先开放端口
    [dmdba@DW-M1 ~]$ firewall-cmd --reload #再重新加载
    [dmdba@DW-M1 ~]$ firewall-cmd --list-ports #查看端口信息

    如果想要删除端口:

    [dmdba@DW-M1 ~]$ firewall-cmd --zone=public --remove-port=5236/tcp --permanent
    [dmdba@DW-M1 ~]$ firewall-cmd --reload
    [dmdba@DW-M1 ~]$ firewall-cmd --list-ports

2、安装

2.1 安装前准备

  1. 创建用户/用户组
    [root@DW-M1 ]# groupadd dinstall #创建用户组
    [root@DW-M1 ]# useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba #创建用户
    [root@DW-M1 ]# passwd dmdba #设置密码
    
  2. 创建安装目录,推荐建立一个单独的目录安装。
    #安装规划:
    #安装软件:/dm8
    #数据库文件目录:/dm8/data
    #归档文件存放目录:/dm8/arch
    #备份文件存放目录:/dm8/backup
    [root@DW-M1 ]# mkdir /dm8 # 创建达梦安装路径
    [root@DW-M1 ]# chown dmdba:dinstall /dm8 # 更改文件夹的所属用户组、所属用户
    [root@DW-M1 ]# ll -ld /dm8 # 查看是否更改成功
    
  3. 挂载安装文件:
    #将下载的iso镜像文件上传到服务器上后,进行挂载操作
    [root@DW-M1 ~]# mkdir /mnt/dm
    [root@DW-M1 ~]# mount dm8_20220525_x86_rh6_64.iso /mnt/dm #将当前目录下的镜像文件挂载到上面的目录下
    [root@DW-M1 ~]# df -h #可以查看挂载信息
  4. 设置文件最大打开数,在root用户下使用vim打开:
    [root@DW-M1 ~]# vim /etc/security/limits.conf
    #在最后添加如下语句:
    dmdba soft nofile 102400
    dmdba hard nofile 102400
    root soft nofile 102400
    root hard nofile 102400

         可以使用ulimit -a查看:
        DM数据库的一些实操总结_第6张图片

2.2 安装

        安装有三种形式,命令行安装、图形化安装与静默安装,这里只介绍前面两种

2.2.1 图形化安装

  1. 设置图形化:(第一次开机登录,需要执行 xhost +)
    [root@DW-M1 ~]# xhost +

  2. 查看与设置DISPLAY值:

    [root@DW-M1 ~]# echo $DISPLAY
    [root@DW-M1 ~]# su dmdba
    [dmdba@DW-M1 ~]$ echo $DISPLAY #查看DISPLAY的值
    [dmdba@DW-M1 ~]$ export DISPLAY=:0.0 #设置DISPLAY值(具体以考试环境查询出来的值为准)
    
  3. 执行安装:

    [dmdba@DW-M1 ~]$ cd /mnt/dm
    [dmdba@DW-M1 ~]$ mount dm8_20220525_x86_rh6_64_ent /dm/mnt #将文件挂载到目标目录
    [dmdba@DW-M1 ~]$ ./DMInstall.bin
  4. 普通用户的安装跟随默认即可,需要特殊要求可参考《安装手册》。如果/tmp空间不够,可能会导致报错。

  5. 安装到最后,会要求使用root用户执行“/dm8/script/root/root_installer.sh”,按要求执行即可。

    [root@DW-M1 dmdba]# /dm8/script/root/root_installer.sh

2.2.2 命令行安装

  1. 同样在/mnt/dm下,使用以下命令开始安装,如果没有设置最大打开数,执行以下命令后可能出现提示。
    [root@DW-M1 dmdba]# cd /mnt/dm
    [root@DW-M1 dmdba]# ./DMInstall.bin -i
  2. 输入Key文件路径选择“否”,设置时区选择“是”,随后直接回车(默认21),安装类型选择典型安装(默认),安装路径输入/dm(如果是考试,记得按要求设置),随后确认。

3、创建数据库及数据库实例管理

        如果没有在安装之后创建数据库实例,则需要在手动注册。同样地,注册数据库实例有图形化安装与命令行安装两种方法。

3.1 图形化创建

  1. 图形化安装的启动方式在/dm/tool/dbca.sh,直接打开可以启动图形化界面
    DM数据库的一些实操总结_第7张图片
  2. 选择创建数据库实例,点击开始,随后按照自身要求指定数据库目录、实例名、端口号、填写初始化参数、设置口令等,直到完成创建。
  3. 在最后,界面会给出三条命令行语句,提示用户在root下执行,目的是创建数据库服务并启动,用于开机自启动,照做即可。

3.2 命令行创建    

        DM的数据库命令行初始化工具是dminit,存放于/dm/bin下

  1. 可以先进入/dm/bin下,输入./dminit help查看帮助信息:
    [dmdba@DW-M1 bin]$ cd /dm/bin
    [dmdba@DW-M1 bin]$ ./dminit  help
    
    DM数据库的一些实操总结_第8张图片
  2. 根据得到的参数信息,使用: ./dminit KEYWORD=value 的格式输入命令完成安装。
    值得注意的是,dminit 创建数据库,默认没有注册数据库服务。

 3.3 注册数据库服务

        如果需要手动开启数据库服务,可以利用数据库配置助手 dbca.sh,这次选择注册数据库服务:

DM数据库的一些实操总结_第9张图片


点击开始,随后指定配置文件dm.ini(如在/dm/data下安装了实例名DAMENG的数据库,则配置文件是/dm/data/DAMENG/dm.ini)与其他可选参数即可。同样,之后会出现三条命令提示在root下执行,照做即可。

4、数据库连接

4.1 使用命令行连接

        使用bin目录下的disql工具,可以在一开始指定用户名、密码、端口号等,随后连接到数据库,格式为:./disql 用户名/密码@ip:端口号,如果ip是localhost,可以省略。

        如果已经用disql连接到了数据库,想要连接到其他数据库,可以使用conn命令进行连接。格式同上,输入用户名、密码等即可。

        (注:tool目录下也有一个disql,它与bin下的disql区别仅仅在于前者可以直接使用./disql进入该工具而不连接数据库,后者直接使用./disql后会提示输入用户名与密码连接到数据库。)

4.2 使用图形化界面

        manager工具是DM的图形化客户端工具,它具有强大的功能,合理使用可以相比命令行而言达到更高的效率。它存放于tool目录下,这里仅介绍如何连接与选项设置,关于具体使用,后面会有详细介绍。

  1. 打开后,首先在顶部菜单栏选择窗口—选项,在弹出的窗口中选择“查询分析器”中的“编辑器”,勾选以下选项。这样可以在后续的使用中提供很多便利。
    DM数据库的一些实操总结_第10张图片
  2. 在左侧“对象导航”中点击小三角—连接,或者右键localhost—连接DM数据库的一些实操总结_第11张图片DM数据库的一些实操总结_第12张图片

        在弹出的窗口输入主机名、端口号、用户名及密码等即可。

5、参数配置

5.1 参数类型

        INI 参数分为手动、静态和动态三种类型,分别对应 V$PARAMETER 视图中 TYPE 列的 READ ONLY、IN FILE、SYS/SESSION。

        READ ONLY:只读参数,数据库运行期间不能修改,只能在ini文件中修改,重启数据库生效。

        IN FILE:静态参数。可以通过函数与SQL命令修改,也可以在ini文件修改。但是不能修改内存中的值,只能修改参数文件中的值,修改后需要重启数据库生效

        SYS/SESSION:动态参数。可以通过函数与SQL修改,修改的是ini文件与内存中的值,即修改后立即生效。(当然,也可以在ini文件中修改,但是这样一来需要重启数据库生效)。 其中,SYS 为系统级参数,修改后会影响所有的会话;SESSION 为会话级参数,服务器运行过程中被修改时,之前创建的会话不受影响,只有新创建的会话使用新的参数值。

5.2 修改方法

5.2.1 通过dm.ini修改

        例如实例为DAMENG的数据库,可以直接编辑 v/dm/data/DAMENG进行修改。如前文所言,修改ini文件的值需要重启数据库生效(不论什么类型)。

vim /dm/data/DAMENG/dm.ini

5.2.2 通过图形化界面

        /dm/tool下的consloe工具可以查看并修改各种参数。与直接修改文件一样,修改的是ini文件的值,需要重启数据库生效。

DM数据库的一些实操总结_第13张图片

        在该工具中,需要之前注册过数据库服务才能看得到。修改后,记得点击保存。

 5.2.3 通过SQL语句

        SQL语句修改系统参数的命令如下:

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

        其中 both/spfile/memory用来指定参数生效范围。spfile表示仅在文件中修改,而内存不修改。而spfile表示只对内存修改,而文件值不修改。both表示两者都修改。显然,对于动态参数,可以指定spfile/memory/both,对于静态参数,只能指定为spfile。

        DM数据库的所有参数存放在v$parameter中:

        查看参数类型:
        DM数据库的一些实操总结_第14张图片
        查看参数名:
        DM数据库的一些实操总结_第15张图片

        想要查看内存相关,只要进行模糊查询即可:

DM数据库的一些实操总结_第16张图片

        然后,使用上述语句进行修改参数。例如,想要修改排序缓冲区大小,参数名为“SORT_BUF_SIZE”,首先查看信息:

DM数据库的一些实操总结_第17张图片

        可以看到,该参数为SESSION,即会话级动态参数。我们将当前会话值改为15:

alter system set 'SORT_BUF_SIZE'=15 memory;

        运行后,再次查看:

        可以看到,VALUE与SYS_VALUE都改为了15,但是文件中的值仍为10。

5.2.4 通过系统函数修改

        与参数有关的系统函数:

sf_get_para_value(scope int,ini_param_name varchar(256));#s获取参数值,scope可取1或2,前者表示从文件获取,后者表示从内存获取。ini_param_name是参数名。
sp_set_para_value(scope int,ini_param_name varchar(256),value int);#修改Int类型值
sp_set_para_double_value(scope int,ini_param_name varchar(256),value double);#修改double类型值
sp_set_para_string_value(scope int,ini_param_name varchar(256),value varchar(8187));#修改string类型值
#上述三个中,scope为0表示修改内存值,为2表示修改文件值,为1表示都修改

        查看SORT_BUF_SIZE:
        DM数据库的一些实操总结_第18张图片

        再改回10:

select SF_GET_PARA_VALUE(2,'SORT_BUF_SIZE');

         再次查看:

        DM数据库的一些实操总结_第19张图片

5.3 数据缓冲区

        DM SERVER包含四种数据缓冲区,NORMALKEEPFAST RECYCLE

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

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

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

        FAST:对应参数 FAST_POOL_PAGES ,根据用户指定的大小或系统默认大小由系统自动进行管理,用户不能指定使用 RECYCLE 和 FAST 缓冲区的表或表空间。

       RECYCLE:对应参数RECYCLE,供临时表空间使用。

       可以在v$parameter中找到这几个参数:DM数据库的一些实操总结_第20张图片

        可以看到,四个参数类型均为IN FILE,即静态参数,使用 ALTER SYSTEM 修改时只能指定为spfile:

DM数据库的一些实操总结_第21张图片

         修改后,参数在文件中的值变为1200,内存值仍为1000。

6、表空间管理

6.1 表空间类型

        DM数据库创建完成后默认创建5个表空间,分别为SYSTEM、ROLL、MAIN、TEMP、HMAIN。

        SYSTEM:存放了有关 DM 数据库的字典信息,包含表定义、视图定义、用户权限等,用户不能在SYSTEM 表空间创建表和索引。

        ROLL:完全由 DM 数据库自动维护,用户无需干预。该表空间用来存放事务运行过程中执行 DML (Insert、Delete、Update等)操作之前的值,从而为访问该表的其他用户提供表数据的读一致性视图。

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

        TEMP:由 DM 数据库自动维护。用于存放临时表数据、索引、大量数据排序等产生的数据。对应ini文件中的参数名为“TEMP_SIZE”,类型为静态参数。

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

6.2 表空间操作

6.2.1 SQL语句操作

  1. 查看表空间,可以查看DBA_TABLESPACES、DBA_DATA_FILES、或DBA_FREE_SPACE:
    select * from SYS.DBA_TABLESPACES;
    select * from dba_data_files;
    select * from DBA_FREE_SPACE;


    DM数据库的一些实操总结_第22张图片

  2. 创建表空间,要求表空间大小最低不能低于页大小的4K(4096)倍,最大不能超过页大小的MAX_INT(2^31-1)倍。
    CREATE TABLESPACE 表空间名 DATAFILE '数据文件路径' SIZE 数据文件大小(单位M );
    /*简单格式如上,具体格式可以查看《DM8_SQL语言使用手册》*/

    如果不确定页大小,可以使用SQL命令SELECT PAGE查看;如果想直接知道页大小的某一倍数,也可以8PAGE对PAGE进行乘数运算:
    DM数据库的一些实操总结_第23张图片
    如页大小8096(8K),则表空间小于32M会报错:
    DM数据库的一些实操总结_第24张图片
    DM数据库的一些实操总结_第25张图片

  3. 修改表
    1. 正常情况下,表空间为联机状态,即可以正常读写,如果表空间脱机,其表空间下的表数据将无法正常读写,业务将不能正常运行。其中,MAIN 表空间与用户自定义表空间可以脱机,SYSTEM、TEMP、UNDO 不能脱机。
      /*表空间脱机或联机*/
      alter tablespace Mytbs offline/online;
    2. 修改表空间示例
      /*修改表空间大小*/
      alter tablespace 表空间名 resize datafile '数据文件路径' to 数据文件大小(单位为M);
      alter tablespace Mytbs resize datafile 'DMTBS01.DBF' to 64;
      /*修改表空间开启自动增长,增长步长,最大表空间*/
      alter tablespace 表空间名 datafile '数据文件路径' autoextend on next 增长步长 maxsize 文件最大值
      alter tablespace Mytbs datafile 'Mytbs.dbf' autoextend on next 4  maxsize 10240;
      /*添加数据文件*/
      alter tablespace tbs ADD DATAFILE 'TBS02.DBF' SIZE 128 AUTOEXTEND ON NEXT 4 
      MAXSIZE 10240;
      
      DM数据库的一些实操总结_第26张图片
  4. 删除表
    用户自定义的表空间可以删除,系统自带的不能删除。 使用“drop tablesapce 表空间名”即可。
    DM数据库的一些实操总结_第27张图片
  5. 数据文件的迁移
    数据文件在迁移时,应当注意首先置为脱机,然后使用语句进行迁移,最后重新置为联机。但应该注意,新的表空间路径, 必须是由安装数据库的用户进行创建,或者把这个文件夹授予数据库安装用户读写权限 ,否则会因权限问题报数据库文件路径错误。
    alter tablespace Mytbs offline;/*置为脱机*/
    alter tablespace Mytbs RENAME DATAFILE '/dm/data/DAMENG1/TBS01.DBF'
    to '/dm8/data/DAMENG1/TOTAL_TBS/TBS01.DBF';/*迁移表空间,逐个迁移*/
    alter tablespace Mytbs RENAME DATAFILE '/dm/data/DAMENG1/TBS01.DBF'
    to '/dm8/data/DAMENG1/TOTAL_TBS/TBS02.DBF';
    alter tablespace tbs online;/*重新置为联机*/

6.2.2 图形化客户端操作

        打开manager,在左侧对象导航栏找到表空间,点击可以查看当前的所有表空间。更深入地,可以查看每个表空间下存放的数据,包括文件、表、索引等。

         DM数据库的一些实操总结_第28张图片

         右键点击目标表空间,即可进行新建、修改、脱机、重命名、删除等操作。新建表空间窗口如下,填写表空间名、文件路径等必要信息,按需填写其他可选参数,点击确定即可完成创建。

        DM数据库的一些实操总结_第29张图片

6.2.3 TEMP表空间

        与TEMP表空间有关的参数有三个:
DM数据库的一些实操总结_第30张图片
        TEMP_PATH表示了TEMP表空间的存放地址,为只读参数;TEMP_SIZE表示TEMP表空间初始值,为静态参数;TEMP_SPACE_LIMIT为表空间大小限制,0表示不限制,为系统级参数。
        DM数据库的一些实操总结_第31张图片

7、重做日志文件管理

7.1 命令行管理

7.1.1 查看联机日志

        与联机日志有关的系统视图主要有V$RLOG、V$RLOGFILE等:
        DM数据库的一些实操总结_第32张图片

        V$RLOG 查看日志的总体信息:

        V$RLOGFILE查看日志文件的具体信息:

7.1.2 创建日志文件

        使用如下命令创建日志文件:

alter database add logfile '日志名称' size 日志大小(单位MB);
alter database add logfile 'DAMENG103.log' size 128;/*示例*/

DM数据库的一些实操总结_第33张图片

7.1.3 修改日志文件大小

        DM只支持将日志文件改大,但不支持改小,使用如下命令:

alter database resize logfile '日志路径' to 日志大小(单位MB);
alter database resize logfile '/dm/data/DAMENG1/DAMENG103.log' to 256;/*示例*/

7.1.4 重做日志迁移

        重做日志在迁移时,记得先改为mount状态,待迁移完成再重新改为open。

alter database mount;/*先将数据库置为mount状态*/
alter database RENAME LOGFILE 'DAMENG101.log' to '/dm8/data/DAMENG/REDO/DAMENG01.log';
alter database RENAME LOGFILE 'DAMENG102.log' to '/dm8/data/DAMENG/REDO/DAMENG02.log';
alter database RENAME LOGFILE 'DAMENG103.log' to '/dm8/data/DAMENG/REDO/DAMENG03.log';
alter database open;/*数据库重新打开*/

7.2 图形化管理

        打开manager,在对象导航栏中右键根选项“LOCALHOST”,选择“管理服务器”,弹出相关窗口:
DM数据库的一些实操总结_第34张图片DM数据库的一些实操总结_第35张图片

        在“系统管理”选择项界面,可以查看改变数据库状态,mount状态就是配置状态。

DM数据库的一些实操总结_第36张图片

         在“日志文件”选择项界面,可以查看日志文件信息,也可以添加与修改。
DM数据库的一些实操总结_第37张图片

        在“归档配置”选择项界面,可以查看与归档日志信息,或开启/关闭归档模式(但是要先将数据库转为mount状态)。
DM数据库的一些实操总结_第38张图片

 7.3 归档文件的命令行操作

        在图形化界面以及顺便介绍了归档日志的图形化操作,这里介绍其命令行操作。(关于归档日志与重做日志,之前在备份还原写过相关文章介绍)

7.3.1 开启归档

        开启归档模式前,应当先将数据库状态置为mount,然后使用alter database操作。

alter database mount; /*将数据库状态设置为mount*/
alter database archivelog; /*打开归档*/
/*归档配置,配置归档路径,归档文件大小(超过就新建一个文件),归档文件总的大小(超过限制,就会删除老的归档)*/
alter database add archivelog 'type=local,dest=/dm/data/DAMENG1/arch,file_size=64,space_limit=10240';
alter database open;/*将数据库状态设置为open*/

7.3.2 查看归档相关信息

select arch_mode from v$database;/*查询归档状态*/
select * from SYS."V$ARCH_FILE"; /*查看归档文件*/
select * from v$dm_arch_ini; /*查询归档配置*/

DM数据库的一些实操总结_第39张图片DM数据库的一些实操总结_第40张图片

 7.3.3 关闭归档

        关闭归档的过程与开启类似。

alter database mount;
alter database noarchivelog;/*转为非归档模式,即关闭归档*/
alter database delete archivelog 'type=local,dest=/dm8/arch'; /*删除归档文件*/
alter database open;

8、用户管理

8.1 用户类型

        系统预定义的用户有:
                SYS:内置用户,不能直接登陆
                SYSDBA:系统管理员,拥有DBA角色
                SYSAUDITOR:系统审计管理员
                SYSSSO:系统安全管理员
                SYSDBO:系统安全操作员(DM安全版才有的用户)

8.2 命令行方式

8.2.1 创建用户

create user 用户名 identified by 密码 default tablespace 表空间名;
create user tester identified by "Dmeng123" default tablespace Mytbs /*示例*/

        在设置用户密码前,应当先知晓当前数据库的口令策略。口令策略,即对密码的限制,如长度要求、大小写要求等,参数名为PWD_POLICY:

        PWD_POLICY参数值对应的含义具体如下:

策略
0 无限制,但总长度不得超过 48 个字节
1 禁止与用户名相同
2 口令长度需大于等于 PWD_MIN_LEN 设置的值
4 至少包含一个大写字母(A-Z)
8 至少包含一个数字(0-9)
16 至少包含一个标点符号(英文输入法状态下,除―和空格外的所有符号

        参数值也可以设为其他数,表示上述几个数的组合相加,比如值为7=1+2+4,表示同时应用1、2、4策略。

8.2.2 用户管理

        使用alter user修改用户限制、锁定解锁等。

/*将密码输错锁定次数改为5次,锁定时间为5分钟,最大连接数为3*/
alter user tester limit FAILED_LOGIN_ATTEMPS 5,PASSWORD_LOCK_TIME 5,SESSION_PER_USER 3;
/*手动锁定用户*/
alter user tester account lock;
/*手动解锁用户*/
alter user tester account unlock;

8.2.3 查看用户信息

        使用dba_users可以查看用户信息。

DM数据库的一些实操总结_第41张图片

 8.3 客户端操作

        在manager客户端的“对象导航”栏,点击“用户”,即可查看当前所有的数据库用户,也可以进行用户的创建、修改操作。
DM数据库的一些实操总结_第42张图片DM数据库的一些实操总结_第43张图片

         在新建用户窗口,可以输入用户名、密码、等信息,(注:DM安全版本才能对某一用户设置口令策略。),也可以指定所属角色,赋予系统权限、对象权限等。
 

DM数据库的一些实操总结_第44张图片

DM数据库的一些实操总结_第45张图片

8.3 权限管理

        如果想要手动赋予用户权限,则需要使用SQL命令授予:

/*授予创建所有表、创建索引、创建视图的系统权限*/
grant CREATE any table to tester with admin option;/*with admin option表示允许系统权限转授*/
grant create index to tester;
grant create view to tester;

        注:如果授予了删除或者修改的权限,却没有授予查询的权限,会报错。

        授予对象权限的示例如下:

grant select on sysdba.t_test to role1 with grant option;/*先授予查询权限,with grant option 表示允许转授*/
grant update on sysdba.t_test to role1;/*再授予更新权限*/

        回收权限如下,如果赋予了转授的权限,则后面需要加cascade,表示级联回收:

revoke 角色名 from 用户名;
revoke role1 from dmtest;/*示例*/

revoke 具体权限 from 用户名;
revoke create table from dmtest;/*示例*/

9、模式对象管理

  • 模式是一个特定的对象集合,在概念上可将其看作是包含表、视图、索引等若干对象的对象集合。
  • 模式对象: 可以是表、视图、约束、索引、序列、触发器、存储过程/函数、包、同义词、类、域等。
  • 模式与用户的关系:当系统建立一个用户时,会自动生成一个对应的模式,用户和模式是一对多的关系(Oracle是一对一)

9.1 创建模式

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

/*授予用户创建模式权限*/
grant create schema to 用户名;

/*创建模式,注:如果是disql工具下运行,在需要在空行输入/再回车。*/
create schema 模式名 authorization 用户名;
/

9.2 查看用户当前模式

        1、查看系统中所有模式:

select * from SYS.SYSOBJECTS t where t."TYPE$" ='SCH';

DM数据库的一些实操总结_第46张图片

        2、查看模式与所属用户:

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;

DM数据库的一些实操总结_第47张图片

         3、查看当前模式:

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

        4、查询当前用户也可以用上面的方法:

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

9.3 切换模式

        所有的切换模式只对当前会话生效 ,没有办法可以使得永久生效,也就是说,没有办法设置为默认模式(默认为同名模式)。

/*切换模式*/
set schema 模式名;

 9.4 删除模式

        用户默认模式不能删除,模式下有对象时不能直接删除(可以增加 cascade 级联删除用户模 式及模式下对象,生产环境慎用 cascade,防治误删)

drop schema DMTES01 CASCADE;

10、表管理

        注:DM的表名是区分大小写的,使用的时候要注意。DM 中的表默认是索引组织表。Oracle 默认是堆表。

10.1 表创建

        创建表是最基本的要求,这里就省略了。可以说明一下表的复制,有时候需要将查询的结果创建成表,便于以后使用。

create table T2_cp as select * from T2 where c1=0;
create table T2_cp as select * from T2;
create table T2_cp like T2;

10.2 查看表信息

        相关的数据字典有dba_tables、DBA_tab_COLUMNS等。

select * from dba_tables t where t.OWNER = 用户名;/*查看用户所有的表*/
select * from DBA_tab_COLUMNS t where t.OWNER = 用户名;/*查看用户的表的所有列*/

10.3 约束管理

10.3.1 约束的类型

        NOT NULL:非空
        UNIQUE:唯一。可以简写为uk。
        PRIMARY KEY:一个表只能由一个主键,主键唯一且非空,一张表只能有一个。可以简写为pk
        FOREIGN KEY:外键引用另一张表的主键或者唯一键。可以简写为fk。
        CHECK:数据检验。可以简写为ck。

        在添加完整性约束的时候,可以将约束名命名为约束简写_表名_字段名。

10.3.2 添加约束

        完整性约束的添加可以在定义表的时候添加,如果需要后面再添加可以使用alter system语句。

/*将pname设置为非空*/
alter table test modify pname not null;
/*将pid设置为主键*/
alter table test ADD CONSTRAINT pk_test_pid PRIMARY KEY(pid);
/*将email设置为unique*/
alter table test ADD CONSTRAINT uk_test_email UNIQUE (email);
/*增加列salary。类型为int*/
alter table DMTEST.T_TESTPID add salary int;
/*添加自定义约束,规定salary不能小于3000*/
alter table dmtest.t_testpid ADD CONSTRAINT ck_testpid_salary 
CHECK(salary>3000)

10.3.3 禁用和启用约束

        禁用与启用约束语句如下。

alter table 模式名.表名 disable constraint 约束名;/*禁用约束*/
alter table 模式名.表名 enable constraint 约束名;/*启用约束*/

10.4 索引

        关于索引,之前的文章有较为详细的描述。这里省略建立等过程 。这里仅作补充。

        索引的重建:

alter index idx REBUILD ONLINE;

        索引的监控:

alter index ind MONITORING USAGE;/*索引的监控*/
alter index ind NOMONITORING USAGE; /*取消索引的监控*/

        对启用监控的对象,可以在V$OBJECT_USAGE中查看信息:

select * from SYS."V$OBJECT_USAGE"

        与索引相关的数据字典有dba_INDEXES、DBA_IND_COLUMNS。

DM数据库的一些实操总结_第48张图片

DM数据库的一些实操总结_第49张图片

11、数据字典和动态性能视图

  • DM中以SYS开头的表是数据字典表。具体可以分为几类。
    • USER_*:表示用户所拥有的对象信息。
    • ALL_*:用户所能访问的对象信息。
    • DBA_*:整个数据库的对象信息。
  • 动态性能视图:V$开头的视图,内存里的数据或控制文件里的数据以表的形式展现出来,它们实际都是虚拟表。这里仅例举几个展示。
    • 缓冲池动态性能表(V$BUFFERPOOL),用来记录除循环使用缓冲池外的缓冲池控制页结构的信息
    • 显示表空间和数据文件信息:V$TABLESPACE、V$DATAFILE
    • 显示当前进程和线程信息 V$PROCESS、V$THREADS
    • 会话:v$sessions 等待和锁:v$trxwait、v$lock

12、备份还原

        关于备份还原,在之前关于备份还原的文章也有较为详细的阐述。这里仅作强调与补充。

  • 联机进行数据库备份还原必须先配置归档。
  • DMRMAN提供的是脱机库级与归档的备份还原。
  • 使用manager、disql备份进行库备份、表空间备份、归档备份必须开启归档。表备份可以不用。
  • CONSOLE提供脱机库备份与归档备份。
  • DM仅支持表的联机还原,库级、表空间、归档还原需要脱机执行。
  • 还原后,需要进行恢复与更新。

12、作业管理

12.1 创建代理环境

        在manager中,右键“代理”,点击“创建代理环境”,创建成功后,会增加SYSJOB模式。

DM数据库的一些实操总结_第50张图片

        右键“作业”,选择“新建作业”,弹出新建作业的窗口。

DM数据库的一些实操总结_第51张图片

         点击“作业步骤”——“添加”,进入添加作业窗口,在这里,可以对添加的作业进行调度。

DM数据库的一些实操总结_第52张图片

 DM数据库的一些实操总结_第53张图片

        回到新建作业窗口,点击作业调度,选择新建,即可弹出作业调度窗口。

DM数据库的一些实操总结_第54张图片

DM数据库的一些实操总结_第55张图片

 13、ODBC配置

  • 进入root用户,解压ODBC的tar包:
    tar -zxvf unixODBC-2.3.0.tar.gz
    
  • 进入到ODBC目录下,进行源码安装:
    cd unixODBC-2.3.0
    ./configure
    make
    make install
  • 修改配置文件
    cd /usr/local/etc/
    vim odbc.ini
     # 按以下要求改:
    [DM]
    Description = DM ODBC DSN
    Driver = DM8 ODBC DRIVER # 要和下面对应
    SERVER = localhost
    UID = SYSDBA
    PWD = SYSDBA
    TCP_PORT = 5236
    
    vim odbcinst.ini
    #按以下改
    [DM8 ODBC DRIVER] # 这块要和上边对应
    Drscription = ODBC DRIVER FOR DM8
    Driver = /dm/bin/libdodbc.so # 与安装目录对应
  • 切换到dmdba用户,测试数据源,完成:
    odbcinst -j
    isql dm8 -v

 关于更多DM数据库信息请咨询DM社区文档: 达梦数据库 - 新一代大型通用关系型数据库 | 达梦在线服务平台

你可能感兴趣的:(linux,服务器,dba)