一、配置主机
1. 设置主机名

hostnamectlset-hostnameDG 2. 配置网络

vim/etc/sysconfig/network-scripts/ifcfg-enp0s3

重启网卡

systemctlrestartnetwork

测试:

nslookupwww.yunxiaochong.com

重启生效

3. 主机环境

(1)执行env.sh. 配置环境,脚本如下:

参考:http://blog.itpub.net/69915315/viewspace-2643785/

(2)执行rpm.sh . 安装依赖包,脚本如下:

参考:http://blog.itpub.net/69915315/viewspace-2643785/

二、配置共享存储

参考:http://blog.itpub.net/69915315/viewspace-2643790

单节点执行即可,对应主库共享磁盘组: DATA, GRIDG. 这里只是为了一致,没有强制要求一样。

三、配置远程桌面

参考 :http://blog.itpub.net/69915315/viewspace-2643299/

分配配置 oracle grid 两个用户的远程桌面。


四、安装grid

(1)解压安装包:

unziplinuxamd64_12102_grid_1of2.zipunziplinuxamd64_12102_grid_2of2.zip

(2) 将解压后的安装包拷贝到 /home/grid 目录下

mvgrid/home/grid/

(3) 进入grid的远程桌面,进入安装....

(4) 相关问题

swap size 问题:

注释: 上面少写了一个0,空间还是不够,后面有加了一个。

修改/etc/fstab文件,在文件最后添加:

/opt/image/swapswapswapdefaults00

安装遗漏包

yuminstalllibaio-devel*

忽略pdksh

图形界面执行脚本报错,通过命令执行,依然报错后,再直接提示的命令。

五、安装数据库软件(1)解压安装包:

unzip linuxamd64_12102_database_1of2.zip

unzip linuxamd64_12102_database_2of2.zip

(2) 将解压后的安装包拷贝到 /home/oralce 目录下

mvdatabase/home/oracle/(3) 进入oracle 的远程桌面,进入安装....

六、配置共享磁盘组

七、配置静态监听和TNS1、从库上配置静态监听

此处是grid_home下的监听,注意将文件内容中的grid_home 修改成 oracle_home路径

