今天参加了DCP考试,笔试问题不大,但是机考感觉时间很紧,虽然有4小时听上去时间不短,但对于新手来说,各种命令不熟悉,打字错误浪费了很多时间,哎,希望借此文能拉回点考分,其实原理都已经明白了,忘老师手下留情。
create tablespace TEST datafile '/dm8/data/DAMENG/test_01.dbf' size 512;
create user TEST identified by dameng123 default tablespace test;
---创建范围分区
create table "TEST"."T1"
( "ID" INT, "NAME" VARCHAR(20)
)
PARTITION BY RANGE ("ID")
(
PARTITION "P1" VALUES LESS THAN (100),
PARTITION "P2" VALUES LESS THAN (200),
PARTITION "P3" VALUES LESS THAN (300)
)
storage(initial 1, next 1, minextents 1, fillfactor 0)
---创建默认分区
alter table test.t1 add partition pn values less than(maxvalue);
insert into test.t1 values(100,'a');
insert into test.t1 values(201,'b');
insert into test.t1 values(300,'c');
CREATE TABLE TEST.T4
(ID INT, NAME VARCHAR(20))
PARTITION BY HASH(ID)
( PARTITION "01", PARTITION "02", PARTITION "03", PARTITION "04"
) ;
create table test.t_hash(id int, name varchar(20))
partition by hash (id) partitions 10;
cd /dm8/fldr/
vi fldrtest.txt
1,aaaaa,2022-04-21
2,bbbbb,
3,cccc,2021-11-11
vi fldrtest.ctl
LOAD DATA
INFILE '/dm8/fldr/fldrtest.txt' INTO TABLE TEST.FLDRTEST
FIELDS ','
create table test.fldrtest(id int, name varchar(20), bir date);
./dmfldr sysdba/Zd76215@ control='/dm8/fldr/fldrtest.ctl'
-----------大字段导入导出---------------------
create table test.dtoutput(c1 int, c2 blob, c3 clob);
insert into test.dtoutput values(1,0XAB1211032DE,'THIS IS A dmfldr
test');
insert into test.dtoutput
values(2,0XAB1211032DE,'werwerwr3cdsRWR');
insert into test.dtoutput
values(3,0XAB1211032DE,'REWRWRWCVDHGH');
COMMIT;
select * from test.dtoutput;
[dmdba@localhost fldr]$ cat dtfldr.ctl
LOAD DATA
INFILE '/dm8/fldr/dtfldr.txt' INTO TABLE TEST.DTOUTPUT
FIELDS '|' (C1, C2, C3)
[dmdba@localhost bin]$ ./dmfldr sysdba/zd761215 control='/dm8/fldr/dtfldr.ctl' lob_directory='/dm8/fldr' mode='out'
create table test.dtinput(c1 int, c2 blob, c3 clob);
[dmdba@localhost fldr]$ cat dtfldr.ctl
LOAD DATA
INFILE '/dm8/fldr/dtfldr.txt' INTO TABLE TEST.DTINPUT
FIELDS '|' (C1, C2, C3)
./dmfldr sysdba/zd761215 control='/dm8/fldr/dtfldrin.ctl' lob_directory='/dm8/fldr' mode='in'
./dmfldr sysdba/zd761215 control='/dm8/fldr/dtfldrin.ctl' lob_directory='/dm8/fldr' badfile='/dm8/fldr/test.bad' mode='in'
DBMS_STATS 包:收集统计信息,删除统计信息,查看统计信息。
1、GATHER_TABLE_STATS
2、COLUMN_STATS_SHOW
DBMS_STATS.GATHER_TABLE_STATS('TEST','T1','P1',100,FALSE,'FOR ALL COLUMNS SIZE AUTO')
索引类型:
唯一索引
函数索引
复合索引
位图索引
索引的维护
新建索引,重建索引,删除索引,收集统计信息,更新统计信息
查看索引的相关信息
DBA_INDEXES, USER_INDEXES;
分区索引
全文索引
create context index cti_name on test.t1(name) lexer
default_lexer;
全文索引更新:
alter context index cti_name on test.t1 rebuild;
select * from test.cti$cti_name$i;
select * from test.cti$cti_name$p;
select * from test.cti$cti_name$n;
select * from test.cti$cti_name$d;
vi a.txt
1,AAAAA
2,BBBBB
3,DD
4,CCCC
5,FF
6,WERWRWRW
7,iiiii
8,nnnnn
9,SER
10,EWDEWRWRWRWRW
cat a.ctl
LOAD DATA
INFILE 'a.txt' INTO TABLE TEST.EXT
FIELDS ',
create directory extdir as '/dm8/ext'
create external table test.ext(id int, name varchar(20)) from default directory extdir location('a.ctl')
CREATE SEQUENCE "TEST"."S1"
INCREMENT BY 2
START WITH 1
MAXVALUE 20
MINVALUE 1
CYCLE
CACHE 2
NOORDER ;
create materialized view TEST.MV1 AS SELECT * FROM TEST.T1;
create materialized view test.mv2 as select * from test.t1 where id>200;
refresh materialized view test.mv1;
create materialized view log on test.t1;
create materialized view test.mv3 refresh complete on commit as
select * from test.t1;
create materialized view log on test.t1;
创建完全更新物化视图
create materialized view test.mv3 refresh complete on commit as
select * from test.t1;
创建快速更新物化视图(必须要有物化视图日志)
create materialized view test.mv4 refresh fast on commit as select *
from test.t1;
系统审计
语句审计 DDL粗粒度
对象审计 DML 细粒度
使用sysauditor登录
DM8
开启系统审计SP_SET_ENABLE_AUDIT(PARAM INT);
关闭系统审计 Sp_set_enable_audit(0);
Sp_audit_stmt(type,username,whenever)
sp_audit_stmt('table','test','all');
Sp_noaudit_stmt(type,username,whenever)
Sp_noaudit_stmt(‘TABLE’,’TEST’,’ALL’);
Sp_audit_object(type, username, schema_name, object_name, column_name, whenever)
Sp_noaudit_object
例:sp_audit_object('INSERT','TEST','TEST','T1','ID','ALL');
select * from v$auditrecords;
主机操作
backup database '/dm8/data/DM01/dm.ini' full to backup1 backupset '/dm8/backup/BACKUP_FILE_01'
scp ./* 192.168.79.134:/dm8/backup/
备机操作
restore database '/dm8/data/DM01/dm.ini' from backupset '/dm8/backup'
recover database '/dm8/data/DM01/dm.ini' from backupset '/dm8/backup'
recover database '/dm8/data/DM01/dm.ini' update db_magic
------------------------1) 配置dm.ini
INSTANCE_NAME = DM01SERVER
PORT_NUM = 5238
DW_INACTIVE_INTERVAL = 60
ALTER_MODE_STATUS = 0 ****
ENABLE_OFFLINE_TS = 2 ****
MAL_INI = 1 ****
ARCH_INI = 1 ****
RLOG_SEND_APPLY_MON = 64
-----------------------2) 配置dmmal.ini
MAL_CHECK_INTERVAL = 5
MAL_CONN_FAIL_INTERVAL = 5
[MAL_INST1]
MAL_INST_NAME = DM01SERVER
MAL_HOST = 192.168.79.133
MAL_PORT = 55101
MAL_INST_HOST = 192.168.79.133
MAL_INST_PORT = 5238
MAL_DW_PORT = 65101
MAL_INST_DW_PORT = 45101
[MAL_INST2]
MAL_INST_NAME = DM02SERVER
MAL_HOST = 192.168.79.134
MAL_PORT = 55101
MAL_INST_HOST = 192.168.79.134
MAL_INST_PORT = 5238
MAL_DW_PORT = 65101
MAL_INST_DW_PORT=45101
-----------------------3) 配置dmarch.ini
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME
ARCH_DEST = DM02SERVER
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm8/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0
----------------------4) 配置dmwatcher.ini
[GRP1]
DW_TYPE = GLOBAL
DW_MODE = AUTO
DW_ERROR_TIME = 10
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 10
INST_OGUID = 453331
INST_INI = /dm8/data/DM01/dm.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD = /dm8/bin/dmserver
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0
./dmserver /dm8/data/DM01/dm.ini mount
SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS', 1);
设置OGUID: SQL> SP_SET_OGUID(453331);
ALTER DATABASE PRIMARY;
SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS', 0);
使主库进入配置状态
备机配置
--------------------1) 配置dm.ini
INSTANCE_NAME = DM02SERVER
PORT_NUM = 5238
DW_INACTIVE_INTERVAL = 60
ALTER_MODE_STATUS = 0 ************
ENABLE_OFFLINE_TS = 2 ************
MAL_INI = 1 ************
ARCH_INI = 1 ************
RLOG_SEND_APPLY_MON = 64
--------------------2) 配置dmmal.ini
MAL_CHECK_INTERVAL = 5
MAL_CONN_FAIL_INTERVAL = 5
[MAL_INST1]
MAL_INST_NAME = DM01SERVER
MAL_HOST = 192.168.79.133
MAL_PORT = 55101
MAL_INST_HOST = 192.168.79.133
MAL_INST_PORT = 5238
MAL_DW_PORT = 65101
MAL_INST_DW_PORT = 45101
[MAL_INST2]
MAL_INST_NAME = DM02SERVER
MAL_HOST = 192.168.79.134
MAL_PORT = 55101
MAL_INST_HOST = 192.168.79.134
MAL_INST_PORT = 5238
MAL_DW_PORT = 65101
MAL_INST_DW_PORT = 45101
----------------3)配置dmarch.ini
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME
ARCH_DEST = DM01SERVER
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm8/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0
-----------------4)配置dmwatcher.ini
[GRP1]
DW_TYPE = GLOBAL
DW_MODE = AUTO
DW_ERROR_TIME = 10
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 10
INST_OGUID = 453331
INST_INI = /dm8/data/DM01/dm.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD = /dm8/bin/dmserver
RLOG_APPLY_THRESHOLD = 0
./dmserver /dm8/data/DM01/dm.ini mount
SQL> SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS', 1);
设置OGUID: SQL> SP_SET_OGUID(453331);
设置备库模式:SQL> ALTER DATABASE STANDBY;
SQL> SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS', 0);
vi /dm8/dmmonitor.ini
Dmmonitor.ini 配置如下:
MON_DW_CONFIRM = 1
MON_LOG_PATH = /dm8/data/log
MON_LOG_INTERVAL = 60
MON_LOG_FILE_SIZE = 32
MON_LOG_SPACE_LIMIT = 0
[GRP1]
MON_INST_OGUID = 453331
MON_DW_IP = 192.168.79.133:65101
MON_DW_IP = 192.168.79.134:65101
分别在主库和备库注册数据守护服务:
cd /dm8/script/root
[root@localhost root]#./dm_service_installer.sh –t dmwatcher –p DMWATCHER –watcher_ini /dm8/data/DM01/dmwatcher.ini
备库注册数据守护服务:
cd /dm8/script/root
[root@localhost root]#./dm_service_installer.sh –t dmwatcher –p DMWATCHER –watcher_ini /dm8/data/DM01/dmwatcher.ini
在监视服务器上注册服务
cd /dm8/script/root
./dm_service_installer.sh –t dmmonitor –p DMMONITOR –monitor_ini /dm8/dmmonitor.ini
上述就是考试中经常会考到的部分,请大家熟练练习,考试时好像没办法复制黏贴,需要手动生成配置文件,请务必熟练。
文章
阅读量
获赞