注册
DCA学习与心得总结
专栏/培训园地/ 文章详情 /

DCA学习与心得总结

白柏子 2024/09/23 420 0 0
摘要

DCA学习与心得总结

​ 本篇从数据库安装开始学习DCA考试,讲解DCA考试涉及的知识

数据库安装前准备

收集安装环境

  • 查看系统信息

    ##查看操作系统及内核版本信息 cat /proc/version uname -r
  • 查看CPU信息

    ##查看CCPU相关信息 lscpu 或者 cat /proc/cpuinfo
  • 查看内存

    free -m 或 cat /proc/meminfo
  • 查看磁盘空间

    df -h ##可以指定空间查看 df -h /tmp
  • 查看Gibc、gcc版本

    安装DM glibc版本不能低于2.3,linux内核不能低于2.6

    ##查看glibc版本信息 rpm -qa|grep glibc 或者 ldd --version
    ##查看gcc版本 rpm -qa|grep gcc 或 gcc --version

安装规划

  • 安装的相关路径:

    • 软件安装路径:/dm8
    • 数据库实例创建路径:/dm8/data
    • 归档日志文件存储路径:/dm8/arch
  • 规划安装用户和用户组

    安装数据库时不推荐使用root权限,需要单独开一个用户进行安装

    ##创建用户组 [root@192 opt]# groupadd dinstall ##创建用户dmdba,指定用户组为dinstall,指定根目录为/home/dmdba,指定默认打开位置为/bin/bash [root@192 opt]# useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba ##更换dmdba用户的密码 passwd dmdba
  • 规划安装路径

    创建安装目录/dm8,并将其所属组改为dmdba和所在组

    ##创建安装目录 [root@192 opt]# mkdir -p /dm8 ##修改目录的所属组 [root@192 opt]# chown dmdba:dinstall /dm8 ##查看/dm8的所属组 [root@192 opt]# ls -ld /dm8

挂载iso镜像

  • 使用mount命令将ISO镜像挂载到/mnt文件中

    ##挂载镜像 [root@192 opt]# mount -o loop dm8_20240408_X86_rh7_64.iso /mnt ##切换到dmdba用户,到/mnt目录下查看挂载情况 [root@192 opt]# su dmdba [dmdba@192 opt]$ cd /mnt

安装数据库

命令行安装

  • 进入到挂载的目录里面,执行命令进行数据库安装,根据情况进行选择

    ./DMInstall.bin -i
    • 报错:安装程序临时目录(/tmp)可用空间位468M。安装程序需要至少2G的临时空间,请调整临时目录的空间或设置环境变量DM_INSTALL_TMPDIR来指定安装程序的临时目录

      10.png

      • 原因:系统的临时空间/tmp太小了,不足以支撑安装程序运行
      • 解决方法:在系统其他地方建立一个临时的安装目录,将环境变量DM_INSTALL_TMPDIR指向它即可

      11.png

图像化安装

  • 先在root用户下进行图像化的授权

    [root@192 opt]# xhost +
    • 如果这里报错xhost:unable to open display ":0.0",说明是xhost服务器没有启动,需要将服务器先启动

      12.png

    • 启动xhost服务:startx 启动之后会重新加载操作系统

  • 授权成功后查看DISPLAY变量值,然后切换到dmdba用户,配置dmdba用户的DISPLAY变量为root下看的值

    ##在root权限下查看DISPLAY变量值 [root@192 桌面]# echo $DISPLAY ##切换到dmdba用户,配置dmdba用户的DISPLAY变量 [root@192 桌面]# su dmdba [dmdba@192 桌面]$ export DISPLAY=:1.0

    image-20240904154747959

  • 到挂载目录下,执行命令进行图形化安装

    [dmdba@192 桌面]$ ./DMInstall.bin
    • 根据具体情况修改安装路径等
    • 最后要在root用户下执行相关命令

创建数据库实例

使用dbca工具创建

  • 切换到数据库安装目录下的tool目录,启用dbca工具

    ##切换到tool目录 [dmdba@192 桌面]$ cd /dm8/tool ##使用dbca工具 [dmdba@192 桌面]$ ./dbca.sh

    注意:

    使用dbca工具创建数据库实例是要先授权图形化的

  • 进入后根据要求填写选择对应的参数和文件路径,主要注意的地方:实例目录、数据库名、实例名、端口、簇大小、页大小、日志文件大小、字符集、管理员口令

