首页 > 代码库 > linux下oracle11G DG搭建(一):环境准备

linux下oracle11G DG搭建(一):环境准备

linux下oracle11G  DG搭建(一):环境准备


环境

名称

主库

备库

主机名

bjsrv

shsrv

软件版本

RedHat Enterprise5.5、Oracle 11g 11.2.0.1

RedHat Enterprise5.5、Oracle 11g 11.2.0.1




一.环境准备:

1.vbox

导入虚拟机镜像(已安装oracle、已建库)

1、导入虚拟机(主库-北京,以下简称bj)

2、导入虚拟机(备库-上海,以下简称sh)



3、主库、备库分别添加一块磁盘

为主库和备库分别添加1块磁盘,大小为30g。

(1)、bj添加磁盘。





(2)、bj网卡设置

依实际需要进行设置host only或桥接,如下图:




(3)、sh添加磁盘、网卡设置

操作步骤同上(略)。

2.主机

1、root密码

(1)、修改bj的root密码



(2)、修改sh的root密码

略。

2、主机名

(1)、修改bj下主机名

 vi /etc/sysconfig/network     //修改主机名

 

NETWORKING=yes

NETWORKING_IPV6=no

HOSTNAME=bjsrv

 

#hostname  bjsrv            //使主机名生效或重启系统

 

(2)、修改sh下主机名

vi /etc/sysconfig/network     //修改主机名

 

NETWORKING=yes

NETWORKING_IPV6=no

HOSTNAME=shsrv

 

#hostname  shsrv            //使主机名生效或重启系统

 

3、.bash_profile

此处为显示格式习惯的设置,可不做修改。

(1)、修改bj的.bash_profile

#vi .bash_profile

 

# .bash_profile

# Get the aliases and functions

if [ -f ~/.bashrc ]; then

        .~/.bashrc

fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH

unset USERNAME

#PS1=`whoami`@`hostname`‘:${PWD}> ‘

PS1=‘[\u@\h \w]\$‘

export PS1

 

[root@bjsrv ~]#source.bash_profile

(2)、修改sh的.bash_profile

#vi .bash_profile

 

# .bash_profile

# Get the aliases and functions

if [ -f ~/.bashrc ]; then

        .~/.bashrc

fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH

unset USERNAME

#PS1=`whoami`@`hostname`‘:${PWD}> ‘

PS1=‘[\u@\h \w]\$‘

export PS1

 

[root@shsrv ~]#source.bash_profile

4、网络配置

(1)、修改bj网络配置

#vi  /etc/hosts




#vi /etc/sysconfig/network-scripts/ifcfg-eth0  //修改IP地址

 

DEVICE=eth0

BOOTPROTO=static

IPADDR=192.168.4.71

NETMASK=255.255.255.0

ONBOOT=yes

 

#service  networkrestart


(2)、修改sh网络配置

#vi  /etc/hosts




#vi /etc/sysconfig/network-scripts/ifcfg-eth0  //修改IP地址

 

DEVICE=eth0

BOOTPROTO=static

IPADDR=192.168.4.72

NETMASK=255.255.255.0

ONBOOT=yes

 

#service  networkrestart




3.安装数据库

由于导入虚拟机中已安装好oracle,此处不进行安装。安装详见“oracle安装”文档,此步骤略。

[root@bjsrv ~]#cat /etc/oratab  //验证库已经存在



注意:在主库安装oracle软件和数据库,在备库只要安装oracle软件。


4.磁盘

简介:

使用逻辑卷作为物理卷使用。