LISTENER=(DESCRIPTION_LIST=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.56.150)(PORT=1521))(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521))))SID_LIST_LISTENER=(SID_LIST=(SID_DESC=(GLOBAL_DBNAME=yun)#CDB#(ORACLE_HOME=/u01/app/11.2/grid)(ORACLE_HOME=/u01/app/oracle/product/11.2/db_1)(SID_NAME=YUNDG))(SID_DESC=(GLOBAL_DBNAME=xiaochong)#PDB#(ORACLE_HOME=/u01/app/11.2/grid)(ORACLE_HOME=/u01/app/oracle/product/11.2/db_1)(SID_NAME=YUNDG)))


2、主从上配置TNS

分别在主库的rac四个节点和从库的一个节点上对tnsnames.ora进行配置

文件路径:

/u01/app/oracle/product/11.2/db_1/network/admin/tnsnames.ora

##主库YUN=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=www.yunxiaochong.com)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=yun)))##从库YUNDG=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.56.8)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=yun)


八、配置密码文件

在rac中一个节点创建密码文件:

orapwdpassword='Oracle'file=orapwyun1entries=20;

然后,将其拷贝到其它三个节点和dg节点,将名称改成orapw+各节点的实例名。 如orapwyun2 orapwYUNDG

scporapwyun1oracle@rac02:/u01/app/oracle/product/11.2/db_1/dbs/

注意:不要分别在不同节点上创建密码文件,不然会报 密码文件不一致问题。


九、从库配置1. 建立相关目录

(1)查看主库的数据文件,日志文件,控制文件路径

(2)从库,用grid用户,进入asmcmd,建立相关目录

控制文件目录:

同样,建立 +GRIDDG/YUM/CONTROLFILE 目录。

建立日志文件目录:

+DATA/YUN/ONLINELOG

+GRIDDG/YUN/ONLINELOG

建立数据文件目录:

+DATA/YUN/DATAFILE

+DATA/YUN/FD9AC20F64D244D7E043B6A9E80A2F2F/DATAFILE

+DATA/YUN/88E906E617243D8FE0536E38A8C04CBC/DATAFILE

+DATA/YUN/88E906E617243D8FE0536E38A8C04CBC/TEMPFILE


2、配置参数文件

从主库中创建pfile (create pfile from spfile),修改后,拷贝到从库

路径:/u01/app/oracle/product/11.2/db_1/dbs/initYUNDG.ora

内容如下:

*.audit_sys_operations=FALSE*.audit_trail='NONE'*.compatible='12.1.0.2.0'*.control_files='/u01/app/oracle/oradate/controlfile/control01.ctl'*.db_block_size=8192*.db_create_file_dest='+DATA'*.db_name='yun'*.db_unique_name='yundg'#*.db_recovery_file_dest='+DATA/'#*.db_recovery_file_dest_size=5535m*.diagnostic_dest='/u01/app/oracle'*.dispatchers='(PROTOCOL=TCP)(SERVICE=yunXDB)'*.enable_pluggable_database=true*.fal_client='YUNDG'*.fal_server='YUN'*.log_archive_config='dg_config=(YUNDG,YUN)'*.log_archive_dest_1='location=+DATA/YUN/ARCHIVELOGvalid_for=(all_logfiles,all_roles)db_unique_name=yundg'*.log_archive_dest_2='service=YUNLGWRASYNCvalid_for=(online_logfiles,primary_role)db_unique_name=yun'*.open_cursors=1000*.pga_aggregate_target=681m*.processes=300*.remote_login_passwordfile='exclusive'*.sga_target=2043m*.standby_file_management='AUTO'##下面两个参数注释掉,因为我们在从库配置了跟主库一样的目录结构。#*.log_file_name_convert='+DATA/YUN/onlinelog','+DATA/YUN/onlinelog'#*.db_file_name_convert='+DATA/YUN/datafile','+DATA/YUN/datafile'


十、主库配置

这里主要是修改参数:

altersystemsetlog_archive_dest_2='service=YUNDGLGWRASYNCvalid_for=(online_logfiles,primary_role)db_unique_name=yundg'scope=bothsid='*';altersystemsetlog_archive_config='dg_config=(YUN,YUNDG)'scope=bothsid='*';altersystemsetstandby_file_management=autoscope=bothsid='*';altersystemsetfal_client=YUNscope=bothsid='*';altersystemsetfal_server=YUNDGscope=bothsid='*';


设置force logging

ALTERDATABASEFORCELOGGING;


十一、复制1、 rman连接主从数据库

rman target sys/Oracle01@YUN auxiliary sys/Oracle01@YUNDG



2、执行复制命令


duplicate target database for standby from active database nofilenamecheck dorecover;



错误记录1:

channel ORA_DISK_1: SID=60 instance=yun1 device type=DISK

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-03002: failure of Duplicate Db command at 05/28/2019 13:47:31

RMAN-05501: aborting duplication of target database

RMAN-03015: error occurred in stored script Memory Script

RMAN-03009: failure of backup command on ORA_DISK_1 channel at 05/28/2019 13:47:29

ORA-17629: Cannot connect to the remote database server

ORA-17627: ORA-12543: TNS:destination host unreachable

ORA-17629: Cannot connect to the remote database server

_______________________________________________________________________________________

主要是主库不能通过tnsname,ora连接到从库,确保 sqlplus sys/Oracle01@YUNDG as sysdba 能够连接


错误记录2:

channel ORA_AUX_DISK_1: starting datafile backup set restore

channel ORA_AUX_DISK_1: using network backup set from service YUN

channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set

channel ORA_AUX_DISK_1: restoring datafile 00001 to +DATA

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-03002: failure of Duplicate Db command at 05/28/2019 14:04:07

RMAN-05501: aborting duplication of target database

RMAN-03015: error occurred in stored script Memory Script


ORA-19845: error in backupDatafile while communicating with remote database server

ORA-17628: Oracle error 19602 returned by remote Oracle server

ORA-19602: cannot backup or copy active file in NOARCHIVELOG mode

ORA-19660: some files in the backup set could not be verified

ORA-19661: datafile 1 could not be verified

ORA-19845: error in backupDatafile while communicating with remote database server

ORA-17628: Oracle error 19602 returned by remote Oracle server

ORA-19602: cannot backup or copy active file in NOARCHIVELOG mode

_______________________________________________________________________________________

主要是主库没有归档,开启归档即可

SQL> archive log list;

Database log mode No Archive Mode

Automatic archival Disabled

Archive destination USE_DB_RECOVERY_FILE_DEST

Oldest online log sequence 26

Current log sequence 27


十二、补充standby log

在从库上创建standby log

alterdatabaseaddstandbylogfilethread1group9size50m,group10size50m,group11size50m;alterdatabaseaddstandbylogfilethread2group12size50m,group13size50m,group14size50m;alterdatabaseaddstandbylogfilethread3group15size50m,group16size50m,group17size50m;alterdatabaseaddstandbylogfilethread4group18size50m,group19size50m,group20size50m;

如果是要主从切换,在主库上也要建立standby red log。



十三、打开数据库,进入恢复状态

alter database open;


ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;



十四、测试(略)

创建用户,创建表,插入数据,从库同步能查询到数据。