dminit:DM数据库初始化工具。
设置数据库存放路径、段页大小、大小写敏感、以及是否使用UNICODE等;
disql:命令行客户端工具,用来与DM数据库服务器进行交互。
识别用户输入,将SQL语句打包发送给DM数据库服务器执行,接收服务器的
执行结果,并按用户的要求将执行结果展示给用户;
常用参数:HELP、PATH、EXTENT_SIZE、PAGE_SIZE、CASE_SENSITIVE、CHARSET/UNICODE_FLAG、DB_NAME、PORT_NUM、ARCH_FLAG、AUTO_OVERWRITE;
初始化:
./dminit path=/data/sda/data db_name=db_dm port_num=3366
启动服务器:
./dmserver /data/sda/data/db_dm/dm.ini
启动:
disql sysdba/Hust4400_DBA@192.168.100.146:14601
;
登录/退出:
查询登录方式:disql help
;
切换登录:login/logout conn/disconn
;
退出:exit/quit/Ctrl+C
;
设置环境变量:help set
;
常用命令:HELP、SPOOL、HOST、DESCRIBE、DEFINE和COLUMN、EXPLAIN、WHENEVER、MORE、LIST;
插入大对象数据,示例:@INSERT INTO T1 VALUES(@‘e:\DSC_1663.jpg’)
执行脚本:
start或`运行脚本:SQL>start D:\test.sql
或是SQL>D:`\test.sql;
编辑脚本:SQL>edit D:\test.sql
;
使用变量:
dmfldr:快速数据装载命令行工具。把按照一定格式排序的文本数据以简单、快速、高效的方式载入到DM数据库中,或把DM数据库中的数据按照一定格式写入文本文件。
USERID
USER/PWD@SERVER:PORT#SSL_PATH@SSL_PWD;
CONTROL
控制文件,字符串类型;
LOG
日志文件,字符串类型 (fldr.log);
BADFILE
错误数据记录文件,字符串类型 (fldr.bad);
SKIP
初始忽略逻辑行数 (0);
LOAD
需要装载的行数 (ALL);
ROWS
提交频次 (50000), DIRECT为FALSE有效;
DIRECT
是否使用快速方式装载 (TRUE);
ERRORS
允许的最大数据错误数 (100);
CHARACTER_CODE
字符编码,字符串类型 (GBK, UTF-8, SINGLE_BYTE, EUC-KR);
MODE
装载方式,字符串类型 IN表示载入,OUT表示载出,OUTORA表示载出ORACLE (IN);
LOB_DIRECTORY
大字段数据文件存放目录;
LOB_FILE_NAME
大字段数据文件名称,仅导出有效 (dmfldr.lob);
dexp/dimp
逻辑备份还原工具。备份还原数据库逻辑组件,如表、视图和存储过程等数据库对象。
数据库对象分为四种级别:数据库级、用户级、模式级、表级;
dmrman
物理备份还原工具。备份是从数据库文件中拷贝有效的数据页保存到备份集中,还原是将备份集中的有效数据页重新写入目标数据文件。
USERID
USER/PWD*MPP_TYPE@SERVER:PORT#SSLPATH@SSLPWD;
FILE
导出文件 (dexp.dmp);
DIRECTORY
导出文件所在目录;
FULL
整库导出 (N);
OWNER
以用户方式导出 格式 (user1,user2,…);
SCHEMAS
以模式方式导出 格式 (schema1,schema2,…);
TABLES
以表方式导出 格式 (table1,table2,…);
HELP
打印帮助信息;
USERID
USER/PWD*MPP_TYPE@SERVER:PORT#SSLPATH@SSLPWD;
FILE
导入文件名称 (dexp.dmp);
DIRECTORY
导入文件所在目录;
FULL
整库导入 (N);
OWNER
以用户方式导入 格式 (user1,user2,…);
SCHEMAS
以模式方式导入 格式 (schema1,schema2,…);
TABLES
以表名方式导入 格式(table1,table2,…);
HELP
打印帮助信息;
数据准备:
CREATE USER “TEST” IDENTIFIED BY 111111111;
GRANT DBA TO “TEST”;
CREATE USER “TEST1” IDENTIFIED BY 111111111;
GRANT DBA TO “TEST1”;
CREATE TABLE “TEST”.“TEST”(“Q” CHAR(10), “A” CHAR(10)) STORAGE(ON “MAIN”, CLUSTERBTR) ;
导出导入:
./dexp “SYSDBA”/“SYSDBA”@192.168.100.164:16437 FILE=TEST.dmp OWNER=(“TEST”)
./dimp “SYSDBA”/“SYSDBA”@192.168.100.164:16437 FILE=TEST.dmp
REMAP_SCHEMA=“TEST”:“TEST1”
备份:从数据库文件中拷贝有效的数据页保存到备份集中;
还原和恢复:备份的反过程;
故障场景:
创建一个数据库D1。
操作数据库并执行数据库备份B1。
备份完成后继续操作数据库的过程中数据库故障,如何恢复数据库到故障发生前的状态?
示例:
创建源库D1,即待备份的数据库,然后启动数据库并配置归档,归档目录为/home/dm_arch/arch。
./dminit path=/opt/dmdbms/data
./dmserver /opt/dmdbms/data/DAMENG/dm.ini --连接数据库配置归档
SQL>ALTER DATABASE MOUNT;
SQL>ALTER DATABASE ARCHIVELOG;
SQL>ALTER DATABASE ADD ARCHIVELOG ‘DEST = /home/dm_arch/arch, TYPE = local, FILE_SIZE = 1024, SPACE_LIMIT = 2048’;
SQL>ALTER DATABASE OPEN;
操作数据库的同时备份数据库,备份集为B1。此处以向表中循环插入数据为例来操作数据库。
SQL>DROP TABLE TAB_FOR_RECOVER;
SQL>CREATE TABLE TAB_FOR_RECOVER(C1 INT);
SQL>BEGIN
FOR I IN 1…100000 LOOP
INSERT INTO TAB_FOR_RECOVER VALUES(I);
COMMIT;
END LOOP;
END; --插入数据的同时,另外一个会话备份数据库
SQL>BACKUP DATABASE FULL TO B1 BACKUPSET ‘/home/dm_bak/B1’ DEVICE TYPE DISK
BACKUPINFO ‘DAMENG FULL BACKUP ONLINE’ MAXPIECESIZE 2048;
继续向数据库插入数据一段时间后关掉数据库实例,模拟数据库故障。
创建目标库D2,即待还原的库:
./dminit path=/opt/dmdbms/data db_name=DAMENG_FOR_RES
启动DMRMAN工具,利用备份集B1和归档恢复数据库D2到D1故障前的状态。
–还原
RMAN>RESTORE DATABASE ‘/opt/dmdbms/data/DAMENG_FOR_RES/dm.ini’
FROM BACKUPSET ‘/home/dm_bak/B1’;
–利用归档恢复
RMAN>RECOVER DATABASE ‘/opt/dmdbms/data/DAMENG_FOR_RES/dm.ini’
WITH ARCHIVEDIR ‘/home/dm_arch/arch’;
–更新DB_MAGIC
RMAN>RECOVER DATABASE ‘/opt/dmdbms/data/DAMENG_FOR_RES/dm.ini’
UPDATE DB_MAGIC;
dmdbchk——检查数据库完整性、正确性
校验DM数据库内部的物理存储结构是否正常,对象信息是否合法等;
示例:./dmdbchk path=/home/test/data/DAMENG/dm.ini
;
dmlcvt——解析、修改日志文件
获取联机或归档日志详细信息,分析系统故障原因;
示例:./dmlcvt f_type=2 f_path=/home/dmdba/dm/ARCHIVE_LOCAL1_0x3E294C0_EP0_2024-04-09_14- 25-21.log out_path=/home/dmdba/dm/arch
;
dmrachk——校验、比较、抽取、修复归档
操作对象只能是归档日志文件或者归档日志目录;
示例:./dmrachk f_type=1 f_path=/data/sda/data/arch
;
文章
阅读量
获赞