目录
达梦数据库 学习 笔记 一、表空间管理 (一)默认表空间 (二)相关数据字典 (三)表空间操作 (四)临时表空间管理
二、重做日志管理
三、归档管理
四、用户管理 (一)相关视图 (二)三|四权分立 (三)口令策略 (四)身份验证模式 (五)用户管理示例 (六)用户资源限制
五、权限管理 (一)授权和撤销 (二)权限相关系统表 (三)查看权限
六、角色管理
七、模式管理
八、表管理 (一)创建表 (二)表字段操作 (三)移动表 (四)表相关视图
九、约束管理
十、索引管理
十一、视图管理
十二、数据库 备份恢复 (一)备份恢复概念 (二)备份类型 (三)备份操作 (四)DMRMAN备份 (五)逻辑备份
十三、作业系统
十四、DM8开发
一、表空间管理
(一)默认表空间
SYSTEM :存储数据字典、表、字段、视图等对象的定义权限等信息。ROLL :存储DML操作对应的undo日志信息。MAIN :用户默认表空间,用户未指定时使用。TEMP :存储系统运行产生的临时数据,如排序数据。HMAIN :列存储表空间。
(二)相关数据字典
dba_tablespaces :查询数据库 表空间相关信息。dba_data_files :查询数据库 数据文件信息。v$tablespace :查询表空间信息。v$datafile :查询数据文件相关信息。dba_free_space :查询数据库 空闲的数据文件信息。
(三)表空间操作
创建 :CREATE TABLESPACE tbs_its DATAFILE 'tbs_its01.dbf' SIZE 128;
,未指定路径时按参数存放到指定路径。脱机 :ALTER TABLESPACE tbs_its OFFLINE;
重命名 :ALTER TABLESPACE tbs_its RENAME TO tbs1;
删除 :DROP TABLESPACE tbs1;
修改
添加数据文件 :ALTER TABLESPACE tbs_its ADD DATAFILE 'tbs_its02.dbf' SIZE 128 MAXSIZE 1024;
修改属性 :ALTER TABLESPACE tbs_its DATAFILE 'tbs_its02.dbf' AUTOEXTEND ON NEXT 2 MAXSIZE 1024;
修改大小 :ALTER TABLESPACE tbs_its RESIZE DATAFILE 'tbs_its02.dbf' TO 256;
数据文件迁移
先脱机:ALTER TABLESPACE OFFLINE;
重命名:ALTER TABLESPACE tbs_its RENAME DATAFILE 'tbs_its02.dbf' TO '/tmp/tbs_its02.dbf';
再联机:ALTER TABLESPACE ONLINE;
(四)临时表空间管理
收缩方法 :重启数据库 ,自动重建临时表空间;使用SP_TRUNC_TS_FILE
方法。
二、重做日志管理
(一)系统视图
v$rlogfile :显示日志文件具体信息,如文件号、路径、状态、大小等。v$rlog :显示日志总体信息,包括事务号LSN、归档日志、检查点执行情况等。
(二)日志操作
修改大小 :alter database RESIZE LOGFILE 'its01.log' to 300;
添加日志 :alter database ADD LOGFILE 'its03.log' SIZE 300;
修改路径
先挂载:ALTER DATABASE MOUNT;
重命名:ALTER DATABASE RENAME LOGFILE 'its01.log' TO '/tmp/its01.log';
再打开:alter database open;
三、归档管理
(一)开启归档
手动开启
挂载数据库 :ALTER DATABASE MOUNT;
添加归档配置:ALTER DATABASE ADD ARCHIVELOG 'TYPE=LOCAL ,DEST=/dmdata/arch ,FILE_SIZE=128 ,SPACE_LIMIT=2048';
开启归档模式:ALTER DATABASE ARCHIVELOG;
打开数据库 :ALTER DATABASE OPEN;
配置文件配置
在dm.ini
中设置ARCH_INI = 1
。 在dmarch.ini
中配置相关参数,如:
ARCH_WAIT_APPLY = 0
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dmdata/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 2048
ARCH_FLUSH_BUF_SIZE = 0
ARCH_HANG_FLAG = 1
(二)其他操作
查看状态 :SELECT arch_mode FROM v$database;
修改配置参数 :ALTER DATABASE MODIFY ARCHIVELOG 'TYPE=LOCAL ,DEST=/dmdata/arch ,FILE_SIZE=128 ,SPACE_LIMIT=20480';
关闭归档
挂载数据库 :alter database mount;
关闭归档模式:alter database noarchivelog;
删除归档配置:alter database delete archivelog 'TYPE=LOCAL ,DEST=/dmdata/arch ,FILE_SIZE=128 ,SPACE_LIMIT=20480';
打开数据库 :alter database open;
切换归档
alter database archivelog current;
alter system switch logfile;
alter system archive log current;
删除归档
按时间删除 :SF_ARCHIVELOG_DELETE_BEFORE_TIME(SYSDATE);
按LSN删除 :SF_ARCHIVELOG_DELETE_BEFORE_LSN();
四、用户管理
(一)相关视图
dba_users :用于查看用户相关信息。
(二)三|四权分立
系统管理员(SYSDBA) :负责身份验证、资源限制、数据加密、访问控制、客体重用等。系统审计员(SYSAUDITOR) :承担审计工作。系统安全员(SYSSSO) :进行策略和标记管理。对象管理员(SYSDBO) :负责访问对象控制。
(三)口令策略
PWD_POLICY参数 :是隐藏参数,只能通过函数或语句修改。
0 :无限制,但总长度不超48字节。1 :禁止与用户名相同。2 :口令长度需大于等于INI
参数PWD_MIN_LEN
设置的值。4 :至少包含一个大写字母。8 :至少包含一个数字。16 :至少包含一个标点符号(英文输入法下,除“和空格外的所有符号)。
select * from SYS. "V$PARAMETER" where name like '%COMPATIBLE_MODE%' ;
select * from v$parameter t where t. name = 'PWD_POLICY' ;
alter SYSTEM set 'PWD_POLICY' = 16 BOTH;
(四)身份验证模式
数据库 认证模式 :使用创建用户时设置的密码登录。基于操作系统认证模式
开启相关参数:ENABLE_LOCAL_OSAUTH = 1
开启本地操作系统认证;ENABLE_REMOTE_OSAUTH = 1
开启远程操作系统认证;ENABLE_ENCRYPT = 1
表示使用ssl安全加密(静态参数,需重启数据库 )。 操作步骤:先添加系统用户并加入指定组;在数据库 中创建同名用户;登录数据库 。
(五)用户管理示例
创建用户 :CREATE USER FANGYU IDENTIFIED BY 123456 DEFAULT TABLESPACE FYU_ITS DEFAULT INDEX TABLESPACE FYU_ITS;
锁定/解锁用户 :ALTER USER FANGYU ACCOUNT LOCK;
(锁定);ALTER USER FANGYU ACCOUNT UNLOCK;
(解锁)。修改默认表空间 :ALTER USER FANGYU DEFAULT TABLESPACE MAIN;
修改密码 :ALTER USER FANGYU IDEDNTIFIED BY 01234;
删除用户 :DROP USER FANGYU
(若用户有创建对象则无法删除);DROP USER FANGYU CASCADE;
(强制删除)。
(六)用户资源限制
相关视图 :dba_profiles
可定义策略。设置方式
LIMIT语句 :alter user fyu limit FAILED_LOGIN_ATTEMPS 10 , PASSWORD_LOCK_TIME 5;
PROFILE语句 :CREATE PROFILE P1 LIMIT FAILED_LOGIN_ATTEMPS 10 , PASSWORD_LOCK_TIME 5;
;ALTER USER FYU PROFILE P1;
五、权限管理
(一)授权和撤销
授权 :GRANT 权限 TO username [WITH ADMIN OPTION]
回收 :REVOKE 权限 FROM username
(二)权限相关系统表
DBA_SYS_PRIVS :系统权限。DBA_TAB_PRIVS :对象权限。DBA_ROLE_PRIVS :角色。DBA_COL_PRIVS :列权限。
(三)查看权限
查看当前用户权限 :select * from session_privs;
六、角色管理
(一)角色概念
角色是一组权限的集合。
(二)预定角色
管理类 :如DBA
、RESOURCE
、PUBLIC
等,各有不同权限。审计类 :负责审计相关权限。安全类 :进行标记管理相关权限。
(三)角色操作
创建角色 :CREATE ROLE role_name;
删除角色 :DROP ROLE role_name;
禁用角色 :SP_SET_ROLE('role_name',0)
七、模式管理
(一)模式概念
模式是特定的对象集合,类似MySQL中的database,默认创建用户时会创建同名模式。
(二)模式和用户关系
一个用户可拥有多个模式,一个模式仅属于一个用户。
(三)模式操作
查看模式 :SELECT * FROM sysobjects WHERE tyepe$='SCH';
查看模式和用户对应关系 :
select
a. id scheid ,
a. name schename,
b. id userid ,
b. name username
from
SYS. SYSOBJECTS a,
SYS. SYSOBJECTS b
where
a. "TYPE$" = 'SCH'
and a. pid = b. id;
创建模式 :CREATE SCHEMA s1 AUTHORIZATION FYU;
查看当前模式和用户 :SELECT SYS_CONTEXT('USERENV','CURRENT_SCHEMA');
;SELECT SYS_CONTEXT('USERENV','CURRENT_USER');
切换模式 :SET SCHEMA S2;
删除模式 :drop schema s1;
八、表管理
(一)创建表
普通方式 :CREATE TABLE T1(id INT, name VARCHAR(12));
基于某个表创建 :CREATE TABLE T2 LIKE T1;
(DM中会复制数据,与MySQL不同)CREATE TABLE AS SELECT :CREATE TABLE T3 AS SELECT * FROM T1;
(二)表字段操作
添加字段 :ALTER TABLE T1 ADD COLUMN sex char(1);
删除字段 :ALTER TABLE T1 DROP COLUMN sex ;
修改字段 :ALTER TABLE T1 MODIFY sex char(10);
(三)移动表
移动到指定表空间 :ALTER TABLE T1 MOVE TABLESPACE MAIN;
(四)表相关视图
dba_tables :查看表相关信息。dba_tab_column :查看表字段相关信息。
九、约束管理
(一)约束类型
NOT NULL :非空约束。UNIQUE :唯一约束。PRIMARY KEY :主键约束(唯一约束 + 非空约束)。FOREIGN KEY :外键约束。CHECK :检验约束。
(二)约束操作
添加约束 :分别使用不同语句添加各类约束。禁用约束 :ALTER TABLE T1 DISABLE CONSTRAINT idx_uniq_id;
开启约束 :ALTER TABLE T1 ENABLE CONSTRAINT idx_uniq_id;
删除约束 :ALTER TABLE T1 DROP CONSTRAINT idx_uniq_id;
(三)约束系统视图
dba_constraints :查看约束相关信息。dba_cons_columns :查看约束涉及的列相关信息。
十、索引管理
(一)索引操作
创建索引 :CREATE INDEX idx_id ON i1(id);
删除索引 :DROP INDEX idx_id;
监控索引 :ALTER INDEX idx_name MONITORING USAGE;
,可通过V$OBJECT_USAGE
视图查看使用情况。重建索引 :ALTER INDEX idx_name rebuild;
(离线重建);ALTER INDEX idx_name rebuild online;
(在线重建)。
(二)统计信息收集
收集 :dbms_stats.gather_table_stats('SYSDBA','I1');
查看 :dbms_stats.table_stats_show('SYSDBA','I1');
十一、视图管理
(一)视图概念
由SQL语句组成的表,不存储真实数据,只存储查询语句。
(二)视图操作
创建视图 :CREATE VIEW v1 AS SELECT * FROM T1;
查询视图 :SELECT * FROM V1;
十二、数据库 备份恢复
(一)备份恢复概念
备份 :从数据库 文件拷贝有效数据页到备份集。还原 :将有效数据页写入目标数据文件。恢复 :通过归档日志恢复到备份结束时状态,或指定时间、LSN位置。
(二)备份类型
逻辑备份 :使用dexp
工具导出数据,关注数据内容。物理备份 :扫描数据文件,拷贝已分配使用的数据页。联机备份 :数据库 运行时备份。脱机备份 :数据库 关闭时备份,dmrman
备份需数据库 关闭。
(三)备份操作
联机备份 :BACKUP DATABASE BACKUPSET 'bak_db';
,可带多种参数。不同备份示例 :完全备份、增量备份、表空间备份、表备份、归档备份等都有相应语句和参数。
(四)DMRMAN备份
备份数据库 :完全备份、增量备份、归档备份各有对应语句。备份集校验 :SELECT SF_BAKSET_CHECK('DISK','/dmbak/full_db');
删除备份集 :SELECT SF_BAKSET_REMOVE('DISK','/dmbak/full_db',0);
(五)逻辑备份
dexp参数及示例 :众多参数控制导出行为,有全库、用户、模式、表等导出示例。dimp还原 :dimp USERID=SYSDBA/fangyu421 FILE=/dmbak/full.dmp LOG=full.log FULL=Y DIRECTORY=/dmbak/dimp/
十三、作业系统
(一)创建备份作业
可进行全量备份和增量备份作业创建,具体操作涉及相关界面设置。
十四、DM8开发
(一)JDBC连接数据库
JDBC接口编程 :是Java与数据库 的接口规范,DM JDBC驱动程序支持基本SQL功能。JDBC连接池 :负责管理数据库 连接,常见连接池有C3P0、Proxool等多种。连接基础参数 :jdbc.driver=dm.jdbc.driver.DmDriver
等。
(二)ODBC连接数据库
ODBC概念 :为异构数据库 访问提供统一接口。DM ODBC 3.0 :遵照规范设计开发,可直接调用接口函数或通过可视化工具访问数据库 。配置与测试 :配置/etc/odbcinst.ini
和/etc/odbc.ini
文件,使用isql
测试连接。