使用dminit命令行创建

  • 切换到数据库安装的bin目录下,使用dminit进行命令行安装

    ##切换到bin目录 cd /dm8/bin #初始化数据库 ./dminit path=/dm8/data db_name=DMTEST instance_name=DMTEST port_num=5236 page_size=16 log_size=500 SYSDBA_PWD=Dameng123
    • 当出现success时,说明创建成功

    注意:

    使用命令行进行数据库实例创建时不会自动注册数据库服务,不能以服务方式启动数据库,所以需要注册数据库服务以此方便后续操作

注册服务器

使用DM数据库配置助手注册数据库服务

  • 在数据库的tool目录下执行./dbca启动配置助手

    注:

    这里同样需要进行图形化授权,所以如果启动不了,可以参考前面图形化安装上的授权过程

  • 选择注册数据库服务,进入窗口填写相关的路径和参数

    • 一般来说将配置文件选择好了,后面的参数都会根据配置文件上的参数修改
  • 点击完成后会出现弹窗,使用root权限执行对应的脚本命令

    • 完成后就成功注册号数据库服务

root执行注册脚本

  • 到目录/$DM_HOME/script/root下,执行脚本进行服务注册

    ##进入到对应目录 cd $DM_HOME/script/root ##执行脚本 [root@192 root]# ./dm_service_installer.sh -t dmserver -p DMTESTSVR -dm_ini /dm8/data/TEST/dm.ini
  • 此时已经注册好服务,在启动服务之后数据库就会跟着启动了

    ##启动服务 [dmdba@192 bin]$ ./DmServiceDMTESTSVR start

数据库连接使用

数据库连接

使用图形化工具manager

  • 切换到数据库安装下的tool目录中,启动manager工具

    [dmdba@192 bin]$ cd $DM_HOME/tool ##启动工具 [dmdba@192 bin]$ ./manager
  • 点击新建连接,输入数据库对应的端口、账号密码等即可连接数据库

使用disql命令行连接

  • 切换到bin目录下,使用disql工具进行命令行连接

    [dmdba@192 tool]$ cd $DM_HOME/bin ##使用disql进行连接 连接示例:./disql 用户名/密码@IP:端口 [dmdba@192 tool]$ ./disql SYSDBA/Dameng123
    • 如果是本地连接,并且端口是默认的5236,就可以省略@后面的IP:端口

数据库基本信息

数据库参数类型

  • DM数据库的参数分为<font color='red'>静态参数</font>和<font color='red'>动态参数</font>两种类型,再具体细分可以分为四种:READ ONLY、SYS、SESSION、IN FILE。

    ##查看数据库参数 SQL> select distinct para_type from v$dm_ini;
    • READ ONLY::手动参数,不能通过SQL命令或函数修改;只能通过修改dm.ini文本文件修改此参数。

      • 需要重启数据库才能生效
    • SYS:动态(系统级)参数。数据库运行中可以直接修改,既可以修改内存中的值,也可以修改参数文件中的值。可以通过SQL命令或系统函数修改。

    • SESSION:动态(会话级)参数,数据库运行中可以直接修改,既可以修改内存中的值,也可以修改参数文件中的值,还可以只修改当前会话的值。可以通过SQL命令或函数修改,且可以只针对当前会话生效。

    • IN FILE:静态参数,不能修改内存中的值,只能修改参数文件中的值,可以通过SQL命令或函数修改。

      • 需要重启数据库才能生效

        注:

        静态参数在数据库运行期间不能修改内存中的值,动态参数在数据库运行期间可以修改内存 中的值(修改后立即生效)

  • 修改方式:
    1. console控制台工具

      • 图形化界面方式修改,无论修改了什么类型的参数都需要重启服务器才能生效

        • 因为修改的是dm.ini配置文件的参数,重启服务器重新加载dm.ini文件才能生效
    2. 直接修改dm.ini配置文件

      • 可以使用vi命令编辑dm.ini配置文件,直接修改参数,同样,无论修改了什么类型的参数都需要重启服务器才能生效
    3. 系统函数修改

      • 可以用来修改静态和动态参数,静态参数只能修改配置文件中的值(修改后需要重启数据库才能生效),动态参数即可以修改内存中的值(修改成功后即生效),也可以修改参数文件的值。

        SQL> select distinct name from v$ifun t where name like 'SP_SET%PARA%';

        image-20240909150150335

        • SP_SET_PARA_VALUE:修改整型参数
        • SP_SET_PARA_DOUBLE_VALUE:修改浮点型参数:比如 UNDO_RETENTION
        • SP_SET_PARA_STRING_VALUE:修改字符型参数
    4. 使用SQL语句alter system set命令修改

      • 可以用来修改静态和动态参数,静态参数只能修改配置文件中的值(修改后需重启数据库才能生效),动态参数即可以修改内存中的值(修改成功后即生效),也可以修改参数文件的值。

      • 如:修改数据库可以兼容Oracle

        alter system set 'COMPATIBLE_MODE'=2 spfile;
        • COMPATIBLE_MODE作为静态参数,修改后不会立即生效,需要重启服务器才行

