Oracle11gR2 Dataguard 物理備庫 安裝部署

寫在前面,主機規劃:

主機名 IP 備註
xypri 192.0.2.11 (奇數機)主
xystb 192.0.2.12 (偶數機)備

一、軟件安裝前環境配置(root用戶操作)主備均要操作

 

1.修改主機名

vi /etc/sysconfig/network

 HOSTNAME=xypri

 

vi /etc/hosts

  192.0.2.11 xypri

  192.0.2.12 xystb

2.修改IP地址

IPADDR=192.0.2.11

 

3.修改內核參數

cp /etc/sysctl.conf /etc/sysctl.conf.bak

vi /etc/sysctl.conf

--文檔最低要求,添加以下內容

fs.file-max = 6815744

fs.aio-max-nr = 1048576

kernel.sem = 250 32000 100 128

kernel.shmmni = 4096

kernel.shmall = 1073741824

kernel.shmmax = 4398046511104

net.core.rmem_default = 262144

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 1048576

net.ipv4.ip_local_port_range = 9000 65500

 

修改完運行 sysctl -p 

 

4.修改資源限制

cp /etc/security/limits.conf /etc/security/limits.conf.bak

vi /etc/security/limits.conf

#末尾添加如下

# oracle-rdbms-server-11gR2-preinstall setting for nofile soft limit is 1024

oracle   soft   nofile    1024

# oracle-rdbms-server-11gR2-preinstall setting for nofile hard limit is 65536

oracle   hard   nofile    65536

# oracle-rdbms-server-11gR2-preinstall setting for nproc soft limit is 2047

oracle   soft   nproc    2047

# oracle-rdbms-server-11gR2-preinstall setting for nproc hard limit is 16384

oracle   hard   nproc    16384

# oracle-rdbms-server-11gR2-preinstall setting for stack soft limit is 10240KB

oracle   soft   stack    10240

# oracle-rdbms-server-11gR2-preinstall setting for stack hard limit is 32768KB

oracle   hard   stack    32768

 

5.創建用戶和安裝目錄

groupadd oinstall

groupadd dba

useradd -g oinstall -G dba oracle

id oracle

uid=500(oracle) gid=500(oinstall) groups=500(oinstall),501(dba)

 

mkdir -p /u01/app/

chown -R oracle:oinstall /u01/app/

chmod -R 775 /u01/app/

 

6.設置oracle用戶環境變量,添加以下內容

vi /home/oracle/.bash_profile

export ORACLE_BASE=/u01/app/oracle

export ORACLE_SID=xy

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1

export PATH=$PATH:$ORACLE_HOME/bin

#立即生效

source  /home/oracle/.bash_profile

 

二、軟件安裝

1.上傳安裝包到服務器,解壓,運行安裝程序

cd database

./runInstaller

2.具體安裝步驟(略)

 

三、建庫

1.運行建庫命令:dbca

 

2.RMAN備份設置

CONFIGURE BACKUP OPTIMIZATION on;

CONFIGURE CONTROLFILE AUTOBACKUP on;

CONFIGURE DEVICE TYPE DISK PARALLELISM 2;

CONFIGURE ARCHIVELOG DELETION POLICY TO APPLIED ON ALL STANDBY;

 

四、創建物理備庫

1.備庫創建

 

1.1和主庫創建不同點

主機名:xystb

IP地址:192.0.0.12

 

1.2和主庫創建相同點

其他目錄、軟件安裝路徑、資源限制等等均保持一致。

 

1.3 注意事項

備庫不需要建庫,只需要安裝好數據軟件。

 

五、主備同步

1.主庫:開啓歸檔模式

SQL> archive log list;

SQL> show parameter recovery;

SQL> alter system set db_recovery_file_dest_size=400G;

SQL> alter system set db_recovery_file_dest='/u01/app/oracle/fast_recovery_area' scope=spfile;

SQL> shutdown immediate;

SQL> startup mount;

SQL> alter database archivelog;

SQL> alter database open;

