if(\$USER=="oracle")then
limitmaxproc16384
limitdescriptors65536
umask022
endif
EOF
1.2. 安装数据库软件
[root@db111~]#xhost+
accesscontrodisabled.clientscanconnectfromanyhost
[oracle@db111~]$exportLC_ALL=C
[oracle@db111~]$./runInstaller-ignoreSysPrereqs
1、如果设置了环境变量DISPLAY,先到/home/oracle/.bash_profile中把DISPLAY删掉,然后打开一个新的终端(必须是图形界面下的Koncole,如果在文字界面下将不成功),以root登陆,输入如下命令:
#xhost+
如果成功,会输出其他用户可以连接此窗口的结果。
2、防止因为语言、字体设置的问题导致界面上都是“方框”乱码的情况,需先设置一下环境变量:
$exportLC_ALL=C
3、在终端中以oracle登陆,执行命令:
$./runInstaller
Oracle默认不支持Fedora,需要加上-ignoreSysPrereqs参数。
因为是新库,装完软件后,不装数据库直接升级至10.2.0.2
1.3. 创建数据库
1.3.1. 设置环境变量
[oracle@db111~]$cd
[oracle@db111~]$more.bash_profile
exportLC_ALL=C
exportORACLE_BASE=/oracle/app/oracle
exportORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
exportLD_LIBRARY_PATH=$ORACLE_HOME/lib:
/usr/lib
exportNLS_LANG=american_america.ZHS16GBK
exportNLS_DATE_LANGUAGE="SIMPLIFIEDCHINESE"
PATH=$PATH:
$HOME/bin
PATH=$PATH:
$HOME/bin:
$ORACLE_HOME/bin
exportPATH
1.3.2. 建库
[oracle@db111~]$cd$ORACLE_HOME/bin
[oracle@db111~]$./dbca
这里需要注意选择正确的process、字符集,以免事后修改。
设置环境变量
exportORACLE_SID=dgtest
1.3.3. 配置Listener
[oracle@db111~]$cd$ORACLE_HOME/bin
[oracle@db111~]$./netca
或者$ORACLE_HOME/network/admin/listener.ora文件中增加:
(SID_DESC=
(GLOBAL_DBNAME=dbtest)
(ORACLE_HOME=/oracle/app/oracle/product/10.2.0/db_1)
(SID_NAME=dbtest)
)
1.3.4. 其他设置
1、安装后FAILED_LOGIN_ATTEMPTS默认为10,改为UNLIMITED:
SQL>Select*Fromdba_profiles;
SQL>AlterProfileDEFAULTLimitFAILED_LOGIN_ATTEMPTSUNLIMITED;
2、初始化参数processes默认为150,sessions默认为170,分别进行修改后重起数据库服务:
SQL>altersystemsetsessions=665scope=spfile;
SQL>altersystemsetprocesses=600scope=spfile;
3、如果需要修改字符集,可按如下操作:
SQL>selectuserenv('language')fromdual;
USERENV('LANGUAGE')
--------------------------------------------------------------------------------
AMERICAN_AMERICA.WE8ISO8859P1
将数据库字符集由WE8ISO8859P1改为ZHS16GBK
SQL>shutdownimmediate
SQL>startupmount
SQL>altersystemenablerestrictedsession;
SQL>altersystemsetJOB_QUEUE_PROCESSES=0;
SQL>altersystemsetAQ_TM_PROCESSES=0;
SQL>alterdatabaseopen;
SQL>alterdatabaseCHARACTERSETZHS16GBK;
ERRORatline1:
ORA-12712:
newcharactersetmustbeasupersetofoldcharacterset
若出现上面的错误,使用下面的办法进行修改,使用INTERNAL_USE可以跳过超集的检查:
SQL>alterdatabaseCHARACTERSETINTERNAL_USEZHS16GBK;
SQL>shutdownimmediate
SQL>startup
SQL> selectuserenv('language')fromdual;
USERENV('LANGUAGE')
----------------------------------------------------
AMERICAN_AMERICA.ZHS16GBK
实际测试发现INTERNAL_USE有时也会报ORA-12712
4、通过exp测试数据库
[oracle@db111backup]$expSystem/123qwefile=test.dmplog=test.logwner=scottbuffer=4096000feedback=10000
……………………………………………
Exportterminatedsuccessfullywithoutwarnings.
2. 使用冷备创建物理STANDBY
2.1. 主库设置准备
2.1.1. 启用归档模式
SQL>SelectDBID,Name,LOG_MODE,FORCE_LOGGINGFromV$DATABASE;
DBIDNAME LOG_MODE FORCE_
----------------------------------------------------------
1220643147DB111 NOARCHIVELOG NO
SQL>ALTERSYSTEMSETLOG_ARCHIVE_DEST_1='LOCATION=/oradata/dgtest/archive';
Systemaltered.
SQL>ALTERSYSTEMSETLOG_ARCHIVE_DEST_STATE_1=ENABLE;
Systemaltered.
这里注意10g已经废弃LOG_ARCHIVE_START参数,如果这里设置了,启动会提示错误。
SQL>SHUTDOWNIMMEDIATE
SQL>STARTUPMOUNT
SQL>ALTERDATABASEARCHIVELOG;
Databasealtered.
SQL>ALTERDATABASEOPEN;
Databasealtered.
SQL>SelectDBID,Name,LOG_MODE,FORCE_LOGGINGFromV$DATABASE;
DBIDNAME LOG_MODE FOR
----------------------------------
1220648112DB111 ARCHIVELOG YES
SQL>ARCHIVELOGLIST;
Databaselogmode ArchiveMode
Automaticarchival Enabled
Archivedestination /oradata/dgtest/archive
Oldestonlinelogsequence 1
Nextlogsequencetoarchive 2
Currentlogsequence 2
2.1.2. 创建密码文件
SQL>SelectName,Type,ValueFromv$parameterWhereNameLike'%password%';
NAME TYPE VALUE
---------- ---------- -----------------------------
remote_login_passwordfile 2 EXCLUSIVE
SQL>AlterSystemSetremote_login_passwordfile=exlusivescop=spfile;
[oracle@db111db_1]$cd$ORACLE_HOME/dbs
[oracle@db111dbs]$orapwdfile=orapwdgtestpassword=123qwe
2.1.3. 启用forcelogging
SQL>ALTERDATABASEFORCELOGGING;
Databasealtered.
SQL>selectforce_loggingfromv$database;
FOR
---
YES
注:
取消强制logging,用
SQL>ALTERDATABASENOFORCELOGGING;
创建备用数据库的redolog
2.1.4. 创建备库初始化文件(重要)
主库中,创建备库需要的pfile文件,并copy至备库的到备库的$ORACLE_HOME/dbs下
SQL>createpfile=’/oradata/dgtest/initdgtest.ora’fromspfile;
主库pfile中需要增加的内容。
修改pfile后重起数据库,使其生效。
*.DB_UNIQUE_NAME='db111'
*.log_archive_config='DG_CONFIG=(db111,db112)'
log_archive_dest_1=
'LOCATION=/oradata/dgtest/archive
VALID_FOR=(ALL_LOGFILES,ALL_ROLES)
DB_UNIQUE_NAME=DB111'
log_archive_dest_2=
'SERVICE=DB112
VALID_FOR=(ONLINE_LO