【oracle】oracle11g 搭建

一、	搭建oracle11G
1、	內存配置
[root@localhost ~]# grep MemTotal /proc/meminfo
MemTotal:     32949816 kB
[root@localhost ~]# grep SwapTotal /proc/meminfo
SwapTotal:    16779884 kB
[root@localhost ~]# df -k /dev/shm/
Filesystem           1K-blocks      Used Available Use% Mounted on
tmpfs                 16474908         0  16474908   0% /dev/shm
[root@localhost ~]# df -h /tmp
Filesystem            Size  Used Avail Use% Mounted on
/dev/shm               16G     0   16G   0% /tmp
2、	文件系統
/dev/sda7      ext3    505G   37G  468G   8% /home
3、	兼容包
rpm -q \
binutils \
compat-libstdc++-33 \
elfutils-libelf \
elfutils-libelf-devel \
gcc \
gcc-c++ \
glibc \
glibc-common \
glibc-devel \
glibc-headers \
ksh \
libaio \
libaio-devel \
libgcc \
libgomp \
libstdc++ \
libstdc++-devel \
make \
numactl-devel \
sysstat \
unixODBC \
unixODBC-devel | grep "not installed"
4、	創建用戶
chattr -i /etc/passwd /etc/shadow
groupadd –g 504 oinstall
groupadd –g 505 dba
useradd –u 504 –g oinstall –G dba oracle
passwd oracle
chattr +i /etc/passwd /etc/shadow
5、	配置系統參數
[root@localhost home]# vi /etc/sysctl.conf
	# for oracle
kernel.shmall = 8388608
kernel.shmmax = 34359738368
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
net.core.wmem_max = 1048586
fs.file-max = 6815744
[root@localhost home]# sysctl -p
[root@localhost home]# vi /etc/security/limits.conf 
oracle              soft    nproc   2047
oracle              hard    nproc   16384
oracle              soft    nofile  1024
oracle              hard    nofile  65536
oracle              soft    stack   10240
[root@localhost home]# vi /etc/pam.d/login 
session    required     pam_limits.so
[root@localhost home]# vi /etc/profile
if [ $USER = "oracle" ]; then
        if [ $SHELL = "/bin/ksh" ]; then
              ulimit -p 16384
              ulimit -n 65536
        else
              ulimit -u 16384 -n 65536
        fi
fi
6、	創建目錄
[root@localhost home]# mkdir –p /home/U01
[root@localhost home]# ln –s /home/U01 /U01
[root@localhost home]# mkdir -p /U01/app/oracle/
[root@localhost home]# chown -R oracle:oinstall /U01/
[root@localhost home]# chmod -R 775 /U01/
7、	切換oracle用戶配置環境變量
[oracle@bf_test_qd_119 ~]$ vi .bash_profile 
PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export PATH
export ORACLE_BASE=/U01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0.2/db_1
export ORACLE_SID=ora11g
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/lib32:$LD_LIBRARY_PATH
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$ORACLE_HOME/jdk/bin:$PATH
export LANG="en_US"
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"
#export DISPLAY=172.0.0.172:0.0  ###如果是遠程安裝需要指定本機IP的DISPLAY
二、	搭建主庫
1、	拷貝安裝包
[oracle@ld_s_172 home]$ ll -thr p10098816_112020_Linux-x86-64_*
-rw-r--r-- 1 root root  1.3G Apr 11 11:39 p10098816_112020_Linux-x86-64_1of7.zip
-rw-r--r-- 1 root root 1002M Apr 11 11:39 p10098816_112020_Linux-x86-64_2of7.zip
2、	解壓安裝包
[oracle@bf_test_qd_119 U01]$ unzip p10098816_112020_Linux-x86-64_1of7.zip 
[oracle@bf_test_qd_119 U01]$ unzip p10098816_112020_Linux-x86-64_2of7.zip
3、	解壓生成/home/database目錄
[oracle@ld_s_172 database]$ ll -thr
drwxr-xr-x  4 oracle oinstall 4.0K Nov 16  2010 install
drwxr-xr-x 12 oracle oinstall 4.0K Nov 16  2010 doc
drwxr-xr-x  2 oracle oinstall   28 Nov 16  2010 sshsetup
-rwxr-xr-x  1 oracle oinstall 3.2K Nov 16  2010 runInstaller
drwxr-xr-x  2 oracle oinstall   33 Nov 16  2010 rpm
drwxr-xr-x 14 oracle oinstall 4.0K Nov 16  2010 stage
-rw-r--r--  1 oracle oinstall 5.3K Nov 16  2010 welcome.html
-rwxr-xr-x  1 oracle oinstall  27K Nov 16  2010 readme.html
drwxr-xr-x  2 oracle oinstall   86 Apr 15 17:04 response
4、	修改安裝配置文件
[oracle@bf_test_qd_119 database]$cd /U01/database/response/
[oracle@bf_test_qd_119 database]$cp db_install.rsp db_install_ora11g.rsp
[oracle@bf_test_qd_119 database]$vi db_install_bfodb.rsp
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME= 10.0.0.1_hostname
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/U01/app/oracle/oraInventory
ORACLE_HOME=/U01/app/oracle/product/11.2.0.2/db_1
ORACLE_BASE=/U01/app/oracle
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=oinstall
oracle.install.db.config.starterdb.characterSet=ZHS16GBK
DECLINE_SECURITY_UPDATES=true
5、	安裝oracle軟件
[oracle@bf_test_qd_119 database]$ ./runInstaller -silent -force -noconfig -responseFile /home/database/response/db_install_ora11g.rsp 
Starting Oracle Universal Installer...
 