SQL> archive log list;

 

2.主庫:奇數機開啓強制寫日誌功能並關閉閃回。

SQL> select force_logging from v$database;

SQL> alter database force logging;

SQL> alter database flashback off;

 

3.主庫:配置靜態監聽, 編輯/u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora

SID_LIST_LISTENER =

  (SID_LIST =

    (SID_DESC =

      (GLOBAL_DBNAME = xypri)

      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)

      (SID_NAME = xy)

    )

  )

 

LISTENER =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

      (ADDRESS = (PROTOCOL = TCP)(HOST = xypri)(PORT = 1521))

    )

  )

 

ADR_BASE_LISTENER = /u01/app/oracle

 

奇數機:

$ lsnrctl stop

$ lsnrctl start

 

4.主庫:奇數機配置 tnsnames 文件

XYPRI =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = xypri)(PORT = 1521))

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = xy)

    )

  )

  

XYSTB =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = xystb)(PORT = 1521))

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = xystb)

    )

  )

 

5.主庫:增加 standby logfile 文件

SQL> set linesize 200;

SQL> col member for a60

SQL> select group#, member from v$logfile;

SQL> select bytes/1024/1024 "Size MB" from v$log;

SQL> alter database add standby logfile '/u01/app/oracle/oradata/xy/redo04.log' size 512m;

SQL> alter database add standby logfile '/u01/app/oracle/oradata/xy/redo05.log' size 512m;

SQL> alter database add standby logfile '/u01/app/oracle/oradata/xy/redo06.log' size 512m;

SQL> alter database add standby logfile '/u01/app/oracle/oradata/xy/redo07.log' size 512m;

 

SQL> select group#, member, type from v$logfile where type='STANDBY';

 

 

6.主庫:修改參數文件, 將其下面內容添加到 initPROD1.ora 文件中

SQL> create pfile from spfile;

 

SQL> shutdown immediate;

 

$ vi initxy.ora

 

DB_UNIQUE_NAME=xypri

LOG_ARCHIVE_CONFIG='DG_CONFIG=(xypri,xystb)'

LOG_ARCHIVE_DEST_1=

'LOCATION=USE_DB_RECOVERY_FILE_DEST

VALID_FOR=(ALL_LOGFILES,ALL_ROLES)

DB_UNIQUE_NAME=xypri'

LOG_ARCHIVE_DEST_2=

'SERVICE=xystb ASYNC

VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)

DB_UNIQUE_NAME=xystb'

LOG_ARCHIVE_DEST_STATE_1=ENABLE

LOG_ARCHIVE_DEST_STATE_2=ENABLE

REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE

LOG_ARCHIVE_FORMAT=%t_%s_%r.arc

LOG_ARCHIVE_MAX_PROCESSES=30

FAL_SERVER=xystb

DB_FILE_NAME_CONVERT='xystb','xypri'

LOG_FILE_NAME_CONVERT='xystb','xypri'

STANDBY_FILE_MANAGEMENT=AUTO

 

SQL> create spfile from pfile;

SQL> startup

 

7.偶數機備庫:配置靜態監聽: 編輯

/u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora

 

SID_LIST_LISTENER =

  (SID_LIST =

    (SID_DESC =

      (GLOBAL_DBNAME = xystb)

      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)

      (SID_NAME = xy)

    )

  )

 

LISTENER =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

      (ADDRESS = (PROTOCOL = TCP)(HOST = xystb)(PORT = 1521))

    )

  )

 

 

偶數機:

$ lsnrctl stop

$ lsnrctl start

 

8.備庫:配置 tnsnames 文件, 編輯

 

XYSTB =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = xystb)(PORT = 1521))

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = xy)

    )

  )

  

XYPRI =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = xypri)(PORT = 1521))

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = l)

    )

  )

  

 

9.備庫:在奇數機執行拷貝主庫參數文件、 密碼文件到備庫並改名

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

scp initxy.ora xystb:/u01/app/oracle/product/11.2.0/db_1/dbs/initxy.ora

