本篇从数据库安装开始学习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
安装的相关路径:
规划安装用户和用户组
安装数据库时不推荐使用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
使用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来指定安装程序的临时目录
先在root用户下进行图像化的授权
[root@192 opt]# xhost +
如果这里报错xhost:unable to open display ":0.0"
,说明是xhost服务器没有启动,需要将服务器先启动
启动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
到挂载目录下,执行命令进行图形化安装
[dmdba@192 桌面]$ ./DMInstall.bin
切换到数据库安装目录下的tool目录,启用dbca工具
##切换到tool目录
[dmdba@192 桌面]$ cd /dm8/tool
##使用dbca工具
[dmdba@192 桌面]$ ./dbca.sh
注意:
使用dbca工具创建数据库实例是要先授权图形化的
进入后根据要求填写选择对应的参数和文件路径,主要注意的地方:实例目录、数据库名、实例名、端口、簇大小、页大小、日志文件大小、字符集、管理员口令
切换到数据库安装的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
时,说明创建成功注意:
使用命令行进行数据库实例创建时不会自动注册数据库服务,不能以服务方式启动数据库,所以需要注册数据库服务以此方便后续操作
在数据库的tool目录下执行./dbca启动配置助手
注:
这里同样需要进行图形化授权,所以如果启动不了,可以参考前面图形化安装上的授权过程
选择注册数据库服务,进入窗口填写相关的路径和参数
点击完成后会出现弹窗,使用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
切换到数据库安装下的tool目录中,启动manager工具
[dmdba@192 bin]$ cd $DM_HOME/tool
##启动工具
[dmdba@192 bin]$ ./manager
点击新建连接
,输入数据库对应的端口、账号密码等即可连接数据库
切换到bin目录下,使用disql工具进行命令行连接
[dmdba@192 tool]$ cd $DM_HOME/bin
##使用disql进行连接 连接示例:./disql 用户名/密码@IP:端口
[dmdba@192 tool]$ ./disql SYSDBA/Dameng123
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命令或函数修改。
需要重启数据库才能生效
注:
静态参数在数据库运行期间不能修改内存中的值,动态参数在数据库运行期间可以修改内存 中的值(修改后立即生效)
console控制台工具
图形化界面方式修改,无论修改了什么类型的参数都需要重启服务器才能生效
直接修改dm.ini配置文件
系统函数修改
可以用来修改静态和动态参数,静态参数只能修改配置文件中的值(修改后需要重启数据库才能生效),动态参数即可以修改内存中的值(修改成功后即生效),也可以修改参数文件的值。
SQL> select distinct name from v$ifun t where name like 'SP_SET%PARA%';
使用SQL语句alter system set命令修改
可以用来修改静态和动态参数,静态参数只能修改配置文件中的值(修改后需重启数据库才能生效),动态参数即可以修改内存中的值(修改成功后即生效),也可以修改参数文件的值。
如:修改数据库可以兼容Oracle
alter system set 'COMPATIBLE_MODE'=2 spfile;
用于缓存数据文件中的数据页。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
表空间是DM数据库的最大逻辑存储单元,表中的数据在逻辑上都是存放在表空间中,在物理上存放在表空间对应的物理数据文件。表空间由数据文件组成,表空间采用段、簇、页的方式进行管理。
DM数据默认设定有五个表空间:SYSTEM、ROLL、MAIN、TEMP、HMAN(新版本已经取消了)
SYSTEM:系统表空间,存放数据字典信息,包含表定义、视图定义、用户权限等。SYSTEM表空间对应的数据文件自动扩展属性不允许关闭。
ROLL:回滚表空间,存放回滚页、undo信息等,INSERT、UPDATE、DELETE都会产生undo信息
MAIN:用户默认表空间,创建用户时,如果没有指定表空间,则作为该用户的默认表空间
TEMP:临时表空间,存放临时表数据、临时结果集等,大量数据排序或创建索引等都会占用TEMP表空间
TEMP表空间修改大小不能使用manager工具,重启数据库后会回滚。只能使用SQL语句进行修改,并且要重启数据库
alter system set 'TEMP_SIZE'=100 spfile;
HMAN:HUGE表(列存储表)的默认空间
使用create tablespace语句创建表空间
create tablespace TBS DATAFILE '/dm8/data/TEST/TEST01.DBF' size 64;
DM数据库默认预定的五个表空间不能重命名,支持自定义表空间的重命名
alter tablespace TBS RENAME TO dmtbs;
默认预定的表空间无法删除,且只能删除空的表空间
drop tablespace dmtbs;
使用图形化创建就非常方便
向表空间添加数据文件,并开启自动扩容:
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工具进行操作
重做日志文件包含联机日志文件和归档日志文件(数据库在归档模式下才会产生归档日志文件)
重做日志:用于记录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图形化工具修改
右键服务器,点击【管理服务器】
归档是对重做 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状态
在从归档配置中打开归档,配置归档文件的路径、大小,空间限制
归档配置完了再切回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数据库使用参数“PWD_POLICY”指定系统的口令策略,<font color='red'>隐含参数,不在dm.ini中,需要使用SQL命令修改</font>,默认为2
系统支持的口令策略:
口令策略可单独应用,也可组合应用。组合应用时,如需要应用策略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;
创建用户
##用户名为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;
图形化管理用户
点击【新建】,选择下面的用户,进入到创建页面
可以使用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分钟,密码存活时间为180天
create profile profile1 limit FAILED_LOGIN_ATTEMPS 5,PASSWORD_LOCK_TIME 3,PASSWORD_LIFE_TIME 180;
##将资源限制运用到hr用户上
alter user hr PROFILE profile1;
图形化界面资源管理
右键需要修改限制的用户,点击【修改】,找到资源设置项,里面就可以进行限制
角色是权限的集合,角色使权限管理更加方便
SQL语句管理
##查询数据库中的角色
select * from dba_roles;
##创建角色,并赋予其权限
create role r1;
grant create table to r1;
grant select hr.department to r1;
##将角色的权限赋予给用户,使用户拥有其权限
grant r1 to dmtest;
创建模式
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;
表是区分大小写的
创建表
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;
约束类型:
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(在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
文章
阅读量
获赞