一、 搭建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
【oracle】oracle11g 搭建
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.