分别在bj和sh新创建一块30G的硬盘,创建逻辑卷,aix的逻辑卷必须是一整块磁盘,linux下可以是磁盘的一个分区,逻辑卷组就是把好几块物理卷整合在一起,逻辑卷就是从逻辑组分割出来各种大小的分区。(需修改

目的:虚拟出4块磁盘

1.对bj添加磁盘操作

1、分区→逻辑卷

为磁盘分区,分一个主分区。然后再转换为逻辑卷。

[root@bjsrv ~]#fdisk –l            //查看硬盘情况




[root@bjsrv ~]# fdisk   /dev/sdb

Command (m for help): m

Command action

   a   toggle a bootable flag

   b   edit bsd disklabel

   c   toggle the dos compatibility flag

   d   delete a partition

   l   list known partition types

   m   print this menu

   n   add a new partition

   o   create a new empty DOS partition table

   p   print the partition table

   q   quit without saving changes

   s   create a new empty Sun disklabel

   t   change a partition‘s system id

   u   change display/entry units

   v   verify the partition table

   w   write table to disk and exit

   x   extrafunctionality (experts only)

Command (m forhelp): n

 

Command action

   e  extended

   p  primary partition (1-4)  p

Partition number(1-4): 1

First cylinder(1-3916, default 1):

Using default value1

Last cylinder or+size or +sizeM or +sizeK (1-3916, default 3916):

Using default value3916

 

Command (m forhelp): p

 

Disk /dev/sdb: 32.2GB, 32212254720 bytes

255 heads, 63sectors/track, 3916 cylinders

Units = cylinders of16065 * 512 = 8225280 bytes

 

   Device Boot      Start         End      Blocks  Id  System

/dev/sdb1               1        3916   31455238+  83  Linux

 

Command (m forhelp): t        //(change a partition‘ssystem id)转换成逻辑卷格式

Selected partition 1

Hex code (type L tolist codes): L

8e  Linux LVM 

Hex code (type L tolist codes): 8e       创建逻辑卷格式

Changed system typeof partition 1 to 8e (Linux LVM)

 

Command (m forhelp): p

 

Disk /dev/sdb: 32.2GB, 32212254720 bytes

255 heads, 63sectors/track, 3916 cylinders

Units = cylinders of16065 * 512 = 8225280 bytes

 

   Device Boot      Start         End      Blocks     Id  System

/dev/sdb1              1        3916    31455238+   8e Linux LVM

//查看可知转换逻辑卷格式成功,接下来就是创建逻辑卷

Command (m for help): w    //保存退出




2、创建物理卷

创建物理卷(pv):

 [root@bjsrv ~]#   pvcreate  /dev/sdb1       //把分区作为一个物理卷来使用



 [root@bjsrv ~]#pvdisplay                                                      //显示物理卷信息


3、建立卷组

将物理卷加入卷组(vg):

[root@bjsrv ~]#vgcreate datavg /dev/sdb1                                     //创建卷组

//格式:vgcreate   datavg                             /dev/sdb1

//说明:建立卷组  逻辑卷组名                    物理卷




[root@bjsrv ~]#vgdisplay                                //查看卷组信息


4、创建逻辑卷

在卷组下创建逻辑卷:

lvcreate [-n取名] [-L 指定大小]

参考图例:




操作:

# lvcreate-n lv_dsk1 -L 7g datavg

# lvcreate-n lv_dsk2 -L 7g datavg

# lvcreate-n lv_dsk3 -L 7g datavg

lvcreate -n lv_dsk4 -L 8g datavg

//剩余一些空间给卷组头使用

 

# lvdisplay  //查看逻辑卷信息





5、格式化逻辑卷

对逻辑卷进行格式化:

参考图例:




操作如下:

#mkfs.ext3 /dev/datavg/lv_dsk1

#mkfs.ext3  /dev/datavg/lv_dsk2

#mkfs.ext3  /dev/datavg/lv_dsk3

#mkfs.ext3  /dev/datavg/lv_dsk4

6、建虚拟磁盘目录

为虚拟出的4块磁盘建立目录:

#mkdir  /dsk1

#mkdir  /dsk2

#mkdir  /dsk3

#mkdir  /dsk4

7、自动挂载

设置自动挂载,即将上几步所创建的目录设置为开机自动挂载

#vi  /etc/fstab  设置自动挂载

参考图例:



操作添加:

/dev/datavg/lv_dsk1     /dsk1                 ext3       defaults    0  0

/dev/datavg/lv_dsk2     /dsk2                 ext3       defaults    0  0

/dev/datavg/lv_dsk3     /dsk3                 ext3      defaults    0  0

/dev/datavg/lv_dsk4     /dsk4                 ext3      defaults    0  0

 

挂载四块磁盘:

#mount /dsk1

#mount /dsk2

#mount /dsk3

#mount  /dsk4

#df–h                                             //查看磁盘信息



8、赋权

把新建目录的所有者改为oracle,属组设为dba:

#chown -R oracle:dba /dsk1

#chown -R oracle:dba /dsk2

#chown -R oracle:dba /dsk3

#chown -R oracle:dba /dsk4

2.对sh添加磁盘操作

操作步骤参考“对bj磁盘操作”。

步骤(略)。

5.改造数据库

说明:完成对数据库的改造,与DG无关,是为了设置一个模拟环境。

1、修改显示方式

bj修改

$vi $ORACLE_HOME/sqlplus/admin/glogin.sql

修改

setsqlprompt ‘_user@ _connect_identifier>’

settermout on;

set timeon

set timingon

参考下图:




sh修改

参考bj修改,略。

2、改造文件位置

目的:模拟redo日志、datafile不在同一磁盘下。

 

SQL>startup                                   //启库

 

【补充】:报MEMORY_TARGETnot supported on this system

启库时报00845错误




查看告警日志:

$tail -f /u01/app/oracle/diag/rdbms/testdb12/TestDB12/alert/log.xml

$df -h



内存超出了,需要修改初始化参数文件中的参数值:

SQL>create pfile fromspfile;

$vi$ORACLE_HOME/dbs/initTestDB12.ora;

对内存值进行修改,参考如下图:




SQL>create spfile from pfile;

SQL>startup

补充结束


SQL>select name from v$controlfile;                      //查看控制文件位置




SQL>select member from v$logfile;                         //查看日志位置




SQL>select name from v$datafile;                           //查看数据文件位置



SQL>archive log list                                              //查看归档模式,DG必须是归档模式




以上查询得知:

控制文件、日志文件、数据文件在同一目录下,且未开归档。于是下面就要根据查询出的结果对数据库进行改造,模拟一个较复杂的环境。

 

创建文件放置位置所需目录:

 

规划:

redo日志放在dsk1、dsk2下

归档日志放在dsk4下

1、创建目录
bj创建目录

$mkdir -p /dsk1/oradata/bj

$mkdir -p /dsk2/oradata/bj

$mkdir -p /dsk3/oradata/bj

$mkdir -p /dsk4/oradata/bj

$mkdir -p /dsk4/arch_bj

sh创建目录

$mkdir -p /dsk1/oradata/sh

$mkdir -p /dsk2/oradata/sh

$mkdir -p /dsk3/oradata/sh

$mkdir -p /dsk4/oradata/sh

$mkdir -p /dsk4/arch_sh

 

补充:

查看告警日志


2、改造redo日志位置(bj)

SQL>selectmember from v$logfile;




SQL> selectgroup#,status,bytes from v$log;




SQL>alterdatabase add logfile member

‘/dsk2/oradata/bj/redo01b.log’to group 1,

‘/dsk2/oradata/bj/redo02b.log’to group 2,

‘/dsk2/oradata/bj/redo03b.log’to group 3;

SQL> selectmember from v$logfile;




迁移redo日志:(需在mount下进行)

SQL>shutdownimmediate;

 

$ cp/u01/app/oracle/oradata/TestDB12/redo03.log  /dsk1/oradata/bj/redo03a.log;

$ cp/u01/app/oracle/oradata/TestDB12/redo02.log  /dsk1/oradata/bj/redo02a.log;

$ cp/u01/app/oracle/oradata/TestDB12/redo01.log  /dsk1/oradata/bj/redo01a.log;

$ls/dsk1/oradata/bj




SQL>startupmount;

SQL>alterdatabase rename file

‘/u01/app/oracle/oradata/TestDB12/redo03.log’to ‘/dsk1/oradata/bj/redo03a.log’;

SQL>alterdatabase rename file

‘/u01/app/oracle/oradata/TestDB12/redo02.log’to ‘/dsk1/oradata/bj/redo02a.log’;

SQL>alterdatabase rename file

‘/u01/app/oracle/oradata/TestDB12/redo01.log’to ‘/dsk1/oradata/bj/redo01a.log’;

SQL>selectmember from v$logfile;




删除旧的redo日志文件:

$rm/u01/app/oracle/oradata/TestDB12/redo*;

$ls/u01/app/oracle/oradata/TestDB12/




至此,实现了日志文件与数据文件的目录分离(即模拟了文件不在同一个磁盘)。


3、设置归档(bj)

SQL>alterdatabase archivelog;

SQL>showparameter archive

SQL>altersystem set log_archive_dest_1=‘location=/dsk4/arch_bj‘;

SQL>altersystem set log_archive_format=‘arch_%t_%s_%r.log‘ scope=spfile;

SQL>startupforce;

SQL>archivelog list;




4、全部操作均生成redo设置(bj)

强制“所有操作”都生成redo日志:

SQL>alterdatabase force logging;

SQL>selectname from v$archived_log;       //再查看一下归档日志信息






********************未完待续**************************

声明:
         原创作品,出自 “深蓝的blog” 博客,允许转载,转载时请务必注明出处(http://blog.csdn.net/huangyanlong)。

         关于涉及版权事宜,作者有权追究法律责任。