注册
DM8_DCP培训、考试分享
专栏/培训园地/ 文章详情 /

DM8_DCP培训、考试分享

月升 2024/07/29 517 1 0
摘要

这次考试还是有些没有做好,比如考试中有个prod.dat文件导入,这个丢分了没导入成功。希望通过博文能加点分qwq

学习培训

4天的培训,感觉培训过得很快,每天都是干货满满、知识点很多,需要课后自己多练习、熟悉这些知识点;

dcp考试分笔试和机试

笔试:需要多做笔试练习题,多练题就问题不大,不过要细心注意看题干,有些题有比较相似。
机试实操:需要认真听课,并且要多自己练习,不能只看不做,需要对各种命令、操作要熟练掌握,才能从容考试。4个小时看似很多,不熟练的话时间会很紧

考试

实操考试
需要对之前DCA的内容也要熟悉,实例的创建及配置、表空间的创建及文件配置、用户管理的创建、授权等、作业创建、备份与还原等等;

分区表

创建分区表
命令/图形化创建
例:

范围分区:

create table t_partrangetab
(logtime datetime,
userid int,
username varchar(20),
areaid int,
optype int) PARTITION BY RANGE(logtime)
( PARTITION p2022 VALUES LESS THAN('2023-01-01') TABLESPACE tbs01,
PARTITION p202301 VALUES LESS THAN('2023-02-01') TABLESPACE tbs02,
PARTITION p202302 VALUES LESS THAN('2023-03-01') TABLESPACE tbs03,
PARTITION p202303 VALUES LESS THAN('2023-04-01') TABLESPACE tbs04);

哈希分区:

create table t_parthashtab
(logtime datetime,
userid int,
username varchar(20),
areaid int,
optype int) PARTITION BY hash(username)
PARTITIONS 4 STORE in (tbs01, tbs02, tbs03, tbs04);

外部表

外部表创建需要指定数据库目库
create directory dir_data as '/dm8/ext';
授予用户权限
grant read, write on directory dir_data to dmtest;

指定数据文件创建外部表
create EXTERNAL TABLE t_extemp
(
"EMPLOYEE_ID" INT,
"EMPLOYEE_NAME" VARCHAR(20),
"IDENTITY_CARD" VARCHAR(18),
"EMAIL" VARCHAR(50),
"PHONE_NUM" VARCHAR(20),
"HIRE_DATE" DATE)
from DATAFILE DEFAULT DIRECTORY DIR_DATA LOCATION ('t_emp.txt')
parms (fields ',', records 0x0a, skip 1, character_code 'UTF-8');
指定控制文件创建
编写控制文件
[dmdba@localhost data]$ cat dept.ctl
options
(skip 1
errors=10
log='t_extdept.log'
character_code='UTF-8')
load data
infile 'DMHR_DEPARTMENT.txt' str X '0d0a'
badfile 't_extdept.bad'
into table t_extdept
fields ','

索引

统计信息

收集统计信息
dbms_stats.gather_table_stats();
-查看统计信息:
dbms_stats.table_stats_show();
dbms_stats.column_stats_show();
删除统计信息表
dbms_stats.DROP_STAT_TABLE();

索引管理

新建索引,重建索引,删除索引
图形界面直接,模式--表--索引

默认普通索引(二级索引,即非聚集索引)
create index ix_testtab_userid ON T_TESTTAB(userid) TABLESPACE TBSIDX;
聚簇索引:
create CLUSTER index ix_testtab_userid ON T_TESTTAB(userid);
全局索引
create index ix_PARTRANGETESTTAB_username ON T_PARTRANGETESTTAB(username) GLOBAL;

全文索引

注意记得图形界面的节点。不在表-索引下,在上一级

创建全文索引时如果不指定sync子句,后期需要手工填充.
create CONTEXT index cti_TESTTAB_testinfo ON t_testtab(testinfo) TABLESPACE TBSIDX;

--完全填充和增量填充
alter CONTEXT index cti_TESTTAB_testinfo ON t_testtab REBUILD;
alter CONTEXT index cti_TESTTAB_testinfo ON t_testtab INCREMENT;

序列、同义词、物化视图

序列、同义词直接图形化操作即可;

物化视图需要注意刷新时机,使用FAST刷新之前,必须先建好物化视图日志。
基础物化视图:
create MATERIALIZED view v_emp AS SELECT * FROM TEST.T1;

数据库审计

使用sysauditor登录
开启系统审计SP_SET_ENABLE_AUDIT(PARAM INT);
0:关闭审计,
1:打开普通审计 ,
2:打开普通审计和实时审计
关闭系统审计 Sp_set_enable_audit(0);

语句级审计的设置:
开启
sp_audit_stmt();
sp_audit_stmt('TABLE','NULL','ALL');
取消语句级
SP_NOAUDIT_STMT('TABLE', 'NULL', 'ALL');

对象级审计
开启:
sp_audit_object();
SP_AUDIT_OBJECT('UPDATE','SYSDBA','PERSON','ADDRESS','ADDRESS1','SUCCESSFUL');
取消:
SP_NOAUDIT_OBJECT('UPDATE','SYSDBA','PERSON','ADDRESS','ADDRESS1','SUCCESSFUL');

快速数据加载

dmfldr工具

编写控制文件(载入)
[dmdba@localhost dmfldr]$ cat dept.ctl
options
(skip=1
errors=10
log='t_extdept.log'
character_code='UTF-8')
load data
infile 'DMHR_DEPARTMENT.txt' str X '0d0a'
badfile 't_extdept.bad'
into table t_dept
fields ','

