注册
达梦培训总结-2
专栏/技术分享/ 文章详情 /

达梦培训总结-2

fyu 2023/02/24 2499 0 0
摘要

表空间管理

DM 默认表空间

    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;

临时表空间管理

收缩临时表空间方法

1、重启数据库, 会自动重建临时表空间, 表空间大小等于配置文件中指定的参数
2、使用方法 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; SQL> select * from v$rlogfile; LINEID GROUP_ID FILE_ID PATH CLIENT_PATH CREATE_TIME RLOG_SIZE MIN_EXEC_VER MIN_DCT_VER ---------- ----------- ----------- --------------------- ----------- -------------------------- -------------------- ------------ ----------- 1 2 0 /dmdata/its/its01.log its01.log 2022-06-30 23:45:34.000000 314572800 V8.1.1.1 4 2 2 1 /dmdata/its/its02.log its02.log 2022-06-30 23:45:34.000000 268435456 V8.1.1.1 4 3 2 2 /dmdata/its/its03.log its03.log 2022-07-04 11:17:23.000000 314572800 V8.1.1.1 4 used time: 0.438(ms). Execute id is 816. SQL>

修改联机日志路径

SQL> ALTER DATABASE MOUNT; SQL> ALTER DATABASE RENAME LOGFILE 'its01.log' TO '/tmp/its01.log'; SQL> select * from v$rlogfile; LINEID GROUP_ID FILE_ID PATH CLIENT_PATH CREATE_TIME RLOG_SIZE MIN_EXEC_VER MIN_DCT_VER ---------- ----------- ----------- --------------------- -------------- -------------------------- -------------------- ------------ ----------- 1 2 0 /tmp/its01.log /tmp/its01.log 2022-06-30 23:45:34.000000 314572800 V8.1.1.1 4 2 2 1 /dmdata/its/its02.log its02.log 2022-06-30 23:45:34.000000 268435456 V8.1.1.1 4 3 2 2 /dmdata/its/its03.log its03.log 2022-07-04 11:17:23.000000 314572800 V8.1.1.1 4 used time: 0.319(ms). Execute id is 818. SQL> alter database open;

归档管理

开启归档方法

1、手动开启

ALTER DATABASE MOUNT;
ALTER DATABASE ADD ARCHIVELOG 'TYPE=LOCAL ,DEST=/dmdata/arch ,FILE_SIZE=128 ,SPACE_LIMIT=2048';
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;

2、配置文件配置

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

查看当前数据库归档状态

SQL> SELECT arch_mode FROM v$database; LINEID ARCH_MODE ---------- --------- 1 Y used time: 0.399(ms). Execute id is 701. SQL>

修改归档配置参数

SQL> ALTER DATABASE MODIFY ARCHIVELOG 'TYPE=LOCAL ,DEST=/dmdata/arch ,FILE_SIZE=128 ,SPACE_LIMIT=20480';

关闭归档

SQL> alter database mount; SQL> alter database noarchivelog; SQL> alter database delete archivelog 'TYPE=LOCAL ,DEST=/dmdata/arch ,FILE_SIZE=128 ,SPACE_LIMIT=20480'; SQL> alter database open; SQL> SELECT arch_mode FROM v$database; LINEID ARCH_MODE ---------- --------- 1 N

###切换归档

alter database archivelog current; alter system switch logfile; alter system archive log current;

删除归档

根据时间删除

        SQL> SF_ARCHIVELOG_DELETE_BEFORE_TIME(SYSDATE);
        DMSQL executed successfully

根据LSN删除

        SF_ARCHIVELOG_DELETE_BEFORE_LSN()

用户管理

相关视图

    dba_users;

DM 多权分立

将用户分为多个角色
系统管理员 SYSDBA 身份验证, 资源限制, 数据加密, 访问控制, 客体重用
系统审计员 SYSAUDITOR 审计
系统安全员 SYSSSO 策略和标记管理
对象管理员 SYSDBO 访问对象控制

用户口令策略

PWD_POLICY = 设置密码口的策略
      0: 无限制, 但总长度不得超过48个字节
      1: 禁止与用户名相同
      2: 口令长度需大于等于INI参数PWD_MIN_LEN设置的值
      4: 至少包含一个大写字母
      8: 至少包含一个数字
      16: 至少包含一个标点符号, 英文输入法状态下, 除“和空格外的所有符号

