一、环境描述
2是备库
22是主库
二、问题描述:
租户自主执行备份恢复操作的时候,没有恢复完全成功,导致系统时间损坏,系统文件和redo日志权限因为备份成功后还原未完成而自动变更为root,系统文件和redo日志损坏没办法进行backup备份,只能用dexp逻辑备份来对全表进行备份。
因为system的dbf文件损坏,权限改变
三、前期准备
1.备份
因为重做主库,需要完全的备份,为了防止新数据的增加,要停业务
nohup ./dexp SYSDBA/’”password”’:16325 FILE=/data/bak/dexp0626/dexp_FULL.dmp LOG=/data/bak/dexp0626/dexp_FULL.log FULL=Y >> nohup0626.log 2>>&1
注:full=y会备份用户
后台执行
nohup .... 2>&1 &
select sum bytes /1024/1024/1024 from dba_seqments;
2.用户和表空间的建表语句
因为重新初始化,担心用户不会新建,需要先把用户和表空间的建表语句备份一下
查看用户建表语句
查看表空间建表语句
右键属性
然后复制所有用户表空间的建表语句
四、恢复过程
1.先进行修改权限操作
先做一个测试,数据库关闭后,直接修改权限,然后启动会报错
2.官网查找相同的类型报错
然后又个使用dbcheck检查
Dbcheck只能进行全库check,而且很慢,不会自动修复
3.重新初始化主库
因为主库数据数据文件损坏,需要先恢复主库,在前期准备时已经使用dexp备份了数据全库
将原来的数据库目录DAMENG给mv到另外的目录下,进行数据目录的备份
然后看原来的配置
重新进行初始化,参数要跟原来相同
初始化后将原来的配置文件和归档配置,mal配置,watcher配置给cp到新的初始化数据目录中将配置dm.ini中的mal_INI改为0
将dmmal.ini上面的实时归档给删除
先在初始化后的主库里面建上表空间
开始导入
./dimp SYSDBA/’”password”’:16325 FILE=/data/bak/dexp0626/dexp_FULL.dmp LOG=/data/bak/dexp0626/dexp_FULL.log FULL=Y >> nohup0626.log
可能报错
可以忽略
重启一下主库
这时候主库数据文件就都正常了,可以用dmrman进行脱机备份
4.用主库恢复一下备库数据
./dmrman
RMAN> backup database ‘/data/src/DAMENG/dm.ini’ backupset ‘/data/back/back0626
备份成功后修改
Mode_STATUS:1
Oguid:需要在备份之前就查看主库
将备份好的文件scp到备库
在备库给备份数据改权限
5.主备库配置
然后将主从服务都起来
主库配置
’从库配置
主备库的watcher起来
起monitor
修改dm的redo日志大小
6.检查用户和表空间
用户都新建成功,但是密码是没有修改的,到时候管用户要密码把用户密码都修改:
7.配置备份
删除备份配置
在常规选SQL脚本,写入SQL语句
在高级中改失败和成功后