达梦数据库运维常用归档、sql日志、dexp与dimp操作

目录

一、归档文件配置... 3

二、sql⽇志的开启和关闭以及基本的操作... 3

三、执行计划... 5

四、工具和命令行数据库物理、逻辑备份,还原... 6

1、工具物理备份... 6

2、命令行联机备份... 8

3、命令行脱机备份... 8

4、工具物理还原... 8

5、命令行DMRMAN脱机恢复... 11

五、逻辑备份和逻辑还原... 12

1、客户端逻辑全量备份... 12

2、客户端逻辑全量恢复... 13

3、验证... 13

4、客户端逻辑指定用户恢复... 14

5、测试... 14

6、级联表删除及导入:... 15

7、表空间转换... 16

8、非默认表空间表导入到默认表空间问题处理... 20

六、输出文件spool 21

一、归档文件配置

ARCH_FILE_SIZE:单个归档文件大小,单位 MB,取值范围 64~2048,缺省为 1024MB,即 1G

ARCH_FLUSH_BUF_SIZE:归档合并刷盘缓存大小,单位 MB,取值范围 0~128,缺省为 0,表示不使用归档合并刷盘

ARCH_HANG_FLAG:本地归档写入失败时系统是否挂起。

归档开启

alter database mount;

alter database add archivelog 'DEST=/dm/dmarch,TYPE=local,FILE_SIZE=128,space_limit=0';

alter database archivelog;

alter database open;

select arch_mode from v$database;

二、sql⽇志的开启和关闭以及基本的操作

开启dm.ini中参数SVR_LOG=1 参数是动态参数,可通过以下语句修改,直接生效

SP_SET_PARA_VALUE(1,'SVR_LOG',1); --开启日志记录

SP_SET_PARA_VALUE(1,'SVR_LOG',0); --关闭日志记录

或者

配置sqllog.ini文件

sqllog.ini文件在实例数据文件目录,直接编辑,编辑完可通过以下存储过程直接让配置生效,无需重启服务

SP_REFRESH_SVR_LOG_CONFIG();

示例:

dm.ini中指定模式[SLOG_ALL],而其中SQL_TRACE_MASK模式1全部记录。

执行SP_SET_PARA_VALUE(1,'SVR_LOG',1);

 

执行SP_SET_PARA_VALUE(1,'SVR_LOG',1); 系统过程后,dm.ini配置参数SVR_LOG自动改为1开启了

关闭sql日志,无sql输出了。

 

三、执行计划

执行计划和统计信息跟踪 的 配置 开关

SET AUTOTRACE <OFF(缺省值) | NL | INDEX | ON | TRACE | TRACEONLY>

SET AUTOTRACE TRACE --执行语句,打印执行计划,输出结果集

SET AUTOTRACE TRACEONLY --执行语句,打印执行计划,不输出结果集

SET AUTOTRACE OFF --关闭执行计划和统计信息的跟踪

或者直接

explain + sql

explain select * from dept;

 

四、工具和命令行数据库物理、逻辑备份,还原

1、工具物理备份

远程联机备份--远程图形化界面

windows执行dmmanager.exe连接服务

 

备份成功

2、命令行联机备份

SQL>backup database full backupset '/dm/ljbak/dave_full_01';

3、命令行脱机备份

shutdown immediate;

bin/目录下执行 ./dmrman

RMAN> BACKUP DATABASE '/dm8/data/data/DAMENG/dm.ini' FULL BACKUPSET '/dm8/tjbak/db_full_bak_01';

4、工具物理还原

root授权:chmod -R 777 workspace/

export DISPLAY=192.168.16.10:0.0

console

联机备份:

删除数据,停库

备份恢复:

 

恢复成功

5、命令行DMRMAN脱机恢复

shutdown immediate;

./dmrman

检查备份

RMAN> CHECK BACKUPSET '/dm/ljbak/dave_full_03';

RMAN> RESTORE DATABASE '/dm/data/DAMENG/dm.ini' FROM BACKUPSET '/dm/ljbak/dave_full_03';