PWD_POLICY 是隐藏参数, 只能通过函数或者语句进行修改, 配置文件中没有该参数

SQL> alter system set 'pwd_policy'=3 both; DMSQL executed successfully used time: 1.757(ms). Execute id is 1401. SQL> SQL> SQL> SQL> exit [dmdba@itsdata its]$ disql SQL> create user fyu identified by fyu; create user fyu identified by fyu; [-2160]:Error in line: 1 Password must be different from login name. used time: 1.230(ms). Execute id is 0. SQL> create user fyu identified by fangyu; create user fyu identified by fangyu; [-2504]:Error in line: 1 Password length invalid. used time: 0.806(ms). Execute id is 0. SQL> create user fyu identified by fangyu1111; executed successfully used time: 48.792(ms). Execute id is 1500. SQL>

用户身份验证模式

数据库认证模式

使用创建用户时, 设置的密码登录

基于操作系统认证模式

开启操作系统认证参数
ENABLE_LOCAL_OSAUTH = 1 开启本地操作系统认证
ENABLE_REMOTE_OSAUTH = 1 开启远程操作系统认证
ENABLE_ENCRYPT = 1 表示使用ssl安全加密
上面的参数时静态参数, 需要重启数据库

1、开启操作系统认证需要先将系统用户添加到 useradd fangyu groupadd dmusers usermod -G dmusers fangyu 2、数据库中创建一个和系统用户相同名字的用户 CREATE USER fangyu IDENTIFIED BY "fangyu421"; 3、登录数据库 disql /localhost:5236 users

用户管理示例

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 可以定义的策略

SQL> select * from SYS.DBA_PROFILES; LINEID PROFILE RESOURCE_NAME RESOURCE_TYPE LIMIT ---------- ------- -------------------- ------------- --------- 1 DEFAULT CPU_PER_CALL KERNEL UNLIMITED 2 DEFAULT CPU_PER_SESSION KERNEL UNLIMITED 3 DEFAULT MEM_SPACE KERNEL UNLIMITED 4 DEFAULT READ_PER_CALL KERNEL UNLIMITED 5 DEFAULT READ_PER_SESSION KERNEL UNLIMITED 6 DEFAULT CONNECT_TIME KERNEL UNLIMITED 7 DEFAULT SESSION_PER_USER KERNEL UNLIMITED 8 DEFAULT CONNECT_IDLE_TIME KERNEL UNLIMITED 9 DEFAULT FAILED_LOGIN_ATTEMPS PASSWORD 3 10 DEFAULT PASSWORD_LIFE_TIME PASSWORD UNLIMITED 11 DEFAULT PASSWORD_REUSE_TIME PASSWORD UNLIMITED 12 DEFAULT PASSWORD_REUSE_MAX PASSWORD UNLIMITED 13 DEFAULT PASSWORD_LOCK_TIME PASSWORD 1 14 DEFAULT PASSWORD_GRACE_TIME PASSWORD 10

LIMIT 语句

SQL> alter user fyu limit FAILED_LOGIN_ATTEMPS 10 , PASSWORD_LOCK_TIME 5; SQL> SELECT * FROM SYSUSER$; # 该视图中可以看到修改的资源限制

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

示例

SQL> CREATE USER FYU IDENTIFIED BY "fangyu421"; SQL> GRANT RESOURCE TO FYU ; SQL> REVOKE RESOURCE FROM FYU;

权限相关系统表

        DBA_SYS_PRIVS   系统权限
        DBA_TAB_PRIVS   对象权限
        DBA_ROLE_PRIVS  角色
        DBA_COL_PRIVS   列权限

查看权限

    查看当前用户的权限
        SQL> select * from session_privs;

        LINEID     PRIVILEGE
        ---------- -------------------
        1          CREATE SESSION
        2          DBA
        3          RESOURCE
        4          PUBLIC
        5          SYS_ADMIN
        6          SOI
        7          EXECUTE DBMS_XMLGEN

角色管理

角色: 一组权限的集合

预定角色

管理类

        DBA         数据库管理角色, 在该数据库内具备除审计和标记相关权限之外的所有权限
        RESOURCE    具备部分创建数据库对象的权限, 且对其自身创建的数据库对象拥有所有的权限, 并能将其转授给其他用户
        PUBLIC      只能连接数据库并访问部分数据字典在缺省情况下,
        VTI         具有查询动态视图的查询权限
        SVI         查看v开头视图的权限
        SOI         查看系统表的权限

