用户和密码:

root/bayaim
bayaim/064286BAIbay
oracle/oracle
SID:orcl
sys/oracle
system/oracle
mpay/mpay
dx/dx

---------------------------------------------
linux #安装环境
export LANG=en_US
systemctl stop firewalld.service (停止防火墙,这是CentOS7的命令)
systemctl restart network //重启网卡-----------

vi /etc/yum.repos.d/rhel-source.repo
mount /dev/cdrom /mnt

cd /etc/sysconfig/network-scripts

[root@wwdb2 network-scripts]# cp ifcfg-eth0 ifcfg-eth0.bak

[root@wwdb2 network-scripts]# vi ifcfg-eth0.bak

把 HWADDR 删除掉,然后改一下 IPADDR

HWADDR=78:2B:CB:4A:15:93

[root@wwdb2 network-scripts]# mv ifcfg-eth0.bak ifcfg-eth0
mv: overwrite `ifcfg-eth0'? y
[root@wwdb2 network-scripts]# service network restart

[root@wwdb2 ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 78:2B:CB:4A:15:93
inet addr:10.10.10.14 Bcast:10.10.10.255 Mask:255.255.255.0
inet6 addr: fe80::7a2b:cbff:fe4a:1593/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:397 errors:0 dropped:0 overruns:0 frame:0
TX packets:223 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:50334 (49.1 KiB) TX bytes:28565 (27.8 KiB)
Interrupt:114 Memory:d6000000-d6012800

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:572939 errors:0 dropped:0 overruns:0 frame:0
TX packets:572939 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:215517488 (205.5 MiB) TX bytes:215517488 (205.5 MiB)

-----------------------------------------------------------
[root@localhost bai]# vi /etc/hosts
添加:
10.20.100.21 bay214
10.20.100.22 bay224

[root@wwdb2 ~]# vi /etc/sysconfig/network

NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=wwdb2

[root@localhost bai]# hostname prodb
[root@localhost bai]# hostname
prodb

[root@localhost bai]# cat /etc/hostname
pordb

[root@localhost network-scripts]# cd /etc/sysconfig/network-scripts
[root@localhost network-scripts]# cp ifcfg-bond-bond0 ifcfg-bond-bond0.bak
[root@localhost network-scripts]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 114.114.114.114

----------------------------------------------------------------
>>>bayaim10.0------配置oracle:>>>>>>>>

配合主库:

sqlplus / as sysdba
select log_mode,force_logging from v$database;
如果是非归档就要关闭数据库修改
shutdown immediate
startup mount
干净地关闭数据库再启动到mount状态
alter database archivelog;
alter database force logging;
select log_mode,force_logging from v$database;
archive log list

更改归档目录
!
mkdir /u01/oradata/prod/archivelog
ls -l /u01/oradata/prod

exit
alter system set log_archive_dest_1='location=/u01/oradata/prod/archivelog';
archive log list
alter database open;

>>>bayaim10.0------配置oracle:>>>>>>>>

1.0 创建pfile
create pfile from spfile;

[oracle@pordb ~]$ cd $ORACLE_HOME\dbs
[oracle@pordb dbs]$ pwd
/u01/app/oracle/11g/dbs

SQL> alter database create standby controlfile as '/u01/app/oracle/product/11.2.0/db_1/dbs/prodb.ctl';

[oracle@localhost ~]$orapwd file=$ORACLE_HOME/dbs/orapwprodb password=oracle entries=3

应用说明:
orapwd命令是用来创建口令文件的,所以需要明白什么时候需要这个口令文件,执行下列命令查看

-------------------------------------------------------------------------------------------

linux下查找某个文件位置的方法
find / -name tnsnames.ora

还可以用locate 来查找
locate tnsnames.ora

-------------------------------------------------------------------------------------------
把pfile文件、口令文件和备控制文件传输到standby
exit
cd /u01/app/oracle/11g/dbs
ls -lrt

scp orapwbay214 bay224:/u01/app/oracle/product/11.2.0/db_1/dbs
scp initbay214.ora bay224:/u01/app/oracle/product/11.2.0/db_1/dbs
scp prodb.ctl bay224:/u01/app/oracle/product/11.2.0/db_1/dbs

[oracle@pordb dbs]$ pwd
/u01/app/oracle/11g/dbs

[root@bay214 ~]# find / -name *control*.ctl
/u01/app/oracle/oradata/bay214/control01.ctl
/u01/app/oracle/fast_recovery_area/bay214/control02.ctl

[oracle@standby dbs]$ cp prodb.ctl /u01/app/oracle/oradata/bay214/control01.ctl
[oracle@standby dbs]$ mkdir -p /u01/app/oracle/fast_recovery_area/bay214
[oracle@standby dbs]$ cp prodb.ctl /u01/app/oracle/fast_recovery_area/bay214/control02.ctl

创建完后,数据库需要重启动,新的口令文件才能生效。
------------------------->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

发现问题:

在上面,由于在建 orapw 口令文件时,设定的 entries 值为2 ,故口令文件只能存放两条的记录,最后一条会被覆盖。
test 为最后面添加的,所以口令时存在的。
$strings orapwstudy
]\[Z
ORACLE Remote Password file
INTERNAL
D0EECC16A54101ED
B898A7F877F295DD
B0BE7F5D1FD7439A
TEST
7A0F2B316C212D67
F15C7D7DFC8C7D52

这是Linux重装或则openssh-server重装引起的,执行以下命令即可
ssh-keygen -R 10.10.10.14
把IP换成你要连的服务器就可以

操作:在执行scp命令的主机上执行:

vi ~/.ssh/known_hosts

删除IP为172.16.103.176 的行即可。

该现象在虚拟机删除之后重新建立的时候尤其明显,
要是因为原始主机已经存了一份了known_hosts了,需要更新。

[oracle@wwdb2 ~]$ env | grep ORA
[oracle@wwdb2 ~]$ vi .bash_profile
[oracle@wwdb2 ~]$ source .bash_profile

[oracle@standby dbs]$ mv orapwprodb orapwstandby
[oracle@standby dbs]$ mv initprodb.ora initstandby.ora
[oracle@standby dbs]$

#chown -R oracle:oinstall /oradata1
#chmod 775 /oradata1

[oracle@wwdb2 oradata1]$ mkdir standby

----------------------------------------------------------------------

把最上面几行去掉,然后把上面标注的prod都改成standby

注意db_name的prod值不要修改

[oracle@pordb prodb]$ pwd
/u01/app/oracle/oradata/prodb

mkdir -p /u01/app/oracle/oradata/bay214
mkdir -p /u01/app/oracle/fast_recovery_area
mkdir -p /u01/app/oracle/admin/bay214/adump
mkdir -p /u01/app/oracle/admin/bay214/cdump
mkdir -p /u01/app/oracle/admin/bay214/bdump
mkdir -p /u01/app/or-acle/admin/bay214/dpdump
mkdir -p /u01/app/oracle/admin/bay214/pfile
chown -R oracle:oinstall /u01/

cd /u01/app/oracle/product/11.2.0/db_1/dbs

vi initstandby.ora

添加如下参数:
*.db_unique_name='bay214'
*.db_file_name_convert='/u01/app/oracle/oradata/bay214','/u01/app/oracle/oradata/bay214'
*.log_file_name_convert='/u01/app/oracle/oradata/bay214','/u01/app/oracle/oradata/bay214'
*.log_archive_config='dg_config=(bay214,bay214)'
*.log_archive_dest_1='location=/u01/arch valid_for=(all_logfiles,all_roles) db_unique_name=bay214'
*.log_archive_dest_2='service=bay214 lgwr async valid_for=(online_logfiles,primary_role) db_unique_name=bay214'
*.log_archive_dest_state_1=enable
*.log_archive_dest_state_2=enable
*.log_archive_max_processes=10
*.fal_server=bay214
*.fal_client=bay214
*.standby_file_management=auto

====================================================================================
startup nomount 报错 原因是 initstandby.ora 里面 的版本号输入错误:

[oracle@wwdb2 ~]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on Thu Oct 16 14:55:28 2014
Copyright (c) 182, 2005, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup nomount
ORA-00401: the value for parameter compatible is not supported by this release
SQL> startup nomount
ORACLE instance started.

Total System Global Area 3120562176 bytes
Fixed Size 2929256 bytes
Variable Size 855641496 bytes
Database Buffers 2248146944 bytes
Redo Buffers 13844480 bytes
SQL>

==================================================================================
TNS 报错 :原因是防火墙开着:
[oracle@wwdb1 admin]$ tnsping standby

最后发现是 主机A服务器防火墙已经关闭,而主机B上防火墙没有关闭进行如下操作
防火墙关闭后一切正常。

===============配置standby库的listener和静态服务名
>>>bayaim8.0------安装oracle:>>>>>>>>

#su - oracle
$source .bash_profile
$export DISPLAY=10.20.100.114:0.0
$export LANG=en_US
$xhost +
$xclock
$./runInstaller

netmgr

netca
tnsping prod
env | grep ORA
SQL> create spfile from pfile='?/dbs/initprodb.ora';
File created.
SQL> startup nomount

standby库的配置告一段落,重新回到prod库的配置

[oracle@bay224 admin]$ pwd
/u01/app/oracle/product/11.2.0/db_1/network/admin

=========================配置prod数据库======================

Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.10.13)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = fjflww)))
TNS-12543: TNS:destination host unreachable

报这个错,其实百度又开始瞎扯淡了。。。

[root@standby admin]# service iptables stop
Flushing firewall rules: [ OK ]
Setting chains to policy ACCEPT: filter [ OK ]
Unloading iptables modules: [ OK ]
[root@standby admin]# su - oracle
[oracle@standby ~]$

配置prod库参数
sqlplus / as sysdba

alter system set log_archive_config='dg_config=(bay214,bay214)';
alter system set log_archive_dest_1='location=/u01/arch valid_for=(all_logfiles,all_roles) db_unique_name=bay214';
alter system set log_archive_dest_2='service=bay224 lgwr async valid_for=(online_logfiles,primary_role) db_unique_name=bay214';
alter system set log_archive_dest_state_1=enable;
alter system set log_archive_dest_state_2=enable;
alter system set log_archive_max_processes=10;
alter system set fal_server=bay214;
alter system set fal_client=bay214;
alter system set standby_file_management=auto;

set pagesize 450
set linesize 440
show parameter log;
show parameter fal;

还有三需要重启才生效的参数也设置一下
alter system set db_unique_name='bay214' scope=spfile;
alter system set db_file_name_convert='/u01/app/oracle/oradata/bay214','/u01/app/oracle/oradata/bay214' scope=spfile;
alter system set log_file_name_convert='/u01/app/oracle/oradata/bay214','/u01/app/oracle/oradata/bay214' scope=spfile;
shutdown immediate

startup

-------------------------------------------------

备份prod库

[oracle@prod db]$ mkdir -p /bai/backupset

创建了备份目录
登陆到rman开始备份
rman target /

RMAN>
run
{
allocate channel d1 type disk ;
allocate channel d2 type disk ;
allocate channel d3 type disk ;
backup database format '/bai/backupset/%U';
release channel d1;
release channel d2;
release channel d3;
}

把备份集目录传输到standby的/u01目录下
exit
scp -r /bai/backupset/* standby:/bai/backupset/

可以在standby上检查一下
ls -l /u01

[oracle@prod backupset]$ scp -r /bai/backupset/* standby:/bai/backupset/
oracle@standby's password:
-----------------------------------------------------------------

开始克隆standby库,在prod上运行

[oracle@prod backupset]$ rman target / auxiliary sys/oracle@prodbdg

Recovery Manager: Release 11.2.0.1.0 - Production on Sun Nov 29 10:14:13 2015

Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.

connected to target database: FJFLWW (DBID=3823638492)
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00554: initialization of internal recovery manager package failed
RMAN-04006: error from auxiliary database: ORA-01031: insufficient privileges

解决: 口令文件,错误导致
------------------------------------------------------------
开始克隆standby库,在prod上运行 [ 雷哥 ]
rman target / auxiliary sys/oracle@standby
duplicate target database for standby from active database Nofilenamecheck dorecover;

开始克隆standby库,在prodb上运行
rman target / auxiliary sys/bayaim@bay224

connected to target database: PRODB (DBID=2396898227)
connected to auxiliary database: PRODB (not mounted)

run
{
allocate auxiliary channel d1 type disk;
allocate auxiliary channel d2 type disk;
allocate auxiliary channel d3 type disk;
duplicate target database for standby nofilenamecheck;
release channel d1;
release channel d2;
release channel d3;
}

此时:standby 上:

SQL> select name from v$controlfile;

NAME
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/bay214/control01.ctl
/u01/app/oracle/fast_recovery_area/bay214/control02.ctl

查询 standby 上是否目录齐全,否则无法建立controlfile
还原了standby库!

============================配置standby数据库==============================

查询standby库状态
select status from v$instance;

现在数据库为mount状态
创建备库的standby日志

alter database add standby logfile ('/u01/app/oracle/oradata/bay214/standby01.log') size 50m;
alter database add standby logfile ('/u01/app/oracle/oradata/bay214/standby02.log') size 50m;
alter database add standby logfile ('/u01/app/oracle/oradata/bay214/standby03.log') size 50m;

日志大小和主库的一样都是50M,数量比主库多一组
在prod库切换几个日志
exit
sqlplus / as sysdba
set linesize 300;
set pagesize 300;
show parameter dest_1;
alter system switch logfile;
/
/

在standby库查看一下是否有归档日志了
exit
ls -l /arch

在从库上执行:

日志可以传输了就ok!
备库执行日志应用同步语句,开始运行物理DG
sqlplus / as sysdba
alter database recover managed standby database using current logfile disconnect from session;

因为有备重做日志,所以可以加using current logfile语句,实现实时应用
select sequence#, applied from v$archived_log where applied='YES' order by sequence#;

yes说明日志同步了

SQL> create spfile from pfile;

----------------------------------------------------------->>>>>>>>>>>>>>>
验证:

在prod库上执行:
conn scott/tiger
create table t(i int);
insert into t values(1);
commit;
conn / as sysdba
alter system switch logfile;
在standby库上执行:
alter database recover managed standby database cancel;
alter database open;
conn scot/tiger
select * from t;

SQL> select table_name from user_tables;
SQL> select instance_name,status from v$instance;
SQL> alter database recover managed standby database using current logfile disconnect from session;
SQL> select open_mode from v$database;
OPEN_MODE
--------------------
READ ONLY WITH APPLY

数据已经同步,物理DG搭建成功!
----------------------------------------------------->>>>>>>>>>>>>>>>

此时standby :
看一下数据库的open状态
conn / as sysdba
select open_mode from v$database;

READ ONLY

此时prod :

READ WRITE

alter database recover managed standby database using current logfile disconnect from session;

select open_mode from v$database;

启动数据同步语句后,数据库又变为mounted状态
注意:在测试数据同步的时候请不要用sys用户,不然可能同步不了,这里测试都是用scott用户

SQL> SELECT MESSAGE FROM V$DATAGUARD_STATUS;

---------------------------------------------------------------------------
完整的一次启停:

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.

Total System Global Area 839282688 bytes
Fixed Size 2217992 bytes
Variable Size 595593208 bytes
Database Buffers 239075328 bytes
Redo Buffers 2396160 bytes
Database mounted.
SQL> alter database open read only;

Database altered.

SQL> select instance_name,status from v$instance;

INSTANCE_NAME STATUS
---------------- ------------
standby OPEN

SQL> select open_mode from v$database;

OPEN_MODE
--------------------
READ ONLY

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

Database altered.

SQL> select open_mode from v$database;

OPEN_MODE
--------------------
READ ONLY WITH APPLY

SQL> alter database recover managed standby database cancel;

Database altered.

SQL> select open_mode from v$database;

OPEN_MODE
--------------------
READ ONLY

SQL> select instance_name,status from v$instance;

INSTANCE_NAME STATUS
---------------- ------------
standby OPEN

SQL> conn scott/tiger
Connected.
SQL> select * from t_5;

I
----------
21212
222
4442
5655

SQL>

====================================================================================
startup nomount 报错 原因是 initstandby.ora 里面 的版本号输入错误:

最新文章

  1. Mysql(Mariadb) 基础操作语句 (持续更新)
  2. Thinkphp源码分析系列(五)–系统钩子实现
  3. drupal 做301跳转(删除url里的www), 关键代码 可用到任何网站
  4. cf 496B Secret Combination
  5. MFC通过ADO操作Access数据库
  6. 微软Azure Services Bus中的工作流
  7. ISO7816 传输协议 T0 T1
  8. 《Java程序员面试笔试宝典》之Java程序初始化的顺序是怎样的
  9. JavaScript 中的事件类型1(读书笔记思维导图)
  10. Reporting Service部署之访问权限
  11. dsp与dmp的cookie mapping
  12. 三种预处理器px2rem
  13. 工程经验总结之吹水"管理大境界"
  14. UOJ#346. 【清华集训2017】某位歌姬的故事 动态规划
  15. 下载离线VS2017
  16. mui 从列表进入到详情,再返回,列表页还是进入列表之前的样子,而不刷新页面
  17. Linux中查看显卡硬件信息
  18. codevs 1013 求先序排列
  19. [dt]世纪历史长河年代表
  20. 登录centos虚拟机后显示-bash-4.1

热门文章

  1. 【转】CAP 定理的含义
  2. linux-发送文件夹rsync -avz salt-发送文件/文件夹
  3. 从无到有通过IDEA搭建SpringBoot项目
  4. 最后的记忆——Spring ApplicationContext
  5. c语言从入门到精通的几个阶段
  6. ASP.NET Core gRPC 入门全家桶
  7. 请确保二进制储存在指定的路径中,或者调试他以检查该二进制或相关的DLL文件
  8. Spring整合JMS消息中间件
  9. centos7.6 安装Tomcat-8.5.39
  10. 冒泡排序(C语言)