Checking Temp space: must be greater than 120 MB.   Actual 16088 MB    Passed
Checking swap space: must be greater than 150 MB.   Actual 16386 MB    Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2012-03-20_05-19-18PM. Please wait ...[oracle@bf_test_qd_119 database]$ [WARNING] [INS-32055] The Central Inventory is located in the Oracle base.
   CAUSE: The Central Inventory is located in the Oracle base.
   ACTION: Oracle recommends placing this Central Inventory in a location outside the Oracle base directory.
[WARNING] [INS-13014] Target environment do not meet some optional requirements.
   CAUSE: Some of the optional prerequisites are not met. See logs for details. /tmp/OraInstall2012-03-20_05-19-18PM/installActions2012-03-20_05-19-18PM.log
   ACTION: Identify the list of failed prerequisite checks from the log: /tmp/OraInstall2012-03-20_05-19-18PM/installActions2012-03-20_05-19-18PM.log. Then either from the log file or from installation manual find the appropriate configuration to meet the prerequisites and fix it manually.
You can find the log of this install session at:
 /U01/app/oracle/oraInventory/logs/installActions2012-03-20_05-19-18PM.log
The installation of Oracle Database 11g was successful.
Please check '/U01/app/oracle/oraInventory/logs/silentInstall2012-03-20_05-19-18PM.log' for more details.
 
As a root user, execute the following script(s):
        1. /U01/app/oracle/oraInventory/orainstRoot.sh
        2. /U01/app/oracle/product/11.2.3/db_1/root.sh
 
 
Successfully Setup Software.
使用root
[root@bf_test_qd_119 ~]# /U01/app/oracle/oraInventory/orainstRoot.sh
Changing permissions of /U01/app/oracle/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.
 
Changing groupname of /U01/app/oracle/oraInventory to oinstall.
The execution of the script is complete.
[root@bf_test_qd_119 ~]# /U01/app/oracle/product/11.2.3/db_1/root.sh
Check /U01/app/oracle/product/11.2.3/db_1/install/root_bf_test_qd_119.167.137.13_cnc_2012-03-20_17-22-51.log for the output of root script
6、	配置監聽
[oracle@bf_test_qd_119 response]$ $ORACLE_HOME/bin/netca -silent -responsefile /home/database/response/netca.rsp
 
Parsing command line arguments:
    Parameter "silent" = true
    Parameter "responsefile" = /U01/database/response/netca.rsp
Done parsing command line arguments.
Oracle Net Services Configuration:
Profile configuration complete.
Oracle Net Listener Startup:
    Running Listener Control: 
      /U01/app/oracle/product/11.2.3/db_1/bin/lsnrctl start LISTENER
    Listener Control complete.
    Listener started successfully.
