--------------------------------每一個節點和DG-------------------------------------------------------------------------
--------------------------------------DG-----------------------------------------------------------------------------------------
-- 修改內核參數
vim /etc/sysctl.conf
#for oracle softe
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 4294967295
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
sysctl -p
--添加資源限制參數
vim /etc/security/limits.conf
#for oracle
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
-- 配置login
vim /etc/pam.d/login
session required pam_limits.so
-- 建立用戶和組
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
passwd oracle
-- 安裝目錄配置
mkdir -p /u01/app/oracle
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01/app/oracle
mkdir -p /u01/app/oraInventory
chown -R oracle:oinstall /u01/app/oraInventory
chmod -R 775 /u01/app/oraInventory
-- 環境變量
vim /home/oracle/.bash_profile
export ORACLE_SID=proc
export ORACLE_UNQNAME=proc
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_TERM=xterm; export ORACLE_TERM
export PATH=$ORACLE_HOME/bin:$PATH
umask 022
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
source /home/oracle/.bash_profile
-- 安裝必要的軟件包
yum -y install binutils compat-libstdc++-33 compat-libcap1 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc-common glibc-devel glibc-headers libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat c++
-- 開始安裝(打開xmanager-passive)
mv database/ /home/oracle
su - oracle
cd database/
export DISPLAY=192.168.3.1:0.0
./runInstaller
-- 裝到94%的時候回彈出一個框,執行兩個腳本
/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/11.2.0/db_1/root.sh
--------------------------------------------------每一個節點、DG-----------------------------------------------
vim tnsnames.ora
PROCDG =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = procdg)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = proc)
)
)
PROC =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = racscan)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = proc)
)
)
LISTENER = 數據庫
(DESCRIPTION_LIST = vim
(DESCRIPTION = bash
(ADDRESS = (PROTOCOL = TCP)(HOST = 主機名)(PORT = 1521)) session
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) oracle
) app
) ui
ADR_BASE_LISTENER = /u01/app/oracle this
SID_LIST_LISTENER = url
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = proc)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)
(SID_NAME = proc)
)
)
---------------------------節點1-----------------------------------------------------
-- 設置數據庫archivelog模式、force logging模式
SQL> select log_mode,force_logging from v$database;
#查看數據庫歸檔狀態,強日誌狀態
LOG_MODE FOR
------------ ---
NOARCHIVELOG NO
SQL> alter database force logging;
#開啓強日誌
Database altered.
SQL> shutdown immediate;
#關閉數據庫
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount;
#修改歸檔狀態必須在mount狀態
ORACLE instance started.
Total System Global Area 784998400 bytes
Fixed Size 2257352 bytes
Variable Size 541068856 bytes
Database Buffers 239075328 bytes
Redo Buffers 2596864 bytes
Database mounted.
SQL> alter database archivelog;
#修改歸檔狀態必須在mount狀態,而且其餘實例必須是not open狀態
alter database archivelog
*
ERROR at line 1:
ORA-01126: database must be mounted in this instance and not open in any
instance
SQL> alter database archivelog;
#開啓歸檔
Database altered.
-- 再次查看archive和force logging狀態
SQL> select log_mode,force_logging from v$database;
LOG_MODE FOR
------------ ---
ARCHIVELOG YES
-- 開啓數據庫到open狀態,其餘節點也打開
SQL> alter database open;
Database altered.
-------------------------------------------節點1--------------------------------------------------------------------
-- 傳輸密碼文件,參數文件到備庫
cd /u01/app/oracle/product/11.2.0/db_1/dbs/
scp orapwproc1 procdg:/u01/app/oracle/product/11.2.0/db_1/dbs/orapwproc
scp initproc1.ora procdg:/u01/app/oracle/product/11.2.0/db_1/dbs/initproc.ora
-----------------------------------------節點1-----------------------------------------------------
-- 修改主庫的參數文件
[oracle@rac01 rmanbak]$ vim initproc1.ora
#如下爲配置DG而添加的內容
*.db_unique_name='proc'
*.log_archive_config='dg_config=(proc,procdg)'
*.log_archive_dest_1='location=+DATA/proc/archivelog #通常放在+FRA
valid_for=(all_logfiles,all_roles) db_unique_name=proc'
*.log_archive_dest_2='service=procdg
valid_for=(online_logfiles,primary_role)
db_unique_name=procdg'
*.log_archive_dest_state_1=enable
*.log_archive_dest_state_2=enable
*.log_archive_format='arc_%t_%s_%r.arc'
#爲switchover或failover而設置的參數
*.fal_server=procdg
*.standby_file_management='auto'
*.db_file_name_convert='/u01/app/oracle/oradata/proc/datafile','+DATA/proc/datafile'
*.log_file_name_convert='/u01/app/oracle/oradata/proc/onlinelog','+DATA/proc/onlinelog'
-- 修改完後建立到spfile
SQL> create spfile from pfile;
---------------------------------DG-------------------------------------
-- 修改備庫參數文件
*.control_files='/u01/app/oracle/oradata/proc/controlfile/control01.ctl'
*.db_unique_name='procdg'
*.log_archive_config='dg_config=(proc,procdg)'
*.log_archive_dest_1='location=/u01/app/oracle/oradata/proc/archivelog
valid_for=(all_logfiles,all_roles) db_unique_name=procdg'
*.log_archive_dest_2='service=proc LGWR SYNC AFFIRM
valid_for=(online_logfiles,primary_role)
db_unique_name=proc'
*.log_archive_dest_state_1=enable
*.log_archive_dest_state_2=enable
*.log_archive_format='arc_%t_%s_%r.arc'
*.fal_server=proc
*.standby_file_management=auto
*.db_file_name_convert='+DATA/proc/datafile','/u01/app/oracle/oradata/proc/datafile'
*.log_file_name_convert='+DATA/proc/onlinelog' ,'/u01/app/oracle/oradata/proc/onlinelog'
-- 在備庫建立相應目錄
mkdir -p /u01/app/oracle/admin/proc/adump
mkdir -p /u01/app/oracle/oradata/proc/controlfile
mkdir -p /u01/app/oracle/oradata/proc/archivelog
mkdir -p /u01/app/oracle/oradata/proc/datafile
mkdir -p /u01/app/oracle/oradata/proc/onlinelog
--從剛纔建立的參數建立spfile
SQL> create spfile from pfile='/u01/app/oracle/product/11.2.0/db_1/dbs/initproc.ora'
---------------------------------節點1-----------------------
-- 在主庫建立redolog
SQL> select thread#,group#,bytes/1024/1024 M from v$log;
THREAD# GROUP# M
---------- ---------- ----------
1 1 50
1 2 50
2 3 50
2 4 50
SQL> alter database add standby logfile thread 1 group 5 size 50M ,group 6 size 50M
,group 7 size 50M;
Database altered.
SQL> alter database add standby logfile thread 2 group 8 size 50M ,group 9 size 50M
,group 10 size 50M ;
Database altered.
---------------------------------------------------------任意節點----------------
rman target sys/oracle@proc auxiliary sys/oracle@procdg
duplicate target database for standby from active database nofilenamecheck;
--------------------------------------DG---------------------------