DM7 备份还原、作业、DM 开发

备份还原

备份作用?
1、防止误操作。
2、软硬件故障,做恢复
3、防止天灾。
备份的方式:物理备份和逻辑备份
备份的介质:磁盘,磁带,光盘
集群:数据守护 ,dsc(rac)
也支持第三方的备份软件:上海爱数,鼎甲

物理备份

冷备和热备
冷备:DMAP服务是打开的,数据库实例是关闭的);
方式:

  1. 利用控制台工具去备
  2. DMRMAN工具备份:
  • 冷备份,要停止数据库,如果不停止造成数据丢失。
  • 热备份(DMAP服务是打开的,数据库实例是打开的,数据库是归档模式)

开归档:命令方式:

SQL> alter database mount;
SQL> alter database add archivelog 'type=local,dest=/dm7/arch,file_size=64,space_limit=0';
SQL> alter database archivelog;
SQL> alter database open;
SQL> select name,status$,arch_mode from v$database;

利用管理工具去开归档

[dmdba@dca01 ~]$ disql sysdba/SYSDBA@localhost:5238
SQL> select name,status$,arch_mode from v$database;

命令行方式下全备,增量备(考试的时候建议用热备)

# 全备:
SQL> backup database full backupset '/dm7/backup/full_bak';

# 增量备:
SQL> backup database increment backupset '/dm7/backup/incr_bak';

3、利用管理工具作热备

还原:
模拟表空间损坏:

[dmdba@dca01 DAMENG]$ mv tbs1_02.dbf tbs1_02.dbf.bak
# 重启服务
# 数据库处于mount状态,手动open
SQL> restore tablespace tbs1 from backupset '/dm7/backup/full_bak/';
SQL> alter database open;
SQL> alter tablespace tbs1 online;

逻辑备份

导入导出(DIMP,DEXP)分为四种级别:
数据库级别,用户级别,模式级别和表级别,四种级别独立互斥,不能同时存在,四种级别提供的功能:

  1. 数据库级别:导出或导入整个数据库的访问对象。
  2. 用户:导入或导出一个或多个用户所拥有的所有对象。
  3. 模式:导入或导出一个或多个模式下的所有对象。
  4. 表级:导出或导入一个或多个指定表或表分区。

1、逻辑导出

[dmdba@dca01 bin]$ ./dexp
sysdba/dameng123@localhost:5236 file=dexp01.dmp
log=dexp01.log directory=/dm7/backup/dexp full=y

2、导入:

[dmdba@dca01 bin]$ ./dimp sysdba/SYSDBA@localhost:5238 file=/dm7/backup/dexp/dexp01.dmp log=/dm7/backup/dexp/dimp02.log;

作业

定时去执行的一组任务

考试时尽量使用管理工具来做。命令多且繁杂。

定期去备份

  1. 创建代理环境(达梦会创建一个sysjob模式)
  2. 创建作业:
call SP_CREATE_JOB('JOB1',1,0,'',0,0,'',0,'');

call SP_JOB_CONFIG_START('JOB1');

call SP_ADD_JOB_STEP('JOB1', 'JOB1', 5, '01000/dm7/backup/JOB', 1, 2, 0, 0, NULL, 0);

call SP_ADD_JOB_SCHEDULE('JOB1', 'JOB1', 1, 2, 1, 64, 0, '22:00:00', NULL, '2020-02-19 14:48:01', NULL, '');

call SP_JOB_CONFIG_COMMIT('JOB1');

定时增量备份

call SP_CREATE_JOB('JOB2',1,0,'',0,0,'',0,'');

call SP_JOB_CONFIG_START('JOB2');

call SP_ADD_JOB_STEP('JOB2', 'JOB2', 5, '11000/dm7/backup/full_bak|/dm7/backup/JOB', 1, 2, 0, 0, NULL, 0);

call SP_ADD_JOB_SCHEDULE('JOB2', 'JOB2', 1, 2, 1, 63, 0, '22:00:00', NULL, '2020-02-19 14:53:32', NULL, '');

call SP_JOB_CONFIG_COMMIT('JOB2');

DM 开发

支持 C 、 C++ 、 Java、Python、PHP、Perl 进行开发

/** 定义一个 DM JDBC 驱动串 */
String jdbcStr = "dm.jdbc.driver.DmDriver";

/** DM url 连接串 */
String urlString = "jdbc:dm://ip:5236";

配置 ODBC (考试要考)

# 检查是否安装了 gcc
rpm -aq|grep gcc
yum -y install gcc

tar -xzvf unixODBC-2.3.0.tar.gz
cd ./unixODBC-2.3.0
# 配置ODBC
./ configure --enable-gui=no
# 编译ODBC
make
make install

# 检查是否装好了
odbc_config --version
# 下面两个,都是获取控制文件的路径
odbc_config --odbcini
odbcinst -j

# 配置 ODBC.ini 和 odbcinst.ini


# 测试ODBC
isql dm7

存储过程

写匿名块

declare (可选项)

begin
  print("hello")
  end;
set serveroutput on
begin
for i in 1..5 loop
  print(i);
end loop;
end;
/
SQL> begin
2    for i in 1..5 loop
3        print(i);
4   end loop;
5   end;

案例 1:根据员工编号找其所在部门

CREATE PROCEDURE "TEST"."SNO"("BH" IN INT)
AS
  DEPT INT;
BEGIN
  SELECT DEPARTMENT_ID INTO DEPT FROM DMHR.EMPLOYEE WHERE EMPLOYEE_ID=BH;
  PRINT(DEPT);
END;

触发器

BEGIN
  INSERT INTO TEST.T VALUE(:OLD.SALARY,NEW.SALARY)
END;
posted @ 2020-04-23 23:15  菁芜  阅读(357)  评论(0编辑  收藏  举报