数据缓冲区(涉及修改相关参数等)

  • 用于缓存数据文件中的数据页。BUFFER是从磁盘读出的数据页在内存中的镜像,包含四个类型,分别是normal、fast、recycle、keep,由INI配置中的BUFFER、FAST_POOL_PAGES、RECYCLE、KEEP等确定大小

    select * from SYS."V$PARAMETER" t where name in ('BUFFER','FAST_POOL_PAGES','RECYCLE','KEEP');
  • 考试中涉及最多的是修改数据缓存区的大小,一般是修改Normal区的大小,参数对应为BUFFER,可以在dm.ini配置文件修改,也可以使用SQL语句进行修改

    alter system set 'BUFFER'=500 spfile

    46.png

表空间管理

表空间类型

  • 表空间是DM数据库的最大逻辑存储单元,表中的数据在逻辑上都是存放在表空间中,在物理上存放在表空间对应的物理数据文件。表空间由数据文件组成,表空间采用段、簇、页的方式进行管理。

  • DM数据默认设定有五个表空间:SYSTEM、ROLL、MAIN、TEMP、HMAN(新版本已经取消了)

    • SYSTEM:系统表空间,存放数据字典信息,包含表定义、视图定义、用户权限等。SYSTEM表空间对应的数据文件自动扩展属性不允许关闭。

      • 如果SYSTEM表空间丢失,则数据库起不来

      47.png

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

    • MAIN:用户默认表空间,创建用户时,如果没有指定表空间,则作为该用户的默认表空间

    • TEMP:临时表空间,存放临时表数据、临时结果集等,大量数据排序或创建索引等都会占用TEMP表空间

      • TEMP表空间修改大小不能使用manager工具,重启数据库后会回滚。只能使用SQL语句进行修改,并且要重启数据库

        alter system set 'TEMP_SIZE'=100 spfile;
    • HMAN:HUGE表(列存储表)的默认空间

SQL管理表空间

  • 创建表空间
    • 使用create tablespace语句创建表空间

      create tablespace TBS DATAFILE '/dm8/data/TEST/TEST01.DBF' size 64;
      • 数据文件大小不能低于页大小的4090倍,如果低于最小值就报错,无法创建成功
  • 表空间重命名
    • DM数据库默认预定的五个表空间不能重命名,支持自定义表空间的重命名

      alter tablespace TBS RENAME TO dmtbs;
  • 删除表空间
    • 默认预定的表空间无法删除,且只能删除空的表空间

      drop tablespace dmtbs;
  • 使用manager图形化工具创建表空间
    • 使用图形化创建就非常方便

      51.png

  • 修改表空间
    • 向表空间添加数据文件,并开启自动扩容:

      alter tablespace TBS add DATAFILE '/dm8/data/TEST/TEST02.DBF' size 64 AUTOEXTEND on NEXT 1 MAXSIZE 10240;
    • 修改表空间数据文件的扩展属性:

      ##开启自动扩展,每次扩展1M,最大扩容为1G alter tablespace TBS DATAFILE '/dm8/data/TEST/TEST01.DBF' AUTOEXTEND on NEXT 1 MAXSIZE 10240; ##关闭自动扩展 alter tablespace TBS DATAFILE '/dm8/data/TEST/TEST01.DBF' AUTOEXTEND off;
    • 修改表空间文件大小:

      alter tablespace TBS RSIZE DATAFILE '/dm8/data/TEST/TEST01.DBF' TO 128;
  • 迁移自定义表空间数据文件
    • 自定义表空间的数据文件可以在脱机情况下迁移

      ##将表空间脱机 alter tablespace TBS offline; ##迁移表空间数据文件 alter tablespace TBS DATAFILE '/dm8/data/TEST/TEST01.DBF' TO '/dm8/data/DAMENG/TEST01.DBF'; alter tablespace TBS DATAFILE '/dm8/data/TEST/TEST02.DBF' TO '/dm8/data/DAMENG/TEST02.DBF'; ##启动表空间 alter tablespace TBS online;
    • 使用manager工具进行操作

      52.png

