SLES 10安装Oracle10gR2笔记一、 数据库安装1. 安装C/C++ Compilergcc --version验证是否安装2. 验证Service Pack版本SPident –v3. 修改/etc/hosts #127.0.0.1 localhost192.168.0.123 localhost4. 安装先决程序包可以在安装操作系统是选择Oracle Base Server或者安装如下程序包:#rpm -ivh orarun-1.9-21.2.x86_64.rpm5. 设置oracle用户修改/etc/passwd的oracle用户的/bin/false为/bin/bash,或先删除用户重建。并设置oracle用户密码:# groupadd oinstall# groupadd dba# useradd oracle -g oinstall -G dba# passwd oracle6. 设置oracle用户环境变量(/etc/profile.d/oracle.sh)PATH=$PATH:$HOME/binLD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/lib# added for install oracle10gexport ORACLE_BASE=$HOMEexport ORACLE_HOME=$ORACLE_BASE/product/10.2/db_1export ORACLE_SID=testdb# deleted after install oracle10gexport TNS_ADMIN=$ORACLE_HOME/network/adminexport NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"export PATH=$PATH:$ORACLE_HOME/bin:.export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:.export DISPLAY=:0.0unset USERNAMEunset LANG7. 设置内核参数/usr/sbin/rcoracle start8. 验证oracle信息oracle@devtest:~> iduid=1001(oracle) gid=103(oinstall) groups=103(oinstall),104(dba)9. 安装oracle在~oracle/database/install/oraparam.ini的[Certified Versions]行加入SuSE-10后执行./ runInstaller或者执行./runInstaller -ignoreSysPrereqs10. 设置GUI显示#xhost +$xhost +并设置环境变量export DISPLAY=:0.011. 新建数据库dbca12. 监听器配置(LISTENER)>netmgr或netca配置Listening Locations和Database Services项。然后重启监听程序>lsnrctl start13. 配置Service Naming>netca14. 登陆测试>sqlplus /nologsql>conn system/oracle@testdb15. 安装问题处理16. emca script 错误分析解答:出现此类问题,一般要求检查主机名与Hosts文件对应是否吻合,特别是大小写检查经常大意导致运行dbca 创建数据库过程中报错。出现此类问题后,可以通过以下步骤解决:$ su - oracle$ emca -deconfig dbcontrol db -repos drop #删除EM资料档案库$ emca -repos create #建 EM 资料档案库$ emca -config dbcontrol db #置数据的 Database Control过上述步骤后,如果正常,EM管理控制台可正常使用,运行Http://IPAdrees:1158/em如果运行ca -repos create 后出现异常,则检查Oracle local_listener是否为空,否则清空后再运行。二、 创建数据库1. 新建数据库系统数据文件目录:/oradata/system用户归档日志目录:/oradata/logarch用户数据文件目录:/oradata/userdata执行dbca新建数据库2. 数据库启动脚本startdb.sh#!/bin/shsqlplus /nolog <archive log list;2) 将primary设置为归档模式SQL>alter database force logging;3) 创建standby控制文件SQL> alter database create standby controlfile as '/oradata/system/tzdb/standby.ctl';4) 查看是否存在密码文件,不存在则创建ls $ORACLE_HOME/dbs/orapwtzdborapwd file='orapwtzdb' password='1qaz!QAZ' entries='30'5) 创建standby redo logSQL> alter database add standby logfile group 4 ('/oradata/system/tzdb/stdby_redo01.log') size 50m;SQL> alter database add standby logfile group 5 ('/oradata/system/tzdb/stdby_redo02.log') size 50m;SQL> alter database add standby logfile group 6 ('/oradata/system/tzdb/stdby_redo03.log') size 50m;SQL> alter database add standby logfile group 7 ('/oradata/system/tzdb/stdby_redo04.log') size 50m;6) 创建primary数据库客户端初始化参数文件 此处需要修改多处,为了方便,先创建并修改pfile,然后通过pfile重建spfile,当然也可通过alter system set命令直接修改spfile:SQL> create pfile='/oradata/system/tzdb/inittzdb.ora' from spfile; 修改上述primary的客户端参数文件/oradata/system/tzdb/inittzdb.ora,增加如下参数: #-----------------------------------------#新增配置参数#-----------------------------------------DB_UNIQUE_NAME=tzdbaLOG_ARCHIVE_CONFIG='DG_CONFIG=(tzdba,tzdbb)'LOG_ARCHIVE_DEST_1='LOCATION=/oradata/logarch/tzdb VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=tzdba'LOG_ARCHIVE_DEST_2='SERVICE=tzdbb LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=tzdbb'LOG_ARCHIVE_DEST_STATE_1=ENABLELOG_ARCHIVE_DEST_STATE_2=ENABLE#ARCHIVE_LAG_TARGET=300#-----------------------------------------#配置standby角色的参数用于角色转换 #-----------------------------------------FAL_SERVER=tzdbbFAL_CLIENT=tzdbaSTANDBY_FILE_MANAGEMENT=AUTO 通过pfile重建spfileSQL>shutdown immediate;SQL>create spfile from pfile='/oradata/system/tzdb/inittzdb.ora';7) 验证listenner和service name配置并测试lsnrctl stoplsnrctl starttnsping tzdbatnsping tzdbb2. standby数据库配置1) 复制primary的如下文或目录件到standby主机的相应目录 $ORACLE_HOME/admin 包括数据文件 控制文件 产生的standby控制文件 在线日志文件 密码文件 参数文件(inittzdb.ora)2) 恢复standby的控制文件cp standby.ctl control01.ctlcp standby.ctl control02.ctlcp standby.ctl control03.ctl3) 修改standby主机的sqlnet.ora,增加如下参数SQLNET.EXPIRE_TIME=24) 修改初始化参数文件(/oradata/system/tzdb/inittzdb.ora) 增加如下参数,注意同时修改*_dest的路径#-----------------------------------------#新增配置参数#-----------------------------------------DB_UNIQUE_NAME=tzdbaLOG_ARCHIVE_CONFIG='DG_CONFIG=(tzdba,tzdbb)'LOG_ARCHIVE_DEST_1='LOCATION=/oradata/logarch/tzdb VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=tzdba'LOG_ARCHIVE_DEST_2='SERVICE=tzdbb LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=tzdbb'LOG_ARCHIVE_DEST_STATE_1=ENABLELOG_ARCHIVE_DEST_STATE_2=ENABLE#ARCHIVE_LAG_TARGET=300#-----------------------------------------#配置standby角色的参数用于角色转换 #-----------------------------------------FAL_SERVER=tzdbbFAL_CLIENT=tzdbaSTANDBY_FILE_MANAGEMENT=AUTO 通过该pfile创建spfileSQL> create spfile from pfile='/oradata/system/tzdb/inittzdb.ora';5) 启动standby到mountSQL>startup mount;6) 启动redo应用SQL>alter database recover managed standby database disconnect from session;8) Oracle Data Guard测试验证3. 查看同步情况 先连接到primary数据库,然后查看show parameter instance_name;alter system switch logfile;select max(sequence#) from v$archived_log; 连接到standby数据库,然后查看show parameter instance_name;select max(sequence#) from v$archived_log; 暂停redo应用,此时仍会接手归档日志,但不应用,直到恢复到应用模式。alter database recover managed standby database cancel; 查看standby的归档日志是否已被应用到数据文件select sequence#,applied from v$archived_log order by sequence#;四、 Standby数据库日常维护1. 关闭standby数据库shutdown immediate;2. 启动standby数据库到恢复模式startup nomount;alter database mount standby database;alter database recover managed standby database disconnect from session;3. 启动standby数据库到只读模式startup nomount;alter database mount standby database;alter database open read only;4. 将standby数据库从恢复模式切换到只读模式alter database recover managed standby database cancel;alter database open read only;5. 将standby数据库从只读模式切换到恢复模式alter database recover managed standby database disconnect from session;