
alter database force logging;
所有都记日志,nologging 无效。
防止主库上有操作不记日志。产生主从库差异。
主库创建口令文件,scp到从库、修改名称
是远程用户sysdba权限可以登录
echo $ORACLE_SID
orapwd file=$ORACLE_HOME/dbs/orapwBJ password=oracle entries=3 force=y
scp到从库

|
scp orapwBJ shanghai.lxh.net:/u01/app/oracle/product/11.2.0/dbhome_1/dbs/ oracle@shanghai.lxh.net's password: orapwBJ 100% 1536 1.5KB/s 00:00 oracle@beijing.lxh.net:/u01/app/oracle/product/11.2.0/dbhome_1/dbs> |
从库上改名

DB_NAME=DGDB
DB_UNIQUE_NAME=beijing
LOG_ARCHIVE_CONFIG='DG_CONFIG=(beijing,shanghai)'
CONTROL_FILES='/u01/app/oracle/oradata/DGDB/control01.ctl', '/u01/app/oracle/oradata/DGDB/control02.ctl'
LOG_ARCHIVE_DEST_1=
'LOCATION=/home/oracle/beijing/
VALID_FOR=(ALL_LOGFILES,ALL_ROLES)
DB_UNIQUE_NAME=beijing'
LOG_ARCHIVE_DEST_2=
'SERVICE=sh ARCH ASYNC NOAFFIRM
VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)
DB_UNIQUE_NAME=shanghai'
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
|
LOG_ARCHIVE_CONFIG='DG_CONFIG=(beijing,shanghai)' 控制心跳
SERVICE=sh tns,要能连到备库 服务名
ARCH 传递归档
ASYNC 异步传输
NOAFFIRM 从库是否收到主库不用确认
如果主库参数中有审计目录等,备库需创建相应目录
在实验情况下,可删除主库、从库
审计和审计目录 删除OMF管理路径
重启数据库 看是否有效
shutdown immediate;
cd /u01/app/oracle/oradata/DGDB
cp *.dbf /u02/backup/DGDB/
cp *.log /u02/backup/DGDB/
如果是rman备份,必须要先备份,再创建standby控制文件。

alter database create standby controlfile as '/u02/backup/DGDB/control.std';

至此,standby 控制文件 、所有数据文件、redo日志文件 全部在/u02/backup/DGDB目录下。
打包
oracle@beijing.lxh.net:/u02/backup> tar -cvf DGDB.tar DGDB/

压缩 gzip DGDB.tar

scp到备库
scp DGDB.tar.gz shanghai.lxh.net:/u02/oradata/

备库解压 gunzip DGDB.tar.gz

解包 tar –xvf DGDB.tar

改名
复制 standby控制文件 生成两个备库的控制文件
scp 初始化参数文件pfile到备库 修改文件名
scp
beijing.lxh.net:/u01/app/oracle/product/11.2.0/dbhome_1/dbs/initBJ.ora
$ORACLE_HOME/dbs/
mv initBJ.ora initSH.ora
控制文件路径
db_unique_name
本地归档路径:log_archive_dest_1=
删除dest_2
添加数据文件、日志文件
位置转换
|
*.control_files='/u02/oradata/sh/control01.ctl','/u02/oradata/sh/control02.ctl' DB_NAME=DGDB DB_UNIQUE_NAME=shanghai LOG_ARCHIVE_CONFIG='DG_CONFIG=(beijing,shanghai)' LOG_ARCHIVE_DEST_1= 'LOCATION=/u02/arch/sh/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=shanghai' LOG_ARCHIVE_DEST_STATE_1=ENABLE |
FAL_SERVER=bj
FAL_CLIENT=sh
DB_FILE_NAME_CONVERT='/u01/app/oracle/oradata/DGDB','/u02/oradata/sh'
LOG_FILE_NAME_CONVERT='/u01/app/oracle/oradata/DGDB','/u02/oradata/sh'
STANDBY_FILE_MANAGEMENT=AUTO
|
FAL_SERVER=bj 如果归档或日志有gap差异,从库向主库请求日志
FAL_SERVER=sh
STANDBY_FILE_MANAGEMENT=AUTO 主库创建文件,从库自动创建。
|
LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = beijing.lxh.net)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) ) |
从库监听配置

|
LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = shanghai.lxh.net)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) ) |

|
sh = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = shanghai.lxh.net)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = shanghai) ) )
bj = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = beijing.lxh.net)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = beijing) ) ) |
mount 从库

查看备库数据库身份
select database_role from v$database;

查看主库身份

【重启库后需再次执行】
alter database recover managed standby database disconnect from session;

root@shanghai.lxh.net:/root> tail -f /u01/app/oracle/diag/rdbms/shanghai/SH/trace/alert_SH.log
主库切日志组
从库跟踪文件
tail –f /u01/app/oracle/diag/rdbms/shanghai/SH/trace/alert_SH.log

本次实验,使用了手工冷备主库数据文件、scp到备库的方式,一步一步搭建dataguard物理备库。最主要的是突出主库、备库参数文件的配置。
参数文件:主库增加远程归档目录;备库增加FAL挖掘日志GAP、CONVERT进行目录转换。
控制文件:主库生产standby控制文件作为备库的控制文件。
数据文件:备库使用主库冷备的数据文件。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29475508/viewspace-1260963/ ,如需转载,请注明出处,否则将追究法律责任。