审计类

        DB_AUDIT_ADMIN  数据库审计管理角色, 在该库内具备所有与审计相关的权限, 包括创建审计用户和进行数据库审计
        DB_AUDIT_OPER   可连接数据库并进行审计操作
        DB_AUDIT_PUBLIC 只能连接数据库并访问部分数据字典缺省情况下, 每个审计用户在被创建时即具有此角色
        DB_AUDIT_VTI    具有查询动态视图的查询权限
        DB_AUDIT_SOI    查看v开头视图的权限
        DB_AUDIT_SVI    查看v开头视图的权限

安全类

        DB_POLICY_ADMIN     数据库标记管理角色, 在该库内具备所有与标记相关的权限, 包括创建标记用户和管理数据库标记
        DB_POLICY_OPER      可连接数据库并进行标记操作
        DB_POLICY_PUBLIC    只能连接数据库并访问部分数据字典缺省情况下, 每个标记用户在被创建时即具有此角色
        DB_POLICY_VTI       具有查询动态视图的查询权限
        DB_POLICY_SOI       查看系统表的权限
        DB_POLICY_SVI       查看v开头视图的权限

创建角色

    CREATE ROLE role_name;

删除角色

    DROP ROLE role_name;

禁用角色

    SP_SET_ROLE('role_name',0)

模式管理

模式

模式是一个特定的对象集合
类似MySQL中的database , 用户可以创建多个database, 在DM中表示为模式, 默认情况下当创建用户时, 则默认会创建一个同名的模式

模式和用户的关系
一个用户可以有多个模式, 一个模式只能属于一个用户

查看模式

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;

查看当前模式和用户

SQL> SELECT SYS_CONTEXT('USERENV','CURRENT_SCHEMA'); LINEID SYS_CONTEXT('USERENV','CURRENT_SCHEMA') ---------- --------------------------------------- 1 SYSDBA used time: 4.635(ms). Execute id is 600. SELECT SYS_CONTEXT('USERENV','CURRENT_USER'); LINEID SYS_CONTEXT('USERENV','CURRENT_USER') ---------- ------------------------------------- 1 SYSDBA used time: 1.060(ms). Execute id is 601. SQL>

切换模式

    SQL> SET SCHEMA S2;

删除模式

    SQL> drop schema s1;

表管理

创建表

创建表方式

1、普通方式

SQL> CREATE TABLE T1(id INT, name VARCHAR(12)); executed successfully used time: 9.683(ms). Execute id is 501. SQL> INSERT INTO T1 VALUES(1,'AAA'),(2,'BBB'); affect rows 2 used time: 0.629(ms). Execute id is 502. SQL> COMMIT; executed successfully used time: 1.372(ms). Execute id is 503. SQL> SELECT * FROM T1; LINEID ID NAME ---------- ----------- ---- 1 1 AAA 2 2 BBB used time: 0.412(ms). Execute id is 504. SQL>

2、基于某个表创建

SQL> CREATE TABLE T2 LIKE T1; # 在MySQL中这种语句不复制表中数据, 但是DM中会复制数据 executed successfully used time: 5.761(ms). Execute id is 505. SQL> SELECT * FROM T2; LINEID ID NAME ---------- ----------- ---- 1 1 AAA 2 2 BBB used time: 0.326(ms). Execute id is 506.

3、CREATE TABLE AS SELECT

SQL> CREATE TABLE T3 AS SELECT * FROM T1; executed successfully used time: 4.945(ms). Execute id is 507. SQL> SELECT * FROM T3; LINEID ID NAME ---------- ----------- ---- 1 1 AAA 2 2 BBB used time: 0.431(ms). Execute id is 508. SQL>

向表中添加字段

    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

