暂无图片
oracle dg主库新加数据文件和备库不一致
我来答
分享
2021-08-27
oracle dg主库新加数据文件和备库不一致

主库:
image.png
备库:
image.png

standby_file_management=‘AUTO’
image.png
为什么会这样

我来答
添加附件
收藏
分享
问题补充
11条回答
默认
最新
Lucifer三思而后行
暂无图片
2021-08-27

看了下,是因为开启了 OMF 参数,就会生成如上的文件,建议备库取消 OMF 参数设置。

然后主库再次创建数据库文件,查看路径是否正常。

希望能帮助到你!

暂无图片 评论
暂无图片 有用 1
打赏 0
暂无图片
薛晓刚
2021-08-27

你是物理adg吗?如果是目录路径一样,然后rman备份过来,拉起来。启动,不会不一样的。

暂无图片 评论
暂无图片 有用 0
打赏 0
2021-08-27

是物理dg

暂无图片 评论
暂无图片 有用 0
打赏 0
Lucifer三思而后行
暂无图片
2021-08-27

检查下备库设置了 OMF 参数吗?

show parameter db_create

还有 db_file_name_convert 参数:

show parameter convert
暂无图片 评论
暂无图片 有用 0
打赏 0
2021-08-27

如图
image.png

暂无图片 评论
暂无图片 有用 0
打赏 0
2021-08-27

我看磁盘上有这个文件
/u01/app/oracle/oradata/ERPDB4Z1/datafile/o1_mf_system_jljwrz1k_.dbf
image.png

暂无图片 评论
暂无图片 有用 0
打赏 0
2021-08-27

那本次的主备库数据文件不一致如何调整成一致的

暂无图片 评论
暂无图片 有用 0
打赏 0
Lucifer三思而后行
暂无图片
2021-08-27

不影响数据库的运行,但是如果强迫症的话,可以进行move和rename操作,将数据文件移动到对应目录下。

暂无图片 评论
暂无图片 有用 0
打赏 0
Lucifer三思而后行
暂无图片
2021-08-27

11G and before

分为不停机和停机两种方式

一、不停机移动数据文件

完整步骤:

1、确认开启归档模式

2、offline数据文件

3、物理层移动数据文件(可重命名)

4、逻辑层rename数据文件路径及名称

5、recover恢复数据文件

6、online数据文件

--开启归档模式
SQL> archive log list
Database log mode              No Archive Mode
Automatic archival             Disabled
Archive destination            /archivelog
Oldest online log sequence     1
Current log sequence           2
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> 
SQL> 
SQL> startup mount
ORACLE instance started.

Total System Global Area 1603411968 bytes
Fixed Size                  2253664 bytes
Variable Size             452988064 bytes
Database Buffers         1140850688 bytes
Redo Buffers                7319552 bytes
Database mounted.
SQL> alter database archivelog;

Database altered.

SQL> alter database open;

Database altered.

--offline数据文件
SQL> /

     FILE# NAME                                                         STATUS
---------- ------------------------------------------------------------ -------
         1 /oradata/orcl11g/system01.dbf                                SYSTEM
         2 /oradata/orcl11g/sysaux01.dbf                                ONLINE
         3 /oradata/orcl11g/undotbs01.dbf                               ONLINE
         4 /oradata/orcl11g/users01.dbf                                 ONLINE
         5 /oradata/orcl11g/example01.dbf                               ONLINE
         6 /oradata/orcl11g/test01.dbf                                  ONLINE
         7 /oradata/ORCL11G/datafile/o1_mf_test_j7jgpq7k_.dbf           ONLINE

7 rows selected.

SQL> alter database datafile 7 offline;

Database altered.

--物理层移动数据文件
SQL> !mv /oradata/ORCL11G/datafile/o1_mf_test_j7jgpq7k_.dbf /oradata/orcl11g/test02.dbf

SQL> !ls /oradata/orcl11g/test02.dbf
/oradata/orcl11g/test02.dbf

--逻辑层rename数据文件
SQL> alter database rename file '/oradata/ORCL11G/datafile/o1_mf_test_j7jgpq7k_.dbf' to '/oradata/orcl11g/test02.dbf';

Database altered.

--恢复数据文件
SQL> recover datafile 7;
Media recovery complete.

--online数据文件
SQL> alter database datafile 7 online;

Database altered.

SQL> select file#,name,status from v$datafile;

     FILE# NAME                                                         STATUS
---------- ------------------------------------------------------------ -------
         1 /oradata/orcl11g/system01.dbf                                SYSTEM
         2 /oradata/orcl11g/sysaux01.dbf                                ONLINE
         3 /oradata/orcl11g/undotbs01.dbf                               ONLINE
         4 /oradata/orcl11g/users01.dbf                                 ONLINE
         5 /oradata/orcl11g/example01.dbf                               ONLINE
         6 /oradata/orcl11g/test01.dbf                                  ONLINE
         7 /oradata/orcl11g/test02.dbf                                  ONLINE