Listener configuration complete.
Oracle Net Services configuration successful. The exit code is 0
 
注:配置監聽時可能出現報錯
 [oracle@ld_s_172 ~]$ $ORACLE_HOME/bin/netca -silent -responsefile /home/database/response/netca.rsp  
UnsatisfiedLinkError exception loading native library: njni11
java.lang.UnsatisfiedLinkError: /home/U01/app/oracle/product/11.2.0.2/db_1/lib/libnjni11.so: /U01/app/oracle/product/11.2.0.2/db_1/lib/libclntsh.so.11.1: file too short
java.lang.UnsatisfiedLinkError: jniGetOracleHome
        at oracle.net.common.NetGetEnv.jniGetOracleHome(Native Method)
        at oracle.net.common.NetGetEnv.getOracleHome(Unknown Source)
        at oracle.net.ca.NetCALogger.getOracleHome(NetCALogger.java:230)
        at oracle.net.ca.NetCALogger.initOracleParameters(NetCALogger.java:215)
        at oracle.net.ca.NetCALogger.initLogger(NetCALogger.java:130)
        at oracle.net.ca.NetCA.main(NetCA.java:427)             
解決:
[oracle@ld_s_172 ~]$ $ORACLE_HOME/bin/relink all
writing relink log to: /U01/app/oracle/product/11.2.0.2/db_1/install/relink.log
/bin/sh: /usr/bin/gcc: Permission denied
添加權限
chmod 777 /usr/bin/make
chmod 777 /usr/bin/gcc
[oracle@ld_s_172 ~]$ $ORACLE_HOME/bin/netca -silent -responsefile /home/database/response/netca.rsp
Parsing command line arguments:
    Parameter "silent" = true
    Parameter "responsefile" = /home/database/response/netca.rsp
Done parsing command line arguments.
Oracle Net Services Configuration:
Profile configuration complete.
Oracle Net Listener Startup:
    Running Listener Control: 
      /U01/app/oracle/product/11.2.0.2/db_1/bin/lsnrctl start LISTENER
    Listener Control complete.
    Listener started successfully.
Listener configuration complete.
Oracle Net Services configuration successful. The exit code is 0
7、	創建數據庫
[oracle@bf_test_qd_119 response]$ vi dbca.rsp
GDBNAME = "ora11g"
SID = "ora11g"
CHARACTERSET = "ZHS16GBK"
TOTALMEMORY = "2048"
SOURCEDB = "bf_test_qd_119.167.137.13_cnc:1521:ora11g"
[oracle@bf_test_qd_119 response]$ dbca -silent -responseFile dbca.rsp
Enter SYS user password: oracle
Enter SYSTEM user password: oracle
Copying database files
1% complete
3% complete
11% complete
18% complete
37% complete
Creating and starting Oracle instance
40% complete
45% complete
50% complete
55% complete
56% complete
60% complete
62% complete
Completing Database Creation
66% complete
70% complete
73% complete
85% complete
96% complete
100% complete
8、	進程檢查
檢查ps –ef | grep ora_
oracle   27679     1  0 13:34 ?        00:00:00 ora_pmon_bfodb
oracle   27681     1  0 13:34 ?        00:00:00 ora_psp0_bfodb
oracle   27683     1  0 13:34 ?        00:00:00 ora_vktm_bfodb
oracle   27687     1  0 13:34 ?        00:00:00 ora_gen0_bfodb
oracle   27689     1  0 13:34 ?        00:00:00 ora_diag_bfodb
oracle   27691     1  0 13:34 ?        00:00:00 ora_dbrm_bfodb
至此,oracle 11g 靜默安裝完畢,比圖形化界面快多了,也比較簡單
9、	修改參數,生成spfile文件重啓
alter system set sessions=5510 scope=spfile;
alter system set processes=5000 scope=spfile;
alter system set license_max_sessions=5000;
alter system set license_sessions_warning=4000;
alter system set session_cached_cursors=1000 scope=spfile;
alter system set audit_sys_operations=TRUE scope=spfile;
alter system set db_files=1000 scope=spfile;
alter system set utl_file_dir='/U01/app/oracle/admin/ora11g/utl_file' scope=spfile;
alter system set sga_max_size=40G scope=spfile;
alter system set undo_retention=14400;
alter tablespace undotbs1 retention guarantee;
alter system set optimizer_index_caching=90;
alter system set audit_trail='DB' scope=spfile;
alter system set audit_sys_operations=true scope=spfile;
alter system set optimizer_index_cost_adj=30;
alter database force logging;
alter database add supplemental log data;
打開歸檔,需起到mount階段
alter system set log_archive_dest_1 ='location=/U01/app/oracle/admin/ora11g/arch',valid_for=(ONLINE_LOGFILE,ALL_ROLES);
alter database archivelog;
alter database open;
三、	搭建備庫,只需安裝軟件,無需建庫
1、	開通主備防火牆,使之互通,配置信任
2、	備庫安裝oracle軟件和監聽,步驟跟上面一樣,但不創建庫
3、	配置tnsnames.ora,主備一樣
主備庫vi /$ORACLE_HOME/ network/admin/tnsnames.ora
ORA11G =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = ld_413s_172.0.0.171_tw)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = ora11g)
    )
  )