RMAN> RECOVER DATABASE '/dm/data/DAMENG/dm.ini' FROM BACKUPSET '/dm/ljbak/dave_full_03';

RMAN> RECOVER DATABASE '/dm/data/DAMENG/dm.ini' UPDATE DB_MAGIC;

五、逻辑备份和逻辑还原

都是在联机方式下完成

数据库级、用户级、模式级和表级。

数据库级(FULL): 导出或导入整个数据库中的所有对象。 FULL=Y

用户级(OWNER): 导出或导入一个或多个用户所拥有的所有对象。OWNER=<用户名>{,<用户名>}

模式级(SCHEMAS):导出或导入一个或多个模式下的所有对象。 SCHEMAS=<模式名>{,<模式名>}

表级(TABLES): 导出或导入一个或多个指定的表或表分区。 TABLES=<表名>{,<表名>}

dexp导出的文件必须存放在客户端,dexpdp导出的文件必须存放在服务器端。

在使用 dexpdp 和 dimpdp 时,DIRECTORY 参数支持使用在服务器端通过 CREATE DIRECTORY 定义的目录名。

CREATE OR REPLACE DIRECTORY "GYFDIR" AS 'dm/data/dexp/path';

LSN:可以通过查询动态视图 V$RLOG 或 V$LSN_TIME 来确定。

INDEXFIRST 设置导入时是否先建索引。数据量大时,选择INDEXFIRST=Y,先创建索引再导入数据,这样就避免创建索引之前遍历大量数据而耗费时间。

REMAP_SCHEMA:将源模式中的数据导入到目标模式中。<SOURCE_SCHEMA>:<TARGET_SCHEMA>

REMAP_TABLE: REMAP_TABLE=T1:T2

REMAP_TABLESPACE REMAP_TABLESPACE=MAIN:TS

SCHEMAS=SYSDBA,OTHER,PERSON --可以一次导入多个模式

/user/data为数字证书路径(没有这里不填)

./dexp USERID=SYSDBA/SYSDBA@192.168.16.200:5235#/user/data FILE=db_str.dmp DIRECTORY=/mnt/dexp/data LOG=db_str.log FULL=Y

1、客户端逻辑全量备份

./dexp USERID=SYSDBA/SYSDBA@192.168.16.200:5235 FILE=db_str.dmp DIRECTORY=/dm/dexp/data LOG=db_str.log FULL=Y

删库

2、客户端逻辑全量恢复

./dimp USERID=SYSDBA/SYSDBA@192.168.16.200:5236 FILE=db_str.dmp DIRECTORY=/dm/dexp/data LOG=db_str.log FULL=Y

3、验证

数据恢复

4、客户端逻辑指定用户恢复

drop user hr cascade;

./dimp USERID=SYSDBA/SYSDBA@192.168.16.200:5236 FILE=db_str.dmp DIRECTORY=/dm/dexp/data LOG=db_str.log owner=hr

create user hr identified by hr12345678;

创建用户后再次导入成功。(使用全量逻辑备份恢复指定用户数据)

5、测试

./dimp USERID=SYSDBA/SYSDBA@192.168.16.200:5236 FILE=db_str.dmp DIRECTORY=/dm/dexp/data LOG=db_str.log owner=hr table_exists_action=append --(追加慎用!!会产生很多重复数据!!单独指定一个空表是可以的。)

./dimp USERID=SYSDBA/SYSDBA@192.168.16.200:5236 FILE=db_str.dmp DIRECTORY=/dm/dexp/data LOG=db_str.log owner=hr table_exists_action=replace --(替换慎用!!可能会替换掉其他表中生产有效数据!!单独指定一个需恢复的表还可以。)

./dimp USERID=SYSDBA/SYSDBA@192.168.16.200:5236 FILE=db_str.dmp DIRECTORY=/dm/dexp/data LOG=db_str.log tables=hr.deptt table_exists_action=replace

6、级联表删除及导入:

./dexp USERID=SYSDBA/SYSDBA@192.168.16.200:5236 FILE=db_str_t.dmp DIRECTORY=/dm/dexp/data LOG=db_str.log tables=hr.deptt,hr.employees