数据导入

    start /path_to_file
    ` /path_to_file

约束管理

约束类型

    NOT NULL:   非空约束
    UNIQUE:     唯一约束
    PRIMARY KEY:主键约束 (唯一约束+非空约束)
    FOREIGN KEY:外键约束
    CHECK:      检验约束

向表上添加约束

NOT NULL
        ALTER TABLE T1 MODIFY id NOT NULL DEFAULT '';
唯一约束
        ALTER TABLE T1 ADD CONSTRAINT idx_uniq_id UNIQUE(id);
主键约束
        ALTER TABLE T1 ADD CONSTRAINT idx_pri_id PRIMARY KEY(id);
外键约束
        ALTER TBALE T1 ADD CONSTRAINT fk_id FOREIGN KEY (id) REFERENCES T2(id)
禁用约束
        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 TABLE i1(id INT, name VARCHAR(12));
INSERT INTO i1 VALUES(1,'a');
INSERT INTO i1 VALUES(2,'b');
INSERT INTO i1 VALUES(3,'c');
INSERT INTO i1 VALUES(4,'d');
COMMIT;

创建索引

SQL> CREATE INDEX idx_id ON i1(id);

删除索引

SQL> DROP INDEX idx_id;

监控索引

SQL> ALTER INDEX idx_name MONITORING USAGE;
executed successfully
used time: 1.354(ms). Execute id is 815.
SQL> SELECT * FROM V$OBJECT_USAGE;
LINEID     INDEX_NAME SCH_NAME TABLE_NAME MONITORING USED START_MONITORING    END_MONITORING
---------- ---------- -------- ---------- ---------- ---- ------------------- --------------
    1          IDX_NAME   SYSDBA   I1         YES        NO   2022-07-04 13:53:29 NULL

    used time: 0.512(ms). Execute id is 816.
    SQL>

重建索引

SQL> ALTER INDEX idx_name rebuild; executed successfully used time: 6.013(ms). Execute id is 817. SQL> ALTER INDEX idx_name rebuild online; executed successfully used time: 14.616(ms). Execute id is 818. SQL>

统计信息收集

    SQL>  dbms_stats.gather_table_stats('SYSDBA','I1');
    SQL> dbms_stats.table_stats_show('SYSDBA','I1');

    LINEID     NUM_ROWS             LEAF_BLOCKS          LEAF_USED_BLOCKS
    ---------- -------------------- -------------------- --------------------
    1          4                    1                    1

视图管理

由SQL语句组成的表, 视图不存储真实的数据, 只存储表的查询语句

SQL> CREATE VIEW v1 AS SELECT * FROM T1;
executed successfully
used time: 36.400(ms). Execute id is 514.
SQL> SELECT * FROM V1;

LINEID     ID          NAME SEX1
---------- ----------- ---- ----
1          1           AAA  NULL
2          2           BBB  NULL

used time: 0.563(ms). Execute id is 515.
SQL> 

数据库备份恢复

备份恢复概念

备份: 从数据库文件中拷贝有效的数据页保存到备份集中 有效数据页指的是: 数据文件的描述页和被分配使用的数据页
还原: 将有效的数据页重新写入目标数据文件中的过程
恢复: 通过归档日志将数据恢复到备份结束时的状态, 也可以恢复到指定的时间或者LSN的位置
– 在恢复后数据库中的未提交数据在启动时会有DM自动进行回滚

备份类型

逻辑备份
      通过dexp工具, 将指定对象的数据导出到文件, 逻辑备份针对的是数据内容, 不关系数据物理存储在什么位置

物理备份
      直接扫描数据文件, 找出已经分配使用的数据页拷贝并保存到备份集, 物理备份不关心数据的内容只是通过数据库文件系统的藐视来挑选有效的数据页

联机备份
      数据库处于运行状态并正常提供数据库服务的状态下进行备份

脱机备份
      数据库处于关闭状态下进行数据库的备份

DM dmrman备份只能是关闭数据库下才可以进行脱机备份

联机备份

SQL> BACKUP DATABASE BACKUPSET 'bak_db'; 默认如果没有指定备份路径, 则根据 dm.ini 中配置的BAK_PATH参数将备份的数据库存放在该路径下 BACKUP 语句参数 FULL 表示完全备份, 默认就是完全备份, 可以不写 DDL_CLONE 数据库克隆, 只备份元数据信息, 不备份数据 INCREMENT 增量备份参数 CUMULATIVE 用于增量备份中, 指明为累积增量备份 WITH BACKUPDIR 用于增量备份中, 用于指定增量备份的基备份搜索目录 BASE ON BACKUPSET 用于增量备份, 指定基备份路径 TO 指定生成备份的名称, 不指定则系统随机生成 默认格式: DB_库名_备份类型_备份时间 BACKUPSET 指定当前备份集的路径 DEVICE TYPE 指定存储介质 BACKUPINFO 备份的描述信息 MAXPIECESIZE 最大备份片大小限制 LIMIT 指定备份时最大的读写文件速度 单位M/s IDENTIFIED BY 指定备份时加密的密码 WITH ENCRYPTION 指定加密类型 ENCRYPT WITH 指定加密算法 COMPRESSED 备份时压缩 WITHOUT LOG 联机数据库备份是否备份日志 TRACE FILE 指定生成的TRACE文件 TRACE LEVEL 是否启用TRACE 1: 不启用 2: 启用 TASK THREAD 备份过程中数据库处理线程的格式 默认:4 PARALLEL 指定并行备份的并行数和拆分块大小 **-- 在执行备份过程中, 如果报错归档不完整 则需要先执行生成检查点操作才能正常备份 SELECT CHECKPOINT(100)**

完全备份

1、完全备份, 备份时指定备份名称 并且 添加备份注释信息

SQL> BACKUP DATABASE TO FULL_DATABASE_02 BACKUPSET '/dmbak/full_db_02' BACKUPINFO '第二次完全备份';

2、完全备份, 备份时指定备份片最大大小

SQL> BACKUP DATABASE BACKUPSET '/dmbak/full_db_03' MAXPIECESIZE 300;

3、完全备份, 备份时进行压缩

SQL> BACKUP DATABASE BACKUPSET '/dmbak/full_db_04' COMPRESSED LEVEL 5;

4、完全备份, 采用并行备份, 并行数是8

SQL> BACKUP DATABASE BACKUPSET '/dmbak/full_db_05' PARALLEL 8;

增量备份

SQL> BACKUP DATABASE INCREMENT WITH BACKUPDIR '/dmbak' BACKUPSET '/dmbak/incr_db_01' BACKUPINFO '第一次增量备份';

表空间备份

1、备份TBS_ITS表空间

SQL> BACKUP TABLESPACE TBS_ITS BACKUPSET '/dmbak/tbs_its';

2、增量备份, 没有指定基备份, 则在备份目录下搜索最近一次的完全备份或者增量备份作为基备份

SQL> BACKUP TABLESPACE TBS_ITS INCREMENT BACKUPSET '/dmbak/tbs_its_incr';

3、增量备份, 基于某个备份做增量备份

SQL> BACKUP TABLESPACE TBS_ITS INCREMENT BASE ON BACKUPSET '/dmbak/tbs_its' BACKUPSET '/dmbak/tbs_its_incr02';

4、增量备份, 基于某个备份

SQL> BACKUP TABLESPACE TBS_ITS INCREMENT WITH BACKUPDIR '/dmbak/' BACKUPSET '/dmbak/tbs_its_incr_03';

表备份

SQL> BACKUP TABLE FANGYU.EMP BACKUPSET '/dmbak/t_emp';

归档备份

SQL> BACKUP ARCHIVE LOG ALL BACKUPSET '/dmbak/arch_full_01';

归档备份参数

FROM LSN    指定备份开始LSN
UNTIL LSN   指定备份结束LSN
FROM TIME   指定备份的开始时间
UNTIL TIME  指定备份的结束时间
DELETE FROM 用于指定备份完成后, 是否删除归档
TO          指定备份名称
BETWEEN ... AND ...  指定备份的区间

DMRMAN 备份

备份数据库

完全备份

RMAN> BACKUP DATABASE '/dmdata/itsdata/dm.ini' BACKUPSET '/dmbak/full_db_01'; BACKUP DATABASE '/dmdata/itsdata/dm.ini' BACKUPSET '/dmbak/full_db_01'; Database mode = 0, oguid = 0 Normal of FAST Normal of DEFAULT Normal of RECYCLE Normal of KEEP Normal of ROLL EP[0]s cur_lsn[59891], file_lsn[59891] Processing backupset /dmbak/full_db_01 [Percent:100.00%][Speed:0.00M/s][Cost:00:00:02][Remaining:00:00:00] backup successfully! time used: 00:00:03.272 RMAN>

增量备份

BACKUP DATABASE '/dmdata/itsdata/dm.ini' INCREMENT WITH BACKUPDIR '/dmbak' BACKUPSET '/dmbak/incr_db_01';

归档备份

BACKUP ARCHIVE LOG ALL DATABASE '/dmdata/itsdata/dm.ini' BACKUPSET '/dmbak/arch_db_01';

备份集校验

SQL> SELECT SF_BAKSET_CHECK('DISK','/dmbak/full_db');
行号     SF_BAKSET_CHECK('DISK','/dmbak/full_db')
---------- ----------------------------------------
1          1

删除备份集

删除指定设备类型和指定备份集目录的备份集
SQL> SELECT SF_BAKSET_REMOVE('DISK','/dmbak/full_db',0);
行号     SF_BAKSET_REMOVE('DISK','/dmbak/full_db',0)
 ---------- -------------------------------------------
1          1

逻辑备份

dexp 逻辑备份
    dexp 参数
        USERID               指定用户名和密码
        FILE                 指定导出文件的名称, 如果不指定默认: dexp.dmp
        DIRECTORY            指定导出文件目录
        FULL                 全量备份
        OWNER                导出指定用户的数据, 格式: (user1,user2,...)
        SCHEMAS              导出指定模式的数据, 格式: (schema1,schema2,...)
        TABLES               指定导出某个表    , 格式: (table1,table2,...)
        FUZZY_MATCH          使用TABLES选项时, 是否对表名进行模糊匹配 默认:N
        QUERY                导出表数据时, 过滤条件
        PARALLEL             并发导出
        TABLE_PARALLEL       对于表进行并发导出, MPP模式下会转换成单线程
        TABLE_POOL           指定表的缓冲区个数
        EXCLUDE              指定导出时排除那些不导出   EXCLUDE=(CONSTRAINTS,INDEXES,ROWS,TRIGGERS,GRANTS) or EXCLUDE=TABLES:table1,table2 or EXCLUDE=SCHEMAS:sch1,sch2 
        INCLUDE              指定导出的对象  INCLUDE=(CONSTRAINTS,INDEXES,ROWS,TRIGGERS,GRANTS) or  INCLUDE=TABLES:table1,table2
        CONSTRAINTS          导出约束 (Y)
        TABLESPACE           导出对象带有表空间 (N)
        GRANTS               导出权限 (Y)
        INDEXES              导出索引 (Y)
        TRIGGERS             导出触发器 (Y)
        ROWS                 导出数据行 (Y)
        LOG                  指定日志文件
        NOLOGFILE            不使用日志文件(N)
        NOLOG                屏幕上不显示日志信息(N)
        LOG_WRITE            日志信息实时写入文件: 是(Y),否(N)
        DUMMY                交互信息处理: 打印(P), 所有交互都按YES处理(Y),NO(N) 
        PARFILE              参数文件名
        FEEDBACK             每 x 行显示进度 (0)
        COMPRESS             导出数据是否压缩 (N)
        ENCRYPT              导出数据是否加密 (N)
        ENCRYPT_PASSWORD     导出数据的加密密钥
        ENCRYPT_NAME         加密算法的名称
        FILESIZE             每个转储文件的最大大小
        FILENUM              一个模板可以生成的文件数
        DROP                 导出后删除原表,但不级联删除 (N)
        DESCRIBE             导出数据文件的描述信息,记录在数据文件中
        COL_DEFAULT_SEPARATE 是否单独导出列默认值 (Y)
        HELP                 打印帮助信息

示例

全库导出: dexp USERID=SYSDBA/fangyu421 FULL=y FILE=full.dmp LOG=full.log DIRECTORY=/tmp 导出某个用户的数据: dexp USERID=SYSDBA/fangyu421 OWNER=fangyu FILE=fnagyu.dmp LOG=fangyu.log DIRECTORY=/tmp 导出某个模式的数据: dexp USERID=SYSDBA/fangyu421 SCHEMAS=fangyu FILE=fnagyu.dmp LOG=fangyu.log DIRECTORY=/tmp 导出指定的表数据: dexp USERID=SYSDBA/fangyu421 TABLES=t1,t2 FILE=t1_t2.dmp LOG=t1_t2.log DIRECTORY=/tmp

dimp 逻辑备份还原

dimp USERID=SYSDBA/fangyu421 FILE=/dmbak/full.dmp LOG=full.log FULL=Y DIRECTORY=/dmbak/dimp/

FILE: 指定要导入的文件
DIRECTORY: 在导入过程中, 生成的日志文件会存放在该目录下

作业系统

创建备份作业

全量备份

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

增量备份

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

DM8 开发

JDBC 连接数据库

JDBC 接口编程

JDBC (Java Database Connectivity) 是 Java 应用程序与数据库的接口规范,旨在让各数据库开发商为 Java 程序员提供标准的数据库应用程序编程接口 (API)
JDBC 定义了一个跨数据库、跨平台的通用 SQL 数据库 API。
DM JDBC 数据库驱动程序是一个能够支持基本 SQL 功能的通用应用程序编程接口,
支持一般的 SQL 数据库访问。通过 JDBC 驱动程序,用户可以在应用程序中实现对 DM 数据库的连接与访问,

JDBC 驱动程序的主要功能包括:
建立与 DM 数据库的连接。
转接发送 SQL 语句到数据库。
处理并返回语句执行结果。

JDBC 连接池

数据库连接池负责分配、管理和释放数据库连接。它允许应用程序重复使用一个现有的数据库连接,
而不是再重新建立一个;对空闲时间超过最大空闲时间的数据库连接能自动释放,
避免因数据库连接未释放而引起的连接泄露问题

JDBC常见连接池

1、C3P0:是一个开放源代码的JDBC连接池,实现jdbc3和jdbc2扩展规范说明的Connection 和Statement 池的DataSources 对象。
2、Proxool:是一个Java SQL Driver驱动程序,提供了对选择的其它类型的驱动程序的连接池封装。可以透明地为现存的JDBC驱动程序增加连接池功能。
3、Jakarta DBCP:DBCP是一个依赖Jakartacommons-pool对象池机制的数据库连接池。DBCP可以直接在应用程序中使用。
4、BoneCP:是一个快速、开源的数据库连接池。帮用户管理数据连接,让应用程序能更快速地访问数据库。比C3P0/DBCP连接池速度快25倍。
5、Druid:Druid不仅是一个数据库连接池,还包含一个ProxyDriver、一系列内置的JDBC组件库、一个SQL Parser。
6、Hikari:Hikari是一款非常强大,高效,并且号称“史上最快连接池”。在springboot2.0之后,采用的默认数据库连接池就是Hikari。

JDBC连接基础参数

jdbc.driver=dm.jdbc.driver.DmDriver
jdbc.url=jdbc:dm://localhost:5236
jdbc.username=test
jdbc.password=Test12345

ODBC 连接数据库

开放数据库连接, 为解决异构数据库间的数据共享而产生的, ODBC 为异构数据库访问提供统一接口, 允许应用程序以SQL 为数据存取标准, 存取不同DBMS管理的数据
使应用程序直接操纵DB中的数据, 免除随DB的改变而改变。用ODBC 可以访问各类计算机上的DB文件
DM ODBC 3.0 遵照 Microsoft ODBC 3.0 规范设计与开发, 实现了 ODBC 应用程序与 DM 数据库的互连接口
用户可以直接调 DM ODBC 3.0 接口函数访问 DM, 也可以使用可视化编程工具如 C++ Builder、PowerBuilder 等利用 DM ODBC 3.0 访问 DM 数据库

查看ODBC信息

[dmdba@itsdata bin]$ odbcinst -j unixODBC 2.3.1 DRIVERS............: /etc/odbcinst.ini SYSTEM DATA SOURCES: /etc/odbc.ini FILE DATA SOURCES..: /etc/ODBCDataSources USER DATA SOURCES..: /home/dmdba/.odbc.ini SQLULEN Size.......: 8 SQLLEN Size........: 8 SQLSETPOSIROW Size.: 8 [dmdba@itsdata bin]$

配置ODBC

[root@itsdata ~]# vi /etc/odbcinst.ini [DM8 ODBC DRIVER] Description = ODBC DRIVER FOR DM8 Driver = /dm8/bin/libdodbc.so [root@itsdata ~]# vi /etc/odbc.ini [DM8] Description = DM ODBC DSN Driver = DM8 ODBC DRIVER SERVER = localhost UID = SYSDBA PWD = SYSDBA TCP_PORT = 5236

测试连接

[dmdba@itsdata ~]$ isql dm8 -v +------------------+ | Connected! | | | | sql-statement | | help [tablename] | | quit | | | +------------------+ SQL> select status$ from v$instance; +-----------+ | STATUS$ | +-----------+ | OPEN | +-----------+ SQL>

更多详情请访问达梦在线服务平台 https://eco.dameng.com/

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服