SORA11G =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = ld_s_172.0.0.172_tw)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = ora11g)
    )
  )
檢查tnsping ORA11G;tnsping SORA11G是否OK
4、	創建備庫所需目錄
mkdir -p /U01/app/oracle/admin
mkdir -p /U01/app/oracle/admin/ora11g/{a,dp}dump
mkdir -p /U01/app/oracle/flash_recovery_area
mkdir -p /U01/app/oracle/admin/ora11g/arch
mkdir -p /U01/app/oracle/admin/ora11g/pfile
mkdir -p /U01/app/oracle/admin/ora11g/utl_file
mkdir -p /U01/app/oracle/oradata/ora11g
5、	拷貝主庫參數文件到備庫
ora11g.__db_cache_size=15837691904
ora11g.__java_pool_size=67108864
ora11g.__large_pool_size=67108864
ora11g.__oracle_base='/U01/app/oracle'#ORACLE_BASE set from environment
ora11g.__pga_aggregate_target=6442450944
ora11g.__sga_target=19327352832
ora11g.__shared_io_pool_size=0
ora11g.__shared_pool_size=3087007744
ora11g.__streams_pool_size=134217728
*.archive_lag_target=0
*.audit_file_dest='/U01/app/oracle/admin/ora11g/adump'
*.audit_sys_operations=TRUE
*.audit_trail='OS'
*.compatible='11.2.0.2'
*.control_files='/U01/app/oracle/oradata/ora11g/control01.ctl','/U01/app/oracle/fast_recovery_area/ora11g/control02.ctl'#Restore Controlfile
*.db_block_size=8192
*.db_domain=''
*.db_files=1000
*.db_name='ora11g'
*.db_recovery_file_dest='/U01/app/oracle/fast_recovery_area'
*.db_recovery_file_dest_size=4322230272
*.db_unique_name='sora11g'
*.dg_broker_start=TRUE
*.diagnostic_dest='/U01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=ora11gXDB)'
*.fal_server='ora11g'
*.fal_client=’sora11g’
*.license_max_sessions=5000
*.license_sessions_warning=4000
*.local_listener='sora11g'
*.log_archive_config='dg_config=(sora11g,ora11g)'
*.log_archive_dest_1='location=/U01/app/oracle/admin/ora11g/arch'
ora11g.log_archive_format='%t_%s_%r.dbf'
*.log_archive_max_processes=4
*.log_archive_min_succeed_dest=1
ora11g.log_archive_trace=0
*.open_cursors=300
*.optimizer_index_caching=90
*.pga_aggregate_target=6442450944
*.processes=5000
*.remote_login_passwordfile='EXCLUSIVE'
*.session_cached_cursors=1000
*.sessions=5510
*.sga_target=19327352832
###*.standby_archive_dest='location=/U01/app/oracle/admin/ora11g/arch',';' 
###在Oracle 11g的Data Guard中,standby_archive_dest參數已經被取消了
*.standby_file_management='auto'
*.statistics_level='ALL'
*.undo_retention=14400
*.undo_tablespace='UNDOTBS1'
*.utl_file_dir='/U01/app/oracle/admin/ora11g/utl_file'
6、	備庫起到nomount階段
sqlplus / as sysdba
startup nomount pfile='/U01/app/oracle/product/11.2.0.2/db_1/dbs/initora11g.ora';
7、	備份主庫控制文件、數據文件、歸檔日誌,和密碼文件拷貝到備庫
rman target /
run{
allocate channel c1 type disk;
allocate channel c2 type disk;
backup format '/home/oracle/standby/%d_%s_%p_%c_%t' Database;
backup format '/home/oracle/standby/%d_%s_%p_%c_%t_ctl' current controlfile for standby;
Backup format '/home/oracle/standby/%d_%s_%p_%c_%t_arc'  ArchiveLog all;
release channel c2;
release channel c1;
}
###如果沒有密碼文件,手動生成
orapwd file=/U01/app/oracle/product/11.2.0.2/db_1/dbs/orapwora11g password=oracle
8、	將主庫備份文件拷貝到備庫
mkdir –p /home/oracle/standby/
scp /home/oracle/standby/* 172.0.0172:/home/oracle/standby
scp /U01/app/oracle/product/11.2.0.2/db_1/dbs/orapwora11g 172.0.0172: /U01/app/oracle/product/11.2.0.2/db_1/dbs
chown oracle:oinstall –R /home/oracle/standby/*
chown oracle:oinstall /U01/app/oracle/product/11.2.0.2/db_1/dbs/orapwora11g
9、	恢復備庫, 開始duplicate
rman nocatalog auxiliary / target sys/'oracle'@ora11g		
run{
duplicate target database for standby dorecover nofilenamecheck;
}
10、	備庫創建spfile文件
SQL> create spfile from pfile;
SQL> shutdown immediate
SQL> startup mount;
四、	後續問題
1、	備庫添加standby redo log
在備庫添加standby redo log需要先停MRP
SQL> alter database recover managed standby database cancel;
SQL> alter database add standby logfile '/U01/app/oracle/oradata/ora11g/stdbyredo04.log’ size 50m;
Database altered.
SQL> alter database add standby logfile '/U01/app/oracle/oradata/ora11g/stdbyredo05.log’ size 50m;
Database altered.
SQL> alter database add standby logfile '/U01/app/oracle/oradata/ora11g/stdbyredo06.log’ size 50m;
Database altered.
SQL> alter database recover managed standby database disconnect from session;
Database altered.
2、	主庫添加standby redo log
SQL> alter database add standby logfile ‘/U01/app/oracle/oradata/ora11g/stdbyredo01.log’size 50m;
SQL> alter database add standby logfile ‘/U01/app/oracle/oradata/ora11g/stdbyredo02.log’ size 50m;
SQL> alter database add standby logfile ‘/U01/app/oracle/oradata/ora11g/stdbyredo03.log’ size 50m;
SQL> alter database add standby logfile ‘/U01/app/oracle/oradata/ora11g/stdbyredo04.log’ size 50m;
3、	啓用real-time apply,從而實現real-time query
SQL> alter database recover managed standby database cancel;
Database altered.
SQL> ALTER DATABASE OPEN;
Database altered.
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;
Database altered.
五、	配置DG
dgmgrl /
DGMGRL> CREATE CONFIGURATION ora11g AS PRIMARY DATABASE IS 'ora11g' CONNECT IDENTIFIER IS 'ora11g';
DGMGRL> add database 'sora11g' as connect identifier is sora11g maintained as physical;
DGMGRL> enable configuration;
DGMGRL> show configuration;
六、	主備同步測試
Primary:
SQL> create table scott.dave(id number,name varchar2(20));
Table created.
SQL> insert into scott.dave values(1,'tianlesoftware');
1 row created.
SQL> commit;
Commit complete.
Standby:
SQL> select open_mode from v$database;
OPEN_MODE
--------------------
READ ONLY WITH APPLY
 
SQL> select * from scott.dave;
        ID NAME
---------- ---------------
         1 tianlesoftware
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章