select TABLE_NAME,CONSTRAINT_NAME,CONSTRAINT_TYPE,INDEX_NAME,R_CONSTRAINT_NAME from dba_constraints where OWNER='HR';

alter table hr.DEPARTMENTS disable constraint "DEPT_MGR_FK";

alter table hr.JOB_HISTORY disable constraint "JHIST_EMP_FK";

truncate table hr.employees;

./dimp USERID=SYSDBA/SYSDBA@192.168.16.200:5236 FILE=db_str_t.dmp DIRECTORY=/dm/dexp/data LOG=db_str.log tables=hr.deptt,hr.employees table_exists_action=replace

数据导入成功。

alter table hr.DEPARTMENTS enable constraint "DEPT_MGR_FK";

alter table hr.JOB_HISTORY enable constraint "JHIST_EMP_FK";

7、表空间转换

SELECT DISTINCT object_name FROM ALL_OBJECTS WHERE OBJECT_TYPE = 'SCH';

select OWNER,TABLE_NAME,TABLESPACE_NAME from dba_tables where owner='HR';

SELECT ts.NAME, df.PATH FROM V$TABLESPACE AS ts, V$DATAFILE AS df WHERE ts.ID= df.GROUP_ID;

select username,user_id,default_tablespace,profile from dba_users;

drop user hr cascade;

create user hr identified by hr12345678;

./dimp USERID=SYSDBA/SYSDBA@192.168.16.200:5236 FILE=db_str.dmp DIRECTORY=/dm/dexp/data LOG=db_str.log owner=hr REMAP_TABLESPACE=MAIN:TS_HR

这种方法不行

drop user hr cascade;

create user hr identified by hr12345678 default tablespace TS_HR;

./dimp USERID=SYSDBA/SYSDBA@192.168.16.200:5236 FILE=db_str.dmp DIRECTORY=/dm/dexp/data LOG=db_str.log owner=hr

创建时默认表空间,导入时不需要转换表空间即可。

若是默认表空间MAIN,导入时,哪怕转换表空间也不行。

一个用户一个默认表空间,但是建表时可以指定其他表空间。所以一个用户可以使用多个表空间。

查询用户所有表所在的表空间

导出hr用户

./dexp USERID=SYSDBA/SYSDBA@192.168.16.200:5236 FILE=db_str_u.dmp DIRECTORY=/dm/dexp/data LOG=db_str.log owner=hr

drop user hr cascade;

create user hr identified by hr12345678 default tablespace TS_HR;

导入用户hr

./dimp USERID=SYSDBA/SYSDBA@192.168.16.200:5236 FILE=db_str_u.dmp DIRECTORY=/dm/dexp/data LOG=db_str.log owner=hr

导入成功。

8、非默认表空间表导入到默认表空间问题处理

drop table hr.DEPT00;

./dimp USERID=SYSDBA/SYSDBA@192.168.16.200:5236 FILE=db_str_u.dmp DIRECTORY=/dm/dexp/data tables=hr.dept00 REMAP_TABLESPACE=MAIN:TS_HRS

select username,user_id,default_tablespace,profile from dba_users;

映射不过去。这个REMAP_TABLESPACE参数只是针对默认表空间MAIN 映射为目标默认表空间TS_HR时才有用,但是这个参数不写,也能直接导入到hr用户的默认表空间。就说明该参数在用户导入时,没用。

这种情况只能目标库创建表,再导入源库数据

drop table hr.DEPT00;

create table hr.dept00(id int) tablespace TS_HR2;

./dimp USERID=SYSDBA/SYSDBA@192.168.16.200:5236 FILE=db_str_u.dmp DIRECTORY=/dm/dexp/data tables=hr.dept00 table_exists_action=replace

select username,user_id,default_tablespace,profile from dba_users;

./dimp USERID=SYSDBA/SYSDBA@192.168.16.200:5236 FILE=db_str_u.dmp DIRECTORY=/dm/dexp/data tables=hr.dept00 table_exists_action=append

设置追加才可以,若是替换,还会迁移到默认表空间

六、输出文件spool

达梦数据库社区地址:https://eco.dameng.com

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值