管理重做日志文件

  • 重做日志文件包含联机日志文件和归档日志文件(数据库在归档模式下才会产生归档日志文件

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

  • 查询日志文件

    select * from v$rlogfile; select * from v$rlog;
    • 联机日志一般是为两个,两个日志不断写入、刷新,循环使用
  • 修改联机日志文件大小

    alter database RESIZE LOGSIZE '/dm8/data/TEST/TEST01.log' TO 300; alter database RESIZE LOGSIZE '/dm8/data/TEST/TEST02.log' TO 300;
  • 增加联机日志文件

    alter database add LOGSIZE '/dm8/data/TEST/TEST03.log' SIZE 300;
  • 修改联机日志文件路径

    ##先将数据库切换为mount模式 alter database mount; ##修改日志文件路径 alert database RENAME LOGFILE '/dm8/data/TEST/TEST01.log' TO '/dm8/data/REDO/TEST01.log'; alert database RENAME LOGFILE '/dm8/data/TEST/TEST02.log' TO '/dm8/data/REDO/TEST02.log'; alert database RENAME LOGFILE '/dm8/data/TEST/TEST03.log' TO '/dm8/data/REDO/TEST03.log'; ##将数据库切换到open模式 alter database open;
  • 使用manager图形化工具修改

    • 右键服务器,点击【管理服务器】

      54.png

归档管理

​ 归档是对重做 REDO 日志的归档。归档的目的是使数据库故障时可以恢复到故障的前一刻(完全恢复),或者恢复到指定的时间点或指定LSN(Log Sequence Number)(不完全恢复)。

​ 默认情况下,DM数据库运行在非归档模式下

  • 查看是否开启归档
    ##是否开启归档 select arch_mode from v$database; ##查看归档配置 select * from SYS."V$DM_ARCH_INI";
  • 归档管理
    • SQL开启归档

      ##将数据库切换到mount状态,这样才能调整归档 alter database mount; ##开启归档,指定为本地归档、归档路径、文件大小以及最大值 alter database ARCHIVELOG; alter database ADD ARCHIVELOG 'type=local,dest=/dm8/arch,file_size=64,space_limit=10240'; ##再切换回open状态 alter database open;
      • 修改归档配置

        alter database modify archivelog 'type=local,dest=/dm8/arch,SPACE_LIMIT=20480';
      • 关闭归档

        ##同样先切换到mount状态才能操作 alter database mount; ##关闭归档,并删除配置好的归档文件 alter database noarchivelog; alter database delete archivelog 'type=local,dest=/dm8/arch'; ##切换回open状态 alter database open;
    • manager图形化工具管理归档

      • 右键服务器,点击【管理服务器】进入界面,先找到系统配置,将数据库置位mount状态

      • 在从归档配置中打开归档,配置归档文件的路径、大小,空间限制

        57.png

      • 归档配置完了再切回open状态

    • 修改配置文件的方式

      • 先修改配置文件dm.ini的参数

        ##0--关闭,1--开启 ARCH_INI = 1 #dmarch.ini
      • 再编写dmrach.ini归档配置文件

        ##在数据库实例的目录下,编写dmarch.ini文件 [dmdba@192 TEST]$ vim dmarch.ini ##内容: ARCH_WAIT_APPLY = 0 [ARCHIVE_LOCAL1] ARCH_TYPE = LOCAL ARCH_DEST = /dm8/arch ARCH_FILE_SIZE = 64 ARCH_SPACE_LIMIT = 10240 ARCH_FLUSH_BUF_SIZE = 0

用户管理

用户类型

  • DM普通版本三权分立,安全版本四权分立
    • SYS:系统内置用户,不允许登录。常用的数据字典表信息在该用户下。
    • SYSDBA:系统管理员,拥有几乎所有权限(除数据库审计和强制访问控制之外的权限)
    • SYSAUDITOR:系统审计管理员,具有审计相关权限。
    • SYSSSO:系统安全管理员,具有强制访问控制等权限;
    • SYSDBO:安全版本才有的用户,安全对象操作员。

系统口令策略

  • DM数据库使用参数“PWD_POLICY”指定系统的口令策略,<font color='red'>隐含参数,不在dm.ini中,需要使用SQL命令修改</font>,默认为2

  • 系统支持的口令策略:

    • 0 无策略
    • 1 禁止与用户名相同
    • 2 口令长度需大于等于 INI 参数 PWD_MIN_LEN (默认为9)设置的值
    • 4 至少包含一个大写字母(A-Z)
    • 8 至少包含一个数字(0-9)
    • 16 至少包含一个标点符号(英文输入法状态下,除“和空格外的所有符号)

    口令策略可单独应用,也可组合应用。组合应用时,如需要应用策略2和4,则设置口令策略为2+4=6即可

  • SQL语句管理口令策略

    ##查询口令策略情况 select * from v$parameter t where t.name='PWD_POLICY'; ##修改系统口令策略(这里就是1+2+4,三种组合) alter SYSTEM set 'PWD_POLICY'=7 BOTH;

SQL管理用户

  • 创建用户

    ##用户名为hr,密码为Dameng123,默认表空间为TBSTEST create user hr IDENTIFIED by Dameng123 DEAFAULT TABLESPACE TBSTEST;
  • 用户锁定和解锁

    ##用户解锁 alter user hr ACCUONT UNLOCK; ##用户锁定 alter user hr ACCOUNT LOCK;
  • 修改用户默认表空间

    alter user hr DEAFAULT TABLESPACE dmtbs;
  • 修改用户密码

    alter user hr IDENTIFIED by "Dameng@123";
  • 删除用户

    ##单独删除 drop user if EXISTS hr; ##级联删除用户及用户下的对象信息 drop user if EXISTS hr CASCADE;
  • 图形化管理用户

    • 点击【新建】,选择下面的用户,进入到创建页面

      60.png

用户资源限制

  • 可以使用limit子句,也可以使用profile管理资源限制

    ##使用limit子句 ##限制hr用户登录失败次数为5次,密码锁定时间为3分钟 alter user hr limit FAILED_LOGIN_ATTEMPS 5,PASSWORD_LOCK_TIME 3; ##使用profile管理 ##查询数据库中的资源情况 select * from DBA_PROFILES; ##创建资源限制profile1,限制用户登录失败次数为5次,密码锁定时间为3分钟,密码存活时间为180create profile profile1 limit FAILED_LOGIN_ATTEMPS 5,PASSWORD_LOCK_TIME 3,PASSWORD_LIFE_TIME 180; ##将资源限制运用到hr用户上 alter user hr PROFILE profile1;
  • 图形化界面资源管理

    • 右键需要修改限制的用户,点击【修改】,找到资源设置项,里面就可以进行限制

      63.png

角色管理

  • 角色是权限的集合,角色使权限管理更加方便

    • DBA:具有几乎所有权限(除审计和强制访问控制之外),默认赋给SYSDBA用户。
    • PUBLIC:具有对当前模式下对象的DML数据操作权限。
    • RESOURCE:具有在当前模式下对象定义权限(创建表、索引、视图等);
    • SOI:具有查询sys开头系统表的权限;
    • VTI:具有查询v $$开头的动态视图权限(动态视图记录在v$dynamic_tables,如果没有此权限,DM管理工具上会报没有查询v$视图权限)
    • DB_AUDIT_ 开头的角色是审计相关角色,具有审计相关权限,默认赋给SYSAUDITOR。
    • DB_POLICY_开头的角色是安全相关角色,具有强制访问控制等权限,默认赋给 SYSSSO。
  • SQL语句管理

    ##查询数据库中的角色 select * from dba_roles; ##创建角色,并赋予其权限 create role r1; grant create table to r1; grant select hr.department to r1; ##将角色的权限赋予给用户,使用户拥有其权限 grant r1 to dmtest;

模式对象管理

模式与用户之间的关系

  • 模式定义:模式是一个特定的对象集合,在概念上可将其看作是包含表、视图、索引等若干对象的对象集
  • 模式对象: 表、视图、约束、索引、序列、触发器、存储过程/函数、包、同 义词、类、域
  • 模式与用户之间的关系:当系统建立一个用户时,会自动生成一个同名的模式
    • 用户还可以建立其他模式,DM中用户和模式是一对多的关系,一个用户可以拥有多个模式,一个模式仅能归属于一个用户

模式管理

  • 创建模式

    create schema hrtest1 AUTHORIZATION HR; ##在模式hrtest1中创建表 create table hrtest1.t_test(id int,name varchar(20));
  • 查看当前模式

    select sys_context('USERENV','CURRENT_SCHEMA');
  • 切换模式

    set SCHEMA dmhr;
    • 慎用,容易把人给弄晕,仅当前会话有用
  • 删除模式

    drop schema if EXISTS hrtest1;
    

管理表

表是区分大小写的

SQL管理表

  • 创建表

    create table hr.test( pid int, pname varchar(20), sex bit, longtime datetime ) TABLESPACE TBS;
    • 也可以使用as来复制表结构

      create table t_emp as select * from hr.test;
      • 注意:复制表时,不会复制表的约束信息
  • 字段操作

    ##添加字段 alter table hr.test add column email varchar(30); ##修改字段 alter table hr.test modify email varchar(50); ##删除字段 alter table hr.test drop longtime; ##对字段添加默认值 alter table hr.test add column longtime datetime default sysdate; ##重命名表或字段 alter table hr.test rename to hr.t_test; alter table hr.t_test rename column pid to id;
  • 对表和字段添加注释

    comment on column t_test.sex is 'sex.0:female 1:male'; comment on table t_test is 'this is a test table';
  • 修改表的表空间

    alter table hrtest.t_test move tablespace main;

约束

  • 约束类型:

    • NOT NULL:非空约束
    • UNIQUE:唯一约束,列值可以为空,但值必须唯一
    • PRIMARY KEY:主键约束 (唯一约束+非空约束),一张表只能有一个主键
    • FOREIGN KEY:外键约束,引用另一张表的主键或者唯一键(有唯一索引),表A的某一 列引用B表某个唯一列,B称为父表、A称为子表
    • CHECK:检验约束,用于检验列的值需要满足检验条件
  • SQL管理约束

    • 添加约束

      ##添加主键约束 alter table hr.t_test add CONSTRAINT pk_testid_id PRIMARY KEY(id); ##添加外键,REFERENCES里面的是另一个表的主键 alter table hr.t_test add CONSTRAINT fk_test_id FOREIGN KEY(id) REFERENCES hr.test(pid); ##添加校验约束 alter table hr.t_test add CONSTRAINT ck_test_salary CHECK (salary>=2100);
    • 重命名外键

      alter table hr.t_test RENAME CONSTRAINT pk_testid_id to pk_test_id;
    • 约束禁用、启用和删除

      ##约束禁用 alter table hr.t_test disable CONSTRAINT pk_test_id; ##约束启用 alter table hr.t_test enable CONSTRAINT pk_test_id; ##约束删除 alter table hr.t_test drop CONSTRAINT pk_test_id;

索引

  • SQL管理索引

    • 创建索引

      create index ix_emp01_employeename ON HRTEST.T_EMP01(EMPLOYEE_NAME); ##查看索引的结构 explain select * from hrtest.t_emp01 t where T.EMPLOYEE_NAME = '马学铭';
    • 删除索引

      drop index HRTEST.ix_emp01_employeename;

视图

  • 创建视图

    create view hr.v_emp as select a.DEPARTMENT_ID AS "部门编号",a.DEPARTMENT_NAME AS "部门名称",b.SALARY AS "部门总薪资" from HR.DEPARTMENT a,(SELECT DEPARTMENT_ID,sum(SALARY) AS SALARY FROM HR.EMPLOYEE GROUP BY DEPARTMENT_ID HAVING sum(SALARY)>8000) b where a.DEPARTMENT_ID=b.DEPARTMENT_ID;

数据字典与动态性能视图

数据字典

##系统中所有对象的信息 SELECT * FROM SYSOBJECTS; ##系统中所有索引定义信息 SELECT * FROM SYSINDEXES; ##系统中所有列定义的信息 SELECT * FROM SYSCOLUMNS select * from sysstats; select * from SYSOBJECTS t where id = 1058; select * from SYSCONS;

动态性能视图

##查看数据缓冲区 SELECT * FROM V$BUFFERpool; SELECT * FROM V$mem_pool ##显示数据文件、表空间信息 SELECT * FROM V$DATAFILE; SELECT * FROM V$tablespace; ##显示当前进程、线程信息 SELECT * FROM V$PROCESS; SELECT * FROM V$threads;

数据库备份还原

逻辑导出

  • 全库导出

    ./dexp userid=sysdba/SYSDBA:5238 directory=/dm8/backup/dexp file=full.dmp log=full.log full=y
  • 按用户导出

    ./dexp userid=sysdba/SYSDBA:5238 directory=/dm8/backup/dexp file=dmtest.dmp log=dmtest.log owner=dmtest
  • 导入SQL文件

    • 使用disql命令行

      SQL> start /opt/scritp.sql
    • 使用图形化工具

      `/opt/script.sql; commit;
      • 一定要记得提交!!

物理导出

  • 联机备份

    • 命令行方式

      # 全库备份到默认路径下 backup database # 全库备份到指定路径下(备份目录不带文件名) backup database full backupset '备份目录'; # 基于基础备份集的增量备份,并备份到指定目录 backup database increment to incrbak01 backupset '/dm8/backup/incr/incrbak01';

      ​ 基于默认备份集、指定备份集、增量备份目录下三个目录交集的最新的备份集,来进行增量备份

ODBC配置

  • 解压ODBC(在root用户下执行)

    tar -xvf /opt/unixODBC-2.3.0.tar.gz
  • 进入到odbc目录进行源码安装

    cd unixODBC-2.3.0 ./configure make && make install
  • 修改配置文件

    ##进入到配置文件对应目录 cd /usr/local/etc ##配置odbc.ini文件 vim odbc.ini ##内容: [DM8] Description = DM ODBC DSN Driver = DM8 ODBC DRIVER # 要和下面对应 SERVER = localhost UID = SYSDBA PWD = SYSDBA TCP_PORT = 5236 ##配置odbcinst.ini文件 vim odbcinst.ini ##内容: [DM8 ODBC DRIVER] # 这块要和上边对应 Drscription = ODBC DRIVER FOR DM8 Driver = /dm8/bin/libdodbc.so
  • 配置环境变量

    ##编辑环境变量所在文件 vim ~/.bashrc ##添加内容: export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/dm8/bin:/dm8/drivers/odbc
  • 切换至dmdba用户,进行登录验证

    su -dmdba isql dm8 -v

心得总结

  • 本次的DCA考试是我学习DM数据库的一次考核,是帮助我发现自己在使用过程中哪些地方有遗漏。
  • DCA考试前的培训对我来说是一次知识点的补足,从数据库安装到后面的使用、驱动连接等都有细致地讲解,让我从细节上能够更好地把握DM数据库。培训时命令行和图形化操作都有涉及,我使用DM数据库时主要用的是图形化界面,培训无疑是在补足我在命令行使用这方面的操作,对数据库的掌握程度更深一步。
  • 一定要跟着培训讲解的内容进行练习,听了跟做了很不一样,实际操作会爆出一系列错误,这些错误的解决能够在考试中起着作用,节省很多时间。考试过程中一定要细心,可能一个粗心把路径或文件名写错导致后面报错,然后再花大量时间去排查,很不划算。
  • 最后,整个DCA考试就是一次自检,让自己能够真正掌握DM数据库的基本使用。以上就是我在进行DCA培训和考试后的心得总结。
评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服