跨文件系统下的dataguard,数据文件无法创建的解决
2014-08-15 15:25
465 查看
数据库版本:11.2.0.4
操作系统: primary:redhat linux 5.9
standby:redhat linux 5.6
primary DB: rac + ASM
standby DB: 单节点 + 文件系统
因为主库使用了asm 文件系统,asm下创建表空间和添加数据文件,文件名默认后缀为会话线程号,而这些以线程号命名的文件,
在通过日志传输到standby 数据库时,备库不能正常创建同名的文件,因此备库在应用主库传输过来的文件时会出错,并进一步倒是备库的recover 进程中断。
下面命令的输出结果中,以数字命名的文件时通过duplicate 的方式复制到备库的,文件6为备库通过主库新增数据库文件的sql 进行recover 生成,
由于备库使用文件系统存储,因此备库无法正常创建数据文件,查询v$datafile查询出来的文件名,在操作系统中实际上并未生成,oracle 只是修改了数据字典而已。
standby@ SYS> select file#,name from v$datafile;
FILE# NAME
---------- ------------------------------------------------------------
1 /oradata1/oracle/oradata/system.256.852462171
2 /oradata1/oracle/oradata/sysaux.257.852462171
3 /oradata1/oracle/oradata/undotbs1.258.852462171
4 /oradata1/oracle/oradata/users.259.852462173
5 /oradata1/oracle/oradata/undotbs2.264.852462315
6 /home/oracle/app/product/11.1/db_1/dbs/UNNAMED00006
6 rows selected.
Elapsed: 00:00:00.00
standby@ SYS> alter system set standby_file_management = manual;
System altered.
Elapsed: 00:00:00.00
standby@ SYS> alter database create datafile 6 as '/home/oracle/app/product/11.1/db_1/dbs/UNNAMED00006.dbf';
Database altered.
Elapsed: 00:00:00.05
standby@ SYS> select file#,name from v$datafile;
FILE# NAME
---------- ------------------------------------------------------------
1 /oradata1/oracle/oradata/system.256.852462171
2 /oradata1/oracle/oradata/sysaux.257.852462171
3 /oradata1/oracle/oradata/undotbs1.258.852462171
4 /oradata1/oracle/oradata/users.259.852462173
5 /oradata1/oracle/oradata/undotbs2.264.852462315
6 /home/oracle/app/product/11.1/db_1/dbs/UNNAMED00006.dbf
6 rows selected.
Elapsed: 00:00:00.00
----------------
在操作系统中执行以下命令,将create的datafile复制为规范的文件名――与主库文件同名(asm除外)
[oracle@standby01 oradata]$ cp /home/oracle/app/product/11.1/db_1/dbs/UNNAMED00006.dbf /oradata1/oracle/oradata/users_01.dbf
-----------
standby@ SYS> alter database rename file '/home/oracle/app/product/11.1/db_1/dbs/UNNAMED00006.dbf' to '/oradata1/oracle/oradata/users_01.dbf';
Database altered.
Elapsed: 00:00:00.01
standby@ SYS> select file#,name from v$datafile;
FILE# NAME
---------- ------------------------------------------------------------
1 /oradata1/oracle/oradata/system.256.852462171
2 /oradata1/oracle/oradata/sysaux.257.852462171
3 /oradata1/oracle/oradata/undotbs1.258.852462171
4 /oradata1/oracle/oradata/users.259.852462173
5 /oradata1/oracle/oradata/undotbs2.264.852462315
6 /oradata1/oracle/oradata/users_01.dbf
6 rows selected.
Elapsed: 00:00:00.00
至此数据文件在名称和格式上已经和主库一致了,但由于数据文件是create出来的没有数据,需要利用归档日志进行recover
standby@ SYS> recover automatic standby database ;
ORA-00279: change 11876832 generated at 08/13/2014 18:05:51 needed for thread 1
ORA-00289: suggestion : /oradata1/arch/1_328_852462251.dbf
ORA-00280: change 11876832 for thread 1 is in sequence #328
ORA-00278: log file '/oradata1/arch/1_328_852462251.dbf' no longer needed for this recovery
ORA-16145: archival for thread# 1 sequence# 328 in progress
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
AUTO
ORA-16145: archival for thread# 1 sequence# 328 in progress
standby@ SYS>
standby@ SYS> alter database recover managed standby database disconnect;
Database altered.
最后记得将standby_file_management参数值改回auto。
standby@ SYS> alter system set standby_file_management = auto;
System altered.
Elapsed: 00:00:00.00
问题解决。
在恢复过程中可能遇到的问题:
问题一、
ORA-01275: Operation CREATE DATAFILE is not allowed if standby file management is automatic.
此问题是由于standby 数据库中standby_file_management参数设置为auto,修改为manual 就可。
alter system set standby_file_management = manual;
问题二、
ORA-01511: error in renaming log/data files
ORA-01121: cannot rename database file 15 - file is in use or recovery
此问题是由于需要rename的文件正在被使用,在rac系统中可以将rac 的另一个实例停掉, 当前实例如果在open 状态下的话,可重启到mount状态下。
本文出自 “狂奔的蜗牛” 博客,谢绝转载!
操作系统: primary:redhat linux 5.9
standby:redhat linux 5.6
primary DB: rac + ASM
standby DB: 单节点 + 文件系统
因为主库使用了asm 文件系统,asm下创建表空间和添加数据文件,文件名默认后缀为会话线程号,而这些以线程号命名的文件,
在通过日志传输到standby 数据库时,备库不能正常创建同名的文件,因此备库在应用主库传输过来的文件时会出错,并进一步倒是备库的recover 进程中断。
下面命令的输出结果中,以数字命名的文件时通过duplicate 的方式复制到备库的,文件6为备库通过主库新增数据库文件的sql 进行recover 生成,
由于备库使用文件系统存储,因此备库无法正常创建数据文件,查询v$datafile查询出来的文件名,在操作系统中实际上并未生成,oracle 只是修改了数据字典而已。
standby@ SYS> select file#,name from v$datafile;
FILE# NAME
---------- ------------------------------------------------------------
1 /oradata1/oracle/oradata/system.256.852462171
2 /oradata1/oracle/oradata/sysaux.257.852462171
3 /oradata1/oracle/oradata/undotbs1.258.852462171
4 /oradata1/oracle/oradata/users.259.852462173
5 /oradata1/oracle/oradata/undotbs2.264.852462315
6 /home/oracle/app/product/11.1/db_1/dbs/UNNAMED00006
6 rows selected.
Elapsed: 00:00:00.00
standby@ SYS> alter system set standby_file_management = manual;
System altered.
Elapsed: 00:00:00.00
standby@ SYS> alter database create datafile 6 as '/home/oracle/app/product/11.1/db_1/dbs/UNNAMED00006.dbf';
Database altered.
Elapsed: 00:00:00.05
standby@ SYS> select file#,name from v$datafile;
FILE# NAME
---------- ------------------------------------------------------------
1 /oradata1/oracle/oradata/system.256.852462171
2 /oradata1/oracle/oradata/sysaux.257.852462171
3 /oradata1/oracle/oradata/undotbs1.258.852462171
4 /oradata1/oracle/oradata/users.259.852462173
5 /oradata1/oracle/oradata/undotbs2.264.852462315
6 /home/oracle/app/product/11.1/db_1/dbs/UNNAMED00006.dbf
6 rows selected.
Elapsed: 00:00:00.00
----------------
在操作系统中执行以下命令,将create的datafile复制为规范的文件名――与主库文件同名(asm除外)
[oracle@standby01 oradata]$ cp /home/oracle/app/product/11.1/db_1/dbs/UNNAMED00006.dbf /oradata1/oracle/oradata/users_01.dbf
-----------
standby@ SYS> alter database rename file '/home/oracle/app/product/11.1/db_1/dbs/UNNAMED00006.dbf' to '/oradata1/oracle/oradata/users_01.dbf';
Database altered.
Elapsed: 00:00:00.01
standby@ SYS> select file#,name from v$datafile;
FILE# NAME
---------- ------------------------------------------------------------
1 /oradata1/oracle/oradata/system.256.852462171
2 /oradata1/oracle/oradata/sysaux.257.852462171
3 /oradata1/oracle/oradata/undotbs1.258.852462171
4 /oradata1/oracle/oradata/users.259.852462173
5 /oradata1/oracle/oradata/undotbs2.264.852462315
6 /oradata1/oracle/oradata/users_01.dbf
6 rows selected.
Elapsed: 00:00:00.00
至此数据文件在名称和格式上已经和主库一致了,但由于数据文件是create出来的没有数据,需要利用归档日志进行recover
standby@ SYS> recover automatic standby database ;
ORA-00279: change 11876832 generated at 08/13/2014 18:05:51 needed for thread 1
ORA-00289: suggestion : /oradata1/arch/1_328_852462251.dbf
ORA-00280: change 11876832 for thread 1 is in sequence #328
ORA-00278: log file '/oradata1/arch/1_328_852462251.dbf' no longer needed for this recovery
ORA-16145: archival for thread# 1 sequence# 328 in progress
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
AUTO
ORA-16145: archival for thread# 1 sequence# 328 in progress
standby@ SYS>
standby@ SYS> alter database recover managed standby database disconnect;
Database altered.
最后记得将standby_file_management参数值改回auto。
standby@ SYS> alter system set standby_file_management = auto;
System altered.
Elapsed: 00:00:00.00
问题解决。
在恢复过程中可能遇到的问题:
问题一、
ORA-01275: Operation CREATE DATAFILE is not allowed if standby file management is automatic.
此问题是由于standby 数据库中standby_file_management参数设置为auto,修改为manual 就可。
alter system set standby_file_management = manual;
问题二、
ORA-01511: error in renaming log/data files
ORA-01121: cannot rename database file 15 - file is in use or recovery
此问题是由于需要rename的文件正在被使用,在rac系统中可以将rac 的另一个实例停掉, 当前实例如果在open 状态下的话,可重启到mount状态下。
本文出自 “狂奔的蜗牛” 博客,谢绝转载!
相关文章推荐
- redflag Dc5.0,Asianux2安装时无法创建文件系统,缺少scsi驱动解决办法
- Win7中无法创建文件‘新建 库.library-ms’文件系统错误(16389)”如何解决
- Windows各种系统文件无法打开故障解决方法
- 用KMP打开视频文件出现"无法创建图表生成器"错误的解决办法
- 用KMP打开视频文件出现"无法创建图表生成器"错误的解决办法收藏(转)
- 郁闷N天了,IDFTP发生10054错误后无法继续上传文件,重新创建IDFTP后发生错误:550 cannot create file。请教解决方法
- vista bcdedit“无法打开启动配置数据存储,系统找不到指定的文件”错误
- 解决无法查看windows系统隐藏文件的方法
- 重装系统后,文件件无法访问 解决
- 删除数据文件导致oracle系统无法启动
- 直接删除数据文件后无法进入系统的解决方案
- sql server 2005 中文件组的的概念及数据库文件因文件组满而无法写入的数据的解决方法
- WORD 或者 Outlook 提示“无法创建工作文件,请检查临时环境变量” 的解决方法
- 创建系统无法删除的文件夹 加密文件
- 关于系统无法显示隐藏文件的解决办法
- 系统提示无法删除文件或文件夹的常用解决办法
- windows系统无法运行.exe可执行文件的解决办法
- Visual Studio 2008不能创建数据库连接出现:未能加载文件或程序集“Microsoft.SqlServer.Management.Sdk.Sfc, Version=10.0.0.0, Culture=neutral,PublicKeyToken=89845dcd8080cc91”或它的一个依赖项。系统找不到指定的文件的解决办法
- VS2005:无法启动程序,系统找不到指定的文件解决方法
- Word 无法创建工作文件 请检查临时环境变量 解决方法