导读
作者:杨漆
16年关系型数据库管理,从oracle 9i 、10g、11g、12c到Mysql5.5、5.6、5.7、8.0 到TiDB获得3个OCP、2个OCM;运维路上不平坦,跌过不少坑、熬过许多夜。把工作笔记整理出来分享给大伙儿,希望帮到大家少走弯路、少熬夜。
bbed很好的数据文件修复工具,解决二进制文件修改难题。在没有备份、灾难发生、恢复失效时挽救DB的终极武器。
有了它可以将很多行将就木的DB启死回生(不到万不得已,不建议使用)。
资深DBA的法宝。
很多数据修复公司用它赚到盆满钵溢(抢救一个企业的数据库,尤其是核心DB,一个订单少则几十万,多则上百万),将这个方法总结出来分享给大家。希望大家都可以发发发,哈哈哈!
asm转换成平面文件
方法一 (rman):
RMAN> convert datafile ‘+DATA/oracleasm/datafile/test.366.88888’ format’/home/oracle/test.dbf’;
方法二(OS):
sql>alter tablespace test offline;
su - grid
ASMCMD> cp +DATA/oracleasm/datafile/ test.366.88888 /home/grid/testdg.dbf
sql>alter tablespace test online ;
chown oracle:oinstall /home/grid/test.dbf
方法三(sql):
sql>alter tablespace test offline;
sql>alter database rename file ‘+DATA/oracleasm/datafile/test.366.88888’ to’/home/oracle/test.dbf’;
sql>alter tablespace test online;
平面文件转换成asm
方法一 (sql):
SQL> create directory D_FILE as ‘/home/oracle/file’;
SQL> create directory D_ASM as ‘+DATA/DATAFILE’;
SQL> select directory_name, directory_path from dba_directories;
用dbms_file_transfer执行文件格式转换
SQL> exec dbms_file_transfer.copy_file('D_FILE ',‘system.777.93459’,‘D_ASM’, ‘system’);
将目标库的数据文件重命名
SQL> startup mount;
SQL> alter database rename file ‘+DATA/DATAFILE/system.777.93459’ to’/home/oracle/file/system’;
SQL> recover
SQL> select tablespace_name, file_name from dba_data_files;
SQL> alter database open;
方法二:
sql> alter database rename file ‘+DATA/DATAFILE/system.777.93459’ to’/home/oracle/file/system’;
sql> alter database datafile ‘/home/oracle/file/system’ offline;
rman> convert datafile ‘/home/oracle/file/system’ format ‘+DATA/DATAFILE/system.777.93459’;
– rman> copy datafile ‘/home/oracle/file/system ’ format’+DATA/DATAFILE/system.777.93459’;
sql> alter database rename file ‘/home/oracle/file/system’ to ‘+DATA/DATAFILE/system.777.93459’;
sql> alter database datafile ‘+DATA/DATAFILE/system.777.93459’ online;
如果上面online失败执行下面这两步
— sql> recover datafile ‘+DATA/