7 rows selected.

二、停机移动数据文件

完整步骤:

1、关闭数据库

2、物理层移动数据文件(可重命名)

3、开启数据库到mount

4、逻辑层rename数据文件路径及名称

5、开启数据库

--创建一个TEST表空间,发现建在了/oradata/ORCL11G/下,希望移动到/oradata/orcl11g/下
SQL> create tablespace TEST;

Tablespace created.

SQL> select name from v$datafile;

NAME
--------------------------------------------------------------------------------
/oradata/orcl11g/system01.dbf
/oradata/orcl11g/sysaux01.dbf
/oradata/orcl11g/undotbs01.dbf
/oradata/orcl11g/users01.dbf
/oradata/orcl11g/example01.dbf
/oradata/ORCL11G/datafile/o1_mf_test_j7jfm30c_.dbf

--尝试在线移动数据文件
SQL> alter database rename file '/oradata/ORCL11G/datafile/o1_mf_test_j7jfm30c_.dbf' to '/oradata/orcl11g/test01.dbf';
alter database rename file '/oradata/ORCL11G/datafile/o1_mf_test_j7jfm30c_.dbf' to '/oradata/orcl11g/test01.dbf'
*
ERROR at line 1:
ORA-01511: error in renaming log/data files
ORA-01121: cannot rename database file 6 - file is in use or recovery
ORA-01110: data file 6: '/oradata/ORCL11G/datafile/o1_mf_test_j7jfm30c_.dbf'

--报错ORA-01121
[oracle@orcl11g:/home/oracle]$ oerr ORA 01121
01121, 00000, "cannot rename database file %s - file is in use or recovery"
// *Cause:  Attempted to use ALTER DATABASE RENAME to rename a
//          datafile that is online in an open instance or is being recovered.
// *Action: Close database in all instances and end all recovery sessions.

明确无法在线移动数据文件,需要关闭数据库。

--操作系统层面移动数据文件,并且重命名
[oracle@orcl11g:/oradata/ORCL11G/datafile]$ ll
total 102408
-rw-r----- 1 oracle oinstall 104865792 Apr 15 20:55 o1_mf_test_j7jfm30c_.dbf
[oracle@orcl11g:/oradata/ORCL11G/datafile]$ mv o1_mf_test_j7jfm30c_.dbf /oradata/orcl11g/
control01.ctl  example01.dbf  redo01.log     redo02.log     redo03.log     sysaux01.dbf   system01.dbf   temp01.dbf     undotbs01.dbf  users01.dbf    
[oracle@orcl11g:/oradata/ORCL11G/datafile]$ mv o1_mf_test_j7jfm30c_.dbf /oradata/orcl11g/test01.dbf
[oracle@orcl11g:/oradata/ORCL11G/datafile]$ ll /oradata/orcl11g/test01.dbf 

--开启数据库到mount
SQL> startup mount
ORACLE instance started.

Total System Global Area 1603411968 bytes
Fixed Size                  2253664 bytes
Variable Size             452988064 bytes
Database Buffers         1140850688 bytes
Redo Buffers                7319552 bytes
Database mounted.

--rename数据文件名称
SQL> select name from v$datafile;

NAME
--------------------------------------------------------------------------------
/oradata/orcl11g/system01.dbf
/oradata/orcl11g/sysaux01.dbf
/oradata/orcl11g/undotbs01.dbf
/oradata/orcl11g/users01.dbf
/oradata/orcl11g/example01.dbf
/oradata/ORCL11G/datafile/o1_mf_test_j7jfm30c_.dbf

6 rows selected.

SQL> alter database rename file '/oradata/ORCL11G/datafile/o1_mf_test_j7jfm30c_.dbf' to '/oradata/orcl11g/test01.dbf';

Database altered.

SQL> select name from v$datafile;

NAME
--------------------------------------------------------------------------------
/oradata/orcl11g/system01.dbf
/oradata/orcl11g/sysaux01.dbf
/oradata/orcl11g/undotbs01.dbf
/oradata/orcl11g/users01.dbf
/oradata/orcl11g/example01.dbf
/oradata/orcl11g/test01.dbf

6 rows selected.

--开启数据库
SQL> alter database open;

Database altered.

12C and later

支持在线移动数据文件:

可参考:Online Move Datafile in Oracle Database 12c Release 1 (12.1)

语法如下:

ALTER DATABASE MOVE DATAFILE ( 'filename' | 'ASM_filename' | file_number )
 [ TO ( 'filename' | 'ASM_filename' ) ]
 [ REUSE ] [ KEEP ]

暂无图片 评论
暂无图片 有用 0
打赏 0
Lucifer三思而后行
暂无图片
2021-08-27

如果帮助到你的话,点一波采纳!

暂无图片 评论
暂无图片 有用 0
打赏 0
2021-08-27

好的,感谢

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