Oracle DG 参数 log/db_file_name_convert 详解

2024年 5月 23日 70.6k 0

db_file_name_convert:

作用与DG备库恢复时转换file_name,它将主库的file_name转换为备库的file_name。没有默认值,没有设置按照主库file_name来。(FILE_NAME:包含了数据文件路径和文件名)

白话说就是如果dg主备库目录文件不一样,主库放数据文件的目录备库没有,这个时候就需要去备库设置这个参数,用来把主库目录替换为备库有的目录。

语法:

配置偶数段字符串,否则会报错。两个为一组,每组第一段字符串代表主库file_name中要被替换的字符串,第二段代表在备库中要被替换为的字符串。

DB_FILE_NAME_CONVERT = 'string1' , 'string2' , 'string3' , 'string4' , ...

DB_FILE_NAME_CONVERT = '/dbs/t1/','/dbs/t1/s_','dbs/t2/ ','dbs/t2/s_'

生效:

ALTER SESSION SET DB_FILE_NAME_CONVERT = 'string1' , 'string2' , 'string3' , 'string4' , ...(会话生效)

ALTER SYSTEM SET DB_FILE_NAME_CONVERT = 'string1' , 'string2' , 'string3' , 'string4' , ... SCPOE=SPFILE(重启生效)

常用案例:

一般我们长用于文件路径替换。例如:将当主库在A目录下创建数据文件时备库映射到B目录下('/A/','/B/')

ALTER SYSTEM SET DB_FILE_NAME_CONVERT = '/A/','/B/' SCPOE=SPFILE

使用注意:

因为是直接替换,类似于主库不管过来什么都会被(ctrl+h)所以容易出现如下不是本意的情况

1、误伤'/A/','/B/'或'/A','/B':因为是ctrl+f的方式命中所以可能存在三种情况出现

①、头部命中:不应该修改路径的被修改路径了 例:(/A/C/x.dbf → /B/C/x.dbf);

②、中间命中:不应该修改路径的被修改路径了 例:(/C/A/D/x.dbf → /C/B/D/x.dbf);

③、尾部命中:不应该修改路径的被修改路径了 例:(/C/A/x.dbf → /C/B/x.dbf);

2、路径错误'/A','/B/' :出现两个// 例:(/A/x.dbf → /B//x.dbf);

3、路径+文件名被变更'/A/','/B' :上级文件夹名+文件名重叠 例:(/A/x.dbf → /Bx.dbf);

4、如果linux和linux之间配置需要把windows的路径全部大写并谢伟带/

设置建议规范:

     1、所有数据文件路径都配置映射

     2、按路径深度降序设置

     3、一组中的字符串结尾要一致(“/”要么都带,要么都不带)

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论