MODE 为 IN 时表示载入(默认为IN), MODE 为 OUT表示载出。
dmfldr userid=dmtest/Dameng123 control='dept.ctl' mode='IN'

数据守护-重点

关闭顺序:监视器->备机数据守护进程->主机数据守护进程->主机实例->备机实例

主机备份,备机还原恢复

图形化操作也可以;
命令
主机备份
./dmrman
RMAN> backup database '/dm8/data/DAMENG/dm.ini' backupset '/dm8/backup/FULLBAK';
备机还原、恢复、更新魔数
restore database '/dm/data/DAMENG01/dm.ini' from backupset '/dm/bakup/full';
recover database '/dm/data/DAMENG01/dm.ini' with archivedir '/dm/arch';
recover database '/dm/data/DAMENG01/dm.ini' update db_magic;

修改配置文件

配置 dm.ini
INSTANCE_NAME= DMS01 #实例名,主机和备机两个名字,DMS01/DMS02
PORT_NUM=5236 #端口
DW_INACTIVE_INTERVAL=60
ALTER_MODE_STATUS=0
ENABLE_OFFLINE_TS= 2
MAL_INI= 1
ARCH_INI=1
RLOG_SEND_APPLY_MON=64 -

dmmal.ini 配置(主备配置相同)
MAL_CHECK_INTERVAL = 5 #MAL链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 #判定MAL链路断开的时间
[MAL_INST1]
MAL_INST_NAME = DMS01 #实例名,和dm.ini中的INSTANCE_NAME一致
MAL_HOST = 192.168.29.138 #MAL系统监听TCP连接的IP地址
MAL_PORT = 5240 #MAL系统监听TCP连接的端口
MAL_INST_HOST = 192.168.29.138 #实例的对外服务IP地址
MAL_INST_PORT = 5236 #实例的对外服务端口,和dm.ini中的PORT_NUM一致
MAL_DW_PORT = 5237 #实例本地的守护进程监听TCP连接的端口
MAL_INST_DW_PORT = 5238 #实例监听守护进程TCP连接的端口

[MAL_INST2]
MAL_INST_NAME = DMS02
MAL_HOST = 192.168.29.140
MAL_PORT = 5240
MAL_INST_HOST = 192.168.29.140
MAL_INST_PORT = 5236
MAL_DW_PORT = 5237
MAL_INST_DW_PORT = 5238

dmarch.ini 主备的归档配置ARCH_DEST不同
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = DMS02 #实时归档目标实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /dm8/data/DAMENG/arch #本地归档文件存放路径
ARCH_FILE_SIZE = 128 #单位Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 0 #单位Mb,0表示无限制

dmwatcher.ini (文件路径按照主/备机对应的按照目录路径)
[GRP1]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = AUTO #自动切换模式
DW_ERROR_TIME = 10 #远程守护进程故障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 10 #本地实例故障认定时间
INST_OGUID = 888888 #守护系统唯一OGUID值(这里要和数据库的OGUID一致,OGUID是写入控制文件的)
INST_INI = /dm/data/DAMENG/dm.ini #dm.ini配置文件路径
INST_AUTO_RESTART = 1 #打开实例的自动启动功能
INST_STARTUP_CMD = /dm/bin/dmserver #命令行方式启动
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阀值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阈值,默认关闭

主机/备机启动到mount状态,修改修改主机/备机模式,及OGUID

/dm/bin/dmserver /dm/data/DAMENG/dm.ini mount
修改主机/备机模式,及OGUID
alter database primary; #主机
alter database standby; #备机

sp_set_oguid(888888);
修改OGUID需要暂时修改状态
alter system set 'ALTER_MODE_STATUS' = 1;
修改OGUID后,恢复之前状态
alter system set 'ALTER_MODE_STATUS' = 0;

启动主机/备机监视器
dmwatcher /dm/data/DAMENG/dmwatcher.ini

配置监视器

OGUID要与数据库设置的一致,配置数据守护dmwatcher的IP和端口。
dmmonitor.ini
MON_DW_CONFIRM = 1
MON_LOG_PATH = /dm8/log
MON_LOG_INTERVAL = 60
MON_LOG_FILE_SIZE = 32
MON_LOG_SPACE_LIMIT = 0
[GRP1]
MON_INST_OGUID = 888888
MON_DW_IP = 192.168.29.138:5237 #与实际端口为准
MON_DW_IP = 192.168.29.140:5237

查询数据守护端口
netstat -ntlp|grep dmw

启动监视器及相关命令:

dmmonitor /dm8/data/dmmonitor.ini

监视器上可以查看集群的状态
Show 命令查看集群状态
login 登录

choose switchover 查看选择可切换为PRIMARY库的备库列表
switchover 切换主库

注册服务

root用户注册
/dm/script/root/目录下
./dm_service_installer.sh -h #查看注册服务命令帮助

注册dmserver为系统服务
./dm_service_installer.sh -t dmserver -p DM02 -dm_ini /dm8/data/DAMENG/dm.ini
注册watcher为系统服务
./dm_service_installer.sh -t dmwatcher -p DM02 -watcher_ini /dm8/data/DAMENG/dmwatcher.ini
注册monitor 为系统服务
[root@KylinDCA02 root]#
./dm_service_installer.sh –t dmmonitor –p DMM01 –monitor_ini /dm8/dmmonitor.ini

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服