scp orapwxy xystb:/u01/app/oracle/product/11.2.0/db_1/dbs/orapwxy

 

10.備庫:在偶數機操作修改參數文件:(將原始的 xypri 和 xystb 位置進行調換)

$ vi initxy.ora

 

DB_UNIQUE_NAME=xystb

LOG_ARCHIVE_CONFIG='DG_CONFIG=(xystb,xypri)'

LOG_ARCHIVE_DEST_1=

'LOCATION=USE_DB_RECOVERY_FILE_DEST

VALID_FOR=(ALL_LOGFILES,ALL_ROLES)

DB_UNIQUE_NAME=xystb'

LOG_ARCHIVE_DEST_2=

'SERVICE=xypri ASYNC

VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)

DB_UNIQUE_NAME=xypri'

LOG_ARCHIVE_DEST_STATE_1=ENABLE

LOG_ARCHIVE_DEST_STATE_2=ENABLE

REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE

LOG_ARCHIVE_FORMAT=%t_%s_%r.arc

LOG_ARCHIVE_MAX_PROCESSES=30

FAL_SERVER=xypri

DB_FILE_NAME_CONVERT='xypri','xystb'

LOG_FILE_NAME_CONVERT='xypri','xystb'

STANDBY_FILE_MANAGEMENT=AUTO

 

 

 

11.備庫:在偶數機根據參數文件創建相應的目錄

mkdir -p /u01/app/oracle/oradata/xy/

mkdir -p /u01/app/oracle/admin/xy/adump

mkdir -p /u01/app/oracle/fast_recovery_area/xy/

mkdir -p /u01/app/oracle/oradata/xy/

 

$ export ORACLE_SID=xy

SQL> sqlplus / as sysdba

SQL> create spfile from pfile;

SQL> startup nomount

 

12.主庫:通過 rman duplicate 方式進行備庫恢復(主備庫sid名稱均爲xy,故文件路徑一致,需要添加nofilenamecheck參數)

rman target / auxiliary sys/oracle@xystb

RMAN> duplicate target database for standby from active database nofilenamecheck;

 

13.驗證是否搭建成功:

奇數機:

$ sqlplus / as sysdba

SQL>  select DATABASE_ROLE from v$database;

 

偶數機:

$ sqlplus / as sysdba

SQL>  select open_mode from v$database;

 

SQL>  select DATABASE_ROLE from v$database;

$ cd /u01/app/oracle/oradata/xy/

$ ls

control01.ctl  redo02.log  redo04.log  redo06.log  sysaux01.dbf  undotbs01.dbf

redo01.log     redo03.log  redo05.log  redo07.log  system01.dbf  users01.dbf

 

奇數機:

$ sqlplus / as sysdba

SQL> archive log list;

SQL> alter system switch logfile;

SQL> archive log list;

SQL> alter system switch logfile;

SQL> archive log list;

 

偶數機:

$ sqlplus / as sysdba

SQL> select process, pid, status, client_process from v$managed_standby;

SQL> archive log list;

 

14.備庫:sync 數據

偶數機:

$ sqlplus / as sysdba

SQL> SELECT PROTECTION_MODE, PROTECTION_LEVEL,DATABASE_ROLE ROLE,SWITCHOVER_STATUS FROM V$DATABASE;

SQL> recover managed standby database using current logfile disconnect from session;

SQL> recover managed standby database cancel;

SQL> alter database open;

SQL> recover managed standby database using current logfile disconnect from session;

SQL> select open_mode from v$database;

 

奇數機:

$ sqlplus / as sysdba

SQL> create table t(id number);

SQL> insert into t values(1);

SQL> commit;

SQL> select * from t;

SQL> delete from t;

SQL> commit;

SQL> drop table t;

 

偶數機:

SQL> select * from t;

 

備註:

【Oracle】Linux7安裝11g 86%報錯:Error in invoking target 'agent nmhs' of makefile

參考:http://blog.itpub.net/29475508/viewspace-2120836/

 

 

  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章